추론 과정에서 GPU 메모리의 대부분을 차지하는 KV 캐시를 어떻게 관리하느냐가 서비스 성능에 큰 영향을 미치게 되는데, 이전 시스템들은 모델이 지원하는 최대 컨텍스트 길이를 기준으로 각 리퀘스트별로 메모리를 할당하는 "naive"한 방법을 사용했습니다. 하지만 이렇게 하면 모든 리퀘스트가 항상 모델의 최대 컨텍스트 길이만큼 디코드를 하는 것은 아니므로 메모리 낭비가 심하고, 낭비되는 메모리만큼 서비스를 더 할 수 없게 됩니다.Inference Engine의 (거의) 표준이 되가고 있는 vLLM은 OS 기반 가상 메모리 시스템의 demand-paging 방식에서 영감을 받아, 할당된 블록이 모두 사용되었으면, 필요에 따라 작은 GPU 메모리 블록을 할당하는 PagedAttention 방식을 제안했습니다...