Token (LLM) (VI)

From Systems analysis Wiki
Jump to navigation Jump to search

Token — đơn vị văn bản nhỏ nhất mà các mô hình ngôn ngữ lớn (LLM) có khả năng xử lý. Mọi văn bản trước khi được LLM xử lý đều phải được chuyển đổi thành chuỗi token, sau đó các token này được biểu diễn dưới dạng số để mô hình phân tích và xử lý thuận tiện.

Tùy thuộc vào chiến lược token hóa được sử dụng, một token có thể là:

  • Một từ hoàn chỉnh (ví dụ: "nhà")
  • Một phần của từ hoặc gốc từ (ví dụ: "nhà" trong "ngôi nhà")
  • Một ký tự đơn lẻ hoặc dấu câu (ví dụ: ",", "!")

Việc sử dụng token cho phép các mô hình ngôn ngữ học và tái tạo cấu trúc văn bản một cách hiệu quả, phát hiện các quy luật, cũng như hiểu ngữ nghĩa và cú pháp của văn bản.

Quá trình token hóa

Token hóa (tokenization) — là quá trình phân tách văn bản gốc thành các token và sau đó chuyển đổi chúng thành các định danh số mà mô hình có thể hiểu.

Giai đoạn này là bắt buộc và mang tính nền tảng đối với hoạt động của các mô hình ngôn ngữ lớn. Nhờ đó, LLM có khả năng:

  • Phân tích cú pháp — cấu trúc văn bản và vị trí của các thành phần (từ và cụm từ);
  • Trích xuất ngữ nghĩa — ý nghĩa sâu xa của văn bản và mối quan hệ giữa các thành phần.

Có một số phương pháp token hóa chính, bao gồm:

  • Byte Pair Encoding (BPE): Thuật toán lặp đi lặp lại việc thay thế các cặp ký tự xuất hiện thường xuyên nhất bằng các token mới, cho phép xử lý hiệu quả các từ hiếm gặp và các biến thể hình thái học.
  • WordPiece: Được sử dụng trong các mô hình BERT, phân tách từ thành các đơn vị con từ (subword), giúp xử lý các từ chưa biết.
  • SentencePiece: Phương pháp xem văn bản như một chuỗi ký tự và áp dụng các mô hình dựa trên BPE hoặc Unigram để token hóa.

Việc lựa chọn phương pháp token hóa ảnh hưởng đến hiệu suất của mô hình, khả năng xử lý các ngôn ngữ khác nhau và hiệu quả huấn luyện.

Token đặc biệt

Ngoài các token thông thường, các mô hình còn sử dụng token đặc biệt để đánh dấu các thành phần chức năng trong văn bản, chẳng hạn như:

  • [CLS] (class) — token đánh dấu đầu chuỗi, thường được sử dụng cho các tác vụ phân loại văn bản;
  • [SEP] (separator) — phân tách các phần khác nhau của văn bản (ví dụ: câu hỏi và câu trả lời, các câu hoặc đoạn văn);
  • [MASK] — token đặc biệt để đánh dấu từ mà mô hình cần dự đoán (được sử dụng trong BERT và các mô hình ngôn ngữ có mặt nạ khác);
  • [PAD] (padding) — được sử dụng để căn chỉnh văn bản theo độ dài.

Các token đặc biệt này giúp các mô hình nhận biết chính xác hơn cấu trúc và ngữ cảnh của văn bản được xử lý.

Token và cửa sổ ngữ cảnh

Cửa sổ ngữ cảnh (context window) — là số lượng token tối đa mà mô hình có thể xem xét và xử lý đồng thời trong quá trình sinh văn bản.

Ví dụ, mô hình GPT-3 có cửa sổ ngữ cảnh gồm 2048 token. Điều này có nghĩa là khi tạo văn bản, mô hình có thể đồng thời xem xét thông tin chứa trong tối đa 2048 token của văn bản gốc. Kích thước cửa sổ ngữ cảnh ảnh hưởng đến:

  • Lượng thông tin tối đa mà mô hình có thể tiếp cận;
  • Chất lượng và tính mạch lạc của các câu trả lời được sinh ra;
  • Khả năng của mô hình trong việc xử lý các văn bản dài và duy trì ngữ cảnh qua khoảng cách lớn giữa các token.

Tài liệu tham khảo

  • 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.
  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Song, X. et al. (2021). Fast WordPiece Tokenization. *EMNLP 2021*. 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.
  • Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling: Assessing Vocabulary Allocation and Overlap Across Languages. 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.