อนุมาน
serving · generation
กล่าวโดยย่อ
การทำนายคือการนำโมเดลที่ฝึกแล้วมาประมวลผลกับข้อมูลใหม่เพื่อให้ได้ผลลัพธ์ โดยแตกต่างจากการฝึกซึ่งสร้างโมเดลขึ้นในตอนแรก การฝึกเป็นค่าใช้จ่ายเพียงครั้งเดียว ในขณะที่การทำนายต้องทำซ้ำสำหรับทุกคำขอ และในช่วงชีวิตของโมเดลที่ถูกใช้บ่อยครั้ง การทำนายจะครอบคลุมส่วนใหญ่ของทั้งค่าใช้จ่ายและการใช้พลังงาน
การทำนายข้อมูล (inference) แบ่งเป็นสองขั้นตอนที่มีคุณลักษณะการทำงานที่แตกต่างกัน
Prefill ประมวลผลข้อมูลทั้งหมดพร้อมกันในครั้งเดียว มันสามารถทำงานในเชิงพาราเลลได้ดีและเป็นข้อจำกัดด้านการคำนวณ (compute-bound) ดังนั้นจึงขยายตัวตามความยาวของข้อมูลเข้าและกำหนดระยะเวลาที่ผู้ใช้ต้องรอจนกว่าจะได้ token แรก
Decode สร้างผลลัพธ์ทีละ token โดยแต่ละขั้นตอนต้องทำการประมวลผลทั้งหมดของน้ำหนักโมเดลอีกครั้ง มันเป็นข้อจำกัดด้านความเร็วหน่วยความจำ (memory-bandwidth-bound) และกำหนดอัตราคำต่อวินาทีที่ผู้ใช้รับรู้
การปรับปรุงส่วนใหญ่ของการให้บริการโจมตีหนึ่งในสองขั้นตอนนี้ Continuous batching ทำให้เครื่องเร่งประมวลผลทำงานต่อเนื่องโดยการรวมข้อความที่มาถึงในเวลาแตกต่างกัน KV caching เก็บสถานะการคำนวณความสนใจ (attention) ที่ผ่านมาเพื่อไม่ต้องคำนวณใหม่ทุกขั้นตอน Speculative decoding ใช้โมเดลขนาดเล็กสร้างหลาย token ล่วงหน้าแล้วให้โมเดลใหญ่ตรวจสอบในหนึ่งการประมวลผล Quantisation ลดขนาดน้ำหนักเพื่อให้พอดีในหน่วยความจำเร็ว Mixture-of-experts แยกการประมวลผลแต่ละ token ให้ผ่านเฉพาะส่วนหนึ่งของเครือข่าย
ผลกระทบทางเศรษฐกิจคือประสิทธิภาพการทำนาย (inference efficiency) แทนขนาดโมเดล จะกำหนดว่าผลิตภ
คำถามที่พบบ่อย
- ทำไม token ตัวแรกถึงช้ากว่า token ตัวอื่น?
- โมเดลต้องประมวลผลข้อมูลทั้งหมดก่อนที่จะสร้างผลลัพธ์ใด ๆ — ระยะ prefill หลังจากนั้น โทเคนจะถูกสร้างทีละตัวในระยะ decode ซึ่งถูกจำกัดด้วยความเร็วของหน่วยความจำมากกว่ากำลังประมวลผลโดยตรง
- การทำนายมีค่าใช้จ่ายมากกว่าการฝึกอบรมโดยรวมหรือไม่?
- สำหรับโมเดลใด ๆ ที่ใช้ในสภาพการผลิตจริง คำตอบคือใช่ การฝึกมีขอบเขตจำกัด ในขณะที่การทำนายทำซ้ำไปเรื่อย ๆ และค่าใช้จ่ายรวมของการทำนายจะเกินค่าใช้จ่ายของการฝึกได้ภายในอายุการให้บริการของโมเดล