본문으로 이동
LLM 쉽고 빠르게 서빙하기
문서

LLM 쉽고 빠르게 서빙하기

김민규 · 토스 · 토스 기술 블로그

원본 보기

소개

구슬이 서 말이어도 꿰어야 보배라는 말처럼 좋은 LLM을 학습시키는 것도 중요하지만, 이걸 서비스에 적용하지 못하면 큰 의미가 없습니다. 하지만, 어느정도의 성능 이상을 지원하는 LLM을 서비스에 적용하는 것은 크게 두 가지의 어려움을 가지고 있습니다.

AI 핵심 요약

토스증권은 자체 학습한 LLM을 서비스에 적용하는 과정에서 느린 추론 속도와 복잡한 배포 절차라는 두 문제를 해결하고자 했습니다. 추론 프레임워크를 TPS, TTFT, 사용성, 모델 지원 범위로 비교해 vLLM을 선택하고, Triton Inference Server의 batching 기능과 vLLM 백엔드를 활용했습니다. 또 공통 Docker 이미지에 모델 경로와 설정을 분리하고 KServe를 도입해, 모델러가 YAML 파일로 모델과 GPU 설정을 지정해 배포하도록 바꿨습니다. 그 결과 Grafana에서 TPS와 latency를 확인하는 운영 환경까지 갖춰 새 모델을 쉽게 서빙하고 벤치마크할 수 있게 됐습니다.

  • 생성 속도 비교에는 요청 수보다 Token per Second(TPS)와 첫 토큰 지연 시간(TTFT)을 함께 활용하세요.
  • 서빙 프레임워크는 성능뿐 아니라 사용 편의성과 지원하는 모델 아키텍처를 기준으로 비교해야 합니다.
  • KV cache는 이전 토큰의 attention 계산을 재사용해 추론 중복을 줄이며, paged KV cache와 kernel fusion도 성능·메모리 최적화에 활용됩니다.
  • 공통 Docker 이미지와 모델별 설정 분리는 여러 모델을 배포할 때 이미지 빌드와 운영 부담을 줄이는 방법입니다.
  • KServe의 InferenceService YAML로 배포를 단순화하더라도, TPS와 latency를 모니터링하고 알림을 설정해 운영 상태를 확인해야 합니다.