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

un

khách
1 / ?
trở lại bài học

Những gì Tokenizer Ăn Trở thành Những gì Nó Biết

Chế độ ăn Tokenizer: Một Định nghĩa

Một tokenizer Harris huấn luyện trên một mẫu kho ngữ liệu. Nó chạy phân tích phân bố trên mẫu đó, chọn N phân đoạn lặp lại mạnh mẽ nhất, & ghi chúng vào từ vựng. Sau khi huấn luyện, những N phân đoạn đó trở thành một bảng chữ cái cố định mà mô hình ngôn ngữ sử dụng cho mọi thứ: huấn luyện, suy luận, mọi đầu vào, mọi đầu ra.


Chế độ ăn Tokenizer = một mẫu văn bản mà tokenizer huấn luyện trên.


Chế độ ăn huấn luyện = một tập dữ liệu (corpus) mà mô hình ngôn ngữ huấn luyện trên đó.


Khi hai chế độ ăn khác nhau, tokenizer học các phân đoạn được điều chỉnh cho văn bản mà mô hình sẽ không bao giờ thấy. Dung lượng embedding (một khe cho mỗi mục từ vựng) bị tiêu tốn vào các phân đoạn không mang lại phần thưởng nào trong quá trình huấn luyện.


Chế độ ăn của tokenizer & bão hòa


SAI LẦM CỦA ANDREA-12M

ANDREA-12M đã huấn luyện tokenizer Harris của nó trên một phần thô của megachat-v8.txt. Phần đó chứa các mẫu code & dữ liệu tool-call. Tuy nhiên, chương trình huấn luyện đã loại trừ code & tool calls; ANDREA-12M chỉ thấy văn bản hội thoại.


Kết quả: tokenizer học các phân đoạn từ từ khóa Python, dấu ngoặc JSON, cờ shell. Một mô hình được huấn luyện trên các mục từ điển & hội thoại. Chỉ 36.4% các phân đoạn chồng lấp với mẫu có trọng số chương trình huấn luyện. 63.6% còn lại của các khe từ vựng được phân bổ cho các phân đoạn mà mô hình không bao giờ gặp trong thời gian huấn luyện.


Tại Sao Điều Đó Quan Trọng

Mỗi mục từ vựng tiêu thụ các tham số embedding: một hàng của ma trận embedding có hình dạng V × d_model (được đề cập trong hoạt động 4). Với V = 4353 & d_model = 384, mỗi khe từ vựng tốn 384 số thực. Lãng phí 63.6% đồng nghĩa với việc lãng phí 63.6% ma trận embedding cho dữ liệu mà mô hình không bao giờ thấy.

Nêu Một Quy Tắc Chế Độ Ăn

Giải thích một quy tắc chế độ ăn của tokenizer trong một câu. Sau đó mô tả trường hợp tồi tệ nhất: một nhà nghiên cứu huấn luyện tokenizer Harris trên Wikipedia (văn xuôi trang trọng, trích dẫn) nhưng huấn luyện mô hình trên Twitter (tiếng lóng, emoji, hashtag). Điều gì sẽ sai?

N Nên Lớn Đến Mức Nào

Một Quét Khoa học Từ vựng

ANDREA-120M đã chạy một thí nghiệm khoa học từ vựng: huấn luyện các tokenizer Harris với các giá trị N khác nhau (số đoạn yêu cầu) trên cùng một tập dữ liệu firehose 1.25B ký tự. Đo lường số đoạn mà tokenizer thực sự tìm thấy. Vẽ biểu đồ kết quả.


Số lượng yêu cầu NSố đoạn thực tế tìm thấyTrạng thái
2,0482,048Chưa bão hòa (còn chỗ phát triển)
4,0964,096Chưa bão hòa
8,1928,192Điểm bão hòa
16,38413,106Bộ ngữ liệu đã cạn kiệt

Ý nghĩa của Bão hòa

