Token คืออะไร
Token คือหน่วยพื้นฐานของข้อความที่โมเดลของ OpenAI ประมวลผล Token อาจสั้นเพียงหนึ่งอักขระหรือยาวเท่ากับหนึ่งคำเต็มก็ได้ ขึ้นอยู่กับภาษาและบริบท ช่องว่าง เครื่องหมายวรรคตอน และส่วนประกอบของคำล้วนถูกนำมารวมในการนับ 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 ที่ว่า “คุณจะพลาดทุกลูกที่ไม่ได้ยิง” = 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 ซึ่งเป็นตัว Tokenize แบบ BPE ที่รวดเร็วและสร้างขึ้นเพื่อใช้กับโมเดลของ OpenAI โดยเฉพาะ
ขีดจำกัด Token
โมเดลแต่ละรุ่นมีขีดจำกัด Token รวมสูงสุด (อินพุต + เอาต์พุต) ปัจจุบันโมเดลความจุสูงรองรับบริบทได้มากถึงหลายแสน Token แต่ขีดจำกัดในการใช้งานจริงอาจแตกต่างกันตามเวอร์ชันของโมเดลและระดับการใช้งานของคุณ
หากเกินขีดจำกัด คุณสามารถ:
ย่อหรือเรียบเรียงพรอมต์ใหม่
แบ่งข้อความขนาดใหญ่ออกเป็นส่วนย่อย
สรุปหรือประมวลผลอินพุตล่วงหน้าก่อนส่ง
ค่าบริการ Token
การใช้งาน API คิดค่าบริการต่อ Token โดยอัตราจะแตกต่างกันตามโมเดลและประเภทของ Token ว่าเป็นอินพุต เอาต์พุต หรือ Token ที่แคชไว้ ดูอัตราปัจจุบันได้ที่หน้าค่าบริการของ OpenAI โมเดลการให้เหตุผลบางรุ่นอาจใช้ Token ภายในมากขึ้น แต่มุ่งเพิ่มประสิทธิภาพด้วยการลดจำนวน Token ที่ต้องใช้ในการทำงานแต่ละรายการให้เสร็จสมบูรณ์
สำรวจ Token
API จะตีความคำตามบริบทที่ปรากฏในข้อมูลคลังข้อความ โมเดลจะรับพรอมต์ แปลงอินพุตเป็นรายการ Token ประมวลผลพรอมต์ แล้วแปลง Token ที่คาดการณ์ไว้กลับเป็นคำที่เราเห็นในคำตอบ
คำสองคำที่เรามองว่าเหมือนกันทุกประการอาจถูกสร้างเป็น Token ต่างกัน ขึ้นอยู่กับโครงสร้างและตำแหน่งในข้อความ ลองดูว่า API สร้างค่า Token สำหรับคำว่า ‘red’ ตามบริบทในข้อความอย่างไร:
ในตัวอย่างแรกข้างต้น Token “2266” ของ ‘ red’ มีช่องว่างต่อท้าย (หมายเหตุ: รหัส 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”)
