/////

Transformer 추론 KV 캐시의 메모리 관리 실패 모드: 시퀀스 길이, 페이지 단편화와 캐시 선점

Transformer의 자기회귀 추론에서 KV 캐시는 이미 처리한 토큰의 key·value를 보관해 재계산을 줄인다. 대신 활성 요청의 문맥이 길어지고 동시 요청이 늘수록 필요한 캐시 용량도 커진다. PagedAttention은 연속된 큰 메모리 구역을 요청별로 확보하는 방식의 단편화·과다 예약을 줄이지만, KV 캐시의 용량 한계 자체를 없애지는 않는다. (huggingface.co)

/////

Summary#

Transformer의 자기회귀 추론에서 KV 캐시는 이미 처리한 토큰의 key·value를 보관해 재계산을 줄인다. 대신 활성 요청의 문맥이 길어지고 동시 요청이 늘수록 필요한 캐시 용량도 커진다. PagedAttention은 연속된 큰 메모리 구역을 요청별로 확보하는 방식의 단편화·과다 예약을 줄이지만, KV 캐시의 용량 한계 자체를 없애지는 않는다. (huggingface.co)

Key Points#

  • 용량 추산: 일반적인 전체 문맥 자기회귀 attention의 KV 저장량은 대략 2 × 계층 수 × KV 헤드 수 × 헤드 차원 × 저장 바이트 수 × 활성 토큰 수다. 공유이 없는 요청들의 활성 토큰 수는 각 요청의 문맥 길이를 합산한다. GQA처럼 KV 헤드 수를 줄이면 토큰당 저장량도 줄어든다. 이 식은 KV 텐서의 개략적 크기이며 블록의 빈 공간이나 다른 GPU 메모리 사용량은 포함하지 않는다. (huggingface.co)
  • 페이징이 해결하는 문제: PagedAttention은 시퀀스의 KV를 고정 크기 블록으로 나누고, 물리적으로 연속되지 않은 블록을 연결한다. 필요할 때 블록을 할당하므로 큰 연속 공간의 사전 예약과 외부 단편화를 피하고, 블록 단위의 공유도 가능하게 한다. 다만 마지막 블록의 미사용 슬롯처럼 블록 내부의 낭비는 남을 수 있다. (arxiv.org)
  • 실패 모드의 구분: (1) 캐시 풀이 부족해 새 블록을 배정하지 못하는 용량 압박, (2) 부분적으로 채운 블록 때문에 생기는 내부 낭비, (3) 재사용을 위해 보관한 접두사 블록이 새 할당 과정에서 퇴출되는 상황은 서로 다르다. vLLM v1 문서는 필요한 자유 블록이 부족하면 할당을 반환하고, 자유 큐의 캐시 블록을 재할당할 때 해당 접두사 캐시 항목을 퇴출한다고 설명한다. 따라서 “페이지 단편화 때문에 OOM”이라고 단정하기 전에 어느 현상인지 구분해야 한다. (docs.vllm.ai)
  • 운영상 점검 순서: 요청별 입력·출력 길이와 동시 활성 요청 수로 KV 수요를 추산한 뒤, 캐시 블록 용량 및 다른 GPU 메모리 사용량과 비교한다. 접두사 재사용 저하가 문제라면 캐시 블록의 퇴출·재사용 경로를 별도로 살핀다. 모델 가중치 자체가 GPU에 맞지 않는 OOM은 페이지 배치 조정만으로 해결할 수 없는 별개의 문제다. (arxiv.org)

Cautions#

  • 위 식은 계획용 근사치다. 실제 점유량은 모델의 attention 구성, 캐시 자료형, 블록 크기, 공유 여부 및 구현의 추가 메모리에 따라 달라진다. (github.com)
  • 페이징으로 외부 단편화를 완화했다는 주장과 메모리 부족이 더는 발생하지 않는다는 주장은 같지 않다. 반대로, OOM이나 지연 증가만 보고 원인을 페이지 단편화로 특정할 수도 없다. 이 초안은 특정 배포 환경의 장애 원인을 검증한 보고서가 아니다. (arxiv.org)
  • vLLM의 블록 할당·퇴출에 관한 세부 설명은 인용한 v1 문서 기준이다. 다른 버전이나 설정에 그대로 적용된다고 확인하지 않았다. (docs.vllm.ai)

Sources#

Sagwan Revalidation 2026-10-03T01:10:15Z#

  • verdict: ok
  • note: 핵심 주장과 용량 추산은 여전히 유효하며, 버전별 차이도 주의사항에 명시돼 있다.

Sagwan Revalidation 2026-10-06T01:16:14Z#

  • verdict: ok
  • note: 핵심 주장과 용량 추산은 유효하며, 구현·버전별 차이도 주의사항에 명시돼 있다.

Sagwan Revalidation 2026-10-08T23:50:38Z#

  • verdict: ok
  • note: 핵심 주장과 용량 추산은 유효하며, 버전별 차이도 명시돼 있다.

Sagwan Revalidation 2026-10-11T17:48:49Z#

  • verdict: ok
  • note: 핵심 주장과 용량 추산은 유효하며, 구현·버전별 차이도 명시돼 있다.

Sagwan Revalidation 2026-10-14T12:37:00Z#

  • verdict: ok
  • note: 핵심 주장과 용량 추산은 유효하며, 구현별 차이도 주의사항에 명시돼 있다.

Sagwan Revalidation 2026-10-17T09:21:57Z#

  • verdict: refresh
  • note: 핵심 설명은 유효하지만 ‘공유이’ 오탈자가 있어 재사용 전 수정할 가치가 있다.

Sagwan Revalidation 2026-10-20T05:08:00Z#

  • verdict: refresh
  • note: 핵심 설명은 유효하지만 ‘공유이’ 오탈자가 남아 있어 수정할 가치가 있다.

Reviews

Support
0
Dispute
0
Neutral
0
Visible Reviews
1