Token คืออะไร
Token คือหน่วยพื้นฐานของข้อความที่โมเดล OpenAI ประมวลผล อาจสั้นเพียงอักขระเดียวหรือยาวเท่าทั้งคำ ขึ้นอยู่กับภาษาและบริบท ช่องว่าง เครื่องหมายวรรคตอน และส่วนของคำ ล้วนมีผลต่อจำนวน Token นี่คือวิธีที่ API แบ่งข้อความของคุณภายในระบบก่อนสร้างคำตอบ
หลักคร่าวๆ ที่เป็นประโยชน์สำหรับภาษาอังกฤษ:
1 Token ≈ 4 อักขระ
1 Token ≈ ¾ ของคำ
100 Token ≈ 75 คำ
1–2 ประโยค ≈ 30 Token
1 ย่อหน้า ≈ 100 Token
~1,500 คำ ≈ 2,048 Token
Tokenization แตกต่างกันไปตามโมเดลและการเข้ารหัส ใช้เครื่องมือ Tokenizer หรือ tiktoken.encoding_for_model(model) เพื่อดูจำนวนที่แน่นอนสำหรับโมเดลเป้าหมายของคุณ
ตัวอย่าง
นี่คือตัวอย่างข้อความจากการใช้งานจริงพร้อมจำนวน Token โดยประมาณ:
คำกล่าวของ Wayne Gretzky “คุณพลาด 100% ของลูกยิงที่คุณไม่ยิง” = 11 Token
กฎบัตร OpenAI = 476 Token
คำประกาศอิสรภาพของสหรัฐฯ = 1,695 Token
วิธีคำนวณจำนวน Token
เมื่อคุณส่งข้อความไปยัง API:
ข้อความจะถูกแบ่งเป็น Token
โมเดลจะประมวลผล Token เหล่านี้
คำตอบจะถูกสร้างเป็นลำดับของ Token แล้วแปลงกลับเป็นข้อความ
การใช้งาน Token จะถูกติดตามในหลายหมวดหมู่:
Token อินพุต – Token ในคำขอของคุณ
Token เอาต์พุต – Token ที่สร้างขึ้นในคำตอบ
Token ที่แคชไว้ – Token ที่นำกลับมาใช้ใหม่ในประวัติการสนทนา (มักคิดค่าบริการในอัตราที่ลดลง)
Token การให้เหตุผล – ในโมเดลขั้นสูงบางรุ่น จะมี “ขั้นตอนการคิด” เพิ่มเติมอยู่ภายในก่อนสร้างเอาต์พุตสุดท้าย
จำนวนเหล่านี้จะแสดงในเมตาดาต้าของคำตอบจาก API และใช้สำหรับการเรียกเก็บเงินและติดตามการใช้งาน
หากต้องการสำรวจ Tokenization เพิ่มเติม คุณสามารถใช้เครื่องมือ Tokenizerแบบโต้ตอบของเรา ซึ่งช่วยให้คุณคำนวณจำนวน Token และดูว่าข้อความถูกแบ่งเป็น Token อย่างไร
หรือหากคุณต้องการ Tokenize ข้อความด้วยโปรแกรม ให้ใช้ Tiktoken ซึ่งเป็น BPE tokenizer ที่รวดเร็วและใช้สำหรับโมเดล OpenAI โดยเฉพาะ
ขีดจำกัด Token
โมเดลแต่ละรุ่นมีขีดจำกัด Token รวมสูงสุด (อินพุต + เอาต์พุต) โมเดลความจุสูงในปัจจุบันรองรับ Token ในบริบทได้สูงสุดหลายแสน Token แม้ขีดจำกัดในการใช้งานจริงอาจแตกต่างกันตามเวอร์ชันของโมเดลและระดับการใช้งานของคุณ
หากคุณเกินขีดจำกัด คุณสามารถ:
ทำให้คำสั่งสั้นลงหรือปรับถ้อยคำใหม่
แบ่งข้อความขนาดใหญ่ออกเป็นส่วนย่อยๆ
สรุปหรือประมวลผลอินพุตล่วงหน้าก่อนส่ง
ราคา Token
การใช้งาน API คิดราคาต่อ Token ซึ่งแตกต่างกันตามโมเดล และตามว่า Token เป็นอินพุต เอาต์พุต หรือถูกแคชไว้ ดูอัตราปัจจุบันได้ที่หน้าราคาของ OpenAI โมเดลการให้เหตุผลบางรุ่นอาจใช้ Token ภายในมากขึ้น แต่มีเป้าหมายเพื่อเพิ่มประสิทธิภาพโดยลดจำนวน Token ที่จำเป็นต่อหนึ่งงานที่เสร็จสมบูรณ์
การสำรวจ Token
API จัดการคำตามบริบทของคำนั้นในข้อมูลคลังข้อความ โมเดลจะรับคำสั่ง แปลงอินพุตเป็นรายการ Token ประมวลผลคำสั่ง แล้วแปลง Token ที่คาดการณ์กลับเป็นคำที่เราเห็นในคำตอบ
สิ่งที่เราเห็นเป็นคำเหมือนกันสองคำ อาจถูกสร้างเป็น Token ต่างกันได้ ขึ้นอยู่กับโครงสร้างของคำนั้นในข้อความ ลองดูว่า API สร้างค่า Token สำหรับคำว่า ‘red’ ตามบริบทในข้อความอย่างไร:
ในตัวอย่างแรกด้านบน Token “2266” สำหรับ ‘ red’ มีช่องว่างต่อท้าย (หมายเหตุ: นี่คือ ID ของ Token ตัวอย่างเพื่อการสาธิต)
Token “2296” สำหรับ ‘ Red’ (มีช่องว่างนำหน้าและเริ่มด้วยตัวพิมพ์ใหญ่) แตกต่างจาก Token “2266” สำหรับ ‘ red’ ที่เป็นตัวพิมพ์เล็ก
เมื่อใช้ ‘Red’ ที่ต้นประโยค Token ที่สร้างขึ้นจะไม่มีช่องว่างนำหน้า Token “7738” แตกต่างจากสองตัวอย่างก่อนหน้าของคำนี้
ข้อสังเกต:
ยิ่ง Token มีความน่าจะเป็น/พบได้บ่อยมากเท่าใด หมายเลข Token ที่กำหนดให้ก็ยิ่งต่ำลงเท่านั้น:
Token ที่สร้างสำหรับจุดมหัพภาคเหมือนกัน (“13”) ในทั้ง 3 ประโยค เนื่องจากในเชิงบริบท จุดมหัพภาคมักถูกใช้คล้ายกันมากทั่วทั้งข้อมูลคลังข้อความ
Token ที่สร้างสำหรับ ‘red’ แตกต่างกันไปตามตำแหน่งในประโยค:
ตัวพิมพ์เล็กกลางประโยค: ‘ red’ - (Token: “2266”)
ตัวพิมพ์ใหญ่กลางประโยค: ‘ Red’ - (Token: “2297”)
ตัวพิมพ์ใหญ่ต้นประโยค: ‘Red’ - (Token: “7738”)