Ở N nhỏ, một corpus có nhiều mẫu lặp lại; một tokenizer lấp đầy mọi slot mà nó yêu cầu. Ở N lớn, một tokenizer hết các ranh giới có ý nghĩa thống kê. Một corpus 1.25B ký tự chứa khoảng 13,106 phân đoạn hình dạng morpheme riêng biệt trên ngưỡng tần suất. Yêu cầu 16,384 chỉ thu được 13,106; 3,278 slot còn lại được đệm hoặc để trống.


Bão hòa: điểm mà N yêu cầu = N tìm thấy. Vượt quá bão hòa, một tokenizer không thể phát hiện thêm phân đoạn mà không làm loãng chất lượng (hạ ngưỡng tần suất & chấp nhận nhiễu).


Điểm Ngọt tại 8192

ANDREA-120M chọn N = 8192. Lý do:


- Dưới 8192 (ví dụ 4096): từ vựng không nắm bắt đủ các morpheme phổ biến; chuỗi phân mảnh thành nhiều token hơn; thông lượng giảm.

- Tại 8192: mọi khe segment đều ánh xạ đến một mẫu thực tế, lặp lại trong corpus.

- Trên 8192: lợi nhuận giảm dần; 13,106 < 16,384 nghĩa là các khe bị lãng phí.


Từ vựng cuối cùng của ANDREA-120M: 256 + 8192 + 1 = 8449 tokens. Nén trung bình: 5.91 byte UTF-8 mỗi token, nghĩa là mỗi token thay thế ~5.9 byte văn bản thô. Tỷ lệ đó xác định ngữ cảnh hiệu quả của mô hình: tại 1024 tokens × 5.91 bytes/token, ANDREA-120M đọc khoảng 6,050 ký tự ngữ cảnh mỗi lần forward pass.

Trên hoặc Dưới Bão Hòa

Giả sử một nhà nghiên cứu xem xét hai giá trị N cho mô hình ANDREA tương lai: N = 6144 (dưới bão hòa) so với N = 12288 (trên bão hòa, nơi số segment thực tế tìm thấy = 13106 vẫn áp dụng vì corpus cố định). Với mỗi giá trị: (a) tính kích thước từ vựng cuối cùng (256 + N + 1), & (b) nêu trong một cụm từ liệu mỗi thiết lập có lãng phí dung lượng từ vựng, nắm bắt toàn bộ tín hiệu có sẵn, hay undercaptures. Hãy thể hiện công việc của bạn.

Nguồn gốc của 63.6%

Đếm các Khe Lãng phí

Bộ mã hóa của ANDREA-12M được huấn luyện trên dữ liệu thô megachat-v8.txt (yêu cầu 4096 phân đoạn, đã tìm thấy). Một nhóm đã lấy mẫu một tập con có trọng số theo chương trình học: một kho ngữ liệu được trọng số hóa theo tần suất mỗi nguồn được kéo bởi bandit. Họ chạy lại phân tích Harris trên mẫu có trọng số đó & hỏi: bao nhiêu trong số 4096 phân đoạn gốc vẫn xuất hiện?


Kết quả: 36.4% chồng lấp. 1,491 trong 4,096 phân đoạn khớp với trọng số chương trình học. Còn lại 2,605 phân đoạn đến từ các nguồn mà mô hình loại trừ.


63.6% các ô từ vựng được phân bổ cho các byte mà mô hình chưa từng thấy.


Chi phí Embedding

Mỗi mục từ vựng chiếm một hàng của ma trận embedding có hình dạng (V, d_model). Đối với ANDREA-12M:


- V = 4353 (256 + 4096 + 1)

- d_model = 384

- Tham số Embedding = V × d_model = 4353 × 384 = 1,671,552 tham số


63.6% trong số các tham số đó không được sử dụng cho việc huấn luyện hội thoại. 1.063.107 tham số được cấp phát, 0 tín hiệu phần thưởng. ANDREA-12M sống sót vì 256 byte cơ bản luôn bao quát bất kỳ ký tự nào; nhưng dung lượng trên mỗi tham số giảm mạnh.


Cách ANDREA-120M Khắc Phục Nó

