English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

게스트
1 / ?
수업 목록으로

단어에서 숫자로

국경의 통역사

언어 모델은 텍스트를 직접 보지 않습니다. 정수를 봅니다. 토크나이저는 국경 통과 지점에 있습니다: 인간의 단어가 들어오고, 정수 ID가 나갑니다. 생성은 흐름을 반대로 합니다: 정수 ID가 돌아오고, 토크나이저가 텍스트를 렌더링합니다.


세 가지 역할:


1. 분할. 문자열을 조각(토큰)으로 자름.

2. 매핑. 각 조각에 고정된 어휘에서 고유한 정수 ID를 할당.

3. 역변환. 생성 시 ID로부터 텍스트를 재구성.


왜 전체 단어가 아닌 조각인가

전체 단어 어휘는 폭발적으로 증가합니다. 영어만 해도 수십만 형태가 있습니다. 더 나쁜 점은, 전체 단어로 훈련된 모델은 오타, 새로운 이름, 외국어 구절을 처리할 수 없다는 것입니다: 보지 못한 단어는 모두 단일 <UNK> 슬롯으로 매핑됩니다.


서브워드 토큰화가 이를 해결합니다. 일반적인 조각들의 어휘가 훈련 중에 본 적 없는 단어를 포함한 모든 단어로 구성됩니다. 두 가지 전략이 지배적입니다: BPE (byte pair encoding) & distributional segmentation. ANDREA는 두 번째 전략을 선택합니다.


Harris vs BPE

왜 서브워드인가

전체 단어 토큰화는 희귀 단어 `proporian` (ANDREA-12M이 43,100 단계에서 생성한 단어)에 실패합니다. 서브워드 토큰화(BPE 또는 Harris)가 전체 단어 토큰화가 피할 수 없는 두 가지 뚜렷한 문제를 이름으로 말씀해 주세요.

단어가 어디서 끊기는가

Zellig Harris, 1955

Zellig Harris라는 언어학자가 무언가를 알아챘습니다. 단어 내부에서 주어진 문자 시퀀스 뒤에 오는 고유 문자 수는 급격히 변합니다. un 뒤에는 수십 개의 문자가 올 수 있습니다: a, b, c, d, e ... unbel 뒤에는 아주 적은 수의 문자만 따릅니다: i (그 다음 ievable).


후속 문자 다양성의 급증은 가능한 형태소 경계를 나타냅니다. un (접두사) 뒤에서는 다양성이 급증하는데, 이는 많은 어근이 뒤따를 수 있기 때문입니다. believ 같은 어근 내부에서는 다양성이 낮게 유지되는데, 문자들이 서로를 예측하기 때문입니다. 형태소 간 전환 지점에서 다양성은 다시 급증합니다.


다양성 급증에서 세그먼트로

훈련 코퍼스 전체에 그 탐지기를 실행하세요. 모든 단어가 통계적 증거를 기여합니다. 토크나이저는 형태소 모양의 경계에서 반복되는 고빈도 세그먼트를 수집합니다: un, re, pre, believ, know, ing, able, ly, tion, ed.


라벨 없음. 언어학자가 형태소를 손으로 태깅하지 않습니다. 문자 공출현의 통계가 그 일을 합니다.


Harris vs BPE


속성HarrisBPE
경계 기준후속 품종 스파이크쌍 빈도
언어적 형태형태소 정렬 (접두사, 어근, 접미사)빈번한 바이트 쌍
예시: unbelievablyun + believ + abl + yunb + eli + eva + bly
일반화강함 (어근 + 접사 재결합)약함 (쌍이 정렬될 필요 없음)

둘 다 서브워드 조각을 생성합니다. Harris 조각은 언어학자가 형태소라고 부르는 것과 정렬되는 경향이 있습니다: 가장 작은 의미 단위. BPE 조각은 압축을 최적화합니다: 의미와 관계없이 가장 빈번한 바이트 쌍이 병합됩니다.

단어 분할

`replayed` 단어에 Harris 스타일 추론을 적용하세요. 세 가지 형태소 분할을 제안하고 각각을 한 구절로 정당화하세요 (그 역할: 접두사, 어근, 또는 접미사).

세 개의 Vocab 슬랩

ANDREA Vocabulary의 해부학

Harris 토크나이제이션은 세 개의 슬랩으로 구성된 vocabulary를 생성합니다:


