피드로 돌아가기
Dev.toAI/ML
원문 읽기
텍스트를 정수 ID로 변환하는 Byte Pair Encoding 기반 Tokenization 구조 분석
Your LLM can't read. Here's the weird trick it uses instead
AI 요약
Context
LLM이 텍스트를 직접 처리하지 못하고 정수 시퀀스로만 데이터를 수신하는 구조적 제약 존재. 단순 문자열 기반 처리가 아닌 Token 단위의 수치 매핑으로 인한 데이터 해석의 괴리 발생.
Technical Solution
- Byte Pair Encoding(BPE) 알고리즘을 통한 빈도수 기반의 최적 Token Vocabulary 구축
- 문자 단위에서 시작하여 최빈 인접 쌍을 반복적으로 병합하는 계층적 압축 로직 적용
- 빈도수가 높은 일반 단어는 단일 Token으로, 희귀 단어는 다수의 하위 Token으로 분할하는 가변 길이 매핑 구조
- 공백 포함 여부에 따라 서로 다른 ID를 부여하는 Context-dependent Tokenization 방식 채택
- 모델별로 고정된 Frozen Vocabulary를 사용하여 입력 데이터의 일관된 정수 변환 보장
실천 포인트
1. API 요청 전 `tiktoken` 등을 활용하여 실제 Token 수를 사전 계산해 Context Window 초과 방지
2. UUID, JSON, 로그 데이터 등 비정형 데이터 포함 시 Token 급증 가능성을 고려한 프롬프트 설계
3. Few-shot 예제 작성 시 Leading Space 등 미세한 포맷 차이가 서로 다른 Token ID를 생성함을 인지하고 일관성 유지