← 최신 논문
💬 NLP

MiniPIC: Flexible Position-Independent Caching in <100LOC

MiniPIC은 회전되지 않은 K 벡터를 저장하고 어텐션 과정에서 요청별 위치 인코딩을 적용함으로써 반복되는 구조화된 입력에 대해 효율적인 위치 독립적 캐싱을 가능하게 하여, 100라인 미만의 핵심 엔진 변경만으로도 상당한 처리량 및 지연 시간 개선을 달 achieve하는 최소한의 유연한 vLLM 설계입니다.

원저자: Nathan Ordonez (IBM Research), Thomas Parnell (IBM Research)

게시일 2026-06-12
📖 4 분 읽기☕ 가벼운 읽기

원저자: Nathan Ordonez (IBM Research), Thomas Parnell (IBM Research)

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

당신이 거대한 고속 도서관을 운영하고 있다고 상상해 보세요. 이곳의 사서(AI)는 단 하나의 질문에 답하기 위해 수천 권의 책을 읽어야 합니다. 현대 AI에서 이 "읽기" 단계는 **프리필(prefill)**이라고 불립니다.

보통, 두 사람이 유사한 질문을 하면 사서는 이미 읽었던 책의 일부를 재사용할 수 있습니다. 하지만 현재의 라이브러리 시스템(vLLM 등)은 매우 경직되어 있습니다. 이들은 페이지가 정확히 같은 위치에 있을 때만 그 페이지를 재사용할 수 있습니다. 만약 당신이 10페이지에 있는 단락을 100페이지로 옮긴다면, 라이브러리 시스템은 이를 완전히 새로운 페이지로 취급하여 방금 전에도 읽었음에도 불구하고 처음부터 다시 읽어야 합니다.

MiniPIC은 전체 건물을 새로 짓지 않고도 이 문제를 해결하는 영리하고 작은 업그레이드입니다. 이 시스템이 어떻게 작동하는지 쉬운 비유를 통해 설명하겠습니다.

1. 문제점: "포스트잇"의 딜레마

현재의 AI 시스템에서 읽은 내용의 "기억"(KV 캐시라고 불림)에는 "나는 10페이지이다"라고 적힌 포스트잇이 붙어 있습니다.

  • 충돌: 만약 당신이 그 똑같은 페이지를 다른 요청에서 사용하려는데, 그곳의 위치가 10페이지가 아닌 100페이지라면 시스템은 혼란에 빠집니다. 물리적인 페이지 하나가 서로 다른 사람들을 위해 동시에 "10페이지"이면서 동시에 "100페이지"일 수는 없기 때문입니다.
  • 과거의 해결책: 이전의 솔루션들은 페이지를 복사하고, 위치를 옮기고, 다시 라벨을 붙이려고 시도했습니다. 이는 느리고 공간을 낭비하며 도서관에 교통 체증을 유발합니다.

2. MiniPIC 솔루션: "빈 페이지" 전략

MiniPIC은 두 가지 간단한 방식으로 도서관의 규칙을 바꿉니다.

A. "라벨 없는" 선반 (위치 독립적 캐시)
Mini-PIC은 물리적인 페이지에 "10페이지"라고 적는 대신, 위치에 대한 정보가 없는 빈 페이지 상태로 유지합니다. 페이지에는 오직 단어들만 들어있습니다.

  • 작동 방식: 사서가 페이지를 읽을 때, 그 위치가 어디인지는 그 순간에만 결정합니다. A라는 사람을 위해 읽을 때는 그 페이지가 "10페이지"가 되고, B라는 사람을 위해 읽을 때는 동일한 물리적 페이지가 즉시 "100페이지"가 됩니다.
  • 이점: 페이지를 복사하거나 옮길 필요가 없습니다. 동일한 물리적 메모리 블록이 여러 사람을 위해 서로 다른 위치에서 동시에 역할을 수행할 수 있습니다.

B. "마법의 토큰" (사용자 제어 프리미티브)
사서는 더 이상 페이지를 보는 것만으로 그 위치를 알 수 없으므로, 사용자(또는 관리자)가 시스템에 어떻게 책을 다룰지 알려주는 세 가지 특별한 "마법의 토큰"(특수 단어)을 제공합니다.

  1. 패딩(Padding): "이 책이 선반 경계에 깔끔하게 끝나도록 빈 공간을 채워라."
  2. SSEP (구간 구분자): "이 섹션은 독립적이다. 이 텍크스트 덩어리는 다른 책이나 다른 위치에 있더라도 재사용할 수 있다." (이것은 "반드시 시작점이 일치해야 한다"는 경직된 규칙을 깨뜨립니다.)
  3. PDEP (프롬프트 의존): "이 부분은 이전에 나온 모든 내용에 의존한다. 이것을 재사용하지 말고 새로 읽어라."

이 세 가지 토큰을 사용함으로써, 사용자는 어떤 텍스트가 재사용 가능한 "덩어리"(예: 문서 또는 코드 파일)이고 어떤 것이 고유한 부분인지 시스템에 정확히 알려줄 수 있습니다.

3. "컨베이어 벨트" 스케줄링

이 논문은 작업을 조직하는 더 스마트한 방법도 소개합니다.

  • 과거 방식: 도서관은 모든 사람을 위한 재사용 가능한 덩어리를 다 읽을 때까지 기다렸다가, "정지" 표지판을 세운 뒤에야 실제 질문에 답하기 시작합니다. 이 과정에서 사서는 아무것도 하지 않고 대기하게 됩니다.
  • MiniPIC 방식 (인터리브드 스케줄링): 사서는 현재 사람의 질문에 답하는 동안, 다음 사람을 위한 재사용 가능한 덩량들을 미리 읽기 시작합니다. 이는 마치 요리사가 현재 요리가 익기를 기다리는 동안 다음 요리를 위해 채소를 다듬는 것과 같습니다. 이를 통해 주방(GPU)이 100% 가동되도록 유지합니다.

결과: 빠르고, 작고, 유연함

논문에 따르면, 이러한 변화를 통해 다음과 같은 성과를 달了습니다.

  • 속도: 표준 시스템과 비교했을 때 데이터를 읽고 준비하는 속도(프리필 처리량)가 49% 증가했습니다.
  • 즉각적인 접근: 캐시된 문서를 사용할 때, 첫 번째 답변을 얻기까지 걸리는 시간이 최대 100배(2 orders of magnitude) 단축되었습니다.
  • 작은 규모: 전체 시스템을 수정하는 데 핵심 엔진의 코드 단 78줄(및 커스텀 "어텐션" 도구)만 변경하면 되었습니다. 이는 엔진 전체를 재건축하는 대신 아주 작은 스파크 플러그 두 개를 교체하여 자동차 엔진을 수리하는 것과 같습니다.
  • 성능 저하 없음: 시스템이 이러한 기술을 사용하지 않을 때 발생하는 속도 저하는 약 **5.7%**에 불과하며, 이는 거의 체감되지 않는 수준입니다.

요 요약

MiniPIC은 프롬프트 내 어디에 나타나든 텍스트 덩어리를 재사용할 수 있게 해주는 가볍고 유연한 업그레이드입니다. 이는 메모리에서 "위치 라벨"을 제거하고, 사용자가 간단한 특수 단어로 재사용 가능한 부분을 표시하게 함으로써 실현됩니다. 이를 통해 복잡하고 느린 복사 작업을 제거하고, 특히 긴 문서나 반복되는 정보를 다룰 때 AI가 훨씬 더 빠르게 작동할 수 있도록 합니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →