추론 애플리케이션에 맞게 최적화하려면 어떻게 해야 하나요?

추론 최적화는 프로덕션에서 AI 모델을 실행할 때 성능과 효율성을 개선하는 관행입니다. 대규모 언어 모델(LLM)이 수백억 또는 수천억 개의 파라미터로 성장하고 추론 아키텍처가 더욱 복잡해짐에 따라 애플리케이션을 설계하고 유지관리하는 것이 점점 더 어려워지고 있습니다. 최적화는 이러한 컴퓨팅 집약적 워크로드를 관리, 모니터링, 업데이트하여 1초 미만의 응답 시간과 더 높은 처리량을 더 낮은 비용으로 실현하는 행위입니다.

여기에는 모델 압축부터 고급 메모리 관리에 이르기까지 다양한 기법이 포함되어 있으며, 단순히 '모델을 실행'하는 것에서 '인텔리전스 서비스를 확장'하는 것으로 초점을 전환합니다. 이를 통해 개발자는 지속 가능한 인프라 사용량을 유지하면서 응답성이 뛰어난 애플리케이션을 빌드할 수 있습니다.

실제로 추론 최적화는 일반적으로 두 가지 주요 방식으로 적용됩니다.

인프라 수준 최적화: 이는 하드웨어에서 모델이 실행되는 방식에 중점을 둡니다. 여기에는 최적화된 런타임(예: NVIDIA NIM 또는 vLLM) 사용, PagedAttention과 같은 기술을 사용한 GPU 메모리 관리, 진행 중 일괄 처리를 사용한 여러 요청의 동시 처리가 포함됩니다. 이 방법은 오픈소스 또는 독점 모델을 사용하는 개발자에게 가장 실용적인 경로인 경우가 많습니다.

모델 수준 최적화: 모델 자체를 수정하여 크기나 복잡성을 줄이는 작업입니다. 양자화(정밀도를 16비트에서 4비트로 줄임), 증류(더 작은 '학생' 모델이 더 큰 '교사' 모델을 모방하도록 학습), 희소성(중요하지 않은 파라미터 가지치기)과 같은 기술을 사용하면 각 토큰에 필요한 메모리와 컴퓨팅을 크게 줄일 수 있습니다.

추론 프로세스의 작동 방식 이해

코드 수준 워크플로

효과적으로 최적화하려면 LLM 추론의 두 가지 단계를 이해해야 합니다.

단계

설명

주요 특징

사전 입력

모델은 전체 입력 프롬프트를 처리하여 중간 상태를 계산합니다.

고도로 병렬화됨, 컴퓨팅 집약적(GPU 포화)

디코딩

모델은 출력 토큰을 하나씩 자동 회귀적으로 생성합니다.

순차적, 메모리 집약적(데이터 전송 속도에 따라 제한됨)

단계

설명

주요 특징

사전 입력

모델은 전체 입력 프롬프트를 처리하여 중간 상태를 계산합니다.

고도로 병렬화됨, 컴퓨팅 집약적(GPU 포화)

디코딩

모델은 출력 토큰을 하나씩 자동 회귀적으로 생성합니다.

순차적, 메모리 집약적(데이터 전송 속도에 따라 제한됨)

  1. 목표 설명: 최적화되지 않은 모델 배포로 시작합니다.
  2. 양자화 적용: 모델 가중치(예: 4비트)를 줄여 메모리에 더 큰 배치를 맞춥니다.
  3. 어텐션 최적화: FlashAttention 또는 Grouped-Query Attention(GQA)을 사용하여 메모리 이동 비용을 최소화합니다.
  4. 메모리 관리: PagedAttention을 구현하여 KV 캐시를 비연속 블록에 저장하고 단편화를 제거합니다.
  5. 실행 및 모니터링: 진행 중 일괄 처리를 통해 배포하여 다른 요청이 완료되는 즉시 새 요청을 시작합니다.

추론 최적화 및 표준 배포 비교

최적화된 추론과 기존의 '단순' 모델 서빙을 비교해 보겠습니다.

기능

표준 배포

추론 최적화

처리량

정적 배치 크기 및 유휴 시간으로 제한됨

높음, 진행 중 일괄 처리 및 지속적인 반복 활용

지연 시간

시퀀스 길이에 따라 선형적으로 증가, 높은 TTFT(첫 번째 토큰까지의 시간)

최적화됨, 사전 입력 가속 및 추측 디코딩 활용

메모리 관리

정적 할당(최대 길이에 대한 초과 프로비저닝)

