โทเคน (Token) ใน AI คืออะไร และมีวิธีการคำนวณอย่างไร

ผู้เขียน: บรรณาธิการ AI ของ Webizmเผยแพร่: 20 ส.ค. 2569อัปเดต: 11 ก.ย. 25699 นาที

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

Featured image for โทเคน (Token) ใน AI คืออะไร และมีวิธีการคำนวณอย่างไร
Featured image for โทเคน (Token) ใน AI คืออะไร และมีวิธีการคำนวณอย่างไร

โทเคนใน AI คือหน่วยความหมายพื้นฐานของข้อความที่โมเดลภาษาขนาดใหญ่ (Large Language Models หรือ LLMs) รับเข้า วิเคราะห์ และสร้างขึ้น แทนที่จะแยกวิเคราะห์ประโยคทีละตัวอักษรหรือทีละคำ ระบบ AI ยุคใหม่จะพึ่งพาอัลกอริทึมการแปลงเป็นโทเคนระดับคำย่อย (Subword Tokenization) โดยเฉพาะ เช่น Byte-Pair Encoding (BPE) เพื่อแปลงอักขระดิบให้เป็นเวกเตอร์ทางคณิตศาสตร์แบบไม่ต่อเนื่อง การทำความเข้าใจโทเคน (Token) ใน AI คืออะไร และมีวิธีการคำนวณอย่างไรจึงมีความสำคัญอย่างยิ่งสำหรับวิศวกรซอฟต์แวร์ สถาปนิกผลิตภัณฑ์ และผู้มีอำนาจตัดสินใจระดับองค์กร เนื่องจากเป็นปัจจัยที่ควบคุมโครงสร้างต้นทุน API ขีดจำกัดของหน้าต่างบริบท (Context Window) ความหน่วงในการตอบสนอง (Response Latency) ตลอดจนปริมาณงานที่ระบบรองรับได้ (System Throughput) ของโมเดลพื้นฐานระดับองค์กรชั้นนำโดยตรง

ทำความเข้าใจ AI Token: คำจำกัดความพื้นฐาน

ภาพจำลองเชิงแนวคิดแบบนามธรรมของการแยกข้อความออกเป็นหน่วยข้อมูลการคำนวณแบบโมดูลาร์ที่เรืองแสง
โมเดล AI ประมวลผลภาษาธรรมชาติโดยการแยกสตริงที่ต่อเนื่องออกเป็นโทเคนเชิงตัวเลขที่ไม่ต่อเนื่อง

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

เมื่อผู้ใช้ระดับองค์กรส่งพรอมต์ (Prompt) ไปยังโมเดล AI ไม่ว่าจะเป็นการนำเอเจนต์บริการลูกค้าอัตโนมัติไปใช้งาน หรือการสืบค้นข้อมูลระบบอัจฉริยะทางธุรกิจ (Business Intelligence) ภายในองค์กร สถาปัตยกรรมเบื้องหลังจะไม่เข้าใจประโยคนั้นเป็นความคิดของมนุษย์แบบองค์รวม แต่ไปป์ไลน์นำเข้าข้อมูลที่เรียกว่า Tokenizer จะตัดแบ่งข้อความขาเข้านั้นออกเป็นส่วนย่อยๆ ที่ไม่ต่อเนื่องกัน ส่วนย่อยเหล่านี้อาจเป็นคำทั่วไปทั้งคำ ตัวอักษรเดี่ยว เครื่องหมายวรรคตอน หรือรากคำย่อย โดยโทเคนแต่ละหน่วยที่ไม่ซ้ำกันจะถูกจับคู่เข้ากับดัชนีจำนวนเต็มเฉพาะในพจนานุกรมคลังคำศัพท์แบบคงที่ของโมเดล

เมื่อจับคู่เป็นจำนวนเต็มแล้ว โทเคนเหล่านี้จะถูกแปลงเป็นเวกเตอร์เอ็มเบดดิง (Vector Embedding) หลายมิติ ซึ่งเอ็มเบดดิงเหล่านี้จะรวบรวมความเชื่อมโยงเชิงความหมาย ความสัมพันธ์ทางไวยากรณ์ และความหมายตามบริบท ตัวอย่างเช่น โทเคนที่แทนคำว่า "bank" จะครอบครองตำแหน่งพิกัดในปริภูมิเวกเตอร์ที่สอดคล้องใกล้ชิดกับคำศัพท์ทางการเงินหรือภูมิศาสตร์ของแม่น้ำ โดยขึ้นอยู่กับโทเคนบริบทที่อยู่ติดกัน และเนื่องจากโครงข่ายประสาทเทียมเชิงลึก เช่น Transformer ทำการคำนวณกลไกความสนใจตนเอง (Self-Attention) ข้ามเวกเตอร์โทเคนเหล่านี้ โทเคนจึงเป็นหน่วยพื้นฐานของทั้งภาระงานประมวลผลและการคิดค่าบริการในการดำเนินงาน

โทเคนในฐานะองค์ประกอบพื้นฐานของ LLM

โมเดลภาษาขนาดใหญ่ไม่มีความทรงจำในแบบของมนุษย์ แต่จะรักษาลำดับของโทเคนที่ถูกจำกัดขอบเขตทางคณิตศาสตร์ซึ่งเรียกว่าหน้าต่างบริบท (Context Window) โดยทุกโทเคนที่ป้อนเข้าสู่ระบบจะใช้พื้นที่สล็อตที่กำหนดไว้ภายในหน้าต่างนี้ และเมื่อโครงข่ายประสาทเทียมสร้างคำตอบ โมเดลจะดำเนินการส่งผ่านไปข้างหน้า (Forward Pass) เพื่อประเมินการแจกแจงความน่าจะเป็นทั่วทั้งคลังคำศัพท์ จากนั้นจึงเลือกและต่อเติมทีละโทเคนในลูปการถดถอยตนเอง (Autoregressive Loop)

Raw Text: "Autonomous AI orchestration accelerates business operations."
  │
Tokenizer Engine (e.g., Tiktoken / SentencePiece)
  │
Token Breakdown: ["Auto", "nomous", " AI", " or", "che", "stration", " accelerates", " business", " operations", "."]
  │
Token IDs: [15234, 18921, 9552, 451, 892, 12044, 45129, 3942, 10243, 13]
  │
Vector Embeddings: Multi-dimensional numerical tensors passed into Transformer Attention Layers

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

บทบาทของกระบวนการแปลงเป็นโทเคน (Tokenization) ในการประมวลผล AI