슬랩 1: 256 기본 바이트. 모든 가능한 UTF-8 바이트(0x00부터 0xFF까지)가 고유한 토큰 ID를 가집니다. 안전망: 코퍼스에 포함된 모든 문자는 토크나이저가 바이트 시퀀스로 표현할 수 있습니다. <UNK>는 절대 발생하지 않습니다.


슬랩 2: N 형태소 세그먼트. 분포 분석을 통해 발견된 일반적인 조각들. ANDREA-12M 학습 시 N = 4096; ANDREA-120M 학습 시 N = 8192. 각 세그먼트는 반복되는 다중 바이트 문자열을 단일 토큰으로 압축합니다.


슬랩 3: 1 BOS 토큰. 모든 학습 시퀀스의 시작에 배치되는 특수 마커. 모델이 '이 위치에는 과거가 없다'를 학습할 수 있게 합니다. ANDREA-12M & ANDREA-120M 모두 BOS를 위해 정확히 하나의 ID를 예약합니다.


어휘 크기


모델기본 바이트형태소 세그먼트 (N)BOS어휘 크기
ANDREA-12M256409614353
ANDREA-120M256819218449

256 + N + 1 = 어휘 크기. 간단함. 재현 가능. 공개됨.


바이트 슬랩이 중요한 이유

바이트 폴백은 완전한 커버리지를 보장합니다. 모델이 日本語를 만나고 토크나이저에 일본어 형태소가 없으면, 개별 UTF-8 바이트가 시퀀스를 전달합니다. 모델은 바이트로 훈련됩니다; 희귀 스크립트의 품질은 용량과 노출에 달려 있지만, 입력이 토크나이저를 절대 크래시시키지 않습니다.

어휘 계산하기

ANDREA-480M (가족의 세 번째 모델, 미래 활동 24에서 다룸)은 더 큰 코퍼스에서 N = 16,384 세그먼트로 Harris 토크나이저를 훈련할 계획입니다. 그 어휘 크기를 계산하세요. 공식을 보여주세요. 그런 다음 N이 증가해도 바이트 슬랩이 256에 머무르는 이유를 한 문장으로 설명하세요.

시퀀스 시작

시퀀스에 마커가 필요한 이유

디코더 전용 트랜스포머는 이전 맥락으로부터 다음 토큰을 예측합니다. 위치 0에는 이전 맥락이 없습니다. 마커가 없으면 위치 0은 논리적 구멍에 놓이게 됩니다: 모델이 주의할 것이 아무것도 없습니다.


BOS는 구멍을 해결합니다. 단일 특수 토큰(ID = 256 + N)이 훈련 중 모든 시퀀스 시작에 위치합니다. 모델은 다음을 학습합니다:


- 'BOS를 보면 자연 텍스트의 가능성 있는 첫 번째 토큰을 예측하세요.'

- 'BOS 다음에 단어가 나오면, 그 단어는 시퀀스의 시작이지 연속이 아닙니다.'


한 토큰, 다양한 용도


BOS는 다음에서 나타납니다:


- 훈련 시: 모델에 입력되는 모든 텍스트 청크 앞에 추가됩니다.

- 추론 시: 프롬프트 앞에 추가되어 모델이 익숙한 '새 시작' 신호를 보게 합니다.

- 경계 표시: 일부 파이프라인에서 연결된 문서 간의 구분자.


ANDREA는 BOS를 위해 정확히 하나의 ID만 예약합니다. EOS 없음, PAD 없음, 어휘가 필요로 하는 것 이상의 특수 토큰 없음. 단순성은 permacomputer 가치로 남아 있습니다: 모든 토큰은 자신의 슬롯을 벌어야 합니다.


Activity 3 계속

Activity 3 (grow_a_language_model_tokenizer_diet)은 N이 너무 크거나 토크나이저 코퍼스가 훈련 코퍼스와 다를 때 발생하는 일을 다룹니다. ANDREA-12M은 어휘의 63.6%를 낭비했습니다; ANDREA-120M이 이를 수정했습니다. 계속 읽어보세요.

BOS 전용 트레이드오프

ANDREA가 하는 설계 선택에 대해 반성해보세요: 하나의 특수 토큰(BOS)만 사용, EOS 없음, PAD 없음. 이것이 만들어내는 하나의 트레이드오프를 이름 지어보세요. 트레이드오프는 이점(더 간단한 엔진, 낭비되는 슬롯 감소) 또는 제약(일부 훈련 트릭에 추가 토큰 필요)일 수 있습니다. 한 문장으로 충분합니다.