AI VIDEO BRIEFING
바이트 잠재 트랜스포머(BLT) 해설: 토큰 대신 동적 패치를 쓰면 왜 더 잘 확장되나
고정된 어휘 사전으로 텍스트를 자르는 대신, 다음 바이트 예측이 불확실해지는 지점에서 바이트를 묶어 패치로 만드는 구조를 다룬다. 두 겹으로 나뉜 모델이 어떻게 연산을 아끼고 무엇을 얻는지, 한계는 무엇인지 정리했다.

핵심 메시지
쉽게 이해하기
언어모델은 보통 텍스트를 토큰으로 쪼갠 뒤 각 토큰에 대응하는 임베딩을 표에서 찾아 쓴다. 글자 단위로 자르면 표는 작아지지만 시퀀스가 너무 길어지고, 트랜스포머의 계산량은 길이에 제곱으로 늘어난다. 그렇다고 단어 단위로 자르면 표가 걷잡을 수 없이 커지고 학습 때 못 본 단어를 만나는 문제가 생긴다. 지금 널리 쓰이는 바이트 페어 인코딩이나 워드피스는 자주 붙어 나오는 조각에 자리를 하나씩 내주는 절충안이다.
이 절충안에도 대가가 따른다. 예를 들어 2568이라는 숫자는 흔히 쓰이는 256과 8로 잘려 서로 무관한 두 개의 번호로 모델에 들어가므로, 숫자를 다루는 능력이 구조적으로 불리해진다. 조각을 더 크게 잡으면 시퀀스는 짧아지지만 가능한 조합이 폭증해 표가 감당하지 못한다. 논문의 출발점은 여기다. 조합마다 자리를 미리 만들어 두는 대신, 구성 요소의 임베딩으로부터 더 큰 단위의 임베딩을 그때그때 만들어 내도록 신경망에 맡길 수 있지 않느냐는 것이다.
그래서 모델은 두 겹으로 나뉜다. 로컬 인코더는 한 패치 안의 바이트 임베딩을 모아 패치 임베딩 하나를 만들고, 안쪽의 잠재 트랜스포머는 그 패치 임베딩을 받아 다음 패치를 예측하는 평범한 자기회귀 모델로 동작한다. 로컬 디코더는 반대로 잠재 트랜스포머가 내놓은 신호를 조건으로 바이트를 하나씩 풀어낸다. 패치를 크게 잡을수록 바깥 고리는 자주 돌지만 무거운 안쪽은 드물게 돌기 때문에, 같은 연산 예산으로 더 큰 모델을 굴릴 여지가 생긴다.
패치를 어디서 끊을지는 엔트로피가 정한다. 본 모델과는 별개로 바이트 단위로 학습한 작은 언어모델을 두고, 다음 바이트에 대한 예측이 확신에 차 있으면 계속 붙이고 여러 갈래로 갈라질 만큼 불확실해지면 그 지점에서 끊는다. 뒤에 무엇이 올지 뻔한 구간은 하나의 덩어리로 묶어도 손해가 없고, 갈림길에서는 앞부분이 매번 같은 단위로 유지되는 편이 유리하다는 발상이다. 같은 작은 모델이 디코딩을 언제 멈출지도 알려 준다.
여기에 바이트 하나만 보지 않고 앞선 3~8바이트 묶음의 임베딩까지 함께 더해 주는 장치가 붙는다. 긴 묶음은 종류가 너무 많으므로 해시를 씌워 정해진 크기의 표에 밀어 넣고, 충돌이 나더라도 의미가 서로 무관해 큰 문제가 되지 않는다는 계산이다. 해설자는 이 부분을 두고 토큰화가 형태만 바꿔 되돌아온 것처럼 보인다고 평가한다. 실험에서는 철자를 직접 다루는 과제와 표준적인 방식으로 잘리지 않는 저자원 언어의 번역에서 강점이 나타났고, 다만 실제 실행 속도는 오랫동안 최적화되어 온 기존 방식에 아직 못 미친다는 한계도 함께 지적된다.
주요 인사이트
- 토큰화는 오래 쓰인 전처리 단계지만 모델의 약점을 만들어 내는 원인이기도 하다. 숫자를 제대로 못 다루는 문제의 상당 부분은 학습이 아니라 자르는 방식에서 나온다.
- 고정 어휘 표를 없앤다는 것은 조합마다 자리를 미리 잡아 두는 대신, 필요한 순간에 임베딩을 계산해 만들어 낸다는 뜻이다. 이 덕분에 사전에 없는 표현도 자연스럽게 처리된다.
- 패치 크기는 성능과 연산량 사이의 조절 손잡이가 된다. 무거운 부분을 덜 자주 돌릴수록 같은 예산으로 더 큰 모델을 쓸 수 있다는 점이 확장 곡선 차이의 배경이다.
- 확신이 높은 구간은 붙이고 불확실한 지점에서 끊는다는 규칙은, 언어에서 '한 덩어리로 취급해도 되는 단위'를 데이터가 스스로 정하게 만든 셈이다.
- 비교 기준을 어디에 두는지가 결론을 좌우한다. 이 논문은 학습 연산량을 맞춰 비교하며, 토큰 단위가 달라 퍼플렉시티를 쓸 수 없으므로 바이트당 비트라는 지표를 쓴다.
자주 묻는 질문
패치는 토큰과 무엇이 다른가요?
역할은 비슷하지만 정해지는 방식이 다릅니다. 토큰은 미리 만들어 둔 고정 어휘 사전으로 자르지만, 패치는 학습된 작은 모델이 다음 바이트 예측의 불확실성을 보고 그때그때 경계를 정합니다. 사전에 없는 표현 때문에 생기는 문제도 사라집니다.
왜 같은 연산량으로 더 나은 성능이 나오나요?
무거운 잠재 트랜스포머가 패치 단위로만 돌기 때문입니다. 패치를 크게 잡으면 안쪽 모델의 실행 횟수가 줄고, 바깥의 인코더와 디코더가 가볍다면 아낀 연산을 모델 크기에 쓸 수 있습니다. 다만 이는 학습 연산량을 맞춰 비교했을 때의 이야기입니다.
패치 경계는 누가 정하나요?
본 모델과 별개로 학습한 작은 바이트 단위 언어모델이 정합니다. 다음 바이트에 대한 예측 분포의 엔트로피가 정해 둔 임계값을 넘으면, 즉 무엇이 올지 확신하지 못하면 그 지점에서 끊습니다. 디코딩 중에도 같은 모델이 언제 패치를 끝낼지 알려 줍니다.
실제로 지금 쓸 수 있는 수준인가요?
해설자는 아직 아니라고 봅니다. 기존 방식은 오랜 기간 최적화가 누적된 반면 이 구조는 그렇지 않아 실제 실행 속도에서 뒤처지고, 패치를 정하는 작은 모델을 본 모델과 함께 학습시키는 등 개선 여지도 남아 있다고 정리합니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