การแปลงเป็นโทเคน (Tokenization) คือขั้นตอนการเตรียมข้อมูลเบื้องต้นแบบกำหนดแน่นอน (Deterministic Preprocessing) ที่เกิดขึ้นก่อนการประมวลผลการอนุมานของการเรียนรู้เชิงลึกใดๆ โดยตัวแปลงโทเคน (Tokenizer) จะทำงานแยกต่างหากจากค่าน้ำหนักของโครงข่ายประสาทเทียมหลัก และใช้พจนานุกรมแบบคงที่ซึ่งคอมไพล์ไว้ล่วงหน้าตั้งแต่ขั้นตอนการฝึกฝนโมเดลล่วงหน้า (Pre-training) ตัวอย่างเช่น โมเดลตระกูล GPT-4o ของ OpenAI ใช้ตัวตัดคำaccess_tokenที่มีขนาดคลังคำศัพท์ประมาณ 200,000 โทเคนที่ไม่ซ้ำกัน ในขณะที่โมเดลรุ่นเก่าอย่าง GPT-3.5 และ GPT-4 รุ่นแรกใช้refresh_tokenซึ่งมีขนาดประมาณ 100,000 โทเคน

วิวัฒนาการทางสถาปัตยกรรมนี้ชี้ให้เห็นว่าเหตุใดพรอมต์ที่เหมือนกันทุกประการจึงให้จำนวนโทเคนที่ไม่เท่ากัน ขึ้นอยู่กับตระกูลโมเดลที่ใช้งาน คลังคำศัพท์ที่ใหญ่ขึ้นและได้รับการปรับให้เหมาะสมจะช่วยให้ Tokenizer สามารถรวมคำย่อยที่ยาวขึ้นและวลีหลายภาษาที่ใช้บ่อยเข้าเป็นโทเคนเดี่ยวได้ ซึ่งจะช่วยลดความยาวรวมของลำดับข้อความ ลดความหน่วงในการประมวลผล และลดต้นทุนการดำเนินงานโดยรวมสำหรับการปรับใช้ AI ในระดับการใช้งานจริง (Production-grade)

---

โทเคนเทียบกับคำและตัวอักษร: ทำความเข้าใจความแตกต่างให้ชัดเจน

ภาพจำลองเชิงแนวคิดแบบนามธรรมเปรียบเทียบขนาดเชิงปริมาตรที่แตกต่างกันของโครงสร้างทางภาษา
โทเคนทำหน้าที่เชื่อมช่องว่างระหว่างอักขระเดี่ยวๆ กับคำศัพท์ที่สมบูรณ์

ความสับสนที่พบบ่อยในหมู่ผู้บริหารที่ไม่ใช่สายเทคนิคและผู้วางแผนทางการเงิน คือสมมติฐานที่ว่าหนึ่งโทเคนเท่ากับหนึ่งคำ ในความเป็นจริง โทเคนเป็นหน่วยวัดทางภาษาศาสตร์ที่มีความยืดหยุ่น โดยอัตราส่วนที่แน่นอนระหว่างโทเคน คำ และอักขระ จะผันแปรไปตามโครงสร้างทางภาษา ระบบการเขียน ไวยากรณ์ และคำศัพท์เฉพาะทาง

ในร้อยแก้วภาษาอังกฤษมาตรฐาน ข้อมูลเชิงประจักษ์ได้ให้หลักการคร่าวๆ ที่เชื่อถือได้ อย่างไรก็ตาม การนำเกณฑ์มาตรฐานเหล่านี้ไปใช้กับชุดข้อมูลที่มีโครงสร้าง (structured data payloads), ซอร์สโค้ด หรือชุดตัวอักษรที่ไม่ใช่อักษรละติน จะนำไปสู่ความคลาดเคลื่อนอย่างมีนัยสำคัญในการจัดทำงบประมาณและการวางแผนประสิทธิภาพ

กฎเกณฑ์คร่าวๆ มาตรฐานสำหรับข้อความภาษาอังกฤษ

สำหรับข้อความภาษาอังกฤษมาตรฐานที่สะอาด ตัวแบ่งโทเคนระดับคำย่อย (subword tokenizer) ยุคใหม่จะมีค่าเฉลี่ยทางสถิติที่สม่ำเสมอ:

  • 1 โทเคน ≈ 0.75 คำ:ในทางปฏิบัติแล้ว คำภาษาอังกฤษ 100 คำมักจะใช้โทเคนประมาณ 130 ถึง 135 โทเคน

  • 1 โทเคน ≈ 4 อักขระ:ซึ่งรวมถึงตัวอักษร ตัวเลข และอักขระช่องว่างที่อยู่ด้านหน้า

  • 1,000 โทเคน ≈ 750 คำ:เทียบเท่ากับเอกสารธุรกิจที่พิมพ์แบบบรรทัดเดี่ยว (single-spaced) ประมาณ 1.5 ถึง 2 หน้า

คำทั่วไปอย่าง "the", "market", "software" หรือ "enterprise" จะถูกเข้ารหัสเป็นโทเคนเดี่ยวๆ เพียงหนึ่งโทเคน ส่วนคำที่พบน้อยกว่า โครงสร้างคำประสม และศัพท์เฉพาะทางอุตสาหกรรม จะถูกแบ่งย่อยออกเป็นโทเคนระดับคำย่อยหลายชิ้น ตัวอย่างเช่น คำทั่วไปอย่าง "cat" ใช้ 1 โทเคน ในขณะที่ "chromatography" อาจถูกแบ่งออกเป็นสามโทเคนที่แตกต่างกัน ได้แก่:access_token, refresh_tokenและส่วนย่อยแบบไดนามิกขึ้นอยู่กับเวอร์ชันของตัวแบ่งโทเคน

ภาษาอื่นๆ ที่ไม่ใช่ภาษาอังกฤษและโค้ดส่งผลต่อจำนวนโทเคนอย่างไร

ประสิทธิภาพของการแบ่งโทเคนระดับคำย่อยจะลดลงเมื่อประมวลผลภาษาที่มีสัณฐานวิทยาซับซ้อน มีการประสมคำจำนวนมาก หรือใช้อักษรที่ไม่ใช่อักษรละติน เนื่องจากตัวแบ่งโทเคนยุคแรกได้รับการฝึกฝนจากชุดข้อมูลที่เป็นภาษาอังกฤษเป็นหลัก ภาษาอื่นๆ ที่ไม่ใช่ภาษาอังกฤษจึงมักเผชิญกับปรากฏการณ์ที่เรียกว่า "ภาษีการแปลงโทเคน" (tokenization tax)

Language / Code Payload       Word Count    Token Count (Legacy cl100k)   Token Count (Modern o200k)
-----------------------------------------------------------------------------------------------------
English Business Prose         100 words     ~130 tokens                  ~125 tokens
Spanish / French Marketing     100 words     ~160 tokens                  ~140 tokens
German Technical Manual        100 words     ~210 tokens                  ~165 tokens
Turkish / Finnish Agglutinative100 words     ~240 tokens                  ~175 tokens
Japanese / Chinese Script      100 words     ~280 tokens                  ~190 tokens
Python / JavaScript Code       100 words     ~220 tokens                  ~180 tokens
JSON Structured Data Payload   100 words     ~250 tokens                  ~200 tokens

