코드 토큰의 숨은 변천: 양자화·증류가 프로그래밍 언어 토큰에 미치는 영향
초록
본 논문은 대형 언어 모델(LLM)의 토크나이저가 프로그래밍 언어를 어떻게 인코딩하는지 정량적으로 분석하고, 양자화·증류·스케일링·파인튜닝 등 압축 기법이 토큰 수준 표현과 코드 생성 품질에 미치는 영향을 조사한다. 키워드 커버리지, 토큰 순위, 그리고 프롬프트 없이 모델이 스스로 생성하는 토큰 확률을 측정하는 ‘콜드 스타트’ 메트릭을 도입해, 압축이 토큰 분포를 비선형적으로 변화시킴을 밝혀낸다.
상세 분석
본 연구는 먼저 공개된 코딩 전용 LLM 7종(Qwen2.5‑Coder, Qwen2.5, Athene‑V2‑Chat, DeepSeek‑V2.5, DeepSeek‑V3, DeepSeek‑R1, Llama 3.1)과 그 파생 모델들을 선정하고, 토크나이저 vocabularies를 비교하였다. 결과적으로 세 종류의 토크나이저만이 실제로 존재했으며, Qwen2.5‑Coder·Qwen2.5·Athene‑V2‑Chat가 동일 vocab, DeepSeek‑R1·DeepSeek‑V3가 또 다른 vocab, Llama 3.1·DeepSeek‑R1‑Llama 계열이 세 번째 vocab을 공유한다는 점을 확인했다. 이는 모델 아키텍처가 다르더라도 토크나이저 설계가 크게 차이나지 않음을 시사한다.
다음으로 GitHub 인기 언어 10종(파이썬, 자바, Go, 자바스크립트, C++, TypeScript, PHP, Ruby, C, C#)과 Rust·React를 대상으로 각 언어의 예약어 집합(총 276개)을 추출했다. 토크나이저 내에서 해당 예약어가 존재하는지와 vocab 내 순위(rank)를 측정했으며, 파이썬·TypeScript·Rust·Go·C#는 90% 이상 커버되었지만 C·C++·React는 현저히 낮았다. 특히 DeepSeek‑R1 토크나이저는 키워드 순위가 전체적으로 높아(즉, 낮은 빈도) 토큰이 여러 sub‑word로 분할될 가능성이 크다. 이는 해당 모델이 코드 전용 데이터로 충분히 학습되지 않았거나, vocab 설계 시 일반 텍스트에 우선순위를 둔 결과로 해석된다.
키워드 존재 여부만으로는 충분치 않다는 점을 강조하기 위해 ‘토큰 순위 메트릭’을 도입했다. BPE 기반 토크나이저에서 순위는 학습 코퍼스 내 등장 빈도와 직결되므로, 높은 순위(낮은 빈도)는 토큰화 효율성을 저하시킨다. DeepSeek‑R1은 특수 문자 토큰 비중이 낮고, 일반 문자 토큰이 과다하게 차지해 코드 구조 파악에 불리할 수 있다. 반면 Llama 3.1과 Qwen2.5는 각각 14.6%, 12.1%의 특수 문자 토큰을 보유해 구문 인식에 유리하다.
압축 기법의 영향을 평가하기 위해 ‘콜드 스타트 확률’ 메트릭을 설계했다. 프롬프트 없이 모델이 자동으로 생성하는 토큰들의 확률을 측정해 Programming Keywords Probability(PKP), Special Tokens Probability(STP), Keyword Average Probability(KAP), Natural Language Probability(NLP) 네 가지 지표를 정의하였다. 실험 대상은 DeepSeek‑R1 계열의 다양한 양자화·증류 버전과 Qwen2.5‑Coder‑7B이다. 결과는 STP가 전체 확률의 10%~72%를 차지해 구조 토큰이 모델의 기본 출력에 크게 기여함을 보여준다. 흥미롭게도, 중간 정도의 양자화(예: 4‑bit)에서는 PKP가 오히려 상승해 프로그래밍 키워드가 더 자주 등장했으며, 이는 양자화가 희소 토큰을 압축하면서도 핵심 키워드의 상대적 빈도를 높이는 비선형 효과를 의미한다. 반면 증류는 교사 모델의 토큰 분포를 그대로 전달하지 못해 PKP와 KAP가 크게 변동했으며, 특히 작은 모델(1.5B)에서는 특정 키워드에 편향된 확률이 관찰되었다.
마지막으로, 코드 전용 모델이 일반 언어 모델과 토큰 집합을 공유한다는 ‘예상 외 결과’를 보고한다. 이는 토크나이저 설계 단계에서 별도 코드 전용 vocab을 도입하지 않았기 때문에 발생했으며, 실제 코드 이해 능력은 토큰 자체보다는 모델이 학습한 컨텍스트와 토큰 간 상호작용에 더 크게 의존한다는 점을 시사한다.
요약하면, 토크나이저의 vocab 구성과 순위는 코드 언어 커버리지에 직접적인 영향을 미치며, 압축 기법은 토큰 확률 분포를 비선형적으로 변형한다. 중간 양자화는 오히려 키워드 가시성을 높일 수 있지만, 과도한 증류는 토큰 편향을 초래한다. 이러한 인사이트는 프로덕션 환경에서 압축된 LLM을 배포할 때 토큰 수준 품질을 유지하기 위한 실용적인 가이드라인을 제공한다.
댓글 및 학술 토론
Loading comments...
의견 남기기