หน่วย 2 / 11

โทเค็นและลอจิกราคา

กำไร:

  • อธิบายแนวคิดของโทเค็น ความแตกต่างของโทเค็นอินพุต/เอาท์พุต และการแปลงโทเค็น
  • สามารถคำนวณต้นทุนของคำขอและปริมาณงานรายเดือนจากจำนวนโทเค็นและราคาต่อหน่วย
  • สามารถเปรียบเทียบผลกระทบของการเลือกรุ่นและระยะเวลาที่ทันกับต้นทุนได้

คุณไม่สามารถสร้างโซลูชันในวงกว้างได้หากไม่เข้าใจความประหยัดของ LLM API การสาธิตจะทำงานเพียงครั้งเดียว สิ่งสำคัญคือสามารถคาดเดาได้ว่าการเรียกเก็บเงินจะเป็นอย่างไรเมื่อมีการโทรหลายพันสายต่อเดือน ในหน่วยนี้ เราได้ตั้งค่าด้านการเงินของสิ่งต่างๆ: โทเค็นคืออะไร เหตุใดอินพุตและเอาต์พุตจึงมีราคาแตกต่างกัน วิธีคำนวณต้นทุนของคำขอ และวิธีจัดงบประมาณปริมาณงานรายเดือน ข้อมูลนี้ช่วยให้คุณสามารถวัดการกลับมาของเทคนิคการปรับให้เหมาะสม (การแคช การเลือกโมเดล แบทช์) ในหน่วยถัดไป

โทเค็นคืออะไร?

โทเค็นเป็นหน่วยที่เล็กที่สุดที่โมเดลประมวลผลข้อความ คำพูดไม่ใช่สัญลักษณ์เสมอไป โทเค็นมักจะเป็นส่วนหนึ่งของคำ หากพูดโดยคร่าวในภาษาอังกฤษ 1 โทเค็นมีอักขระ 4 ตัว เท่ากับ 0.75 คำ ในภาษาตุรกีและรหัส อัตราส่วนจะแตกต่างกันไป: คำภาษาตุรกีมักแบ่งออกเป็นโทเค็นมากกว่าในภาษาอังกฤษ เนื่องจากมีโครงสร้างและตัวอักษรต่อท้าย ดังนั้นจึงจำเป็นต้องวัดจำนวนโทเค็นด้วยเครื่องมือนับโทเค็นของผู้ให้บริการแทนที่จะเดาด้วยตา

Tokenization (กระบวนการแยกข้อความออกเป็นโทเค็น) อาจแตกต่างกันไปในแต่ละรุ่น สิ่งนี้มีผลกระทบในทางปฏิบัติสองประการ: (1) ข้อความเดียวกันอาจให้จำนวนโทเค็นที่แตกต่างกันในรุ่นที่แตกต่างกัน (2) การคาดการณ์ที่สร้างด้วยโทเค็นไนเซอร์จากผู้ให้บริการรายอื่น (เช่น ไลบรารี tiktoken ของ OpenAI) จะไม่ถูกต้องสำหรับ Claude — ใช้เคล็ดลับการนับโทเค็นสำหรับโมเดลที่คุณใช้

คำแนะนำ: "ประมาณกี่โทเค็น?" อย่าตอบคำถามสุ่มสี่สุ่มห้า ส่งข้อความตัวแทนผ่าน API การนับโทเค็น ตัดสินใจเรื่องงบประมาณโดยอิงจากการวัดผล

โทเค็นอินพุตและเอาต์พุต

ใบแจ้งหนี้ประกอบด้วยสองรายการ:

  • โทเค็นอินพุต: ทุกสิ่งที่คุณส่งไปยังโมเดล — พรอมต์ของระบบ ทัวร์ที่ผ่านมา ข้อความผู้ใช้ เอกสารประกอบ ถ้ามี สิ่งเหล่านี้จะถูกประมวลผลทั้งหมดในครั้งเดียว
  • โทเค็นเอาท์พุต: การตอบสนองที่สร้างโดยโมเดล สำหรับโทเค็นเอาต์พุตแต่ละรายการ โมเดลจะดำเนินการคำนวณทีละขั้นตอน

สำหรับผู้ให้บริการส่วนใหญ่ ผลผลิตจะมีราคาแพงกว่าอินพุตหลายเท่า เหตุผลง่ายๆ คือ การอ่านอินพุตทั้งหมดในครั้งเดียวมีราคาถูกกว่าการสร้างโทเค็นเอาต์พุตทีละโทเค็น การรู้ถึงความไม่สมดุลนี้อธิบายได้ว่าทำไมการปรับให้เหมาะสม เช่น “ต้องการคำตอบที่กระชับ” ​​จึงมีประสิทธิภาพมาก

