바이트 단위 샘플링으로 해결하는 프롬프트 경계 문제
이 논문은 BPE 기반 토크나이저를 사용하는 언어 모델을 추론 시에 바이트‑레벨 혹은 문자‑레벨 모델로 변환하는 방법을 제안한다. 제안된 “ByteSampler”는 프롬프트 경계 문제(PBP)를 정확히 해결하면서, 서로 다른 토크나이저를 가진 모델들의 어휘를 통합해 앙상블 및 프록시‑튜닝을 가능하게 한다. 실험을 통해 기존 정확한 방법보다 연산 효율이 높고, 앙상블·프록시‑튜닝 모델이 개별 모델을 능가함을 보였다.
저자: ** - **Sewoong Kim** (SewoongLab, KAIST) - **Jihyun Lee** (Seoul National University) - **Yuan Zhang** (Microsoft Research Asia) - **Emily Chen** (OpenAI) **
본 논문은 현대 대형 언어 모델(LM)이 대부분 서브워드 토크나이저(BPE, Unigram 등)를 사용함에 따라 발생하는 “프롬프트 경계 문제”(Prompt Boundary Problem, PBP)를 해결하기 위한 새로운 추론‑시점 방법을 제시한다. PBP는 사용자가 입력한 프롬프트가 토큰 경계와 일치하지 않을 때, 모델이 기대와 다른 토큰을 예측하게 만드는 현상으로, 영어에서는 공백을 조절하는 간단한 히어스틱으로 어느 정도 완화되지만, 공백이 없는 중국어·일본어, 코드 자동완성 등에서는 심각한 오류를 초래한다. 기존 연구들은 백트래킹, 토큰 힐링, 비트‑페어 보정 등 다양한 완화 기법을 제안했지만, 대부분 연산 복잡도가 높거나 근사적인 샘플링을 제공한다.
논문은 **ByteSampler**라는 이름의 방법론을 제안한다. 핵심 아이디어는 BPE 기반 토크나이저를 가진 LM을 **바이트‑레벨 혹은 문자‑레벨 LM**으로 변환하는 것이다. 이를 위해 저자들은 “Valid Covering Tree”(VCT)라는 자료구조를 설계한다. VCT는 주어진 바이트 프리픽스를 공유하는 모든 가능한 유효 토큰 시퀀스를 트리 형태로 표현한다. 트리의 특징은 다음과 같다.
1. **정확성**: 트리는 프리픽스를 정확히 포함하는 모든 유효 토큰 시퀀스를 포함한다. 이는 BPE 토크나이저의 병합 규칙을 이용해 “쌍별 유효성 검증(pairwise validation)”을 수행함으로써 보장된다. 즉, 두 연속 토큰 사이에 병합이 발생하면 해당 시퀀스는 무효이며, 이를 O(1) 시간에 판단한다.
2. **컴팩트성**: 트리는 “트렁크”(단일 자식만 갖는 연속 구간)와 제한된 수의 “브랜치”(분기점)로 구성된다. 브랜치 수는 토크나이저에 따라 고정된 상수이며, 트리 깊이 역시 상수에 의해 제한된다.
3. **스트리밍 업데이트**: 새로운 바이트가 들어올 때마다 Algorithm 1에 따라 트리를 상수 시간·공간으로 갱신한다. 트리의 트렁크에 해당하는 토큰은 즉시 출력 스트림에 기록되고, 브랜치만 남겨 다음 바이트를 기다린다.
이 구조를 바탕으로 논문은 다음과 같은 언어 모델 연산을 구현한다.
- **프리픽스 확률 계산**: 트리 리프들의 로그 확률을 합산해 전체 프리픽스 확률을 얻는다.
- **바이트‑레벨 샘플링**: 리프를 다음 바이트별로 그룹화해 바이트 분포를 구하고, 이를 기반으로 바이트를 순차적으로 샘플링한다. 이렇게 하면 Eq.(2)에서 정의한 바이트‑프리픽스 조건부 분포를 정확히 구현한다.
- **토큰‑레벨 샘플링 연계**: 바이트 샘플링으로 프롬프트 경계를 정확히 맞춘 뒤, 이후 토큰‑레벨 샘플링을 그대로 적용한다.
이 방법은 기존 백트래킹 기반 정확한 방법과 동일한 O(1) 전처리·O(1) LM 호출 복잡도를 유지하면서도, 정확히 바이트‑프리픽스 조건부 분포를 따르므로 PBP를 근본적으로 해결한다.
또한, VCT는 **다중 토크나이저 통합**을 가능하게 한다. 서로 다른 BPE 토크나이저를 가진 모델이라도 동일한 바이트 스트림을 공유하므로, 바이트‑레벨에서 모델들을 앙상블할 수 있다. 논문은 LLaMA‑3와 Qwen을 바이트‑레벨에서 앙상블했을 때, 개별 모델 대비 평균 2.3 % 이상의 정확도 향상을 보였으며, 이는 토크나이저 차이로 인한 어휘 불일치를 해소했기 때문이다.
또 다른 응용으로는 **프록시‑튜닝(proxy‑tuning)**이 있다. 한 모델에 사후 학습(파인튜닝)된 가중치를 다른 모델에 적용하고자 할 때, 토크나이저가 다르면 직접 전이하기 어렵다. 하지만 바이트‑레벨에서 두 모델을 동일하게 맞추면, 파인튜닝된 가중치를 “프록시” 형태로 다른 모델에 적용할 수 있다. 실험 결과, 프록시‑튜닝된 모델은 원본 대비 1.8 % 정도의 성능 회복을 보였으며, 이는 토크나이저 차이로 인한 손실을 최소화한 것이다.
성능 평가에서는 다음을 확인했다.
- **연산 효율**: 기존 정확한 방법(예: Viera et al.
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기