ในภาษาที่มีการเชื่อมคำแบบเกาะติด (agglutinative languages) เช่น ภาษาตุรกี ฟินแลนด์ หรือฮังการี ความสัมพันธ์ทางไวยากรณ์จะแสดงออกมาโดยการต่อเติมคำต่อท้าย (suffix) จำนวนมากเข้ากับคำรากศัพท์ ตัวแบ่งโทเคนรุ่นเก่าอาจแยกคำประสมเพียงคำเดียวออกเป็นชิ้นส่วนคำย่อยถึง 4 ถึง 7 ชิ้น ในทำนองเดียวกัน ภาษาที่ใช้อักษรภาพหรืออักษรที่ไม่ใช่อักษรละติน (เช่น ภาษาอาหรับ ฮินดี ญี่ปุ่น และซิริลลิก) ในอดีตจำเป็นต้องใช้หลายโทเคนต่อหนึ่งอักขระ ซึ่งทำให้ค่าใช้จ่ายในการดำเนินงานของ API สูงขึ้นอย่างมีนัยสำคัญ

ซอร์สโค้ดของซอฟต์แวร์และข้อมูล JSON ที่มีโครงสร้างก่อให้เกิดภาระโอเวอร์เฮดเฉพาะตัว ช่องว่างในการเยื้อง (indentation), วงเล็บ, ตัวคั่นโครงสร้าง และชื่อตัวแปรแบบ camelCase (เช่นcalculateEnterpriseBillingMetrics()) มักจะทำให้การจับคู่พจนานุกรมมาตรฐานหยุดชะงัก ส่งผลให้ตัวแบ่งโทเคนแยกโค้ดออกเป็นอักขระเดี่ยวๆ หรือกลุ่มอักขระละสองตัว

---

กลไกของอัลกอริทึมการแบ่งโทเคน

การแบ่งโทเคนไม่ได้เกิดขึ้นโดยการสุ่ม แต่ต้องอาศัยโมเดลการหาค่าที่เหมาะสมที่สุดทางคณิตศาสตร์ (mathematical optimization models) ที่ออกแบบมาเพื่อสร้างสมดุลระหว่างขนาดคลังคำศัพท์ (vocabulary size) กับความยาวลำดับ (sequence length) วัตถุประสงค์หลักคือการนำเสนอชุดข้อมูลข้อความขนาดใหญ่โดยใช้ลำดับของโทเคนที่มีความยาวสั้นที่สุด โดยไม่ขยายคลังคำศัพท์ของโมเดลจนเกินขีดจำกัดที่สามารถจัดการได้ในการคำนวณ

สถาปัตยกรรม NLP ในยุคแรกอาศัยการแบ่งโทเคนระดับคำล้วนๆ หรือไม่ก็การแบ่งโทเคนระดับอักขระล้วนๆ ซึ่งทั้งสองแนวทางต่างแสดงให้เห็นถึงข้อจำกัดในการปฏิบัติงานที่รุนแรงในสภาพแวดล้อมการใช้งานจริง (production)

  • การแบ่งโทเคนระดับคำ (Word-Level Tokenization):ประสบปัญหาจากการที่ไม่สามารถประมวลผลคำที่อยู่นอกคลังคำศัพท์ (out-of-vocabulary หรือ OOV), คำพิมพ์ผิด หรือศัพท์เฉพาะทางเทคนิคใหม่ๆ ได้ ทำให้ต้องใช้พจนานุกรมขนาดมหึมาและไม่มีประสิทธิภาพ

  • การแบ่งโทเคนระดับอักขระ (Character-Level Tokenization):ขจัดข้อผิดพลาดเรื่องคำนอกคลังคำศัพท์ได้ แต่จะสร้างความยาวลำดับที่ยาวเกินไป ทำให้กลไก attention ของ transformer ลดประสิทธิภาพลง และเพิ่มความหน่วงในการคำนวณ (computational latency) ให้สูงขึ้น

  • การแบ่งโทเคนระดับคำย่อย (Subword-Level Tokenization):มาตรฐานยุคใหม่ โดยจะคงคำทั่วไปไว้เป็นหน่วยเดี่ยว ในขณะที่แยกย่อยคำที่หายากหรือซับซ้อนออกเป็นชิ้นส่วนคำย่อยที่จดจำได้ ซึ่งช่วยแก้ปัญหาคำนอกคลังคำศัพท์ได้อย่างสิ้นเชิง

คำอธิบายเกี่ยวกับ Byte-Pair Encoding (BPE)

Byte-Pair Encoding เป็นอัลกอริทึมการแบ่งโทเคนที่ได้รับความนิยมสูงสุดใน LLM ระดับชั้นนำ รวมถึงตระกูลโมเดล GPT, LLaMA และ Mistral โดยเดิมทีได้รับการพัฒนาขึ้นเพื่อเป็นเทคนิคการบีบอัดข้อมูล ซึ่ง BPE จะสร้างคลังคำศัพท์ขึ้นมาแบบวนซ้ำจากคลังข้อมูลฝึกฝน (training corpus) พื้นฐาน

อัลกอริทึมทำงานผ่านขั้นตอนตามลำดับที่ชัดเจน ดังนี้:

  1. การกำหนดค่าเริ่มต้น (Initialization):ตัวแบ่งโทเคนจะเริ่มต้นด้วยคลังคำศัพท์พื้นฐานที่มีอักขระเดี่ยวทั้งหมด (หรือไบต์ดิบ) ที่พบในคลังข้อมูล

  2. การวิเคราะห์ความถี่ (Frequency Analysis):ระบบจะสแกนคลังข้อมูลเพื่อระบุคู่โทเคนที่อยู่ติดกันซึ่งเกิดขึ้นบ่อยที่สุด (เช่นaccess_tokenตามด้วยrefresh_token).

  3. การผสานรวมแบบวนซ้ำ (Iterative Merging):คู่โทเคนที่พบบ่อยที่สุดจะถูกผสานรวมเป็นโทเคนใหม่ที่เป็นหนึ่งเดียว ("un") ซึ่งจะถูกเพิ่มเข้าไปในคลังคำศัพท์

  4. การทำซ้ำ:อัลกอริทึมจะสแกนชุดข้อมูลอีกครั้งและดำเนินการรวมคู่ที่พบบ่อยที่สุดต่อไป (เช่นexample.com + user_id"unrelated") จนกระทั่งถึงเกณฑ์ขนาดคลังคำศัพท์เป้าหมายที่กำหนดไว้ล่วงหน้า (เช่น 32,000, 100,000 หรือ 200,000 รายการ)

Step 0 (Initial Base Characters):  ['l', 'o', 'w', 'e', 'r', 'n', 'e', 'w', 'e', 's', 't']
Iteration 1 (Merge 'e' + 'r'):     ['l', 'o', 'w', 'er', 'n', 'e', 'w', 'e', 's', 't']
Iteration 2 (Merge 'e' + 's'):     ['l', 'o', 'w', 'er', 'n', 'ew', 'es', 't']
Iteration 3 (Merge 'es' + 't'):    ['l', 'o', 'w', 'er', 'n', 'ew', 'est']
Iteration 4 (Merge 'l' + 'o' + 'w'):['low', 'er', 'n', 'ew', 'est']

