페이지드어텐션: LLM 비용 해결사

Share

GPT, PaLM 비용 문제 해결! ‘페이지드어텐션(PagedAttention)’ 기술 심층 분석

GPT, PaLM과 같은 거대 언어 모델(LLM)은 우리 삶과 업무 방식을 혁신하고 있습니다. 하지만 이러한 강력한 모델을 운영하는 데에는 엄청난 비용이 발생하며, 특히 클라우드 환경에서는 더욱 부담이 커집니다. LLM 제공 과정에서 발생하는 비효율적인 메모리 관리가 주요 원인입니다. 이러한 문제점을 해결하기 위해 등장한 혁신적인 기술이 바로 ‘페이지드어텐션(PagedAttention)’입니다.

LLM 비용 폭탄의 주범, KV 캐시

LLM의 핵심인 트랜스포머 모델은 텍스트를 생성할 때 이전 토큰의 맥락을 기억해야 합니다. 이 정보는 키-밸류(Key-Value, KV) 캐시에 저장되는데, 이 KV 캐시의 크기가 매우 크고 동적으로 변합니다. 기존 시스템은 KV 캐시를 연속된 단일 메모리 블록에 저장하는 방식을 사용하며, 이로 인해 메모리 단편화와 공유 불가 문제가 발생합니다.

메모리 단편화: 낭비되는 자원

메모리 단편화는 두 가지 형태로 나타납니다. 첫째, 내부 단편화는 시스템이 각 요청에 대해 최대 출력 길이를 가정하고 큰 메모리 블록을 미리 할당하지만, 실제로는 짧은 출력이 생성되는 경우가 많아 메모리 낭비가 발생합니다. 둘째, 외부 단편화는 요청마다 필요한 메모리 블록 크기가 달라 GPU 메모리가 잘게 쪼개져 활용할 수 없는 공간이 생기는 현상입니다. 이러한 단편화로 인해 KV 캐시 메모리의 실제 활용률은 매우 낮아집니다.

메모리 공유 불가: 비효율적인 병렬 처리

병렬 샘플링이나 빔 서치와 같은 고급 디코딩 기법은 하나의 프롬프트에서 여러 출력을 동시에 생성합니다. 이 경우 KV 캐시의 일부를 공유할 수 있지만, 기존 시스템에서는 각 시퀀스의 KV 캐시가 독립된 메모리 블록에 저장되어 공유가 불가능합니다. 이는 시스템의 처리량을 제한하는 요인으로 작용합니다.

페이지드어텐션: OS의 페이징 기법에서 영감을 얻다

페이지드어텐션은 운영체제(OS)의 가상 메모리 및 페이징 기법에서 영감을 얻어 개발되었습니다. 이 기술은 KV 캐시를 작고 고정된 크기의 KV 블록으로 나누어 관리합니다. 각 블록은 일정 개수의 토큰에 대한 키와 값을 저장하며, 요청에 따라 블록을 동적으로 할당합니다. 이를 통해 메모리 단편화 문제를 해결하고 메모리 활용률을 극대화합니다.

페이지드어텐션의 핵심 이점

페이지드어텐션은 다음과 같은 이점을 제공합니다.
* **거의 제로에 가까운 단편화:** KV 블록이 물리적 메모리에서 연속적으로 배치될 필요가 없으므로 메모리 낭비를 최소화합니다.
* **유연한 메모리 공유:** 서로 다른 시퀀스 간, 심지어 다른 요청 간에도 KV 블록을 공유하여 메모리 효율성을 높입니다.
* **카피 온 라이트 메커니즘:** 수정이 필요한 블록에 대해서는 불필요한 중복 없이 효율적으로 공유할 수 있습니다.

vLLM: 페이지드어텐션 기반 고처리량 엔진

페이지드어텐션을 기반으로 구축된 vLLM은 고처리량을 목표로 설계된 LLM 서빙 시스템입니다. vLLM은 블록 단위 메모리 관리와 정교한 스케줄러를 활용하여 KV 캐시 메모리 낭비를 최소화하고 요청 내·요청 간 KV 캐시 공유를 유연하게 지원합니다. vLLM은 기존 시스템 대비 2~4배 높은 처리량을 제공하면서도 지연 시간을 늘리지 않습니다.

LLM 시대를 위한 혁신적인 기술, 페이지드어텐션

페이지드어텐션은 LLM 서빙의 효율성을 획기적으로 끌어올려 클라우드 서비스 비용을 절감하고 사용자에게 더 빠르고 즉각 반응하는 LLM 애플리케이션을 제공하는 데 기여합니다. 이는 LLM 기반 서비스의 발전을 가속화하는 핵심 동력입니다.

이것도 좋아하실 수 있습니다...