ราคาตัวอย่าง (ต่อ 1 ล้านโทเค็น USD)

ตารางด้านล่างเป็นข้อมูลอ้างอิง ราคาอาจมีการเปลี่ยนแปลงเมื่อเวลาผ่านไป โปรดยืนยันรายการปัจจุบันของผู้ให้บริการของคุณเอง

คลาสโมเดล

โมเดลตัวอย่าง

อินพุต ($/1M)

เอาท์พุต ($/1M)

การใช้งานทั่วไป

รวดเร็ว/ถูก

ไฮกุ 4.5

1.00 น

5.00 น

การจำแนกประเภท การติดฉลาก สรุปง่ายๆ

สมดุล

โคลง 5

03.00 น

15.00 น

วัตถุประสงค์ทั่วไป การเขียนโค้ด งานตัวแทน

แข็งแรง

บทประพันธ์ 4.8

5.00 น

25.00 น

การใช้เหตุผลที่ซับซ้อน งานระยะยาว

ในแต่ละคลาส เอาต์พุตจะเป็น 5 เท่าของอินพุต ยิ่งไปกว่านั้น แม้แต่อินพุตของรุ่นที่ทรงพลังก็ยังเป็น 5 เท่าของรุ่นราคาถูกอีกด้วย แกนทั้งสองนี้ (อินพุต↔เอาต์พุตและคลาสโมเดล) จะสร้างกรอบการตัดสินใจด้านต้นทุนของคุณ

วิธีการคำนวณต้นทุน?

สูตรนั้นง่าย:

ราคา = (input_token / 1,000,000) × input_price + (output_token / 1,000,000) × output_price

บัญชีตัวอย่าง คำขอที่มี Sonnet 5: โทเค็นอินพุต 1,500 รายการ, โทเค็นเอาต์พุต 400 รายการ

อินพุต = 1,500 / 1,000,000 × 3.00 = $0.0045 เอาต์พุต = 400 / 1,000,000 × 15.00 = รวม $0.0060 = $0.0105 (ประมาณ 1 เซ็นต์)

โทรครั้งเดียวก็ดูถูก แต่คูณด้วยปริมาณ: 20,000 สายต่อวัน → 210 ดอลลาร์ต่อวัน ~ 6,300 ดอลลาร์ต่อเดือน นี่คือจุดที่ขนาดเข้ามามีบทบาท

เทมเพลตงบประมาณรายเดือน

หากต้องการแยกต้นทุนรายเดือนของปริมาณงาน ให้ใช้เทมเพลตนี้:

1) โทเค็นอินพุตเฉลี่ยต่อคำขอ: ......2) โทเค็นเอาต์พุตเฉลี่ยต่อคำขอ: ......3) จำนวนคำขอต่อวัน: ......4) จำนวนวันทำงานต่อเดือน: ......5) ต้นทุนต่อคำขอ = (1)/1M×input_price + (2)/1M×output_price6) ต้นทุนรายเดือน = (5) × (3) × (4)

การเทรูปแบบนี้ลงในสเปรดชีตและดูว่าผลรวมมีผลอย่างไรเมื่อคุณเปลี่ยนแบบจำลองจะรวมการตัดสินใจเลือกแบบจำลอง (หน่วยที่ 5) และแคช (หน่วยที่ 6)

ย่อพรอมต์ให้สั้นลงด้วยเทมเพลตที่คัดลอกได้

ต้นทุนส่วนใหญ่มาจากการแจ้งที่ยาวโดยไม่จำเป็นและการสูญเสียเอาท์พุต เทมเพลตด้านล่างนี้ช่วยประหยัดได้โดยตรง

#จำกัดความยาวเอาต์พุต ตอบได้ไม่เกิน 3 ข้อ เพิ่มเหตุผลหรือประโยคเกริ่นนำ

# ส่งคืนเฉพาะฟิลด์ที่ร้องขอ ส่งคืนเฉพาะ JSON ต่อไปนี้ ห้ามเพิ่มข้อความอื่น ๆ:{"category": "...", "urgency": "low|medium|high"}

# ลบบริบทที่ไม่จำเป็น ลบเฉพาะวันที่และจำนวนออกจากข้อความต่อไปนี้ อย่าทำซ้ำทั้งข้อความ ข้อความ: """{{text}}"""

