← 최신 논문
💬 NLP

TokenButler: Token Importance is Predictable

TokenButler 는 마스킹된 인과적 어텐션 분포를 증류하여 KV 캐시 관리를 위한 중요한 토큰을 동적으로 식별하는 경량의 쿼리 인식 예측기로, 토큰을 영구적으로 제거하지 않으면서 오라클 수준의 검색 정확도와 상당한 지연 시간 감소를 달성합니다.

원저자: Yash Akhauri, Ahmed F AbouElhamayed, Yifei Gao, Chi-Chih Chang, Sameh Gobriel, Nilesh Jain, Mohamed S. Abdelfattah

게시일 2026-05-18
📖 3 분 읽기☕ 가벼운 읽기

원저자: Yash Akhauri, Ahmed F AbouElhamayed, Yifei Gao, Chi-Chih Chang, Sameh Gobriel, Nilesh Jain, Mohamed S. Abdelfattah

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

상상해 보세요. 당신은 매우 똑똑하지만 약간 건망증이 있는 사서와 대화를 나누려고 합니다. 이 사서 (AI) 는 방대한 도서관의 책들 (학습 데이터) 을 읽었고, 이제 방금 건네받은 매우 긴 이야기 (컨텍스트) 를 바탕으로 당신의 질문에 답하려고 노력하고 있습니다.

문제는 이야기가 너무 길다는 점입니다. 때로는 수십만 단어가 될 수도 있어서 사서의 책상 (컴퓨터의 메모리) 이 완전히 어지러워집니다. 따라가기 위해 사서는 지금까지 읽은 모든 단어를 계속 목록으로 남겨둡니다 (이를 KV-Cache라고 합니다). 이야기가 길어질수록 이 목록은 책상에 들어갈 만큼 너무 커져서 모든 것을 느리게 만듭니다.

구식 방법: 버리거나 묶기

이를 해결하기 위해 이전 방법들은 두 가지 주요 시도를 했지만, 둘 다 결함이 있었습니다:

  1. "쓰레기통" 방법: 일부 사서들은 책상이 가득 차면 목록에서 오래된 단어를 그냥 버리기로 결정했습니다.
    • 결함: 이야기 시작 부분에서 "지라멜그로브"라는 이름의 캐릭터가 언급되었다고 가정해 보세요. 사서는 그 순간에는 중요하지 않아 보인다고 생각하여 그 이름을 버립니다. 하지만 50 페이지가 지나서 "지라멜그로브는 누구인가요?"라고 물으면, 사서는 그 이름을 쓰레기에 버렸기 때문에 그 이름이 누구인지 전혀 모릅니다.
  2. "상자" 방법: 다른 사서들은 모든 단어를 보관하되 큰 상자 (페이지) 로 정리했습니다. 무언가를 찾아야 할 때 전체 상자를 꺼냈습니다.
    • 결함: 중요한 단어 "지라멜그로브"가 두 개의 상자 사이에 딱 잘려 있다면, 사서는 전체 상자를 보고 있기 때문에 잘못된 상자를 집거나 단어 자체를 완전히 놓칠 수 있습니다.

새로운 해결책: 토큰버틀러 (TokenButler)

이 논문은 토큰버틀러를 소개합니다. 이는 아무것도 영구히 버리지 않고 책상에 어떤 단어를 남겨둘지 결정하는 데 도움을 주는 똑똑한 조수입니다.

토큰버틀러를 사서 옆에 서 있는 고도로 훈련된 **스포트 (spotter)**로 생각하세요.

  • 작동 방식: 사서가 어떤 단어가 중요한지 추측하는 대신, 토큰버틀러는 당신의 현재 질문 (쿼리) 을 보고 긴 이야기 중 어떤 특정 단어가 그 질문에 답하는 데 필요한지 정확히 예측합니다.
  • 마법 같은 트릭: 이를 알기 위해 전체 이야기를 다시 읽을 필요는 없습니다. 학습 중에 패턴을 파악하도록 훈련된 작은 "요약 노트" (소규모 예측 모델) 를 사용합니다. 1 만 단어 전에 언급된 특정 장소에 대해 질문하면, 10 초 전에는 지루해 보였더라도 그 장소가 갑자기 우주에서 가장 중요한 것이 된다는 것을 알고 있습니다.

왜 더 나은가

이 논문은 단어와 함께 "숨바꼭질" 게임을 통해 이를 테스트했습니다.

  • 테스트: 이야기 초반에 비밀 장소 이름을 숨긴 후, 수학 문제와 요리 팁으로 독자를 오랫동안 혼란스럽게 만든 다음, 마침내 "그 장소는 어디인가요?"라고 묻습니다.
  • 결과: "쓰레기통"과 "상자" 방법은 장소 이름을 버리거나 올바른 상자에서 찾지 못해 종종 실패했습니다. 반면 토큰버틀러는 거의 매번 장소 이름을 준비해 두고 찾아냈으며, 완벽한 예측자인 "오라클"처럼 행동했습니다.

속도와 효율성

스포터를 추가하면 사서의 속도가 느려질 것이라고 생각할 수 있습니다. 논문은 토큰버틀러가 이를 피하는 두 가지 영리한 방법을 보여줍니다:

  1. "배치" 트릭: 사서가 매번 단어가 쓰일 때마다 스포터에게 목록을 확인하게 하는 대신, 몇 단어가 쓰일 때마다 확인하게 합니다. 스포터는 "이 단어들을 보관하세요"라고 말하고, 사서는 다음 몇 단계 동안 그 단어들을 보관합니다. 이렇게 하면 과정이 훨씬 빨라집니다.
  2. "이웃" 트릭: 스포터는 중요한 정보가 종종 군집 (완전한 이름이나 문장 등) 으로 나타난다는 것을 알고 있습니다. 따라서 스포터가 특정 단어를 선택하면, 혹시 모를 상황에 대비해 바로 옆에 있는 단어들도 함께 가져옵니다. 이렇게 하면 중요도가 약간 변하더라도 무엇을 놓치지 않도록 보장합니다.

결론

토큰버틀러는 컴퓨터가 메모리가 부족해지거나 속도가 느려지지 않고 거대한 이야기 (최대 100 만 단어) 를 읽고 이해할 수 있게 합니다. 이는 현재 질문에 어떤 단어가 중요한지 정확히 예측하여 학습함으로써 메모리를 깨끗하고 빠르게 유지하면서도 중요한 세부 사항이 실수로 버려지지 않도록 보장합니다.

테스트에서 이 방법은 그래픽 카드에서 실행될 때 컴퓨터를 1.6 배 더 빠르게 만들었고, 컴퓨터가 메인 프로세서에서 추가 메모리를 빌려야 할 때는 7.6 배 더 빠르게 만들었습니다. 이는 책상에 모든 단어를 보관했을 때와 마찬가지로 정확도를 유지하면서 달성된 결과입니다.

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

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

Digest 사용해 보기 →