เมื่อนำไปใช้งานจริงในสภาพแวดล้อมโปรดักชัน ตัวแบ่งโทเคน BPE จะประเมินสตริงข้อความขาเข้าเทียบกับตารางการรวมที่คำนวณไว้ล่วงหน้าในแบบย้อนกลับ เพื่อแยกย่อยข้อความใหม่ที่ไม่เคยเห็นมาก่อนให้เป็นหน่วยคำย่อย (Subword Units) ที่ใหญ่ที่สุดเท่าที่ระบบจะจดจำได้

กระบวนทัศน์การแบ่งโทเคนรูปแบบอื่น: WordPiece, Unigram และ SentencePiece

แม้ว่า BPE จะเป็นกระบวนทัศน์หลักในสถาปัตยกรรมแบบ Autoregressive ในปัจจุบัน แต่อัลกอริทึมการแบ่งโทเคนทางเลือกอื่น ๆ ก็ยังมีใช้งานอยู่ในเฟรมเวิร์ก AI ชั้นนำต่าง ๆ:

  • WordPiece:ได้รับความนิยมจากสถาปัตยกรรม BERT ของ Google โดย WordPiece มีความคล้ายคลึงกับ BPE แต่จะเลือกการรวมคำโดยอิงตามการเพิ่มค่าความน่าจะเป็นสูงสุด (Likelihood Maximization) แทนที่จะนับความถี่เพียงอย่างเดียว โดยจะประเมินว่าการจับคู่อักขระใดช่วยเพิ่มคะแนนความน่าจะเป็นของแบบจำลองภาษาเชิงสถิติได้สูงสุดเมื่อถูกรวมเข้าด้วยกัน

  • Unigram Tokenization:นำไปใช้ในโมเดลอย่าง T5 และ ALBERT โดย Unigram จะทำงานย้อนกลับจากกระบวนการของ BPE คือเริ่มต้นด้วยคลังคำศัพท์ขนาดใหญ่มาก แล้วค่อย ๆ ตัดทอนคำย่อยที่ซ้ำซ้อนหรือมีความน่าจะเป็นต่ำออกไปเรื่อย ๆ จนกระทั่งได้ขนาดพจนานุกรมเป้าหมายที่เหมาะสมที่สุด

  • SentencePiece:พัฒนาโดย Google โดย SentencePiece จะจัดการข้อความขาเข้าในฐานะสตรีมอักขระดิบซึ่งรวมถึงช่องว่าง (เข้ารหัสเป็นอักขระเมทาที่ชัดเจน เช่น_) ซึ่งช่วยขจัดความจำเป็นในการใช้กฎการแบ่งส่วนข้อความล่วงหน้าเฉพาะภาษา ทำให้มีประสิทธิภาพสูงมากสำหรับโมเดลหลายภาษา เช่น LLaMA และ Gemini

---

ในทางปฏิบัติ โทเคน AI มีวิธีคำนวณอย่างไร?

การคำนวณปริมาณการใช้โทเคนจำเป็นต้องตรวจสอบการทำงานของตัวแบ่งโทเคนเฉพาะของโมเดลพื้นฐานเป้าหมาย เนื่องจากสถาปัตยกรรมของโมเดลที่แตกต่างกันจะใช้คลังคำศัพท์และรูปแบบการเข้ารหัสที่ไม่เหมือนกัน ดังนั้นการส่งเพย์โหลดข้อความเดียวกันไปยัง GPT-4o ของ OpenAI, Claude 3.5 Sonnet ของ Anthropic และ Gemini 1.5 Pro ของ Google จึงให้จำนวนโทเคนที่แตกต่างกัน

ในการพัฒนาซอฟต์แวร์ระดับโปรดักชัน วิศวกรจะพึ่งพาไลบรารีระดับโปรแกรมที่สร้างขึ้นมาสำหรับโมเดลนั้น ๆ โดยเฉพาะ เพื่อคำนวณจำนวนโทเคนที่แน่นอนก่อนส่งคำขอไปยัง API Endpoint

การใช้ตัวแบ่งโทเคนระดับโปรแกรม

สำหรับโมเดลของ OpenAI เอนจินการนับโทเคนอย่างเป็นทางการที่มีประสิทธิภาพสูงคือไลบรารีtiktoken(มีให้ใช้งานใน Python, Node.js และ Rust) ซึ่งช่วยให้นักพัฒนาสามารถคำนวณแบบออฟไลน์ได้โดยไม่ต้องสิ้นเปลืองเครดิต API หรือเกิดความหน่วงเครือข่าย

import tiktoken

def calculate_exact_tokens(text: str, model_name: str = "gpt-4o") -> int:
    """
    Calculates the exact token count for a given text string
    using model-specific encoding standards.
    """
    try:
        encoding = tiktoken.encoding_for_model(model_name)
    except KeyError:
        # Fallback to standard base encoding if model identifier is custom
        encoding = tiktoken.get_encoding("o200k_base")
    
    token_integers = encoding.encode(text)
    return len(token_integers)

sample_prompt = "Execute an enterprise risk audit for cloud infrastructure."
token_count = calculate_exact_tokens(sample_prompt, "gpt-4o")
print(f"Total Tokens: {token_count}")
# Output: Total Tokens: 9

สำหรับโมเดลนอกระบบนิเวศของ OpenAI:

  • Anthropic Claude:ใช้ตัวแบ่งโทเคนเฉพาะที่เป็นกรรมสิทธิ์ซึ่งเปิดให้ใช้งานผ่านaccess_tokenเมธอดการนับโทเคน หรือผ่านrefresh_tokenendpoint

  • สถาปัตยกรรมโอเพนซอร์ส (LLaMA, Mistral):จัดการโดยใช้ไลบรารีaccess_tokenของ Hugging Face ผ่านคลาสrefresh_tokenโดยโหลดการกำหนดค่าtokenizer.jsonเฉพาะของโมเดลนั้น ๆ

โทเคนขาเข้า (Prompt) กับ โทเคนขาออก (Completion)

การคำนวณโทเคนจำเป็นต้องแยกความแตกต่างระหว่างเพย์โหลด 2 หมวดหมู่ตลอดวงจรการทำงานของ API:

  1. โทเคนขาเข้า (Prompt):ข้อความที่ส่งไปยังโมเดล ซึ่งรวมถึงคำสั่งระบบ (System Instructions), พรอมต์ของนักพัฒนา, เอกสารแนบ, ตัวอย่างแบบ Few-shot และประวัติการสนทนาก่อนหน้า

  2. โทเคนขาออก (Completion):ข้อความที่โมเดลสร้างขึ้นเพื่อตอบกลับ

ความแตกต่างนี้มีความสำคัญอย่างยิ่งในเชิงปฏิบัติการ เนื่องจากโทเคนขาออกนั้นต้องใช้ทรัพยากรการคำนวณที่สูงกว่าโทเคนขาเข้าอย่างมากในระหว่างกระบวนการสร้างข้อความ โมเดลจะต้องประมวลผลการอนุมานไปข้างหน้า (Forward Inference Pass) อย่างเต็มรูปแบบสำหรับทุก ๆ หนึ่งโทเคนที่สร้างขึ้น พร้อมทั้งรักษาการคงสถานะ (State) ผ่านพารามิเตอร์นับพันล้านตัว ในทางตรงกันข้าม โทเคนขาเข้าสามารถประมวลผลได้พร้อมกันผ่านการดำเนินการทางเมทริกซ์แบบคู่ขนานในขั้นตอน Pre-fill

