Từ Ngữ Sang Số
Một Người Dịch Tại Biên Giới
Một mô hình ngôn ngữ không bao giờ thấy văn bản. Nó thấy các số nguyên. Một tokenizer nằm tại điểm kiểm soát biên giới: từ ngữ con người chảy vào, ID số nguyên chảy ra. Quá trình sinh ngược lại dòng chảy: ID số nguyên quay lại, tokenizer render văn bản.
Ba công việc:
1. Phân đoạn. Cắt một chuỗi thành các mảnh (token).
2. Ánh xạ. Gán cho mỗi mảnh một ID số nguyên duy nhất từ từ vựng cố định.
3. Đảo ngược. Tái tạo văn bản từ các ID tại thời điểm sinh.
Tại sao dùng mảnh, không phải từ nguyên vẹn
Từ vựng từ nguyên vẹn sẽ bùng nổ. Tiếng Anh thôi đã có hàng trăm nghìn dạng. Tệ hơn, mô hình huấn luyện trên từ nguyên vẹn không thể xử lý lỗi chính tả, tên mới, hay cụm từ ngoại ngữ: bất kỳ từ chưa thấy nào cũng ánh xạ vào một ô <UNK> duy nhất.
Phân mảnh subword khắc phục điều đó. Một từ vựng gồm các mảnh phổ biến có thể ghép thành bất kỳ từ nào, bao gồm cả những từ chưa từng thấy trong quá trình huấn luyện. Hai chiến lược thống trị: BPE (byte pair encoding) & phân đoạn phân phối. ANDREA chọn chiến lược thứ hai.
Tại sao Subword
Nơi Mà Một Từ Bị Ngắt
Zellig Harris, 1955
Một nhà ngôn ngữ học tên là Zellig Harris nhận thấy điều gì đó. Bên trong một từ, số lượng các chữ cái khác biệt theo sau một chuỗi chữ cái nhất định thay đổi mạnh mẽ. Sau un bạn có thể tìm thấy hàng chục chữ cái: a, b, c, d, e ... Sau unbel chỉ có một tập hợp nhỏ theo sau: i (rồi ievable).
Sự tăng đột biến trong sự đa dạng của các chữ cái kế tiếp đánh dấu một ranh giới morpheme có khả năng. Sau un (một tiền tố), sự đa dạng tăng vọt vì nhiều gốc từ có thể theo sau. Bên trong một gốc từ như believ, sự đa dạng giữ ở mức thấp vì các chữ cái dự đoán lẫn nhau. Tại sự chuyển tiếp giữa các morpheme, sự đa dạng lại tăng vọt.
Từ Các Đỉnh Đa Dạng Đến Các Phân Đoạn
Chạy bộ phát hiện đó trên một tập huấn luyện. Mỗi từ đóng góp bằng chứng thống kê. Một tokenizer thu thập các đoạn tần suất cao lặp lại tại các ranh giới hình dạng morpheme: un, re, pre, believ, know, ing, able, ly, tion, ed.
Không có nhãn. Không có nhà ngôn ngữ học gắn thẻ morpheme bằng tay. Một thống kê về sự đồng xuất hiện của chữ cái làm công việc đó.
Harris so với BPE
| Thuộc tính | Harris | BPE |
|---|---|---|
| Tiêu chí biên giới | Đỉnh đa dạng người kế thừa | Tần suất cặp |
| Hình thái ngôn ngữ | Căn chỉnh với morpheme (tiền tố, gốc, hậu tố) | Cặp byte thường xuyên |
Ví dụ: unbelievably | un + believ + abl + y | unb + eli + eva + bly |
| Tổng quát hóa | Mạnh (gốc + tiếp tố tái kết hợp) | Yếu hơn (cặp không cần căn chỉnh) |
Cả hai đều tạo ra các mảnh từ con. Các mảnh Harris có xu hướng căn chỉnh với những gì nhà ngôn ngữ học gọi là morpheme: đơn vị ý nghĩa nhỏ nhất. Các mảnh BPE tối ưu hóa nén: cặp byte thường xuyên nhất được hợp nhất, bất kể ý nghĩa.
Phân đoạn một từ
Ba Tấm Vocab
Cấu tạo của một Từ vựng ANDREA
Tokenization Harris tạo ra từ vựng với ba tấm:
Slab 1: 256 byte cơ bản. Mọi byte UTF-8 có thể (0x00 đến 0xFF) đều có ID token riêng. Lưới an toàn: bất kỳ ký tự nào trong corpus, tokenizer đều có thể biểu diễn dưới dạng chuỗi byte. Không bao giờ kích hoạt <UNK>.
Slab 2: N phân đoạn morpheme. Các mảnh phổ biến được phát hiện qua phân tích phân bố. ANDREA-12M huấn luyện N = 4096; ANDREA-120M huấn luyện N = 8192. Mỗi phân đoạn nén một chuỗi byte đa byte lặp lại thành một token duy nhất.
Slab 3: 1 token BOS. Một dấu hiệu đặc biệt đặt ở đầu mọi chuỗi huấn luyện. Cho phép mô hình học 'vị trí này không có quá khứ'. ANDREA-12M & ANDREA-120M đều dành chính xác một ID cho BOS.
Kích thước Từ vựng
| Mô hình | Bytes cơ sở | Phân đoạn morpheme (N) | BOS | Kích thước từ vựng |
|---|---|---|---|---|
| ANDREA-12M | 256 | 4096 | 1 | 4353 |
| ANDREA-120M | 256 | 8192 | 1 | 8449 |
256 + N + 1 = kích thước từ vựng. Đơn giản. Có thể tái tạo. Mở.
Tại sao Byte Slab lại quan trọng
Một phương án dự phòng byte đảm bảo độ bao phủ. Nếu một mô hình gặp 日本語 & tokenizer không có morpheme tiếng Nhật, các byte UTF-8 riêng lẻ sẽ truyền chuỗi qua. Mô hình được huấn luyện trên byte; chất lượng trên các kịch bản hiếm phụ thuộc vào dung lượng & tiếp xúc, nhưng không đầu vào nào làm tokenizer sập.
Tính toán một Từ vựng
Bắt đầu Chuỗi
Tại sao một chuỗi cần một dấu hiệu
Một transformer chỉ có bộ giải mã dự đoán token tiếp theo từ ngữ cảnh trước đó. Vị trí 0 không có ngữ cảnh trước. Không có dấu hiệu, vị trí 0 nằm trong một lỗ logic: mô hình không có gì để chú ý.
BOS giải quyết lỗ hổng. Một token đặc biệt duy nhất (ID = 256 + N) nằm ở đầu mọi chuỗi trong quá trình huấn luyện. Mô hình học:
- 'Khi bạn thấy BOS, dự đoán một token đầu tiên có khả năng của văn bản tự nhiên.'
- 'Khi bạn thấy BOS theo sau bởi một từ, từ đó là sự bắt đầu của chuỗi, không phải sự tiếp nối.'
Một Token, Nhiều Công Dụng
BOS xuất hiện ở:
- Thời gian huấn luyện: được thêm vào đầu mỗi đoạn văn bản đưa vào mô hình.
- Thời gian suy luận: được thêm vào đầu prompt để mô hình nhận tín hiệu 'bắt đầu mới' quen thuộc.
- Đánh dấu ranh giới: trong một số pipeline, là dấu phân cách giữa các tài liệu nối liền.
ANDREA dành chính xác một ID cho BOS. Không có EOS, không có PAD, không có token đặc biệt nào ngoài những gì mà từ vựng cần. Sự đơn giản vẫn là giá trị cốt lõi của permacomputer: mỗi token phải xứng đáng với vị trí của nó.
Hoạt động 3 Tiếp tục
Hoạt động 3 (grow_a_language_model_tokenizer_diet) đề cập đến những gì xảy ra khi N quá lớn hoặc corpus tokenizer khác biệt so với corpus huấn luyện. ANDREA-12M lãng phí 63.6% từ vựng của nó; ANDREA-120M đã sửa chữa điều đó. Hãy đọc tiếp.