---
title: "Tokenization (NLP) (TH)"
source: "https://systems-analysis.info/int/Tokenization_(NLP)_(TH)"
wiki: "systems-analysis.info/int"
article: "Tokenization_(NLP)_(TH)"
language: "th"
categories:
  - "Category:Core LLM concepts"
  - "Category:Large language models"
  - "Category:LLM core concepts"
  - "Category:Machine learning"
  - "Category:Thai"
revision_id: 8138
wiki_created_at: 2026-09-07T01:12:52Z
wiki_modified_at: 2026-09-07T01:12:52Z
downloaded_at: 2026-09-07T23:23:33Z
---

# Tokenization (NLP) (TH)

**การแบ่งโทเคน (Tokenization)** ในบริบทของโมเดลภาษาขนาดใหญ่ (LLM) คือกระบวนการประมวลผลล่วงหน้าพื้นฐานที่แบ่งลำดับข้อความออกเป็นหน่วยย่อยที่จัดการได้ง่ายขึ้น เรียกว่า **token** จากนั้น token เหล่านี้จะถูกแปลงเป็นตัวระบุตัวเลขที่โมเดลสามารถประมวลผลได้ การแบ่งโทเคนเป็นขั้นตอนแรกที่มีความสำคัญอย่างยิ่ง เนื่องจากส่งผลโดยตรงต่อประสิทธิภาพ ความสามารถ ความเป็นธรรม และคุณภาพของความเข้าใจภาษาของโมเดล

## แนวคิดพื้นฐาน

### Token

**Token** คือหน่วยข้อความแบบไม่ต่อเนื่องที่โมเดลภาษาประมวลผล ขึ้นอยู่กับวิธีการแบ่งโทเคนที่เลือก token อาจแทนได้ดังนี้:

- คำทั้งคำ (เช่น «แมว»)
- ส่วนหนึ่งของคำหรือ subword (เช่น «un-», «-believ-», «-able»)
- อักขระแต่ละตัว (เช่น «ก», «ข», «ค»)
- ไบต์ (ในกรณีของการแบ่งโทเคนระดับไบต์ หรือ byte-level tokenization)

แต่ละ token ที่ไม่ซ้ำกันจะได้รับหมายเลขดัชนีเฉพาะจาก **พจนานุกรมของ tokenizer**

### พจนานุกรมของ Tokenizer

**พจนานุกรม** (หรือ vocabulary) คือชุดรวมของ token ทั้งหมดที่โมเดลสามารถจดจำได้ ขนาดของพจนานุกรมเป็น hyperparameter ที่สำคัญ:

- พจนานุกรมขนาดใหญ่ช่วยให้แทนคำได้ทั้งคำมากขึ้น ซึ่งช่วยปรับปรุงความเข้าใจและลดความยาวของลำดับ แต่จะเพิ่มขนาดของโมเดลและความซับซ้อนในการเรียนรู้
- พจนานุกรมขนาดเล็กกะทัดรัดกว่า แต่ต้องแบ่งคำที่หายากหรือซับซ้อนออกเป็น subword จำนวนมากขึ้น ซึ่งอาจทำให้ลำดับยาวขึ้นและยากต่อการจับความหมาย

ขนาดพจนานุกรมแตกต่างกันมากในแต่ละโมเดล ตั้งแต่ ~50,000 token ใน GPT-2 ไปจนถึงมากกว่า 100,000 ในโมเดลสมัยใหม่ เช่น GPT-4 (100,277) และ LLaMA-3 (128,000)

## วิธีการแบ่งโทเคนหลัก

มีระดับความละเอียดของการแบ่งโทเคนอยู่สามระดับหลัก

### 1. การแบ่งโทเคนระดับคำ (Word-level)

- **หลักการ:** ข้อความถูกแบ่งออกเป็นคำแต่ละคำโดยอาศัยตัวคั่น (ช่องว่าง เครื่องหมายวรรคตอน)
- **ข้อดี:** เข้าใจง่ายตามสัญชาตญาณ ลำดับ token สั้นกว่าจึงลดภาระการคำนวณ
- **ข้อเสีย:**
  - ปัญหาคำที่ไม่รู้จัก (Out-of-Vocabulary, OOV): โมเดลไม่สามารถประมวลผลคำที่ไม่มีอยู่ใน vocabulary สำหรับการเรียนรู้ รวมถึงการพิมพ์ผิดและคำใหม่
  - ขนาดพจนานุกรมใหญ่: ต้องเก็บคำที่ไม่ซ้ำกันทั้งหมด ซึ่งเป็นปัญหาเป็นพิเศษสำหรับภาษาที่มีสัณฐานวิทยาที่หลากหลาย

