10P by darjeeling 19시간전 | ★ favorite | 댓글 1개

상세내용은 url 링크를 참조하세요. 요약본입니다.

LLM(대규모 언어 모델) 서빙의 핵심 과제는 KV 캐시(Key-Value Cache) 메모리를 효율적으로 관리하는 것입니다. 기존 시스템들은 메모리 단편화(fragmentation) 문제로 인해 GPU 활용률이 저하되고 처리량이 제한되는 한계를 가지고 있었습니다.

vLLM은 운영체제의 가상 메모리페이징(Paging) 기법에서 영감을 얻은 PagedAttention 알고리즘을 통해 이 문제를 해결합니다. PagedAttention은 KV 캐시를 물리적으로 연속되지 않은 '블록' 단위로 분할하여 관리함으로써, 메모리 낭비를 획기적으로 줄이고 유연한 메모리 할당을 가능하게 합니다.

이러한 PagedAttention을 기반으로 vLLM은 다음과 같은 핵심 기술을 구현하여 추론 성능을 극대화합니다.

  • 지속적 배치 (Continuous Batching): 요청이 도착하는 즉시 배치에 추가하고, 완료된 시퀀스는 배치에서 제거하는 동적인 방식으로 작동합니다. 이를 통해 GPU의 유휴 시간을 최소화하고, 기존의 정적 배치 방식 대비 처리량을 최대 24배까지 향상시킵니다.

  • 고급 추론 기능 지원: vLLM은 PagedAttention의 유연성을 활용하여 다음과 같은 다양한 고급 기능을 효율적으로 지원합니다.

    • 청크 단위 프리필 (Chunked Prefill): 긴 프롬프트의 프리필 단계를 여러 청크로 분할하여 단일 요청이 시스템을 독점하는 것을 방지하고 다른 요청의 지연 시간을 개선합니다.
    • 접두사 캐싱 (Prefix Caching): 여러 요청에 걸쳐 공유되는 프롬프트의 접두사(prefix)에 대한 KV 캐시를 재계산 없이 공유하여 중복 연산을 제거합니다.
    • 유도 및 추측 디코딩 (Guided and Speculative Decoding): 특정 형식(예: JSON)을 따르도록 출력을 제어하거나, 더 작은 초안 모델을 사용하여 생성을 가속화하는 기술을 지원합니다.
    • 프리필/디코딩 분리 (Disaggregated Prefill/Decoding): 연산 집약적인 프리필 단계와 메모리 대역폭 집약적인 디코딩 단계를 별도의 인스턴스에서 처리하여 리소스 활용을 최적화합니다.

결론적으로, vLLM은 PagedAttention을 통해 KV 캐시 관리의 근본적인 비효율을 해결하고, 이를 바탕으로 지속적 배치와 같은 최적화 기법을 적용하여 LLM 추론 시스템의 처리량과 성능을 끌어올렸습니다.

PagedAttention의 메모리 관리 한계를 보완하기 위해 vAttention이 제안되었습니다.
관련 논문은 여기에서 확인할 수 있습니다: https://arxiv.org/pdf/2405.04437