Token (LLM) (TH)
โทเค็น (token) — หน่วยข้อความที่เล็กที่สุดที่โมเดลภาษาขนาดใหญ่ (LLM) สามารถประมวลผลได้ ข้อความทุกชิ้นจะถูกแปลงเป็นลำดับของโทเค็นก่อนที่ LLM จะประมวลผล จากนั้นโทเค็นเหล่านั้นจะถูกแปลงเป็นตัวแทนเชิงตัวเลขที่เหมาะสมสำหรับการวิเคราะห์และการประมวลผลโดยโมเดล
ขึ้นอยู่กับกลยุทธ์การ tokenization ที่ใช้ โทเค็นอาจแทนได้ด้วย:
- คำทั้งคำ (เช่น "บ้าน")
- ส่วนของคำหรือรากศัพท์ (เช่น "บ้าน" ใน "บ้านเล็ก")
- ตัวอักษรเดี่ยวหรือเครื่องหมายวรรคตอน (เช่น ",", "!")
การใช้โทเค็นช่วยให้โมเดลภาษาสามารถเรียนรู้และสร้างโครงสร้างข้อความได้อย่างมีประสิทธิภาพ ตรวจจับรูปแบบ รวมถึงทำความเข้าใจความหมายและไวยากรณ์ของข้อความ
กระบวนการ Tokenization
การ Tokenization (tokenization) — คือกระบวนการแบ่งข้อความต้นฉบับออกเป็นโทเค็น แล้วแปลงโทเค็นเหล่านั้นเป็นตัวระบุเชิงตัวเลขที่โมเดลเข้าใจได้
ขั้นตอนนี้เป็นสิ่งที่ขาดไม่ได้และเป็นพื้นฐานสำหรับการทำงานของโมเดลภาษาขนาดใหญ่ ด้วยขั้นตอนนี้ LLM จึงสามารถ:
- วิเคราะห์ไวยากรณ์ — โครงสร้างของข้อความและตำแหน่งของส่วนประกอบ (คำและวลี);
- ดึงความหมาย — ความหมายเชิงลึกของข้อความและความสัมพันธ์ระหว่างองค์ประกอบต่าง ๆ
มีวิธีการ tokenization หลัก ๆ หลายวิธี ได้แก่:
- Byte Pair Encoding (BPE): อัลกอริทึมที่ทำการแทนที่คู่ตัวอักษรที่พบบ่อยที่สุดซ้ำ ๆ ด้วยโทเค็นใหม่ ซึ่งช่วยให้ประมวลผลคำที่พบไม่บ่อยและรูปแปรทางสัณฐานวิทยาได้อย่างมีประสิทธิภาพ
- WordPiece: ใช้ในโมเดล BERT โดยแบ่งคำออกเป็นหน่วยย่อยระดับคำ ซึ่งช่วยในการประมวลผลคำที่ไม่รู้จัก
- SentencePiece: วิธีการที่มองข้อความเป็นลำดับของตัวอักษรและใช้โมเดลที่อิงจาก BPE หรือ Unigram สำหรับการ tokenization
การเลือกวิธี tokenization ส่งผลต่อประสิทธิภาพของโมเดล ความสามารถในการประมวลผลภาษาต่าง ๆ และประสิทธิภาพของการเรียนรู้
โทเค็นพิเศษ
นอกจากโทเค็นหลักแล้ว โมเดลยังใช้โทเค็นพิเศษสำหรับระบุองค์ประกอบเชิงหน้าที่ของข้อความ เช่น:
[CLS](class) — โทเค็นเริ่มต้นของลำดับ มักใช้สำหรับงานการจัดประเภทข้อความ;[SEP](separator) — แยกส่วนต่าง ๆ ของข้อความออกจากกัน (เช่น คำถามและคำตอบ ประโยคหรือย่อหน้า);[MASK]— โทเค็นพิเศษสำหรับระบุคำที่โมเดลต้องทำนาย (ใช้ใน BERT และโมเดล masked-language อื่น ๆ);[PAD](padding) — ใช้สำหรับปรับข้อความให้มีความยาวเท่ากัน
โทเค็นพิเศษเหล่านี้ช่วยให้โมเดลรับรู้โครงสร้างและบริบทของข้อความที่ประมวลผลได้อย่างแม่นยำยิ่งขึ้น
โทเค็นและ Context Window
Context window (context window) — คือจำนวนโทเค็นสูงสุดที่โมเดลสามารถพิจารณาและประมวลผลได้พร้อมกันในการสร้างข้อความ
ตัวอย่างเช่น โมเดล GPT-3 มี context window ขนาด 2048 โทเค็น ซึ่งหมายความว่าในการสร้างข้อความ โมเดลสามารถพิจารณาข้อมูลที่บรรจุอยู่ในโทเค็นต้นฉบับได้สูงสุด 2048 โทเค็นพร้อมกัน ขนาดของ context window ส่งผลต่อ:
- ปริมาณข้อมูลสูงสุดที่โมเดลเข้าถึงได้;
- คุณภาพและความสมเหตุสมผลของคำตอบที่สร้างขึ้น;
- ความสามารถของโมเดลในการประมวลผลข้อความยาวและรักษาบริบทในระยะห่างระหว่างโทเค็นที่มาก
เอกสารอ้างอิง
- 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.