API Request Breakdown:
┌─────────────────────────────────────────────────────────────┐
│ INPUT (Prompt Tokens)                                       │
│ ├─ System Instructions: "You are a legal analyst..." (35 t)  │
│ ├─ Context / Document: [Contract PDF Text]           (1,200 t)│
│ └─ User Query: "Summarize clause 4.2"               (12 t)   │
│ Total Input Tokens = 1,247 tokens                           │
└─────────────────────────────────────────────────────────────┘
                             │
                             ▼  [Model Inference Execution]
┌─────────────────────────────────────────────────────────────┐
│ OUTPUT (Completion Tokens)                                  │
│ └─ Model Response: "Clause 4.2 states that..."      (185 t)  │
│ Total Output Tokens = 185 tokens                            │
└─────────────────────────────────────────────────────────────┘

นอกจากนี้ รูปแบบขั้นสูงอย่าง ChatML (Chat Markup Language) ยังแทรกโทเคนโครงสร้าง (structural framing tokens) ที่มองไม่เห็น (เช่นaccess_token, refresh_token) ไว้เบื้องหลังเพื่อระบุบทบาทในการสนทนา ตรรกะการคำนวณระดับองค์กรจึงต้องคำนึงถึงโอเวอร์เฮดเชิงโครงสร้างเพิ่มเติมเหล่านี้ (โดยทั่วไปคือ 3 ถึง 4 โทเคนต่อรอบการรับส่งข้อความ)

---

ผลกระทบทางธุรกิจ: เหตุใดการคำนวณโทเคนจึงมีความสำคัญ

ภาพจำลองแนวคิดเชิงนามธรรมของการขยายประสิทธิภาพทางการเงิน ความสมดุล และขีดจำกัดของทรัพยากร
การจัดการโทเคนส่งผลกระทบโดยตรงต่อค่าใช้จ่ายในการดำเนินงานขององค์กรและขีดจำกัดอัตราการประมวลผล (throughput) ของโครงสร้างพื้นฐาน

สำหรับองค์กรที่ผสานรวม AI เข้ากับซอฟต์แวร์ระดับองค์กร ระบบอัตโนมัติภายใน หรือแพลตฟอร์ม SaaS การคำนวณโทเคนถือเป็นเมทริกซ์พื้นฐานทั้งในแง่การเงินและสถาปัตยกรรมระบบ การปล่อยให้การใช้งานโทเคนเป็นตัวแปรที่ไม่ได้รับการตรวจสอบจะนำไปสู่ปัญหางบประมาณบานปลาย ความหน่วง (latency) พุ่งสูงขึ้น และประสบการณ์ของผู้ใช้ที่ด้อยลง

ทุกการตัดสินใจทางสถาปัตยกรรม—ตั้งแต่การสร้างพรอมต์และการดึงข้อมูลบริบท ไปจนถึงการเลือกรุ่นโมเดล—ล้วนส่งผลกระทบต่อปริมาณการใช้โทเคนโดยตรง ซึ่งจะเพิ่มขึ้นตามสัดส่วนของปริมาณผู้ใช้งาน

การจัดการต้นทุน API และการหลีกเลี่ยงค่าบริการที่เกินความคาดหมาย

ผู้ให้บริการโมเดลพื้นฐาน (foundation model) สมัยใหม่จะคิดค่าบริการตามหน่วย 1,000 (1k) หรือ 1,000,000 (1M) โทเคน โดยการสร้างผลลัพธ์ (output) จะมีราคาสูงกว่าการประมวลผลอินพุต (input) อย่างมีนัยสำคัญ ซึ่งมักจะสูงกว่าถึง 3 ถึง 5 เท่า

ผู้ให้บริการและตระกูลโมเดลค่าบริการ Input (ต่อ 1 ล้านโทเคน)ค่าบริการ Output (ต่อ 1 ล้านโทเคน)ขีดจำกัด Context Window
OpenAI GPT-4o$2.50$10.00128,000 โทเคน
OpenAI GPT-4o-mini$0.15$0.60128,000 โทเคน
Anthropic Claude 3.5 Sonnet$3.00$15.00200,000 โทเคน
Anthropic Claude 3.5 Haiku$0.80$4.00200,000 โทเคน
Google Gemini 1.5 Flash$0.075$0.301,000,000 โทเคน
Google Gemini 1.5 Pro$3.50$10.502,000,000 โทเคน

OpenAI GPT-4o

ค่าบริการ Input (ต่อ 1 ล้านโทเคน)

$2.50

ค่าบริการ Output (ต่อ 1 ล้านโทเคน)

$10.00

ขีดจำกัด Context Window

128,000 โทเคน

OpenAI GPT-4o-mini

ค่าบริการ Input (ต่อ 1 ล้านโทเคน)

$0.15

ค่าบริการ Output (ต่อ 1 ล้านโทเคน)

$0.60

ขีดจำกัด Context Window

128,000 โทเคน

Anthropic Claude 3.5 Sonnet

ค่าบริการ Input (ต่อ 1 ล้านโทเคน)

$3.00

ค่าบริการ Output (ต่อ 1 ล้านโทเคน)

$15.00

ขีดจำกัด Context Window

200,000 โทเคน

Anthropic Claude 3.5 Haiku

ค่าบริการ Input (ต่อ 1 ล้านโทเคน)

$0.80

ค่าบริการ Output (ต่อ 1 ล้านโทเคน)

$4.00

ขีดจำกัด Context Window

200,000 โทเคน

Google Gemini 1.5 Flash

ค่าบริการ Input (ต่อ 1 ล้านโทเคน)

$0.075

ค่าบริการ Output (ต่อ 1 ล้านโทเคน)

$0.30

ขีดจำกัด Context Window

1,000,000 โทเคน

Google Gemini 1.5 Pro

ค่าบริการ Input (ต่อ 1 ล้านโทเคน)

$3.50

ค่าบริการ Output (ต่อ 1 ล้านโทเคน)

$10.50

ขีดจำกัด Context Window

2,000,000 โทเคน

หมายเหตุ: เมทริกซ์ราคาอ้างอิงตามเกณฑ์มาตรฐานสาธารณะของผู้ให้บริการ ณ กลางปี 2026 โดยอัตราสำหรับองค์กรอาจแตกต่างกันไปตามระดับข้อตกลงการใช้งาน (commitment tiers), ข้อตกลงการประมวลผลแบบแบทช์ (batch processing) และสถาปัตยกรรมการทำแคช (caching)

