In-Place Tokenizer Expansion for Pre-trained LLMs
이 논문은 다국어 코퍼스에 대해 BPE 병합을 지속하고 서브토큰 평균화를 통해 새로운 임베딩을 초기화함으로써, 모델 품질을 저하시키지 않으면서도 힌디어와 베트남어 같은 언어의 토큰 수를 크게 줄이고 디코드 속도를 개선하는 인플레이스(in-place) 토크나이저 확장 방법을 소개한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
기계의 언어: 입문 가이드
로봇에게 말을 가르친다고 상상해 보세요. 로봇에게 말을 가르치기 위해 세상의 모든 단어가 담긴 사전을 통째로 줄 수는 없습니다. 그건 너무 무거워서 들고 다닐 수 없기 때문입니다. 대신, 여러분은 로봇에게 일련의 '블록'을 줍니다. 인공지능의 세계에서 이 블록들을 **토큰(tokens)**이라고 부릅니다. 토큰을 컴퓨터가 이해하는 가장 작은 텍스트 조각이라고 생각하세요. 때로는 "cat"처럼 하나의 단어 전체일 수도 있고, 때로는 "c"와 같이 단일 글자 하나일 수도 있습니다.
로봇이 언어를 배울 때, 로봇은 문장을 이러한 블록들로 어떻게 나눌지 결정합니다. 만약 로봇이 영어를 먼저 배웠다면, "the"라는 단어를 위한 특별한 블록을 가지고 있을 것입니다. 하지만 나중에 여러분이 로봇에게 힌디어나 베트남어를 말하라고 요청했는데 로봇이 준비되지 않았다면, 로봇은 그 단어들을 "H-i-n-d-i"처럼 아주 작고 비효율적인 조각들로 나누어야 할 수도 있습니다. 이는 마치 드라이버가 꼭 필요한 상황에서 망치로 집을 지으려는 것과 같습니다. 작동은 하겠지만, 느리고 투박하며 에너지를 낭비하게 됩니다. 이 논문은 이미 훈련된 로봇을 처음부터 다시 만들지 않고도, 로봇의 "도구 상자"(어휘)를 업그레이드하는 방법에 대한 문제를 다룹니다.
고장 난 도구 상자의 퍼즐
Liquid AI의 지미(Jimmy)와 그의 팀을 만나보세요. 그들은 휴대폰이나 노트북 같은 기기에서 구동되는 매우 똑똑한 로봇인 LFM2를 연구하고 있었습니다. 이 로봇은 영어와 코딩에는 뛰어났지만, 힌디어, 베트 베트남어, 태국어 같은 언어를 말하려고 하면 비틀거렸습니다. 왜 그랬을까요? 로봇의 어휘가 방콕이 아닌 런던 여행을 위해 짐을 싼 도구 상자와 같았기 때문입니다. 로봇이 "Hindi"라고 쓰려고 할 때, 단어 전체를 위한 단일 블록을 가지고 있지 않았습니다. 대신, 이를 조립하기 위해 네 개나 다섯 개의 아주 작은 블크들을 사용해야 했습니다. 이 때문에 로봇은 느려지고, 지치고, 배터리 전력을 갈구하게 되었습니다.
팀은 어려운 선택에 직면했습니다. 공들여 만든 결과물을 버리고, 더 나은 도구 상자를 갖춘 완전히 새로운 로봇을 처음부터 다시 만들 것인가, 아니면 기존의 로봇을 망가뜨리지 않으면서 새로운 도구 세트를 몰래 끼워 넣을 것인가 하는 문제였습니다. 두 번째 옵션은 달리는 자동차 엔진에 주행 중에 새로운 서랍을 추가하려는 것과 같습니다. 대부분의 사람들은 이것이 불가능하거나 너무 위험하다고 생각했습니다.
"제자리(In-Place)" 업그레이드
팀은 정확히 그렇게 할 수 있는 영리한 방법을 발견했습니다. 그들은 이를 **토크나이저 확장(Tokenizer Expansion)**이라고 불렀습니다. 기존의 도구 상자를 버리는 대신, 원래의 도구들을 그대로 두고 그 끝에 새로운 도구들을 단순히 추가하는 방식입니다.
그들이 수행한 단계별 과정은 다음과 같습니다:
- 스마트 복사-붙여넣기: 그들은 로봇의 기존 블록 목록을 가져와서 다양한 언어를 섞어 계속 학습하도록 했습니다. 로봇이 새로운 단어를 배울 때, 기존의 블록을 버리지 않았습니다. 대신 "Hindi"나 "Thai"와 같은 단어를 위한 더 크고 새로운 블록을 만들었습니다. 결정적으로, 모든 새로운 블록은 이미 알고 있던 기존의 작은 블록들을 결합하여 만들어졌습니다. 이는 만약 여러분에게 "H" 블록과 "i" 블록이 있다면, 이 둘을 합쳐 "Hi" 블록을 만들 수 있고, 다시 그것을 "nd" 및 "i"와 합쳐 "Hindi" 블록을 만들 수 있다는 것을 깨닫는 것과 같습니다.
- 마법의 접착제 (임베딩 초기화): 이제 로봇은 새로운 블록들을 가졌지만, 그것들이 무엇을 의미하는지는 몰랐습니다. 팀은 로봇에게 이 새로운 블록들이 무엇을 나타내는지 가르쳐야 했습니다. 그들은 단순하지만 천재적인 트릭을 사용했습니다: 기존 블록들이 모여서 새로운 블록을 구성하는 방식을 살펴보고, 새 블록에 그 부분들의 "평균" 의미를 부여했습니다. 만약 새 블크가 세 개의 옛 블록으로 만들어졌다면, 로봇의 뇌는 그 세 블록의 평균적인 성격을 부여받았습니다. 이 덕분에 로봇은 추측할 필요 없이, 매우 훌륭한 추측치에서 시작할 수 있었습니다.
- 2단계 운동 루틴: 로봇은 아직 마라톤을 뛸 준비가 되지 않았습니다. 만약 바로 달리게 내버려 둔다면, 로봇은 넘어질 것입니다. 그래서 그들은 2단계 운동 루틴을 실시했습니다:
- 1단계: 로봇의 뇌(새로운 블록을 제외한 모든 것)를 얼린(freeze) 상태로 두고, 오직 새로운 블록들만 학습하게 했습니다. 이는 도구 상자에 새 서랍을 추가하면서 자동차의 나머지 부분을 움직이지 않고, 새 서랍이 물건을 담는 데 익숙해지도록 하는 것과 같았습니다.
- 2단계: 새로운 블록들이 익숙해지면, 로봇 전체의 잠금을 해제하고 다시 여러 언어로 읽고 쓰는 연습을 하게 했습니다. 이는 로봇이 새로운 블록들이 전체적인 그림 속에 어떻게 어우러지는지 이해하도록 도왔습니다.
결과: 더 빠르고, 더 똑똑하고, 더 가볍게
결과는 인상적이었습니다. 이 확장된 도구 상자를 사용함으로써, 로봇은 힌디어, 베트남어, 태국어를 훨씬 더 효율적으로 말할 수 있었습니다.
- 힌디어 텍스트는 2.4배 적은 블록으로 분해되었습니다.
- 베트남어는 2.6배 적은 블록을 사용했습니다.
- 태국어는 가장 큰 도약을 보였으며, 4.0배 적은 블록이 필요했습니다.
로봇이 같은 내용을 말하기 위해 처리해야 할 블록 수가 줄어들었기 때문에, 훨씬 더 빨라졌습니다. 팀은 휴대폰에서 이 언어들을 말할 때 글자당 2.2배에서 3.7배 더 빠를 것이라고 추정했습니다. 이는 걷기에서 자전거 타기로 전환한 것과 같았습니다. 로봇은 훨씬 짧은 시간 안에 같은 거리를 이동했습니다.
그들이 배운 것 (그리고 피한 것)
팀은 무엇을 하지 말아야 하는지에 대해서도 배웠는데, 이는 똑같이 중요합니다.
- 기존 도구를 건드리지 마세요: 한 실험에서, 그들은 새로운 블록을 추가하면서 동시에 로봇이 기존 블록의 의미를 다시 배우게 하려고 시도했습니다. 그러자 로봇은 혼란에 빠졌고 고장 난 레코드판처럼 같은 말을 반복하기 시작했습니다. 그들은 기존 블록을 있는 그대로 유지하는 것이 성공의 비결임을 발견했습니다.
- 영어만 읽게 하지 마세요: 로봇에게 주로 영어 텍스트만을 사용하여 새로운 블록을 가르쳤을 때, 로봇은 객관식 질문에는 잘 대답했지만 실제로 문장을 쓰는 데는 서툴렀습니다. 정답은 고를 수 있지만 이야기를 들려줄 수는 없었던 것입니다. 그들은 로봇을 건강하게 유지하기 위해 여러 언어가 균형 잡힌 식단이 필요하다는 것을 배웠습니다.
핵심 요약
이 논문은 새로운 언어를 말하게 하기 위해 항상 새로운 로봇을 만들 필요는 없다는 것을 보여줍니다. 만약 여러분이 로봇을 만든 사람이라면, 인생의 중간 단계에서도 어휘를 업그레이드할 수 있습니다. 새로운 도구를 신중하게 추가하고 그들에게 적절한 "평균" 의미를 부여함으로써, 기존의 기술을 잃지 않으면서도 모두를 위해 더 빠르고 효율적인 로봇을 만들 수 있습니다. 이는 여러분의 주머니 속 기기에서 AI를 더 포용적이고 빠르게 만드는 실질적인 레시피입니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.