### 2. การแบ่งโทเคนระดับอักขระ (Character-level)

- **หลักการ:** ข้อความถูกแบ่งออกเป็นอักขระแต่ละตัว
- **ข้อดี:**
  - ไม่มีปัญหา OOV: คำใดก็ตามสามารถแทนได้ด้วยลำดับของอักขระ
  - พจนานุกรมขนาดเล็ก: จำกัดด้วยขนาดของตัวอักษรและอักขระพิเศษ
- **ข้อเสีย:**
  - ลำดับยาว: ข้อความถูกแปลงเป็นลำดับ token ที่ยาวมาก ซึ่งเพิ่มต้นทุนการคำนวณอย่างมีนัยสำคัญ
  - การสูญเสียความหมาย: โมเดลยากที่จะจับความหมายได้ เนื่องจากทำงานกับอักขระแต่ละตัวแทนที่จะเป็นคำทั้งคำ

### 3. การแบ่งโทเคนแบบ Subword (Subword Tokenization)

นี่คือแนวทางระดับกลางและเป็นที่นิยมมากที่สุดในปัจจุบัน ซึ่งรวมข้อดีของวิธีการก่อนหน้าเข้าด้วยกัน

- **หลักการ:** คำที่ใช้บ่อยจะคงเป็น token ทั้งคำ ส่วนคำที่หายากหรือไม่รู้จักจะถูกแบ่งออกเป็นส่วนย่อยที่มีความหมาย (subword)
- **ข้อดี:**
  - จัดการคำ OOV และรูปแบบสัณฐานวิทยาได้อย่างมีประสิทธิภาพ
  - ควบคุมขนาดพจนานุกรมได้
  - จับโครงสร้างสัณฐานวิทยาของคำได้
- **อัลกอริทึมหลัก:**
  - **Byte Pair Encoding (BPE):** อัลกอริทึมแบบวนซ้ำที่เริ่มจากชุดอักขระและรวมคู่ที่พบบ่อยที่สุดเข้าเป็น token ใหม่อย่างต่อเนื่อง ใช้ในโมเดล GPT **Byte-level BPE** ที่ใช้ใน GPT-2 และ RoBERTa จะมองคำเป็นลำดับของไบต์ ซึ่งแก้ปัญหา OOV ได้อย่างสมบูรณ์
  - **WordPiece:** อัลกอริทึมที่คล้ายกับ BPE แต่ในการรวมคู่จะเลือกคู่ที่ทำให้ความน่าจะเป็นของข้อมูลการเรียนรู้สูงสุด ใช้ในโมเดล BERT
  - **Unigram LM:** ต่างจาก BPE/WordPiece วิธีนี้เริ่มจากชุด subword ขนาดใหญ่และค่อยๆ ลดขนาดลงโดยตัด token ที่ส่งผลต่อความน่าจะเป็นโดยรวมของ corpus น้อยที่สุด ทำให้สามารถสร้างการแบ่งโทเคนหลายแบบที่เป็นไปได้สำหรับคำเดียว (subword regularization)
- **เครื่องมือ SentencePiece:** ไลบรารีจาก Google ที่นำ BPE และ Unigram LM ไปใช้งาน และประมวลผลข้อความในรูปแบบสตรีมอักขระต่อเนื่อง ทำให้ใช้งานได้หลากหลายสำหรับภาษาที่ไม่มีตัวคั่นคำที่ชัดเจน (เช่น ภาษาจีน) ใช้ในโมเดล LLaMA และ T5

## การแบ่งโทเคนใน Multimodal LLM

ในโมเดล multimodal ที่ทำงานไม่เพียงแค่กับข้อความ การแบ่งโทเคนยังครอบคลุมไปยังข้อมูลประเภทอื่นด้วย:

