← 최신 논문
💬 NLP

Pruned BPE: Post-training Visibility Pruning and Token Reallocation for Byte Pair Encoding

이 논문은 노출 빈도가 낮은 중간 병합 토큰을 모델의 어휘 집합에서 숨기고 해당 슬롯을 더 빈번하게 등장하는 후보들에게 재할당함으로써, 모델이 인지하는 어휘 크기를 늘리지 않으면서도 인코딩된 시퀀스 길이를 줄여 토큰화 효율성을 개선하는 사후 학습 방법인 Pruned BPE를 소개한다.

원저자: Kenny Shao

게시일 2026-08-04
📖 6 분 읽기🧠 심층 분석

원저자: Kenny Shao

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

당신이 로봇에게 글을 읽는 법을 가르치고 있다고 상상해 보세요. 이를 위해 세상의 모든 단어가 담긴 사전을 줄 수는 없습니다. 그것은 로봇의 뇌에 너무 무거울 테니까요. 대신, 당신은 아주 영리한 기술을 가르칩니다. 단어를 더 작고 재사용 가능한 덩어리, 마치 레고 블록처럼 쪼개는 것이죠. 만약 로봇이 "unbelievable"이라는 단어를 본다면, 이 전체 단어를 위한 특별한 블록을 가질 필요가 없습니다. 그저 "un", "believe", "able"을 조립하기만 하면 됩니다. 이것이 현대 AI가 세상을 읽는 방식입니다. 텍스트를 "토큰(token)"이라고 불리는 아주 작은 조각들로 잘게 나누는 것이죠.

어떤 레고 블록을 남길지 결정하는 가장 인기 있는 방법은 **Byte Pair Encoding (BPE)**라고 불리는 방식입니다. BPE를 매우 엄격하고 반복적인 선생님이라고 생각해보세요. 이 선생님은 방대한 양의 텍스트를 살펴보고, 두 조각이 가장 자주 나란히 나타나는 것을 찾아내어, 그것들을 하나로 붙여 더 큰 새로운 블록을 만듭니다. 이 과정을 반복하면서, 단일 철자부터 전체 단어에 이르기까지 다양한 크기의 블록 라이브러리를 구축합니다. 문제는 이 선생님이 약간 수집벽이 있다는 점입니다. 선생님은 더 큰 조각을 만들기 위해서만 유용한 조각들을 서로 붙여버리는데, 정작 이 조각들은 최종적인 이야기 속에서는 단독으로 전혀 등장하지 않습니다. 이는 마치 성의 탑을 쌓기 위해서만 사용되는 특수 레고 블록은 있지만, 정작 완성된 모델에는 그 탑이 결코 세워지지 않는 것과 같습니다. 로봇은 여전히 이 쓸모없는 블록을 배낭에 넣고 다녀야 하며, 이는 더 흥식한 것을 담을 수 있는 공간을 차지하게 됩니다.

**"Pruned BPE"**라는 제목의 이 논문은 다음과 같은 단순한 질문을 던집니다. "선생님이 라이브러리 구축을 마친 후에, 로봇의 배낭을 정리할 수 있다면 어떨까?" Kenny Shao가 이끄는 저자진은, 만들어진 모든 블록을 살펴보고, 최종 텍스트에서 드물게 나타나는 블록을 식별하여, 그것들을 더 유용하고 좋은 블로로 교체하는 방법을 제안합니다. 그들은 배낭의 크기를 줄이는 것이 아니라, 모든 슬롯이 로봇이 실제로 필요로 하는 것으로 채워지도록 내용을 재배치하는 것입니다.

문제점: "유령(Ghost)" 블록들

이 해결책을 이해하려면 먼저 무엇이 엉망인지 알아야 합니다. 표준 BPE 선생님이 작동할 때, 선생님은 계층 구조를 만듭니다. 예를 들어, "en"과 "viron"을 붙여 "environ"을 만들고, 다시 "environ"과 "ment"를 붙여 "environment"를 만들 수 있습니다. 표준 시스템에서는 이 과정 중에 생성된 모든 블록이 로봇의 최종 어휘 목록에 자리를 잡습니다.

