피드로 돌아가기
Hugging Face BlogBackend
원문 읽기
AWS와 Hugging Face가 optimum-neuron 라이브러리를 통해 Llama 2를 AWS Inferentia2에 컴파일·배포하여 inf2.48xlarge에서 토큰당 2~3ms의 레이턴시와 초당 227~750 토큰의 처리량 달성
Make your llama generation time fly with AWS Inferentia2
AI 요약
Context
LLM 모델의 텍스트 생성 추론은 높은 지연시간과 낮은 처리량으로 인해 실시간 서비스 배포가 어려웠다. 기존 표준 GPU 인스턴스로는 대규모 사용자 동시 요청 처리 시 비용 효율성이 낮았다.
Technical Solution
- Llama 2 모델을 Neuron 전용 포맷으로 정적 컴파일: NeuronModelForCausalLM API를 통해 num_cores=24, auto_cast_type='fp16'으로 설정하여 배치 크기 1, 시퀀스 길이 2048으로 사전 컴파일
- 세 가지 배포 옵션 제공: Hugging Face Neuron Deep Learning AMI(DLAMI) 사용, Amazon SageMaker Neuron SDK DLC 활용, 또는 신규 Inferentia2 인스턴스에 수동 설치
- 텍스트 생성 파이프라인 추상화: optimum-neuron 파이프라인 API로 모델 로드, 토큰화, 생성을 단순화하여 3줄의 코드로 구현 가능
- 두 가지 최적화 모델 변형 배포: latency 최적화 모델(L)과 throughput 최적화 모델(T)을 inf2.48xlarge에 배포, budget 모델(B)을 inf2.xlarge에 배포
- 지원하는 생성 전략: greedy search, multinomial sampling(top-k, top-p), temperature 파라미터, 대부분의 logits 전처리/필터(repetition penalty 포함) 지원
Impact
- Llama2 7B 레이턴시(새로운 토큰 생성): latency 최적화 모델에서 256개 토큰 기준 약 4.4ms, throughput 최적화 모델에서 약 1.3ms
- Llama2 7B 처리량(새로운 토큰 생성): latency 모델에서 256개 토큰 생성 시 227 tokens/sec, throughput 모델에서 750 tokens/sec
- Llama2 13B 처리량(새로운 토큰 생성): latency 모델에서 256개 토큰 생성 시 145 tokens/sec, throughput 모델에서 504 tokens/sec
- 예산 최적화 모델(inf2.xlarge): 256개 토큰 기준 32 tokens/sec 처리량으로 평균 독자 읽기 속도(초당 5단어) 대비 충분한 스트리밍 성능 제공
Key Takeaway
정적 형태 컴파일과 혼합 정밀도(fp16) 사용을 통해 전문화된 추론 가속기에 LLM을 최적화하면 GPU 대비 비용 효율적인 실시간 배포가 가능하다. 배치 크기 및 인스턴스 선택에 따라 레이턴시와 처리량 간의 명확한 트레이드오프 전략을 구현할 수 있다.
실천 포인트
LLM 기반 챗봇이나 스트리밍 텍스트 생성 서비스를 구축할 때 optimum-neuron을 통해 모델을 Neuron 포맷으로 사전 컴파일하고 inf2.48xlarge 인스턴스에 배포하면, GPU 기반 배포 대비 토큰당 지연시간을 수밀리초 단위로 단축하고 초당 처리량을 200~700 토큰 범위에서 확보할 수 있다. 동시 사용자가 적거나 지연시간이 덜 민감한 경우 inf2.xlarge의 budget 모델로 인프라 비용을 추가 절감할 수 있다.