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

สารบัญ
อ่านแล้ว 0%
- ทำความเข้าใจ AI 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: คำจำกัดความพื้นฐาน

การจะทำความเข้าใจปัญญาประดิษฐ์และสถาปัตยกรรมการเรียนรู้ของเครื่องแบบรู้สร้าง (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) พื้นฐาน
อัลกอริทึมทำงานผ่านขั้นตอนตามลำดับที่ชัดเจน ดังนี้:
การกำหนดค่าเริ่มต้น (Initialization):ตัวแบ่งโทเคนจะเริ่มต้นด้วยคลังคำศัพท์พื้นฐานที่มีอักขระเดี่ยวทั้งหมด (หรือไบต์ดิบ) ที่พบในคลังข้อมูล
การวิเคราะห์ความถี่ (Frequency Analysis):ระบบจะสแกนคลังข้อมูลเพื่อระบุคู่โทเคนที่อยู่ติดกันซึ่งเกิดขึ้นบ่อยที่สุด (เช่น
access_tokenตามด้วยrefresh_token).การผสานรวมแบบวนซ้ำ (Iterative Merging):คู่โทเคนที่พบบ่อยที่สุดจะถูกผสานรวมเป็นโทเคนใหม่ที่เป็นหนึ่งเดียว (
"un") ซึ่งจะถูกเพิ่มเข้าไปในคลังคำศัพท์การทำซ้ำ:อัลกอริทึมจะสแกนชุดข้อมูลอีกครั้งและดำเนินการรวมคู่ที่พบบ่อยที่สุดต่อไป (เช่น
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:
โทเคนขาเข้า (Prompt):ข้อความที่ส่งไปยังโมเดล ซึ่งรวมถึงคำสั่งระบบ (System Instructions), พรอมต์ของนักพัฒนา, เอกสารแนบ, ตัวอย่างแบบ Few-shot และประวัติการสนทนาก่อนหน้า
โทเคนขาออก (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 โทเคนต่อรอบการรับส่งข้อความ)
---
ผลกระทบทางธุรกิจ: เหตุใดการคำนวณโทเคนจึงมีความสำคัญ

สำหรับองค์กรที่ผสานรวม AI เข้ากับซอฟต์แวร์ระดับองค์กร ระบบอัตโนมัติภายใน หรือแพลตฟอร์ม SaaS การคำนวณโทเคนถือเป็นเมทริกซ์พื้นฐานทั้งในแง่การเงินและสถาปัตยกรรมระบบ การปล่อยให้การใช้งานโทเคนเป็นตัวแปรที่ไม่ได้รับการตรวจสอบจะนำไปสู่ปัญหางบประมาณบานปลาย ความหน่วง (latency) พุ่งสูงขึ้น และประสบการณ์ของผู้ใช้ที่ด้อยลง
ทุกการตัดสินใจทางสถาปัตยกรรม—ตั้งแต่การสร้างพรอมต์และการดึงข้อมูลบริบท ไปจนถึงการเลือกรุ่นโมเดล—ล้วนส่งผลกระทบต่อปริมาณการใช้โทเคนโดยตรง ซึ่งจะเพิ่มขึ้นตามสัดส่วนของปริมาณผู้ใช้งาน
การจัดการต้นทุน API และการหลีกเลี่ยงค่าบริการที่เกินความคาดหมาย
ผู้ให้บริการโมเดลพื้นฐาน (foundation model) สมัยใหม่จะคิดค่าบริการตามหน่วย 1,000 (1k) หรือ 1,000,000 (1M) โทเคน โดยการสร้างผลลัพธ์ (output) จะมีราคาสูงกว่าการประมวลผลอินพุต (input) อย่างมีนัยสำคัญ ซึ่งมักจะสูงกว่าถึง 3 ถึง 5 เท่า
หมายเหตุ: เมทริกซ์ราคาอ้างอิงตามเกณฑ์มาตรฐานสาธารณะของผู้ให้บริการ ณ กลางปี 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 × 10.00)ต่อวัน = $425/วัน →ค่าใช้จ่าย API ที่ไม่จำเป็นประมาณ ~$12,750/เดือน.
การรับมือกับขีดจำกัด Context Window และ Rate Limiting
Context window กำหนดขอบเขตการทำงานสูงสุดของสิ่งที่โมเดลสามารถทำความเข้าใจได้ในการโต้ตอบครั้งเดียว แม้ว่าสถาปัตยกรรมสมัยใหม่จะรองรับ context window ตั้งแต่ 128,000 ไปจนถึงมากกว่า 2,000,000 โทเค็น แต่การใช้บริบทขนาดใหญ่โดยไม่พิจารณาอย่างรอบคอบจะก่อให้เกิดความเสี่ยงสำคัญ 2 ประการ:
การเสื่อมถอยของบริบท ("Lost in the Middle"):งานวิจัยเชิงประจักษ์ระบุว่า เมื่อความยาวของบริบทขยายไปสู่ระดับหลายแสนโทเค็น กลไก Attention ของ Transformer จะเริ่มมีปัญหาเรื่องความแม่นยำในการดึงข้อมูล (Recall) ซึ่งบางครั้งอาจมองข้ามรายละเอียดปลีกย่อยที่สำคัญซึ่งซ่อนอยู่ตรงกลางของพรอมต์ขนาดยาว
ขีดจำกัดอัตราการใช้งาน (การจำกัด TPM/RPM):ผู้ให้บริการโครงสร้างพื้นฐานจะบังคับใช้โควตาTokens Per Minute (TPM)และRequests Per Minute (RPM)อย่างเคร่งครัด การส่งเพย์โหลดเอกสารขนาดใหญ่เกินไปอาจทำให้ขีดจำกัด TPM ระดับองค์กรหมดลงภายในเวลาไม่กี่วินาที ส่งผลให้เกิดข้อยกเว้น HTTP
429 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%