พื้นฐาน
โทเค็นของ AI คืออะไร
โทเค็นคือหน่วยที่โมเดลภาษาอ่านและเขียนจริง ไม่ใช่คำหรือตัวอักษร ทำความเข้าใจการแบ่งโทเค็น วิธีนับอินพุตและเอาต์พุต และเหตุใดตัวแบ่งโทเค็นของโมเดลเองเท่านั้นที่ให้ตัวเลขที่แม่นยำ
บทความทั้งหมด · ตรวจสอบล่าสุด:
โทเค็นไม่ใช่คำ และไม่ใช่ตัวอักษร
ตัวแบ่งโทเค็นจะแยกข้อความเป็นชิ้นจากคลังคำคงที่ที่เรียนรู้ไว้ตอนฝึก คำสั้นที่พบบ่อยมักเป็นหนึ่งโทเค็นพอดี ส่วนคำที่ยาวหรือพบน้อยอาจแบ่งเป็นสองหรือสามชิ้น สัญลักษณ์แปลกตัวเดียวก็อาจกินมากกว่าหนึ่งโทเค็นได้ด้วยตัวเอง เครื่องหมายวรรคตอน ช่องว่าง และการขึ้นบรรทัดใหม่ก็เป็นโทเค็นเช่นกัน ไม่ใช่ของฟรี
ด้วยเหตุนี้จำนวนโทเค็น จำนวนคำ และจำนวนตัวอักษรจึงเปลี่ยนแปลงเป็นอิสระต่อกัน สองประโยคที่มีจำนวนคำเท่ากันอาจใช้จำนวนโทเค็นต่างกัน และการเขียนประโยคใหม่ด้วยคำที่สั้นและพบบ่อยกว่าอาจลดจำนวนโทเค็นได้โดยไม่ทำให้ข้อความสั้นลง
การแบ่งโทเค็นต่างกันไปตามภาษาและโมเดล
ทุกโมเดลมาพร้อมตัวแบ่งโทเค็นและคลังคำคงที่ของตัวเอง สร้างขึ้นจากข้อความที่ใช้ฝึกโมเดลนั้น คำหรือวลีที่พบบ่อยในข้อความฝึกนั้นมักถูกอัดให้เป็นโทเค็นจำนวนน้อยแต่ยาวขึ้น ส่วนคำหรือวลีที่พบน้อยมักถูกแบ่งเป็นชิ้นจำนวนมากแต่สั้นลง
ผลที่ตามมามีสองอย่าง อย่างแรก ประโยคเดียวกันอาจมีจำนวนโทเค็นต่างกันอย่างเห็นได้ชัดขึ้นอยู่กับภาษาที่เขียน เพราะไม่มีคลังคำใดแทนสองภาษาได้ดีเท่ากัน อย่างที่สอง ประโยคเดียวกันอาจมีจำนวนโทเค็นต่างกันในสองโมเดล เพราะแต่ละโมเดลมีคลังคำของตัวเอง การนับจากตัวแบ่งโทเค็นของโมเดลหนึ่งจึงไม่ใช่การประมาณที่เชื่อถือได้สำหรับอีกโมเดล
คำขอหนึ่งครั้งใช้ทั้งโทเค็นอินพุตและโทเค็นเอาต์พุต
ทุกคำขอมีกลุ่มโทเค็นสองกลุ่ม ซึ่งนับและมักคิดราคาแยกกัน โทเค็นอินพุตคือทุกสิ่งที่ส่งไปยังโมเดล ได้แก่ คำสั่ง บทสนทนาที่มองเห็น เอกสารที่แนบมา และผลลัพธ์จากเครื่องมือ โทเค็นเอาต์พุตคือทุกสิ่งที่โมเดลสร้างกลับมา
โทเค็นอินพุตไม่ใช่ต้นทุนครั้งเดียวในบทสนทนาที่มีหลายรอบ เพราะทุกคำขอใหม่จะส่งบทสนทนาที่ผ่านมาซ้ำอีกครั้ง ข้อความก่อนหน้าและวัสดุที่แนบมาจึงถูกนับเป็นอินพุตซ้ำในทุกรอบ ไม่ใช่แค่รอบที่เพิ่มเข้ามาครั้งแรก
โทเค็นคือหน่วยที่ใช้วัดหน้าต่างบริบท
หน้าต่างบริบทคืองบประมาณที่แสดงเป็นโทเค็น ซึ่งอินพุตและเอาต์พุตของคำขอเดียวใช้ร่วมกัน "หน้าต่างบริบทคืออะไร" อธิบายว่างบประมาณนี้ทำงานอย่างไรในทางปฏิบัติ สิ่งที่สำคัญตรงนี้คือหน่วยวัดเท่านั้น หน้าต่างไม่ได้วัดเป็นคำ ตัวอักษร หรือจำนวนข้อความ แต่วัดเป็นโทเค็น และอินพุตกับเอาต์พุตดึงจากยอดรวมเดียวกัน
ประเมินต้นทุนโดยไม่ใช้ตัวเลขตายตัว
ต้นทุนที่อิงตามโทเค็นคือการคูณ โทเค็นที่ใช้คูณด้วยอัตราที่กำหนดไว้ต่อโมเดล ผู้ให้บริการกำหนดและเปลี่ยนอัตราเหล่านี้ตามตารางเวลาของตัวเอง และโมเดลที่มีความสามารถสูงกว่ามักมีราคาต่อโทเค็นแพงกว่าโมเดลที่เล็กกว่า โดยโทเค็นเอาต์พุตมักคิดราคาแพงกว่าโทเค็นอินพุต ไม่มีสิ่งใดในนี้ที่ทำให้คุ้มค่าที่จะพิมพ์ตัวเลขที่แน่นอนไว้ที่นี่ อัตราที่พิมพ์ไว้ในหน้านี้จะผิดภายในไม่กี่เดือน
สิ่งที่ยังจริงอยู่ไม่ว่าตารางราคาปัจจุบันจะเป็นอย่างไรคือรูปแบบของต้นทุน พรอมต์ที่สั้นและตรงประเด็นกว่า และคำตอบที่สั้นและตรงประเด็นกว่าใช้โทเค็นน้อยกว่า และการส่งไฟล์แนบขนาดใหญ่ซ้ำในทุกรอบของบทสนทนายาวเป็นหนึ่งในสาเหตุที่พบบ่อยที่สุดที่การใช้โทเค็นเพิ่มขึ้นโดยไม่มีใครตั้งใจให้เป็นแบบนั้น
ตัวเลขที่แม่นยำต้องใช้ตัวแบ่งโทเค็นของโมเดลเอง
กฎคร่าวๆ เรื่องโทเค็นต่อคำเป็นเพียงการประมาณสำหรับภาษาหนึ่งที่ประมวลผลโดยตัวแบ่งโทเค็นหนึ่งตัว และไม่สามารถนำไปใช้กับภาษาอื่น ตัวอักษรอื่น หรือโมเดลอื่นได้ การจัดรูปแบบก็เปลี่ยนตัวเลขเช่นกัน โค้ด JSON และข้อความที่มีเครื่องหมายวรรคตอนหนาแน่นมักถูกแบ่งโทเค็นได้อย่างมีประสิทธิภาพน้อยกว่าข้อมูลเดียวกันที่เขียนเป็นร้อยแก้วธรรมดา
หากตัวเลขที่แม่นยำมีความสำคัญ เพราะคำขอใกล้ถึงขีดจำกัดบริบท หรือเพราะต้องคาดการณ์ต้นทุนอย่างแม่นยำ วิธีเดียวที่เชื่อถือได้คือส่งข้อความจริงผ่านตัวแบ่งโทเค็นของโมเดลนั้นโดยเฉพาะ หรือผ่านบริการนับโทเค็นที่โมเดลมีให้ ก่อนที่จะส่งไป การประมาณจากจำนวนคำหรือตัวอักษรเป็นเพียงการเดาที่แต่งให้ดูเป็นตัวเลข
คำถามที่พบบ่อย
- โทเค็นเหมือนกับคำหรือไม่
- ไม่เหมือน คำสั้นที่พบบ่อยมักเป็นหนึ่งโทเค็น แต่คำที่ยาวหรือพบน้อยอาจแบ่งเป็นหลายโทเค็น และเครื่องหมายวรรคตอน ช่องว่าง และการขึ้นบรรทัดใหม่ก็นับเป็นโทเค็นด้วยตัวเอง จำนวนโทเค็นและจำนวนคำจึงสอดคล้องกันแบบคร่าวๆ เท่านั้น
- ทำไมประโยคเดียวกันจึงใช้จำนวนโทเค็นต่างกันในเครื่องมือต่างกัน
- แต่ละเครื่องมือมักรายงานการนับจากตัวแบ่งโทเค็นของโมเดลใดโมเดลหนึ่งโดยเฉพาะ และแต่ละโมเดลก็มีคลังคำของตัวเองที่สร้างจากข้อความฝึกของตัวเอง การนับที่แม่นยำสำหรับตัวแบ่งโทเค็นของโมเดลหนึ่งเป็นเพียงการประมาณสำหรับอีกโมเดล
- การจัดรูปแบบอย่างโค้ดหรือ JSON ใช้โทเค็นมากกว่าข้อความธรรมดาหรือไม่
- บ่อยครั้งใช่ การเว้นวรรคย่อหน้า เครื่องหมายวรรคตอน และสัญลักษณ์ที่ซ้ำกันล้วนเป็นโทเค็นเอง ดังนั้นรูปแบบที่มีโครงสร้างหนาแน่นอาจใช้โทเค็นมากกว่าข้อมูลเดียวกันที่เขียนเป็นประโยคธรรมดาอย่างเห็นได้ชัด
- จะทราบจำนวนโทเค็นที่แม่นยำของคำขอก่อนส่งได้อย่างไร
- ส่งข้อความที่แน่นอนผ่านตัวแบ่งโทเค็นของโมเดลนั้นโดยเฉพาะ หรือผ่านบริการนับโทเค็นที่โมเดลมีให้ การประมาณใดๆ ที่อิงจำนวนคำหรือตัวอักษรเป็นเพียงค่าประมาณ และความคลาดเคลื่อนจะเพิ่มขึ้นตามความแตกต่างของภาษา ตัวอักษร และการจัดรูปแบบ
ลองใช้ดีกว่าอ่านเฉยๆ
ClawAI นับโทเค็นอินพุตและเอาต์พุตที่คำขอใช้จริงหลังจากสร้างคำตอบแล้ว และแสดงต้นทุนกับโควตาที่ใช้ไปสำหรับคำตอบนั้น แทนที่จะเป็นการประมาณล่วงหน้า