- **การแบ่งโทเคนภาพ (Visual Tokenization):** รูปภาพถูกแบ่งออกเป็น patch ขนาดเล็ก (เช่น 16x16 พิกเซล) ซึ่งจะถูกแปลงเป็นเวกเตอร์ token คล้ายกับข้อความ
- **การแบ่งโทเคนเสียง (Audio Tokenization):** สัญญาณเสียงต่อเนื่องถูกแปลงเป็นลำดับของ token แบบไม่ต่อเนื่อง ซึ่งแทนชิ้นส่วนเสียงสั้นๆ
- **แนวทางเดียว (TEAL):** แนวคิดที่ข้อมูลจากทุก modality จะถูกแบ่งโทเคนด้วย tokenizer ที่สอดคล้องกันก่อน จากนั้น embedding ของข้อมูลเหล่านั้นจะถูกประมวลผลในปริภูมิร่วมเดียวกัน

## ปัญหาและข้อจำกัด

การแบ่งโทเคน แม้จะมีความสำคัญ แต่ก็เป็นแหล่งที่มาของปัญหาหลายประการในการทำงานของ LLM:

- **ความไม่สอดคล้องและความไวต่อการเปลี่ยนแปลง:** การเปลี่ยนแปลงเล็กน้อยในข้อมูลนำเข้า (การพิมพ์ผิด ตัวพิมพ์ใหญ่-เล็ก ช่องว่างท้ายข้อความ) อาจเปลี่ยนการแบ่งโทเคนอย่างสิ้นเชิง ส่งผลให้พฤติกรรมของโมเดลคาดเดาไม่ได้
- **ปัญหาหลายภาษา:** พจนานุกรมเดียวสำหรับหลายภาษามักไม่มีประสิทธิภาพสำหรับภาษาที่มีทรัพยากรน้อยหรือมีสัณฐานวิทยาที่หลากหลาย ทำให้ได้ลำดับ token ที่ยาวเกินไป
- **ผลกระทบต่อการให้เหตุผล:** การแบ่งตัวเลขที่ไม่สมเหตุสมผล (เช่น «25,000» เป็น «25», «,», «000») หรืออักขระ ทำให้การทำงานทางคณิตศาสตร์และงานเชิงสัญลักษณ์ทำได้ยากขึ้น
- **Glitch Tokens:** token ที่ผิดปกติหรือหายากจากข้อมูลการเรียนรู้ (เช่น ชื่อผู้ใช้จาก Reddit) ซึ่งอาจทำให้โมเดลมีพฤติกรรมที่คาดเดาไม่ได้หรือเป็นอันตราย

## แนวทางที่กำลังพัฒนาและทิศทางในอนาคต

การวิจัยด้านการแบ่งโทเคนกำลังดำเนินการอยู่อย่างแข็งขันในทิศทางต่อไปนี้:

- **โมเดลที่ไม่ใช้ Tokenizer:** การพัฒนาโมเดล (CANINE, ByT5) ที่ทำงานโดยตรงในระดับไบต์หรืออักขระ เพื่อขจัดขั้นตอนการแบ่งโทเคนที่ชัดเจนและปัญหาที่เกี่ยวข้องออกไปอย่างสมบูรณ์
- **การแบ่งโทเคนแบบปรับตัวและเรียนรู้ได้:** การสร้าง tokenizer ที่สามารถปรับตัวแบบไดนามิกตามภาษา โดเมน หรือแม้แต่ข้อความนำเข้าเฉพาะ หรือเรียนรู้ร่วมกับโมเดลหลัก
- **แนวทางที่อิงการรับรู้:** การพัฒนาวิธีการที่ได้รับแรงบันดาลใจจากวิทยาศาสตร์การรับรู้เกี่ยวกับการประมวลผลภาษาของมนุษย์ (เช่น «หลักความพยายามน้อยที่สุด») เพื่อสร้างการแบ่งโทเคนที่มีความหมายเชิงความหมายมากขึ้น

## อ้างอิง

- ภาพรวมการแบ่งโทเคนในหลักสูตร LLM จาก Hugging Face
- เอกสารการแบ่งโทเคนจาก Mistral AI

## บรรณานุกรม

- 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.