동적(페이징), PagedAttention을 통한 낭비 최소화

하드웨어 효율성

GPU/TPU 컴퓨팅 기능을 과소 활용하는 경우가 많음

최대화됨, 최적화된 커널(TFE-IE, XLA) 사용

요청당 비용

높음, 동일한 부하에 더 많은 하드웨어가 필요함

낮음, 동일한 인프라에 더 많은 요청을 패킹

기능

표준 배포

추론 최적화

처리량

정적 배치 크기 및 유휴 시간으로 제한됨

높음, 진행 중 일괄 처리 및 지속적인 반복 활용

지연 시간

시퀀스 길이에 따라 선형적으로 증가, 높은 TTFT(첫 번째 토큰까지의 시간)

최적화됨, 사전 입력 가속 및 추측 디코딩 활용

메모리 관리

정적 할당(최대 길이에 대한 초과 프로비저닝)

동적(페이징), PagedAttention을 통한 낭비 최소화

하드웨어 효율성

GPU/TPU 컴퓨팅 기능을 과소 활용하는 경우가 많음

최대화됨, 최적화된 커널(TFE-IE, XLA) 사용

요청당 비용

높음, 동일한 부하에 더 많은 하드웨어가 필요함

낮음, 동일한 인프라에 더 많은 요청을 패킹

시작하기: 조정 환경 선택

Google Cloud는 다양한 기술 수준과 아키텍처 요구사항에 맞게 설계된 다양한 도구를 제공합니다.

도구

시작 지점

기술 수준

접근 방법

주요 기능

Cloud Run(GPU 지원)

경량 이벤트 기반 AI 서비스

초급

서버리스

지연 시간이 짧고 급증하는 워크로드에 대한 Scale-to-zero 추론

OSS 모델(예: Llama 3)

초급부터 중급까지

관리형 / 로우 코드

최적화된 vLLM 또는 NVIDIA NIM 런타임으로 클릭 한 번으로 배포


고성능 프로덕션 워크로드

중급부터 고급까지

추론 가속화

최첨단 TensorRT-LLM 최적화가 적용된 사전 빌드된 마이크로서비스

커스텀 멀티모델 인프라

고급

클라우드 네이티브 / 커스텀

GPU 샤딩, 조정, 커스텀 추론 서버를 완전히 제어

대규모 TPU 우선 개발

고급

TPU 최적화 / XLA

Cloud TPU에서 지속적 일괄 처리 및 PagedAttention을 사용하여 XLA에 맞게 조정

도구

시작 지점

기술 수준

접근 방법

주요 기능

Cloud Run(GPU 지원)

경량 이벤트 기반 AI 서비스

초급

서버리스

지연 시간이 짧고 급증하는 워크로드에 대한 Scale-to-zero 추론

OSS 모델(예: Llama 3)

초급부터 중급까지

관리형 / 로우 코드

최적화된 vLLM 또는 NVIDIA NIM 런타임으로 클릭 한 번으로 배포


고성능 프로덕션 워크로드

중급부터 고급까지

추론 가속화

최첨단 TensorRT-LLM 최적화가 적용된 사전 빌드된 마이크로서비스

커스텀 멀티모델 인프라

고급

클라우드 네이티브 / 커스텀

GPU 샤딩, 조정, 커스텀 추론 서버를 완전히 제어

대규모 TPU 우선 개발

고급

TPU 최적화 / XLA

Cloud TPU에서 지속적 일괄 처리 및 PagedAttention을 사용하여 XLA에 맞게 조정

Vertex AI Model Garden으로 추론을 최적화하는 방법

Model Garden은 Llama, Gemma, Mistral과 같은 주요 개방형 모델의 최적화된 버전을 배포하는 가장 빠른 경로입니다.

1단계: 모델 선택 및 구성

Model Garden으로 이동하여 지원되는 OSS 모델을 찾습니다. 배포를 클릭합니다. 구성에서 vLLM 또는 NVIDIA NIM과 같은 최적화된 런타임을 선택합니다.

2단계: 양자화 적용

모델의 메모리 사용량을 줄이려면 양자화된 버전의 모델(예: 4비트 또는 8비트)을 선택합니다. 이를 통해 동일한 GPU에서 더 큰 배치 크기를 처리하여 처리량을 직접적으로 늘릴 수 있습니다.

3단계: 고급 메모리 관리 사용 설정

서빙 컨테이너가 PagedAttention을 사용하도록 구성되어 있는지 확인합니다. 이 기법을 사용하면 모델이 '메모리'(키-값 캐시)를 비연속 블록에 저장하여 메모리 낭비를 방지하고 더 긴 컨텍스트 윈도우를 허용할 수 있습니다.

