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

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

อัปเดตล่าสุด: 15 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 อาจแตกต่างกันไปตามภาษา ตัวอย่างเช่น “Cómo estás” (ภาษาสเปนแปลว่า “สบายดีไหม”) มี 5 Token สำหรับ 10 อักขระ ข้อความที่ไม่ใช่ภาษาอังกฤษมักมีอัตราส่วน Token ต่ออักขระสูงกว่า ซึ่งอาจส่งผลต่อต้นทุนและข้อจำกัด

ตัวอย่าง

ต่อไปนี้คือตัวอย่างข้อความจากการใช้งานจริงพร้อมจำนวน Token โดยประมาณ:

  • คำคมของ Wayne Gretzky “คุณพลาด 100% ของช็อตที่คุณไม่ได้ยิง” = 11 Token

  • กฎบัตร OpenAI = 476 Token

  • คำประกาศอิสรภาพของสหรัฐอเมริกา = 1,695 Token

วิธีคำนวณจำนวน Token

เมื่อคุณส่งข้อความไปยัง API:

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

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

  3. คำตอบจะถูกสร้างเป็นลำดับของ Token แล้วแปลงกลับเป็นข้อความ

การใช้งาน Token จะถูกติดตามในหลายหมวดหมู่:

  • Input tokens – Token ในคำขอของคุณ

  • Output tokens – Token ที่สร้างขึ้นในคำตอบ

  • Cached tokens – Token ที่นำกลับมาใช้ซ้ำในประวัติการสนทนา (มักคิดค่าบริการในอัตราที่ลดลง)

  • Reasoning tokens – ในโมเดลขั้นสูงบางรุ่น จะมี “ขั้นตอนการคิด” เพิ่มเติมรวมอยู่ภายในก่อนสร้างผลลัพธ์สุดท้าย

จำนวนเหล่านี้จะแสดงในข้อมูลเมตาของคำตอบ API และใช้สำหรับการคิดค่าบริการและติดตามการใช้งาน

หากต้องการสำรวจ Tokenization เพิ่มเติม คุณสามารถใช้ เครื่องมือ Tokenizer แบบโต้ตอบของเรา ซึ่งช่วยให้คุณคำนวณจำนวน Token และดูได้ว่าข้อความถูกแยกเป็น Token อย่างไร

หรือหากคุณต้องการ Tokenize ข้อความด้วยโปรแกรม ให้ใช้ Tiktoken ซึ่งเป็น BPE tokenizer ที่รวดเร็วและใช้เฉพาะกับโมเดล OpenAI

ขีดจำกัด 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’ มีช่องว่างนำหน้าอยู่ด้วย (หมายเหตุ: token ID เหล่านี้เป็นเพียงตัวอย่างเพื่อการสาธิต)

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”)

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