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

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

อัปเดตล่าสุด: 8 hours ago

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:

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

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

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

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 เหล่านี้เป็นเพียงตัวอย่างเพื่อสาธิต)

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

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