하지만 여기 함정이 있습니다. "environ"이라는 블록은 "environment"를 만드는 데는 환상적인 조력자가 될 수 있지만, 실제 문장에서는 단독으로 거의 나타나지 않습니다. 이것이 바로 "유령" 블록입니다. 이 블록은 로봇의 메모리에 존재하며 귀중한 슬롯을 차지하지만, 로봇이 최종 답변으로 사용하는 일은 거의 없습니다. 이는 특정 장난감을 만들 때 일 년에 한 번 정도만 사용하는 특수 드라이버를 주머니에 넣고 다니느라, 망치나 렌치를 넣을 공간이 없는 것과 같습니다.

저자는 이러한 유령 블록들이 공간을 낭비하고 있다고 주장합니다. 이 블록들은 드물게 사용되기 때문에 로봇이 충분한 연습을 할 수 없고, 결과적으로 이에 대한 이해도가 낮아집니다. 반면, 로봇이 자주 보게 되는 다른 유용한 단어 파편들이 있지만, 모든 슬롯이 이 쓸고 없는 유령들에게 점령당해 있어 자리를 잡지 못하는 경우가 발생합니다.

해결책: 거대한 배낭 교체 작업

이 논문은 사후 처리 클린업 팀 역할을 하는 두 단계의 과정인 Pruned BPE를 소개합니다.

1단계: 표준 구축.
먼저, 표준 BPE 선생님이 평소와 똑같이 자신의 일을 하도록 둡니다. 선생님은 목표 크기(예: 10,000개의 블록)에 도달할 때까지 조각들을 계속 붙이며 전체 라이브러리를 구축합니다. 이 시점에서 라이브러리는 가득 차 있지만, 그 안은 앞서 말한 "유령" 블록들로 어지럽혀져 있습니다.

2단계: 가시성 확인.
이제 저자는 최종 라이브러리를 살펴보며 묻습니다. "이 블록이 완성된 텍스트에 실제로 얼마나 자주 나타나는가?" 그들은 모든 블록의 "노출(exposure)" 횟수를 계산합니다. 만약 "environ" 같은 블록이 아주 적은 비율로만 나타난다면, 이는 "내부 전용(internal-only)"으로 분류됩니다. 이 블록은 시스템 내부에 숨겨진 조력자로 남아서 더 큰 단어를 만드는 데는 여전히 사용될 수 있지만, 더 이상 로봇이 직접 보게 되는 최종 답변이 될 수는 없습니다.

3단계: 재할당.
이것이 마법 같은 부분입니다. 유령 블록을 "가시적(visible)" 목록에서 쫓아낼 때, 그들은 단순히 빈 구멍을 남겨두지 않습니다. 그들은 다시 학습 데이터로 돌아가서, 로봇이 실제로 유용한 새로운 블록들을 찾도록 계속 가르칩니다. 그들은 충분히 품질 높고 자주 보이는 블록을 찾아낼 때까지 학습을 지속합니다.

따라서 배낭의 크기는 동일하게 유지되지만(예: 10,000 슬롯), 그 내용은 완전히 달라집니다. 쓸모없는 "유령" 블록들이 로봇이 실제로 사용하는 "스타(star)" 블록들로 교체됩니다. 로봇이 단어를 읽을 때, 여전히 구조를 만들기 위해 숨겨진 조력자 블록들을 사용하지만, 로봇의 뇌로 전달되는 최종 토큰 목록에는 가시성이 높은 유용한 것들만 포함됩니다.

연구 결과

저자는 이 아이디어를 영어 중심의 텍스트 뭉치와 중국어 중심의 텍스트 뭉치, 그리고 두 언어가 섞인 텍스트라는 두 가지 다른 데이터셋에서 테스트했습니다. 그들은 배낭의 크기를 동일하게 유지한 채, "Pruned" 방식과 표준적인 "수집형(hoarding)" 방식을 비교했습니다.

결과는 놀라울 정도로 일관적이었습니다. 저가시성 유령들을 고가시성 스타들로 교체함으로써, Pruned BPE 방식은 텍스트를 약간 더 잘 압축할 수 있었습니다.

  • 영어 중심 텍스트의 경우, ("유령" 규칙을 얼마나 엄격하게 적용하느냐에 따라 다르지만) 필요한 토큰 수를 약 0.27%에서 0.36% 줄였습니다.
  • 중국어 중심 텍스트의 경우에도 0.23%에서 0.36% 사이의 유사한 개선 효과를 보였습니다.

