ตอนต้นเดือนที่ฝ่ายการเงินโยนบิลมาให้ ผมนั่งจ้องตัวเลขชุดนั้นอยู่นาน เดือนที่แล้วค่าใช้จ่าย API โมเดลขนาดใหญ่ทั้งหมดพุ่งจากสี่พันกว่าบาทเป็นหนึ่งหมื่นสองพัน แต่สถิติปริมาณการเรียกหลังบ้านเพิ่มขึ้นไม่ถึงครึ่ง เงินที่เกินมาไม่ใช่เกิดจากธุรกิจ แต่เป็นเงินที่รั่วไหลจากรายละเอียดทางวิศวกรรมของเรา บทความนี้จะแยกบทเรียนครั้งนี้ออกมาพูดให้หมด มีแหล่งต้นทุนแฝงสี่จุด แต่ละจุดซ่อนเร้นกว่ากันเป็นเท่าตัว
ต้นทุนแฝงจุดที่หนึ่ง: โมเดลเรือธงถูกใช้ทำงานหยาบ
สิ่งที่เราทำคือการจัดหมวดหมู่งานบริการลูกค้าอีคอมเมิร์ซ มีข้อความจากผู้ใช้หลายหมื่นรายการต่อวันที่ต้องติดแท็ก แต่ก่อนเพื่อความสะดวก เราให้ทุกคำขอวิ่งผ่านโมเดลเรือธงตัวเดียวกัน เหตุผลคือ "ความแม่นยำมั่นคง" ปัญหาอยู่ที่แปดในสิบของคำขอเหล่านี้เป็นการจำแนกสองประเภทแบบ "คืนสินค้าหรือเปลี่ยนสินค้า" ซึ่งไม่จำเป็นต้องใช้ความสามารถในการให้เหตุผลของโมเดลเรือธงเลย ราคาต่อหน่วยอินพุตเอาต์พุตของโมเดลเรือธงสูงกว่าโมเดลขนาดเบาหลายเท่า เอามันมาทำงานแบบนี้ก็เหมือนขับรถออฟโรดไปส่งอาหารเดลิเวอรี
ต่อมาเราแยกงานขนาดเบาไปที่ token8341 ซึ่งเลือกโมเดลอัตโนมัติตามงาน งานจัดหมวดหมู่วิ่งบนโมเดลเล็ก มีเฉพาะกรณีพิพาทหลายรอบที่ต้องยกระดับไปใช้โมเดลเรือธง บิลในเดือนนั้นก็ลดลงทันที ประเด็นสำคัญตรงนี้ไม่ใช่การประหยัดเงิน แต่คือการแบ่งชั้นโมเดล แพลตฟอร์มรวม API โมเดลขนาดใหญ่ token8341 รองรับการกำหนดเส้นทางตามงาน คีย์เดียวผูกโมเดลได้หลายตัว ไม่ต้องดูแล SDK แยกสำหรับแต่ละโมเดล
ต้นทุนแฝงจุดที่สอง: การใช้หน้าต่างบริบทเกินจำเป็น
อินเทอร์เฟซแชทของเราใส่ประวัติยี่สิบรอบล่าสุดทั้งหมดลงในพรอมป์โดยค่าเริ่มต้น สภาพแวดล้อมทดสอบไม่มีใครดูแล สภาพแวดล้อมโปรดักชันก็วิ่งแบบนี้ ผลคือคำขอ "สวัสดี" หนึ่งครั้งมีโทเคนอินพุตจริงกว่าสองพัน API โมเดลขนาดใหญ่คิดค่าบริการตามโทเคนอินพุตเอาต์พุต ยิ่งประวัติยาว แต่ละรอบก็จ่ายเงินให้เนื้อหาซ้ำ ต้นทุนส่วนนี้ไม่เด่นในบิล แต่พอคูณกับปริมาณการเรียกต่อวันก็มากมายทีเดียว
วิธีห้ามเลือดง่ายมาก: ทำการสรุปบีบอัดประวัติ เกินห้ารอบก็สรุปแบบหมุนเวียน เก็บไว้เฉพาะเอนทิตีสำคัญ หลังแก้แล้วโทเคนอินพุตเฉลี่ยต่อคำขอลดลงประมาณหกสิบเปอร์เซ็นต์ คุณภาพเอาต์พุตไม่ลดลงจนเห็นได้ด้วยตาเปล่า
ต้นทุนแฝงจุดที่สาม: พายุการลองใหม่
อันนี้เจ็บที่สุด ช่วงแรกเราไม่ได้ทำ retry backoff ต้นทางสะดุดนิดเดียว ไคลเอนต์ก็ลองใหม่ทันที ลองใหม่แล้วล้มเหลวก็ลองอีก ภายในสามวินาทีคำขอเดียวกันยิงไปเจ็ดแปดครั้ง ต้นทางคิดเงินตามจำนวนครั้งในการเรียก การลองใหม่ที่ล้มเหลวก็ยังคิดเงิน มีครั้งหนึ่งโหนดภูมิภาคของโมเดลหนึ่งสะดุดสิบนาที แค่การลองใหม่ก็เผาเงินไปหลายร้อย
ตอนนี้เปลี่ยนเป็น exponential backoff พร้อมเพดานจำนวนครั้งในการลองใหม่ และใช้ความสามารถในการเชื่อมต่อหลายโมเดลแบบรวมศูนย์ เมื่อโมเดลหลักหมดเวลาก็สลับไปโมเดลสำรองอัตโนมัติ ไม่พึ่งไคลเอนต์ลองใหม่แบบดื้อๆ นี่คือสิ่งที่แพลตฟอร์มรวม API AI ควรทำ ไม่ควรให้โค้ดธุรกิจแบกเอง
ต้นทุนแฝงจุดที่สี่: คีย์กระจัดกระจาย รวมการใช้ไม่ได้
ทีมเราขอคีย์ไปทั้งหมดหกเจ็ดอัน ปนกันทั้งทดสอบ โปรดักชัน และทดสอบโหลดชั่วคราว พอสิ้นเดือนอยากดูว่าสายธุรกิจไหนใช้เงินเท่าไร ก็จับคู่ไม่ได้เลย การกระจายหลายคีย์ไม่ใช่แค่จัดการยุ่งยาก ที่ยุ่งยากกว่าคือคุณรวมปริมาณการใช้ไม่ได้ ก็เลยทำ cost attribution ไม่ได้ โมเดลไหนกำลังเผาเงิน สายธุรกิจไหนกำลังสิ้นเปลือง ล้วนเป็นกล่องดำ
หลังจากเปลี่ยนมาใช้แพลตฟอร์มรวม API โมเดลขนาดใหญ่ token8341 การเรียกทั้งหมดวิ่งผ่านทางเข้าเดียว ปริมาณการใช้แยกตามโปรเจกต์ ตามโมเดล ตามมิติคีย์ได้ทั้งหมด แดชบอร์ดปริมาณการใช้ของ token8341 มองเห็นการกระจายการบริโภคโทเคนของแต่ละโมเดลได้โดยตรง นี่แหละที่ทำให้การกำหนดเส้นทางแบบแบ่งชั้นและกลยุทธ์การบีบอัดข้างต้นมีข้อมูลรองรับ ถ้าไม่มีการรวมข้อมูล สามข้อแรกก็เดาส่งเดชทั้งนั้น
ห้าการกระทำเพื่อห้ามเลือด
หนึ่ง แบ่งระดับคำขอตามความซับซ้อนของงาน งานหยาบให้โมเดลขนาดเบา อย่าให้โมเดลเรือธงทำงานจัดหมวดหมู่ สอง ทำสรุปแบบหมุนเวียนของประวัติบทสนทนา อย่าใส่ข้อความดิบยี่สิบรอบทั้งหมดลงไป สาม เพิ่ม exponential backoff และเพดานในการลองใหม่ เมื่อหมดเวลาให้กำหนดเส้นทางโมเดลสลับไปตัวสำรอง ไม่พึ่งไคลเอนต์ฝืนยิง สี่ รวมการเรียกทั้งหมดไปที่ทางเข้าเดียว รวมปริมาณการใช้ตามสายธุรกิจ ห้า ทำการเปรียบเทียบราคาโมเดลเดือนละครั้ง ต้นทุนต่อหน่วยของงานเดียวกันบนโมเดลต่างกันนั้นต่างกันมากกว่าที่คิด
บทเรียนใหญ่ที่สุดของบทเรียนครั้งนี้คือ ต้นทุนส่วนใหญ่ของ API โมเดลขนาดใหญ่ไม่ได้อยู่ที่ราคาต่อหน่วย แต่อยู่ที่วิธีการเรียก ราคาต่อหน่วยคุณต่อรองไม่ได้ วิธีการเรียกคุณเปลี่ยนได้ คุณค่าของแพลตฟอร์มรวม API โมเดลขนาดใหญ่ token8341 ในเรื่องนี้คือการรวมการกำหนดเส้นทางโมเดล การรวมปริมาณการใช้ และการเชื่อมต่อหลายโมเดลแบบรวมศูนย์ไว้ในทางเข้าเดียว ทำให้ต้นทุนสังเกตได้และระบุที่มาได้ ส่วนคำว่า โรงงาน 8341Token นั้นเป็นชื่อที่เราใช้ภายในสำหรับระบบจัดสรรพลังประมวลผลสีเขียวชุดนี้ โหนดพลังประมวลผลตะวันออก-ตะวันตกจัดสรรตามความต้องการ พลังประมวลผล GPU ขยายยืดหยุ่นได้ ส่วนนี้ทางการไม่ได้เปิดเผยสัดส่วนการจัดสรรที่เฉพาะเจาะจง ผมไม่แต่งขึ้นเอง
ถ้าคุณก็กำลังถูกบิลรายเดือนตามถามอยู่ เริ่มจากการรวมปริมาณการใช้ก่อน แล้วค่อยดูการแบ่งชั้นโมเดล ถ้าทำสลับลำดับ เงินที่ประหยัดได้คุณก็ไม่รู้ว่าประหยัดมาจากไหน
ผู้เขียน: จ้าวฉีหมิง
วันที่เผยแพร่: 4 พฤศจิกายน 2026