OpenAI
หน้านี้แปลด้วยระบบอัตโนมัติ ดูต้นฉบับภาษาอังกฤษ.

Token คืออะไรและนับอย่างไร?

อัปเดตล่าสุด: 5 days ago

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:

  1. ข้อความจะถูกแบ่งเป็น Token

  2. โมเดลจะประมวลผล Token เหล่านี้

  3. คำตอบจะถูกสร้างเป็นลำดับของ 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’ ตามบริบทในข้อความอย่างไร:

Sentence split into color-coded tokens with Text selected over Token IDs
Token ID output as a list of integers with the Token IDs tab selected

ในตัวอย่างแรกด้านบน Token “2266” สำหรับ ‘ red’ มีช่องว่างต่อท้าย (หมายเหตุ: นี่คือ ID ของ Token ตัวอย่างเพื่อการสาธิต)

Sentence split into color-coded token blocks: My favorite color is Red.
Tokenizer output with Token IDs selected and a list of numeric token IDs

Token “2296” สำหรับ ‘ Red’ (มีช่องว่างนำหน้าและเริ่มด้วยตัวพิมพ์ใหญ่) แตกต่างจาก Token “2266” สำหรับ ‘ red’ ที่เป็นตัวพิมพ์เล็ก

Tokenizer example splitting “Red is my favorite color.” into color-coded tokens
Tokenizer output with Token IDs selected and a list of token ID numbers

เมื่อใช้ ‘Red’ ที่ต้นประโยค Token ที่สร้างขึ้นจะไม่มีช่องว่างนำหน้า Token “7738” แตกต่างจากสองตัวอย่างก่อนหน้าของคำนี้

ข้อสังเกต:

ยิ่ง Token มีความน่าจะเป็น/พบได้บ่อยมากเท่าใด หมายเลข Token ที่กำหนดให้ก็ยิ่งต่ำลงเท่านั้น:

  • Token ที่สร้างสำหรับจุดมหัพภาคเหมือนกัน (“13”) ในทั้ง 3 ประโยค เนื่องจากในเชิงบริบท จุดมหัพภาคมักถูกใช้คล้ายกันมากทั่วทั้งข้อมูลคลังข้อความ

  • Token ที่สร้างสำหรับ ‘red’ แตกต่างกันไปตามตำแหน่งในประโยค:

    • ตัวพิมพ์เล็กกลางประโยค: ‘ red’ - (Token: “2266”)

    • ตัวพิมพ์ใหญ่กลางประโยค: ‘ Red’ - (Token: “2297”)

    • ตัวพิมพ์ใหญ่ต้นประโยค: ‘Red’ - (Token: “7738”)

บทความนี้มีประโยชน์หรือไม่