이 수치를 체감하기 위해, 저자는 표준 BPE 방식이 이 정도의 압축 효율을 얻으려면 배낭에 약 2,000개의 토큰을 더 추가해야 한다는 점을 언급했습니다. Pruned BPE는 배낭을 더 크게 만들지 않고도 그와 동일한 효율성을 얻어낸 것입니다. 이는 더 큰 여행 가방을 사지 않고도 더 많은 수납 공간을 얻는 것과 같습니다.

또한 그들은 이 개선이 단순히 표준 BPE 선생님이 블록을 배치하는 방식 때문에 생긴 우연이 아님을 확인하기 위해 특별한 테스트를 수행했습니다. 그들은 선생님의 원래 순서를 무시하고 사용 가능한 블록 목록만을 살펴보는 또 다른 매우 똑똑한 "최소 토큰(minimum-token)" 디코더를 사용했습니다. 이 공정하고 중립적인 디코더를 사용했음에도 불구하고, Pruned BPE 목록은 여전히 더 짧고 효율적인 텍스트를 생성했습니다. 이는 개선의 원인이 단순히 배열 방식이 아니라, 더 좋은 블록 목록을 갖는 데 있음을 시사합니다.

"유령"의 예시들

이 "유령" 블록들이 어떤 모습인지 보기 위해, 저자는 몇 가지 구체적인 사례를 살펴보았습니다.

  • 영어: "viron" 같은 파편이 유령일 수 있습니다. 이는 "environment"를 만드는 데는 훌륭하지만, "viron" 단독으로는 거의 나타나지 않습니다.
  • 중국어: "gan" (awkward를 뜻하는 "gan ga"의 일부) 같은 글자가 유령일 수 있습니다. 이는 전체 단어를 만드는 데 필요하지만, 그 자체로는 드물게 사용됩니다.
  • 코드 및 바이트: 어떤 유령들은 훨씬 더 기이합니다. 컴퓨터는 텍스트를 바이트(작은 숫자들)로 읽기 때문에, 어떤 블록들은 글자의 일부분일 뿐입니다. 예를 들어, 중국어 글자 "능력(ability)"을 만들기 위해 특정 바이트 시퀀스가 필요할 수 있지만, 그 바이트 시퀀스 자체는 아무런 의미가 없습니다. 그것은 오직 진짜 것을 만들기 위해 존재하는 유령입니다.

의의 (그리고 한계)

이 논문은 이 연구가 무엇을 하지 않는지도 명확히 밝히고 있습니다. 이 연구가 로봇을 갑자기 시 쓰기나 수학 문제를 푸는 데 더 똑똑하게 만든다는 것을 증명하는 것은 아닙니다. 저자는 오직 텍스트가 얼마나 효율적으로 압축되었는지(같은 내용을 말하기 위해 더 적은 토큰을 사용하는지)만을 측정했습니다. 로봇의 뇌가 이 새로운 블록들로 실제로 더 잘 학습했는지는 테스트하지 않았습니다. 그것은 향후 연구 과제입니다.

하지만 저자는 공간을 절약하기 위해 반드시 어휘량을 줄여야 한다는 생각은 틀렸음을 입증했습니다. 이전의 일부 아이디어들은 드문 블록들을 그냥 삭제하여 배낭을 더 작게 만들었지만, 이는 로봇이 같은 내용을 말하기 위해 더 많고 작은 블록들을 사용하게 만들어 텍스트를 더 길게 만들었습니다. Pruned BPE는 배낭의 크기를 고정한 상태에서도 내용물을 교체함으로써 더 짧고 효율적인 텍스트를 얻을 수 있음을 보여줍니다.

핵심 요약

결국, Pruned BPE는 정리 정돈에 관한 교훈을 줍니다. AI의 세계에서는 엄청나게 큰 토큰 라이브러리를 갖는 것보다 올바른 토큰을 갖는 것이 더 중요하다는 것을 보여줍니다. 무엇이 정말 유용한지 결정하기 위해 마지막까지 기다렸다가, 유령 조력자들을 스타 퍼포머들로 교체함으로써, 우리는 로봇의 읽기 과정을 약간 더 효율적으로 만들 수 있습니다. 이는 0.5% 미만의 공간을 아끼는 아주 작은 변화이지만, 모든 바이트가 중요한 거대 AI 모델의 세계에서는 의미 있는 승리입니다. 로봇은 자신의 건설 역사를 통째로 짊어질 필요가 없습니다. 그저 직무에 가장 적합한 최고의 도구들만 있으면 됩니다.

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

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

Digest 사용해 보기 →