ลองพิจารณาองค์กรที่ต้องประมวลผลข้อซักถามของลูกค้า 100,000 รายการต่อวัน หากพรอมต์ระบบ (system prompt) ที่ไม่ได้ผ่านการปรับให้เหมาะสมมีข้อมูลเบื้องหลังขององค์กรที่ไม่จำเป็นและซ้ำซ้อนถึง 500 โทเคน และสร้างคำตอบที่เยิ่นเย้อถึง 400 โทเคน ทั้งที่ความจริงใช้เพียง 100 โทเคนก็เพียงพอ:

  • Input ส่วนเกิน:100,000 คำขอ × 500 โทเคนส่วนเกิน = 50,000,000 โทเคน input ส่วนเกิน/วัน

  • Output ส่วนเกิน:100,000 คำขอ × 300 โทเค็นส่วนเกิน = โทเค็นเอาต์พุตส่วนเกิน 30,000,000 โทเค็น/วัน

  • ความสูญเสียทางการเงินรายเดือน (เกณฑ์มาตรฐาน GPT-4o): (50M × 2.50)+(30M×2.50) + (30M ×10.00)ต่อวัน = $425/วัน →ค่าใช้จ่าย API ที่ไม่จำเป็นประมาณ ~$12,750/เดือน.

การรับมือกับขีดจำกัด Context Window และ Rate Limiting

Context window กำหนดขอบเขตการทำงานสูงสุดของสิ่งที่โมเดลสามารถทำความเข้าใจได้ในการโต้ตอบครั้งเดียว แม้ว่าสถาปัตยกรรมสมัยใหม่จะรองรับ context window ตั้งแต่ 128,000 ไปจนถึงมากกว่า 2,000,000 โทเค็น แต่การใช้บริบทขนาดใหญ่โดยไม่พิจารณาอย่างรอบคอบจะก่อให้เกิดความเสี่ยงสำคัญ 2 ประการ:

  1. การเสื่อมถอยของบริบท ("Lost in the Middle"):งานวิจัยเชิงประจักษ์ระบุว่า เมื่อความยาวของบริบทขยายไปสู่ระดับหลายแสนโทเค็น กลไก Attention ของ Transformer จะเริ่มมีปัญหาเรื่องความแม่นยำในการดึงข้อมูล (Recall) ซึ่งบางครั้งอาจมองข้ามรายละเอียดปลีกย่อยที่สำคัญซึ่งซ่อนอยู่ตรงกลางของพรอมต์ขนาดยาว

  2. ขีดจำกัดอัตราการใช้งาน (การจำกัด TPM/RPM):ผู้ให้บริการโครงสร้างพื้นฐานจะบังคับใช้โควตาTokens Per Minute (TPM)และRequests Per Minute (RPM)อย่างเคร่งครัด การส่งเพย์โหลดเอกสารขนาดใหญ่เกินไปอาจทำให้ขีดจำกัด TPM ระดับองค์กรหมดลงภายในเวลาไม่กี่วินาที ส่งผลให้เกิดข้อยกเว้น HTTP429 Too Many Requestsที่ทำให้เวิร์กโฟลว์ระดับโปรดักชันหยุดการทำงาน

Retrieval-Augmented Generation (RAG) และโอเวอร์เฮดของโทเค็น

ในระบบ Retrieval-Augmented Generation (RAG) ระดับองค์กร การคำนวณโทเค็นจะเป็นตัวกำหนดระดับความละเอียดของการค้นคืนข้อมูล (Retrieval granularity) เมื่อเอกสารในฐานความรู้ถูกแบ่งส่วน (Chunking) เข้าสู่ฐานข้อมูลเวกเตอร์ ทีมวิศวกรรมจะต้องกำหนดขนาดของชังก์ (เช่น 256, 512 หรือ 1024 โทเค็น)

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

---

แนวทางปฏิบัติเชิงกลยุทธ์ที่ดีที่สุดสำหรับการเพิ่มประสิทธิภาพพรอมต์และบริบท

การเพิ่มประสิทธิภาพการใช้โทเค็นไม่จำเป็นต้องแลกมาด้วยการลดทอนความฉลาดของโมเดลหรือคุณภาพของเอาต์พุต แต่เป็นการนำรูปแบบการออกแบบเชิงสถาปัตยกรรมมาใช้เพื่อกำจัดความฟุ่มเฟือยของบทสนทนา ใช้ประโยชน์จากกลไกการแคชของผู้ให้บริการ และสร้างสมดุลระหว่างความกระชับของพรอมต์กับความแม่นยำของบริบท

ระบบซอฟต์แวร์ระดับองค์กรควรปฏิบัติต่อโทเค็นเสมือนเป็นทรัพยากรที่มีอยู่อย่างจำกัดและมีการคิดค่าบริการตามปริมาณการใช้งานจริง เช่นเดียวกับ IOPS ในการอ่าน/เขียนฐานข้อมูล หรือแบนด์วิดท์ของระบบคลาวด์

เทคนิคในการลดการใช้โทเค็น

  • ตัดความสุภาพในบทสนทนาออกไป:คำทักทายหรือคำเกริ่นนำ ("ได้โปรด", "กรุณาวิเคราะห์", "ขอบคุณมาก") สิ้นเปลืองโทเค็นโดยไม่จำเป็น ทั้งนี้ LLM ทำงานตามคำสั่งเชิงคณิตศาสตร์ ดังนั้นคำสั่งที่ตรงไปตรงมาและมีโครงสร้างชัดเจนจะให้ความน่าเชื่อถือในผลลัพธ์ที่แม่นยำกว่าและใช้โทเค็นน้อยกว่า

  • ใช้คำสั่งกำหนดรูปแบบที่กระชับ:แทนที่จะเขียนอธิบายรูปแบบที่ต้องการเป็นย่อหน้ายาวๆ ให้กำหนด Schema โครงสร้างมาตรฐาน (เช่น YAML หรือ JSON แบบกระชับ) ลงใน System Prompt โดยตรง

  • นำสถาปัตยกรรม Prompt Caching มาใช้:API ของโมเดลพื้นฐานสมัยใหม่ (รวมถึง Anthropic, OpenAI และ DeepSeek) รองรับPrompt Cachingเมื่อ System Prompt ขนาดใหญ่หรือเอกสารอ้างอิงไม่มีการเปลี่ยนแปลงในแต่ละคำขอ ผู้ให้บริการจะแคชสถานะของโทเค็นที่ประมวลผลแล้วไว้ ซึ่งช่วยลดต้นทุนได้มากถึง 50% ถึง 90% และลดเวลาแฝง (Latency) สำหรับโทเค็นอินพุตที่ถูกแคชไว้

  • ใช้การกำหนดเส้นทางโมเดลตามลำดับชั้น (Hierarchical Model Routing):กำหนดเส้นทางงานจำแนกประเภทและงานส่งต่อง่ายๆ ไปยังโมเดลขนาดเล็กที่มีต้นทุนต่ำมาก (เช่น GPT-4o-mini, Claude 3.5 Haiku, Gemini 1.5 Flash) และสงวนโมเดลประมวลผลการใช้เหตุผลระดับสูง (GPT-4o, Claude 3.5 Sonnet) ไว้สำหรับงานวิเคราะห์ที่ซับซ้อนโดยเฉพาะ

  • บังคับใช้ข้อจำกัดเอาต์พุตอย่างเข้มงวด:จำกัดการสร้างเอาต์พุตผ่านพารามิเตอร์ของ API อย่างmax_tokensและสั่งให้โมเดลตอบกลับเป็นหัวข้อย่อยหรือบทสรุปสำหรับผู้บริหารที่กระชับ แทนที่จะเป็นความเรียงในรูปแบบบทสนทนา

