위키득계정 ↗
기술

PagedAttention

PagedAttention기술
대상
키·값 캐시
관리 단위
고정 크기 블록
관련 시스템
vLLM
주요 목적
서비스 추론의 메모리 효율
PagedAttention은 언어 모형의 키·값 캐시를 고정 크기 블록으로 관리하는 주의 계산 방식이다. 가상 메모리의 페이징 관점을 활용해 요청마다 달라지는 캐시의 낭비와 중복을 줄인다.

늘어나는 캐시의 관리

자동회귀 생성에서는 과거 토큰의 키와 값을 저장하고 새 토큰이 생길 때 캐시가 늘어난다. 요청별로 큰 연속 공간을 미리 예약하면 쓰지 않는 공간과 단편화가 생길 수 있다. PagedAttention은 논리적인 토큰 순서와 물리 블록의 위치를 분리한다.

블록 할당의 독립 예제

블록 하나에 토큰 네 개를 저장한다고 하자. 길이 10인 요청은 세 블록이 필요해 12개 토큰 공간을 차지하고 마지막 두 칸이 남는다. 이는 고정 블록 관리에도 마지막 블록의 여유 공간은 생길 수 있음을 보여 준다. 실제 시스템의 블록 크기를 지정한 예는 아니다.

공유와 논리 순서

물리적으로 인접하지 않은 블록도 논리 순서에 맞춰 참조할 수 있다. 공통 부분의 키·값 캐시를 공유하는 방식은 중복 저장을 줄일 수 있다. 공유 가능한 내용과 변경 시 복사 정책은 올바른 결과를 유지하도록 관리해야 한다.

효율의 범위

캐시 할당과 접근을 개선하는 것이 모든 과거 토큰의 주의 계산을 없애는 것은 아니다. 메모리를 절약하면 함께 처리할 요청 수를 늘릴 여지가 생긴다. 실제 처리량과 지연시간은 요청 길이 분포와 배치, 모형 및 장치 조건을 함께 맞춰 평가한다.

관련 문서

그룹 질의 주의 / FlashAttention / FlashAttention-2 / 자기 주의 / 가상 메모리 / 언어 모형