# สรุปคำพูดยาว (input saving) สรุปคำพูดนี้เป็น 5 ข้อ ผมจะใช้สรุปนี้แทนเต็มอดีตในรอบต่อๆ ไป คำพูด: """{{past}}"""

พร้อมท์อ่อน / พร้อมท์แรง (ในแง่ของต้นทุน)

# อ่อนแอ (เผยแพร่ผลลัพธ์ มีราคาแพง) วิเคราะห์คำขอการสนับสนุนนี้และเขียนบทวิจารณ์ที่ครอบคลุมถึงฉัน

# แข็งแกร่ง (จำกัดเอาต์พุต ราคาถูก และคาดเดาได้) จัดประเภทคำขอการสนับสนุนนี้ เพียงส่งคืน JSON ต่อไปนี้:{"category": "ใบแจ้งหนี้|ทางเทคนิค|การคืนเงิน|อื่นๆ" "เร่งด่วน": "ต่ำ|ปานกลาง|สูง"}อย่าเขียนคำอธิบาย

เวอร์ชันที่อ่อนแออาจสร้างโทเค็นเอาต์พุตได้ 500 รายการ เวอร์ชั่นแรง ~15. เนื่องจากเอาต์พุตมีราคาแพง นี่จึงเป็นความแตกต่างที่สำคัญต่อการโทรและคูณด้วยปริมาณ

มินิเคสสามอัน

กรณีที่ 1 — ต้นทุนที่ซ่อนอยู่ของพรอมต์แบบยาว เนื่องจากระบบบัญชีอัตโนมัติจัดเรียงใบแจ้งหนี้แต่ละใบ จึงได้เพิ่ม “สมุดกฎ” 40 หน้าเป็นอินพุตสำหรับแต่ละคำขอ: ~12,000 โทเค็นอินพุตต่อคำขอ ด้วย Sonnet 5 12,000/1M×3 = $0.036 เพิ่งป้อน 5,000 บิลต่อวัน → 180 ดอลลาร์ต่อวัน ด้วยการแคชกฎ (หน่วยที่ 6) ต้นทุนอินพุตลดลง ~90%

กรณีที่ 2 — ผลตอบแทนจากการลดขนาดโมเดล ทีมหนึ่งกำลังทำการแท็กความรู้สึก "บวก/ลบ" ง่ายๆ ด้วย Opus 4.8: 300 อินพุต + 10 โทเค็นเอาท์พุต ราคาบทประพันธ์ 300/1M×5 + 10/1M×25 = 0.00175 ดอลลาร์ เมื่อเปลี่ยนมาใช้ไฮกุ 300/1M×1 + 10/1M×5 = 0.00035 ดอลลาร์ — ถูกกว่า 5 เท่า ความแตกต่างในความแม่นยำนั้นวัดค่าไม่ได้ ในการโทร 3 ล้านครั้งต่อเดือน ส่วนต่างคือ 5,250 ดอลลาร์ → 1,050 ดอลลาร์

กรณีที่ 3 — การปล่อยเอาต์พุต เมื่อทีมการตลาดจัดทำคำอธิบายผลิตภัณฑ์ จะไม่มีการกำหนดขีดจำกัดในการส่งออก โมเดลบางครั้งบอกว่า 1,500 โทเค็น เมื่อฉันเพิ่มคำสั่ง "สูงสุด 60 คำ" ผลลัพธ์เฉลี่ยลดลงจาก 900 เป็น 90 โทเค็น เนื่องจากการพิมพ์มีราคาแพง ค่าบริการรายเดือนจึงลดลงหนึ่งในสาม และข้อความก็มีประโยชน์มากขึ้น

ข้อผิดพลาดทั่วไป

  • การเดาโทเค็นด้วยตา: คุณอาจผิดได้โดยเฉพาะในภาษาตุรกีและโค้ด วัด.
  • สมมติว่าอินพุตและเอาต์พุตเหมือนกัน: เอาต์พุตมักจะมีราคาแพงกว่ามาก การเพิ่มประสิทธิภาพส่วนใหญ่มาจากการลดเอาต์พุตให้สั้นลง
  • อย่าหลงกลกับความถูกของการโทรเพียงครั้งเดียว: การตัดสินใจขึ้นอยู่กับปริมาณ 0.01 ดอลลาร์สหรัฐฯ × ล้าน = 10,000 ดอลลาร์
  • การทำนายด้วย tokenizer ของผู้ให้บริการรายอื่น: ให้ผลลัพธ์ที่ไม่ถูกต้อง ใช้เครื่องมือนับโทเค็นของโมเดล
  • ขยายประวัติการสนทนาได้ไม่จำกัด: แต่ละรอบจะถูกเพิ่มเข้าไปในรายการ สรุปเป็นบทสนทนายาวๆ
  • รักษา `max_tokens` ให้สูงโดยไม่จำเป็น: ซ่อนแผนงบประมาณและความเสี่ยงที่จะถูกตัดออก ให้คุณค่าตามความเป็นจริง