Unoptimized Prompt (142 tokens):
"Hello AI assistant! Could you please be so kind as to look over this financial text and give me a complete, thorough, and highly detailed breakdown of what the total revenue was for the company last year? I would appreciate it if you could make sure not to include any unnecessary fluff and just give me the core financial metrics in a list format. Thank you!"

Optimized Prompt (22 tokens):
"Extract FY2025 revenue metrics from the text. Output format: Markdown bullet list. Include only verified currency figures."

พรอมต์ที่ผ่านการเพิ่มประสิทธิภาพสามารถสกัดข้อมูลได้เทียบเท่าเดิม ขณะที่ลดโอเวอร์เฮดของพรอมต์ลงได้84%.

---

คำถามที่พบบ่อย

S1: 1,000 โทเคนในภาษาอังกฤษมาตรฐานคิดเป็นกี่คำ?
C1: ในข้อความภาษาอังกฤษมาตรฐาน 1,000 โทเคนจะเทียบเท่ากับประมาณ 750 คำ โดยหลักเกณฑ์ทั่วไปนี้จะประมาณไว้ที่ราว 0.75 คำต่อหนึ่งโทเคน หรือ 4 ตัวอักษรต่อหนึ่งโทเคนสำหรับข้อความทางธุรกิจและบทสนทนาทั่วไป

S2: ช่องว่างและเครื่องหมายวรรคตอนนับเป็นโทเคนในโมเดล AI หรือไม่?
C2: นับ โดยเครื่องหมายวรรคตอน สัญลักษณ์ และช่องว่างล้วนถูกนับเป็นโทเคน ในตัวแปลงโทเคนระดับคำย่อย (subword tokenizer) ยุคใหม่อย่าง Byte-Pair Encoding ช่องว่างนำหน้ามักจะถูกจัดกลุ่มรวมเข้ากับคำย่อยที่ตามมา ในขณะที่เครื่องหมายวรรคตอนเดี่ยว ๆ มักจะใช้ไปหนึ่งโทเคนเต็ม

S3: เหตุใดภาษาอื่นที่ไม่ใช่ภาษาอังกฤษจึงใช้จำนวนโทเคนมากกว่าสำหรับเนื้อหาเดียวกัน?
C3: ตัวแปลงโทเคนของโมเดลพื้นฐาน (foundation model) ส่วนใหญ่ได้รับการฝึกฝนด้วยชุดข้อมูลที่มีข้อความภาษาอังกฤษเป็นหลัก ส่งผลให้มีคลังคำศัพท์สำหรับภาษาอื่นน้อยกว่า ด้วยเหตุนี้ คำในภาษาที่ไม่ได้ใช้ชุดตัวอักษรละตินหรือภาษาที่มีโครงสร้างทางสัณฐานวิทยาซับซ้อน จึงถูกแยกออกเป็นคำย่อยขนาดเล็กหลายคำหรือเป็นตัวอักษรเดี่ยวๆ ซึ่งทำให้จำนวนโทเคนรวมเพิ่มขึ้น

S4: อินพุตโทเคนและเอาต์พุตโทเคนมีความแตกต่างกันอย่างไร?
C4: อินพุตโทเคนประกอบด้วยข้อความที่ส่งไปยังโมเดล (รวมถึง system prompt, เอกสาร และประวัติคำถาม) ในขณะที่เอาต์พุตโทเคนคือหน่วยข้อมูลใหม่ที่โมเดลสร้างขึ้น ซึ่งเอาต์พุตโทเคนจะมีราคาสูงกว่าอย่างมีนัยสำคัญ เนื่องจากต้องใช้การอนุมานแบบต่อเนื่องอัตโนมัติ (autoregressive inference) ที่ต้องประมวลผลตามลำดับและใช้ทรัพยากรการคำนวณสูง

S5: นักพัฒนาสามารถนับจำนวนโทเคนอย่างแม่นยำก่อนส่งคำขอ API ได้อย่างไร?
C5: นักพัฒนาสามารถใช้ไลบรารีแปลงโทเคนแบบออฟไลน์เฉพาะสำหรับโมเดล เช่นaccess_tokenของ OpenAI สำหรับโมเดล GPT หรือโมดูลตัวแปลงโทเคนrefresh_tokenของ Hugging Face สำหรับโมเดลแบบโอเพนเวท (open-weight models) ซึ่งแพ็กเกจเหล่านี้จะประมวลผลข้อความภายในเครื่องโดยไม่ต้องเรียกใช้เครือข่ายหรือเสียค่าใช้จ่าย API

S6: จะเกิดอะไรขึ้นหากพรอมต์ที่ส่งไปยัง API มีขนาดเกินขีดจำกัดของหน้าต่างบริบท (context window) ของโมเดล?
C6: หากพรอมต์ที่ส่งเข้ามามีขนาดเกินหน้าต่างบริบทสูงสุดของโมเดล เอ็นด์พอยต์ของ API จะปฏิเสธคำขอและส่งคืนรหัสข้อผิดพลาด (เช่น HTTP 400) แอปพลิเคชันจึงจำเป็นต้องตัดทอนหรือสรุปประวัติบริบทเพื่อให้ยังคงอยู่ภายในขอบเขตสถาปัตยกรรมที่กำหนดไว้

S7: การใช้โหมด JSON หรือผลลัพธ์แบบมีโครงสร้าง (structured outputs) จะเพิ่มการใช้โทเคนหรือไม่?
C7: ใช่ ผลลัพธ์แบบมีโครงสร้างอย่างเช่น JSON จำเป็นต้องมีคีย์ เครื่องหมายคำพูด วงเล็บ และการจัดรูปแบบไวยากรณ์เฉพาะที่กินโทเคนเพิ่มเติม อย่างไรก็ตาม ภาระการใช้ทรัพยากรส่วนนี้มักถือว่าคุ้มค่าเมื่อแลกกับความสามารถในการคาดเดาและความสะดวกในการแยกวิเคราะห์ด้วยโปรแกรมสำหรับระบบซอฟต์แวร์ปลายน้ำ

S8: การแคชพรอมต์ (prompt caching) ช่วยลดต้นทุนค่าโทเคนสำหรับแอปพลิเคชันระดับองค์กรได้อย่างไร?
C8: การแคชพรอมต์ช่วยให้ผู้ให้บริการ API สามารถจัดเก็บสถานะทางคณิตศาสตร์ที่คำนวณแล้วของอินพุตแบบคงที่ที่ใช้งานบ่อย (เช่น คำสั่งระบบขนาดใหญ่หรือเอกสารมาตรฐาน) เมื่อคำขอถัดๆ ไปนำคำนำหน้าข้อความ (prefix) ที่เหมือนกันเหล่านี้มาใช้ซ้ำ ผู้ให้บริการจะประมวลผลได้โดยมีเวลาแฝง (latency) ลดลง และมอบส่วนลดค่าใช้จ่ายสำหรับอินพุตได้สูงสุดถึง 50% ถึง 90%

