피드로 돌아가기
Hugging Face BlogBackend
원문 읽기
TNG가 LLM 추론 엔진에 청크 프리필 기법을 도입해 총 토큰 처리량을 50% 증가시킨 사례
Prefill and Decode for Concurrent Requests - Optimizing LLM Performance
AI 요약
Context
여러 사용자의 요청을 병렬로 처리할 때 GPU 리소스 활용도가 낮아지는 문제가 발생했습니다. 프리필 단계는 계산 집약적이지만 디코드 단계는 메모리 대역폭에 제한되어, 두 작업을 순차적으로 실행하면 GPU의 일부 리소스가 낭비되었습니다.
Technical Solution
- 프리필 단계를 청크 단위로 분할: 512~8192 토큰 크기의 청크로 프리필을 여러 단계로 나누어 실행
- 프리필 청크와 다른 요청의 디코드 병렬 처리: 각 프리필 청크 완료 후 다른 요청의 디코드 스텝 1개를 동시에 실행
- 청크 크기를 튜닝 파라미터로 제공: 첫 토큰까지의 레이턴시와 초당 토큰 처리량 간 트레이드오프 조정 가능
- vLLM 기본 설정 512에서 더 높은 값으로 업데이트: 초기 구현 후 성능 개선을 위해 청크 크기 증대
- TNG의 모든 자체 호스팅 LLM 배포에 기본 활성화: 표준 vLLM 배포 환경에서 기본 전략으로 채택
Impact
청크 프리필 적용 후 표준 vLLM 배포에서 총 토큰 처리량이 50% 증가했습니다.
Key Takeaway
계산 집약적 작업(프리필)과 메모리 대역폭 제한 작업(디코드)을 동시에 실행하면 전체 GPU 리소스 활용도를 높일 수 있으며, 청크 단위의 작은 단위 분할이 높은 병렬성과 리소스 효율을 동시에 달성하는 효과적인 패턴입니다.
실천 포인트
대규모 LLM을 여러 사용자 요청으로 서빙하는 환경에서 청크 프리필 전략을 도입하면, 프리필과 디코드 단계의 리소스 특성 차이를 활용해 전체 토큰 처리량을 30~50% 증가시킬 수 있습니다. 청크 크기(512~8192 토큰)를 조정하여 첫 토큰 레이턴시와 처리량 간의 우선순위를 동적으로 조절할 수 있습니다.