4단계: 배포 및 모니터링

배포되면 Vertex AI가 자동으로 진행 중 일괄 처리를 처리하여 기존 요청이 토큰을 완료하는 즉시 새 요청을 처리합니다. Vertex AI Model Monitoring을 사용하여 지연 시간을 추적하고 출력의 '바이브'가 고품질로 유지되도록 합니다.

GKE로 추론을 최적화하는 방법

조정 및 커스텀 추론 커널을 세부적으로 제어해야 하는 팀에게는 GKE가 업계 표준 선택입니다.

1단계: NVIDIA GPU 또는 Cloud TPU로 클러스터 초기화

특수 GPU 노드(예: L4 또는 H100)가 있는 GKE 클러스터를 프로비저닝합니다. NVIDIA GPU Operator를 설치하여 드라이버 관리 및 성능 튜닝을 자동으로 처리합니다.

2단계: 최적화된 추론 서버 배포

vLLM 또는 Triton Inference Server와 같은 컨테이너화된 추론 엔진을 사용합니다. 이러한 서버는 연속 일괄 처리와 텐서 병렬 처리를 지원하므로 여러 GPU에 걸쳐 대규모 모델을 샤딩할 수 있습니다. 또한 vLLM을 사용하면 최소한의 추가 코딩으로 TPU와 GPU 간에 전환할 수 있습니다.

3단계: 추측 디코딩 구현

미션 크리티컬 지연 시간 요구사항의 경우 추측 디코딩을 구성합니다. 여기에는 더 작고 빠른 '초안' 모델을 사용하여 토큰을 예측한 다음, 더 큰 '타겟' 모델로 병렬 검증하는 작업이 포함되며, 이를 통해 속도가 2~3배 향상되는 경우가 많습니다.

4단계: GKE Inference Quickstart로 배포 간소화

GKE Inference Quickstart는 테스트된 추론 스택 구성의 사전 구성된 데이터베이스 역할을 합니다. 모델, 지연 시간 요구사항, 비용 우선순위를 지정하면 이 도구가 권장사항과 최신 벤치마크를 기반으로 추천을 제공합니다. 이를 통해 추론 관련 성능 측정항목을 모니터링하고 배포를 동적으로 미세 조정하여 항상 최적화된 기술에서 실행되도록 할 수 있습니다.

5단계: GKE Inference Gateway로 확장

GKE Inference Gateway가 정식 버전으로 출시되어 복잡한 생성형 AI 애플리케이션을 관리하기 위한 두 가지 고급 기능을 도입했습니다.

  • 프리픽스 인식 라우팅: 멀티턴 채팅이나 문서 분석과 같은 애플리케이션의 경우 이 기능은 이미 컨텍스트가 캐시된 동일한 가속기로 요청을 라우팅하여 응답 시간을 개선합니다.
  • 분할 서빙: 이 기법은 초기 '사전 입력' 단계(프롬프트 처리)를 '디코드' 단계(토큰 생성)와 분리합니다. 이러한 단계는 리소스 요구사항이 다르므로 별도의 최적화된 머신 풀에서 실행하여 효율성을 극대화할 수 있습니다.

6단계: Anywhere Cache로 데이터 액세스 가속화

Anywhere Cache는 기존 Google Cloud Storage(GCS) 버킷과 함께 작동하여 가속기와 동일한 영역 내에서 데이터를 캐싱하는 완전히 일관된 새로운 읽기 캐시입니다. 이를 통해 읽기 지연 시간을 최대 96% 줄이고 읽기 중심 워크로드와 관련된 네트워크 비용을 최소화할 수 있습니다.

7단계: Cloud WAN으로 전역 워크로드 연결

전체 인프라를 하나로 묶는 것은 Google의 전 세계 규모 인프라를 기반으로 빌드된 완전 관리형 글로벌 네트워크인 Cloud WAN입니다. Cloud WAN은 다양한 리전, 클라우드, 온프레미스 환경 전반에서 AI 컴퓨팅 리소스를 연결하여 추론 애플리케이션 환경을 40% 개선하고 기존 WAN 솔루션에 비해 TCO를 40% 절감합니다.

Google Cloud로 비즈니스 문제 해결

신규 고객에게는 Google Cloud에서 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.

다음 단계 수행

$300의 무료 크레딧과 20여 개의 항상 무료 제품으로 Google Cloud에서 빌드하세요.

Google Cloud