คำถามที่พบบ่อย

1,000 โทเคนในภาษาอังกฤษมาตรฐานคิดเป็นกี่คำ?

ในข้อความภาษาอังกฤษมาตรฐาน 1,000 โทเคนจะเทียบเท่ากับประมาณ 750 คำ โดยหลักเกณฑ์ทั่วไปนี้จะประมาณไว้ที่ราว 0.75 คำต่อหนึ่งโทเคน หรือ 4 ตัวอักษรต่อหนึ่งโทเคนสำหรับข้อความทางธุรกิจและบทสนทนาทั่วไป

ช่องว่างและเครื่องหมายวรรคตอนนับเป็นโทเคนในโมเดล AI หรือไม่?

นับ โดยเครื่องหมายวรรคตอน สัญลักษณ์ และช่องว่างล้วนถูกนับเป็นโทเคน ในตัวแปลงโทเคนระดับคำย่อย (subword tokenizer) ยุคใหม่อย่าง Byte-Pair Encoding ช่องว่างนำหน้ามักจะถูกจัดกลุ่มรวมเข้ากับคำย่อยที่ตามมา ในขณะที่เครื่องหมายวรรคตอนเดี่ยว ๆ มักจะใช้ไปหนึ่งโทเคนเต็ม

เหตุใดภาษาอื่นที่ไม่ใช่ภาษาอังกฤษจึงใช้จำนวนโทเคนมากกว่าสำหรับเนื้อหาเดียวกัน?

ตัวแปลงโทเคนของโมเดลพื้นฐาน (foundation model) ส่วนใหญ่ได้รับการฝึกฝนด้วยชุดข้อมูลที่มีข้อความภาษาอังกฤษเป็นหลัก ส่งผลให้มีคลังคำศัพท์สำหรับภาษาอื่นน้อยกว่า ด้วยเหตุนี้ คำในภาษาที่ไม่ได้ใช้ชุดตัวอักษรละตินหรือภาษาที่มีโครงสร้างทางสัณฐานวิทยาซับซ้อน จึงถูกแยกออกเป็นคำย่อยขนาดเล็กหลายคำหรือเป็นตัวอักษรเดี่ยวๆ ซึ่งทำให้จำนวนโทเคนรวมเพิ่มขึ้น

อินพุตโทเคนและเอาต์พุตโทเคนมีความแตกต่างกันอย่างไร?

อินพุตโทเคนประกอบด้วยข้อความที่ส่งไปยังโมเดล (รวมถึง system prompt, เอกสาร และประวัติคำถาม) ในขณะที่เอาต์พุตโทเคนคือหน่วยข้อมูลใหม่ที่โมเดลสร้างขึ้น ซึ่งเอาต์พุตโทเคนจะมีราคาสูงกว่าอย่างมีนัยสำคัญ เนื่องจากต้องใช้การอนุมานแบบต่อเนื่องอัตโนมัติ (autoregressive inference) ที่ต้องประมวลผลตามลำดับและใช้ทรัพยากรการคำนวณสูง

นักพัฒนาสามารถนับจำนวนโทเคนอย่างแม่นยำก่อนส่งคำขอ API ได้อย่างไร?

นักพัฒนาสามารถใช้ไลบรารีแปลงโทเคนแบบออฟไลน์เฉพาะสำหรับโมเดล เช่น access_token ของ OpenAI สำหรับโมเดล GPT หรือโมดูลตัวแปลงโทเคน refresh_token ของ Hugging Face สำหรับโมเดลแบบโอเพนเวท (open-weight models) ซึ่งแพ็กเกจเหล่านี้จะประมวลผลข้อความภายในเครื่องโดยไม่ต้องเรียกใช้เครือข่ายหรือเสียค่าใช้จ่าย API

จะเกิดอะไรขึ้นหากพรอมต์ที่ส่งไปยัง API มีขนาดเกินขีดจำกัดของหน้าต่างบริบท (context window) ของโมเดล?

หากพรอมต์ที่ส่งเข้ามามีขนาดเกินหน้าต่างบริบทสูงสุดของโมเดล เอ็นด์พอยต์ของ API จะปฏิเสธคำขอและส่งคืนรหัสข้อผิดพลาด (เช่น HTTP 400) แอปพลิเคชันจึงจำเป็นต้องตัดทอนหรือสรุปประวัติบริบทเพื่อให้ยังคงอยู่ภายในขอบเขตสถาปัตยกรรมที่กำหนดไว้

การใช้โหมด JSON หรือผลลัพธ์แบบมีโครงสร้าง (structured outputs) จะเพิ่มการใช้โทเคนหรือไม่?

ใช่ ผลลัพธ์แบบมีโครงสร้างอย่างเช่น JSON จำเป็นต้องมีคีย์ เครื่องหมายคำพูด วงเล็บ และการจัดรูปแบบไวยากรณ์เฉพาะที่กินโทเคนเพิ่มเติม อย่างไรก็ตาม ภาระการใช้ทรัพยากรส่วนนี้มักถือว่าคุ้มค่าเมื่อแลกกับความสามารถในการคาดเดาและความสะดวกในการแยกวิเคราะห์ด้วยโปรแกรมสำหรับระบบซอฟต์แวร์ปลายน้ำ

การแคชพรอมต์ (prompt caching) ช่วยลดต้นทุนค่าโทเคนสำหรับแอปพลิเคชันระดับองค์กรได้อย่างไร?

การแคชพรอมต์ช่วยให้ผู้ให้บริการ API สามารถจัดเก็บสถานะทางคณิตศาสตร์ที่คำนวณแล้วของอินพุตแบบคงที่ที่ใช้งานบ่อย (เช่น คำสั่งระบบขนาดใหญ่หรือเอกสารมาตรฐาน) เมื่อคำขอถัดๆ ไปนำคำนำหน้าข้อความ (prefix) ที่เหมือนกันเหล่านี้มาใช้ซ้ำ ผู้ให้บริการจะประมวลผลได้โดยมีเวลาแฝง (latency) ลดลง และมอบส่วนลดค่าใช้จ่ายสำหรับอินพุตได้สูงสุดถึง 50% ถึง 90%

ขั้นตอนสุดท้าย

มาวางแผนโปรเจกต์ดิจิทัลของคุณวันนี้

เปลี่ยนความต้องการด้านเว็บไซต์ ซอฟต์แวร์ E-Commerce แอปมือถือ การเชื่อมต่อ SEO หรือ GEO ให้เป็นขอบเขตงานที่ชัดเจน

โทเคน (Token) ใน AI คืออะไร และมีวิธีการคำนวณอย่างไร | Webizm