Bộ mã hóa của ANDREA-120M được huấn luyện trên một dòng dữ liệu đầy đủ (1.25B ký tự, 21 nguồn) ở mức bão hòa N = 8192. Bộ dữ liệu huấn luyện = cùng một dòng dữ liệu. Căn chỉnh chế độ ăn: 100%. Độ chồng chéo kết quả trên mẫu có trọng số chat: 36.5%. (Lưu ý: 36.5% là độ chồng chéo, không phải độ bao phủ; chat chỉ là một tập con của dòng dữ liệu đầy đủ, vì vậy con số này hoạt động khác với 36.4% của 12M.)


Nén hiệu quả: 5.91 byte UTF-8 trên mỗi token. Ma trận nhúng của ANDREA-120M: 8449 × 768 = 6.488.832 tham số. Mỗi tham số đều nhận được tín hiệu phần thưởng vì mỗi đoạn đều ánh xạ đến văn bản mà mô hình thực sự huấn luyện trên đó.

Độ Bao Phủ So Với Độ Chồng Chéo

Bộ tokenizer corpus của ANDREA-120M khớp với bộ training corpus của nó. Tuy nhiên, 'segment coverage on chat-weighted sample' vẫn chỉ đạt 36.5%, tương tự như 36.4% của 12M. Tại sao 36.5% không phải là vấn đề đối với 120M trong khi 36.4% là vấn đề đối với 12M? Sử dụng một cụm từ về việc tập con nào là tập con nào.

Tại sao 5.91 Bytes Per Token Quan trọng

Tỷ lệ Nén

Số bytes UTF-8 trung bình mỗi token đo lường lượng văn bản thô mà mỗi mục từ vựng nén được. ANDREA-120M trung bình 5.91. Một mô hình với các mảnh ngắn hơn (3 bytes/token) đọc ít ngữ cảnh hơn mỗi forward pass; một mô hình với các mảnh dài hơn (8 bytes/token) đọc nhiều hơn nhưng huấn luyện chậm hơn (mỗi mảnh cần nhiều mẫu hơn để học tốt).


Ngữ Cảnh Hiệu Quả


Số lượngGiá trị
Cửa sổ ngữ cảnh token1.024 token
Số byte trung bình mỗi token5,91
Ngữ cảnh ký tự hiệu quả1024 × 5,91 ≈ 6.050

Khoảng 6.000 ký tự UTF-8 vừa khít trong một lần forward pass của ANDREA-120M. Một trang văn xuôi tiếng Anh dày đặc có khoảng ~3.000-4.000 ký tự; ANDREA đọc được khoảng một trang rưỡi mỗi pass.


Chế Độ Ăn Làm Siết Chặt Nén

Một tokenizer được căn chỉnh tốt sẽ nén tốt hơn. Khi tokenizer học được các phân đoạn lặp lại trong tập huấn luyện, nhiều văn bản hơn sẽ vừa trong mỗi token. Tokenizer kém căn chỉnh của ANDREA-12M nén kém hơn trên chat (chi tiêu nhiều byte hơn cho các mảnh byte-fallback vì các phân đoạn chat thưa thớt hơn trong từ vựng). Tokenizer được căn chỉnh theo chế độ ăn của ANDREA-120M giữ một phần chat-shaped trên đường nhanh & các kịch bản hiếm trên byte fallback.


Hoạt Động 4 Tiếp Tục

Hoạt động 4 (grow_a_language_model_embeddings) bao quát điều gì xảy ra với 8449 mục từ vựng đó: chúng trở thành các hàng của ma trận embedding có hình dạng V × d_model, sau đó cộng thêm position embeddings đã học trước khi chảy vào khối transformer đầu tiên.

Chọn một N

Suy ngẫm về một sự đánh đổi: mô hình ANDREA tương lai có nên sử dụng N = 4096 (huấn luyện nhanh hơn, nhiều bytes-per-token = ngữ cảnh hiệu quả dài hơn) hay N = 16384 (các đoạn dài hơn nhưng hiếm hơn, ít token hơn trên mỗi đoạn văn bản, nhưng vượt quá bão hòa nên lãng phí slot)? Chọn một & đưa ra lý do một câu. Không có câu trả lời sai.