เจาะลึก: หน้าต่างบริบทและต้นทุนอินพุตแบบยาว

จำเป็นอย่างยิ่งที่จะต้องดูว่าราคาจะซ้อนกันอย่างไร "ในการสนทนา" และไม่ใช่แค่ "ตามคำขอ" จำนวนข้อความทั้งหมดที่โมเดลสามารถประมวลผลได้เรียกว่าหน้าต่างบริบท ผลรวมของอินพุตและเอาต์พุตจะต้องพอดีกับหน้าต่างนี้ โมเดลสมัยใหม่มีหน้าต่างที่ใหญ่มาก (หลายแสนหรือหลายล้านโทเค็น) แต่นั่นไม่ได้หมายความว่าคุณสามารถ "เติมเต็มได้ไม่จำกัด" สิ่งที่คุณใส่ลงในหน้าต่างจะถูกเรียกเก็บเงินเป็นอินพุต

กับดักในการสนทนาที่ยาวนานคือ: ในแต่ละรอบใหม่ คุณจะส่งประวัติทั้งหมดอีกครั้ง (การไร้สัญชาติในหน่วยที่ 1) ในการสนทนา 20 รอบ คำขอครั้งที่ 20 จะนำข้อมูล 19 รอบแรกทั้งหมดมาเป็นข้อมูลป้อนเข้า ดังนั้น เมื่อการสนทนาใช้เวลานานขึ้น ราคาต่อคำขอจะเพิ่มขึ้นแบบสะสมแทนที่จะเป็นเชิงเส้น การสนทนา 50 รอบกับผู้ช่วยตัวแทนสามารถทำให้เกิดต้นทุนข้อมูลหลายสิบเท่าในรอบแรก

มีสองวิธีในการจัดการสิ่งนี้ อย่างแรกคือการสรุป: บีบอัดรอบเก่าให้เป็นบล็อกสรุปเดี่ยว โดยเก็บเฉพาะสองสามรอบสุดท้ายเท่านั้น ประการที่สองคือการแคชพร้อมท์ (หน่วยที่ 6): การอ่านบริบทคงที่ในราคาหนึ่งในสิบของราคา แทนที่จะประมวลผลซ้ำในราคาเต็ม เมื่อรวมกันแล้ว จะช่วยลดค่าใช้จ่ายสำหรับเวิร์กโหลดที่มีบริบทยาวนานได้อย่างมาก ดังนั้นเศรษฐศาสตร์โทเค็นจึงเกี่ยวกับการออกแบบเซสชันทั้งหมด ไม่ใช่คำขอเดียว

โดยสรุป

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

งานสมัคร

เลือกงานของคุณเอง (1) กำหนดจำนวนโทเค็นอินพุตและเอาต์พุตโดยประมาณสำหรับพรอมต์ตัวแทน (วัดด้วยเครื่องมือนับโทเค็นหากเป็นไปได้) (2) คำนวณต้นทุนต่อคำขอสำหรับคลาสโมเดลทั้งสามคลาส (3) ประมาณการจำนวนคำขอรายวันของคุณและรับงบประมาณรายเดือนสำหรับโมเดลทั้งสาม (4) เพิ่มคำสั่งเพื่อลดเอาต์พุตและบันทึกการประหยัดที่คาดหวัง

รายการตรวจสอบ

  • [ ] ฉันสามารถอธิบายแนวคิดของโทเค็นได้ และโทเค็นนั้นแตกต่างกันไปขึ้นอยู่กับรุ่น
  • [ ] ฉันรู้ว่าเหตุใดโทเค็นอินพุตและเอาต์พุตจึงมีราคาแตกต่างกัน
  • [ ] ฉันสามารถคำนวณต้นทุนคำขอด้วยสูตรได้
  • [ ] ฉันสามารถสร้างงบประมาณรายเดือนสำหรับปริมาณงานโดยใช้เทมเพลต
  • [ ] ฉันสามารถแสดงตัวอย่างถึงประโยชน์ของการลดเอาต์พุตและการลดโมเดลได้ด้วยตัวอย่าง