Tokenization (NLP) (VI)
Tokenization trong ngữ cảnh các mô hình ngôn ngữ lớn (LLM) là một quá trình tiền xử lý cơ bản, bao gồm việc tách một chuỗi văn bản thành các đơn vị nhỏ hơn, dễ quản lý hơn, được gọi là token. Các token này sau đó được chuyển đổi thành các định danh số mà mô hình có thể xử lý. Tokenization là bước đầu tiên vô cùng quan trọng vì nó ảnh hưởng trực tiếp đến hiệu suất, hiệu quả, tính công bằng và chất lượng hiểu ngôn ngữ của mô hình.
Các khái niệm cơ bản
Token
Token là một đơn vị văn bản rời rạc mà mô hình ngôn ngữ xử lý. Tùy thuộc vào phương pháp tokenization được chọn, một token có thể là:
- Toàn bộ một từ (ví dụ: «mèo»).
- Một phần của từ hoặc từ con (ví dụ: «không-», «-xem-», «-xét»).
- Một ký tự đơn lẻ (ví dụ: «a», «b», «c»).
- Một byte (trong trường hợp tokenization ở cấp độ byte).
Mỗi token duy nhất được gán một số chỉ mục cụ thể từ từ điển của tokenizer.
Từ điển tokenizer
Từ điển (hay vocabulary) là tập hợp đầy đủ tất cả các token có thể có mà mô hình có thể nhận dạng. Kích thước từ điển là một siêu tham số quan trọng:
- Từ điển lớn cho phép biểu diễn nhiều từ nguyên vẹn hơn, giúp cải thiện khả năng hiểu và rút ngắn độ dài chuỗi, nhưng làm tăng kích thước mô hình và độ phức tạp trong quá trình huấn luyện.
- Từ điển nhỏ có kích thước gọn hơn, nhưng đòi hỏi phải tách các từ hiếm hoặc phức tạp thành nhiều từ con hơn, điều này có thể kéo dài chuỗi và gây khó khăn trong việc nắm bắt ngữ nghĩa.
Kích thước từ điển khác nhau đáng kể giữa các mô hình: từ ~50.000 token trong GPT-2 đến hơn 100.000 trong các mô hình hiện đại như GPT-4 (100.277) và LLaMA-3 (128.000).
Các phương pháp tokenization chính
Có ba cấp độ chi tiết chính trong tokenization.
1. Tokenization ở cấp độ từ (Word-level)
- Nguyên lý: Văn bản được tách thành các từ riêng lẻ dựa trên các dấu phân cách (khoảng trắng, dấu câu).
- Ưu điểm: Trực quan, dễ hiểu; chuỗi token ngắn hơn giúp giảm tải tính toán.
- Nhược điểm:
- Vấn đề từ không xác định (Out-of-Vocabulary, OOV): Mô hình không thể xử lý các từ không có trong từ điển huấn luyện, cũng như các lỗi chính tả và từ mới.
- Kích thước từ điển lớn: Cần lưu trữ tất cả các từ duy nhất, điều này đặc biệt khó khăn đối với các ngôn ngữ có hình thái học phong phú.
2. Tokenization ở cấp độ ký tự (Character-level)
- Nguyên lý: Văn bản được tách thành các ký tự riêng lẻ.
- Ưu điểm:
- Không có vấn đề OOV: Bất kỳ từ nào cũng có thể được biểu diễn dưới dạng chuỗi ký tự.
- Từ điển nhỏ: Bị giới hạn bởi kích thước bảng chữ cái và các ký tự đặc biệt.
- Nhược điểm:
- Chuỗi dài: Văn bản được chuyển đổi thành các chuỗi token rất dài, làm tăng đáng kể chi phí tính toán.
- Mất ngữ nghĩa: Mô hình khó nắm bắt ý nghĩa hơn vì nó xử lý các ký tự riêng lẻ thay vì toàn bộ từ.
3. Tokenization từ con (Subword Tokenization)
Đây là cách tiếp cận trung gian và phổ biến nhất hiện nay, kết hợp các ưu điểm của các phương pháp trước.
- Nguyên lý: Các từ được sử dụng thường xuyên vẫn là các token nguyên vẹn, còn các từ hiếm hoặc không xác định được tách thành các phần nhỏ hơn, có nghĩa hơn (từ con).
- Ưu điểm:
- Xử lý hiệu quả các từ OOV và các biến thể hình thái học.
- Kích thước từ điển được kiểm soát.
- Nắm bắt được cấu trúc hình thái học của từ.
- Các thuật toán chính:
- Byte Pair Encoding (BPE): Thuật toán lặp bắt đầu từ một tập hợp ký tự và liên tục hợp nhất các cặp xuất hiện thường xuyên nhất thành các token mới. Được sử dụng trong các mô hình GPT. Byte-level BPE, được sử dụng trong GPT-2 và RoBERTa, xem các từ như là chuỗi byte, giải quyết hoàn toàn vấn đề OOV.
- WordPiece: Thuật toán tương tự BPE, nhưng để hợp nhất các cặp, nó chọn những cặp tối đa hóa khả năng xảy ra (likelihood) của dữ liệu huấn luyện. Được sử dụng trong các mô hình BERT.
- Unigram LM: Khác với BPE/WordPiece, phương pháp này bắt đầu từ một tập hợp lớn các từ con và dần dần thu nhỏ nó bằng cách loại bỏ các token ít ảnh hưởng nhất đến xác suất tổng thể của corpus. Điều này cho phép tạo ra nhiều cách tokenization có thể xảy ra cho một từ (điều chỉnh hóa từ con).
- Bộ công cụ SentencePiece: Thư viện của Google triển khai BPE và Unigram LM, xử lý văn bản như một luồng ký tự liên tục, giúp nó trở nên linh hoạt cho các ngôn ngữ không có dấu phân cách từ rõ ràng (ví dụ: tiếng Trung). Được sử dụng trong các mô hình LLaMA và T5.
Tokenization trong các LLM đa phương thức
Trong các mô hình đa phương thức không chỉ làm việc với văn bản, tokenization còn được mở rộng sang các loại dữ liệu khác:
- Tokenization hình ảnh: Hình ảnh được chia thành các patch nhỏ (ví dụ: 16x16 pixel), sau đó được chuyển đổi thành các vector token, tương tự như văn bản.
- Tokenization âm thanh: Các tín hiệu âm thanh liên tục được chuyển đổi thành một chuỗi các token rời rạc đại diện cho các đoạn âm thanh ngắn.
- Cách tiếp cận thống nhất (TEAL): Khái niệm trong đó dữ liệu của bất kỳ phương thức nào trước tiên được tokenize bằng tokenizer tương ứng, sau đó các embedding của chúng được xử lý trong một không gian kết hợp chung.
Các vấn đề và hạn chế
Tokenization, mặc dù quan trọng, là nguồn gốc của nhiều vấn đề trong hoạt động của LLM:
- Sự không nhất quán và nhạy cảm: Những thay đổi nhỏ trong dữ liệu đầu vào (lỗi chính tả, chữ hoa/thường, khoảng trắng ở cuối) có thể thay đổi hoàn toàn quá trình tokenization, dẫn đến hành vi không thể đoán trước của mô hình.
- Vấn đề đa ngôn ngữ: Một từ điển chung cho nhiều ngôn ngữ thường không hiệu quả đối với các ngôn ngữ ít tài nguyên hoặc có hình thái học phong phú, dẫn đến các chuỗi token quá dài.
- Ảnh hưởng đến khả năng suy luận: Việc tách số theo cách không hợp lý (ví dụ: «25.000» thành «25», «.», «000») hoặc các ký hiệu gây khó khăn cho việc thực hiện các bài toán số học và ký hiệu.
- Glitch Tokens (Token lỗi): Các token bất thường hoặc hiếm từ dữ liệu huấn luyện (ví dụ: tên người dùng từ Reddit) có thể gây ra hành vi không thể đoán trước hoặc có hại của mô hình.
Bức tranh đang phát triển và các hướng đi trong tương lai
Nghiên cứu trong lĩnh vực tokenization đang được tiến hành tích cực theo các hướng sau:
- Các mô hình không cần tokenizer: Phát triển các mô hình (CANINE, ByT5) hoạt động trực tiếp ở cấp độ byte hoặc ký tự để loại bỏ hoàn toàn giai đoạn tokenization rõ ràng và các vấn đề liên quan.
- Tokenization thích nghi và có thể học: Tạo ra các tokenizer có thể tự động thích nghi với ngôn ngữ, lĩnh vực hoặc thậm chí văn bản đầu vào cụ thể, hoặc được huấn luyện cùng với mô hình chính.
- Các cách tiếp cận định hướng nhận thức: Phát triển các phương pháp được lấy cảm hứng từ khoa học nhận thức về quá trình xử lý ngôn ngữ của con người (ví dụ: «Nguyên tắc ít nỗ lực nhất»), nhằm tạo ra các cách tokenization có ý nghĩa ngữ nghĩa hơn.
Liên kết
- Tổng quan về tokenization trong khóa học về LLM của Hugging Face
- Tài liệu về tokenization của Mistral AI
Tài liệu tham khảo
- Schuster, M.; Nakajima, K. (2012). Japanese and Korean Voice Search. PDF.
- Sennrich, R.; Haddow, B.; Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. arXiv:1508.07909.
- Kudo, T.; Richardson, J. (2018). SentencePiece: A Simple and Language-Independent Subword Tokenizer and Detokenizer for Neural Text Processing. arXiv:1808.06226.
- Kudo, T. (2018). Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates. arXiv:1804.10959.
- Song, X. et al. (2021). Fast WordPiece Tokenization. ACL-Anthology.
- Mielke, S. J.; Dalmia, S.; Cotterell, R. (2021). A Brief History of Open-Vocabulary Modeling and Tokenization in NLP. arXiv:2112.10508.
- Xue, J. et al. (2022). ByT5: Towards a Token-Free Future with Pre-trained Byte-to-Byte Models. arXiv:2105.13626.
- Clark, J. H. et al. (2022). CANINE: Pre-Training an Efficient Tokenization-Free Encoder for Language Representation. arXiv:2103.06874.
- Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling. arXiv:2305.17179.
- Pourmostafa Roshan Sharami, J.; Shterionov, D.; Spronck, P. (2023). A Systematic Analysis of Vocabulary and BPE Settings for Optimal Fine-Tuning of NMT. arXiv:2303.00722.
- Batsuren, K. et al. (2024). Evaluating Subword Tokenization: Alien Subword Composition and OOV Generalization Challenge. arXiv:2404.13292.
- Chai, Y. et al. (2024). Tokenization Falling Short: On Subword Robustness in Large Language Models. arXiv:2406.11687.