16장. vLLM 서빙 벤치마킹과 RAG 최적화
먼저 큰 그림부터
점심시간의 식당 주방을 떠올려 봅니다. 주문이 몰리면 먼저 주문부터 첫 접시가 나가기까지 얼마나 걸리는지 재고, 같은 메뉴는 한 번에 여러 접시를 굽고, 어느 칸에서 줄이 밀리는지 찾고, 자주 나가는 메뉴는 미리 해 둡니다. LLM 서비스를 빠르게 하는 일이 이와 같습니다. 시간을 바르게 재고, 요청을 묶어 처리하고, 병목을 찾아, 같은 일을 다시 하지 않게 합니다.
이 장에서는 세 가지를 챙겨 갑니다. 첫째, LLM 서버의 성능을 재는 지표(첫 토큰까지의 시간, 토큰 사이 시간, 처리량, p95 지연)와 바르게 재는 법입니다. 둘째, vLLM 같은 서빙 엔진이 빠른 까닭인 KV 캐시 관리(PagedAttention)와 연속 배치입니다. 셋째, RAG 파이프라인을 단계마다 재어 병목을 찾고 캐시와 컨텍스트 줄이기로 응답 시간을 줄이는 법입니다. vLLM 은 Windows 에서 바로 돌지 않아 이 PC 에서 실행하지 않았고, 같은 원리를 Ollama 와 transformers 로 실제로 재어 봅니다.