“Thinking Machines แก้ปัญหา LLM ตอบไม่เหมือนกัน — เผยต้นเหตุจาก batch-size ไม่คงที่ ไม่ใช่แค่เรื่อง floating point”
หลายคนอาจเคยสงสัยว่า ทำไมเวลาใช้โมเดลภาษาอย่าง ChatGPT ถามคำถามเดิมซ้ำ ๆ แล้วได้คำตอบไม่เหมือนกัน ทั้งที่ตั้งค่า temperature เป็น 0 ซึ่งควรจะได้คำตอบที่ “แน่นอน” ทุกครั้ง ล่าสุดทีมวิจัยจาก Thinking Machines Lab ได้ออกบทความเจาะลึกถึงสาเหตุของความไม่แน่นอน (nondeterminism) ในการทำ inference ของ LLM และเสนอแนวทางแก้ไขที่อาจเปลี่ยนมาตรฐานของวงการ AI ไปตลอดกาล.
บทความนี้ชี้ว่า สาเหตุที่แท้จริงไม่ใช่แค่เรื่อง “floating-point non-associativity” หรือการคำนวณแบบขนานบน GPU ที่ทำให้ผลลัพธ์เปลี่ยนไปตามลำดับการรวมค่า แต่เกิดจากสิ่งที่เรียกว่า “batch-size variance” — กล่าวคือ ผลลัพธ์ของแต่ละคำขอ (request) ขึ้นอยู่กับว่ามีคำขออื่น ๆ เข้ามาพร้อมกันมากแค่ไหน ซึ่งส่งผลให้ batch-size ที่ใช้ใน kernel เปลี่ยนไป และทำให้ผลลัพธ์เปลี่ยนตาม
เพื่อแก้ปัญหานี้ ทีมงานได้พัฒนา kernel แบบใหม่ที่เรียกว่า “batch-invariant kernels” ซึ่งทำให้ผลลัพธ์ของแต่ละคำขอไม่ขึ้นอยู่กับ batch-size ที่ใช้ในระบบ โดยปรับปรุงการคำนวณใน RMSNorm, matrix multiplication และ attention ให้มีลำดับการรวมค่าที่คงที่ไม่ว่าจะมีคำขอมากหรือน้อย
ผลการทดลองแสดงให้เห็นว่า เมื่อใช้ batch-invariant kernels แล้ว โมเดลสามารถให้ผลลัพธ์ที่เหมือนกันทุกครั้งแม้จะมีคำขอหลายชุดเข้ามาพร้อมกัน และยังสามารถนำไปใช้ในงาน reinforcement learning แบบ on-policy ได้อย่างแท้จริง ซึ่งเป็นสิ่งที่ไม่เคยทำได้มาก่อน
สาเหตุของความไม่แน่นอนในการทำ inference ของ LLM
ไม่ได้เกิดจาก floating-point หรือ atomic add โดยตรง
เกิดจาก batch-size ที่เปลี่ยนไปตามจำนวนคำขอที่เข้ามาพร้อมกัน
ทำให้ลำดับการคำนวณใน kernel เปลี่ยนไป และผลลัพธ์เปลี่ยนตาม
ส่งผลให้แม้จะตั้ง temperature = 0 ก็ยังได้ผลลัพธ์ไม่เหมือนกัน
แนวทางแก้ไขโดย Thinking Machines
พัฒนา batch-invariant kernels สำหรับ RMSNorm, matmul และ attention
ใช้ data-parallel strategy เพื่อให้ลำดับการรวมค่าคงที่
ปรับ attention kernel ให้ลดค่าจาก KV cache และ current KV อย่างสม่ำเสมอ
ใช้ fixed-size split แทน fixed-number split เพื่อรักษาลำดับการคำนวณ
ผลลัพธ์จากการทดลอง
เมื่อใช้ batch-invariant kernels แล้ว ได้ผลลัพธ์เหมือนกันทุกครั้ง
สามารถใช้ใน RL แบบ on-policy ได้จริง โดยไม่มี KL divergence
ลดความจำเป็นในการใช้ importance weighting ใน RL
แม้จะช้ากว่า kernel ปกติ ~20% แต่ยังอยู่ในระดับที่ใช้งานได้จริง
ข้อมูลเสริมจากภายนอก
Thinking Machines ก่อตั้งโดยอดีต CTO ของ OpenAI และมีมูลค่ากว่า $12 พันล้าน
โครงการนี้ใช้โมเดล Qwen3-8B และ Qwen3-235B ในการทดลอง
batch-invariant ops ถูกเผยแพร่ผ่าน PyTorch library และ vLLM integration
แนวคิดนี้อาจเปลี่ยนมาตรฐานของการ deploy LLM ในระดับ production
https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/
หลายคนอาจเคยสงสัยว่า ทำไมเวลาใช้โมเดลภาษาอย่าง ChatGPT ถามคำถามเดิมซ้ำ ๆ แล้วได้คำตอบไม่เหมือนกัน ทั้งที่ตั้งค่า temperature เป็น 0 ซึ่งควรจะได้คำตอบที่ “แน่นอน” ทุกครั้ง ล่าสุดทีมวิจัยจาก Thinking Machines Lab ได้ออกบทความเจาะลึกถึงสาเหตุของความไม่แน่นอน (nondeterminism) ในการทำ inference ของ LLM และเสนอแนวทางแก้ไขที่อาจเปลี่ยนมาตรฐานของวงการ AI ไปตลอดกาล.
บทความนี้ชี้ว่า สาเหตุที่แท้จริงไม่ใช่แค่เรื่อง “floating-point non-associativity” หรือการคำนวณแบบขนานบน GPU ที่ทำให้ผลลัพธ์เปลี่ยนไปตามลำดับการรวมค่า แต่เกิดจากสิ่งที่เรียกว่า “batch-size variance” — กล่าวคือ ผลลัพธ์ของแต่ละคำขอ (request) ขึ้นอยู่กับว่ามีคำขออื่น ๆ เข้ามาพร้อมกันมากแค่ไหน ซึ่งส่งผลให้ batch-size ที่ใช้ใน kernel เปลี่ยนไป และทำให้ผลลัพธ์เปลี่ยนตาม
เพื่อแก้ปัญหานี้ ทีมงานได้พัฒนา kernel แบบใหม่ที่เรียกว่า “batch-invariant kernels” ซึ่งทำให้ผลลัพธ์ของแต่ละคำขอไม่ขึ้นอยู่กับ batch-size ที่ใช้ในระบบ โดยปรับปรุงการคำนวณใน RMSNorm, matrix multiplication และ attention ให้มีลำดับการรวมค่าที่คงที่ไม่ว่าจะมีคำขอมากหรือน้อย
ผลการทดลองแสดงให้เห็นว่า เมื่อใช้ batch-invariant kernels แล้ว โมเดลสามารถให้ผลลัพธ์ที่เหมือนกันทุกครั้งแม้จะมีคำขอหลายชุดเข้ามาพร้อมกัน และยังสามารถนำไปใช้ในงาน reinforcement learning แบบ on-policy ได้อย่างแท้จริง ซึ่งเป็นสิ่งที่ไม่เคยทำได้มาก่อน
สาเหตุของความไม่แน่นอนในการทำ inference ของ LLM
ไม่ได้เกิดจาก floating-point หรือ atomic add โดยตรง
เกิดจาก batch-size ที่เปลี่ยนไปตามจำนวนคำขอที่เข้ามาพร้อมกัน
ทำให้ลำดับการคำนวณใน kernel เปลี่ยนไป และผลลัพธ์เปลี่ยนตาม
ส่งผลให้แม้จะตั้ง temperature = 0 ก็ยังได้ผลลัพธ์ไม่เหมือนกัน
แนวทางแก้ไขโดย Thinking Machines
พัฒนา batch-invariant kernels สำหรับ RMSNorm, matmul และ attention
ใช้ data-parallel strategy เพื่อให้ลำดับการรวมค่าคงที่
ปรับ attention kernel ให้ลดค่าจาก KV cache และ current KV อย่างสม่ำเสมอ
ใช้ fixed-size split แทน fixed-number split เพื่อรักษาลำดับการคำนวณ
ผลลัพธ์จากการทดลอง
เมื่อใช้ batch-invariant kernels แล้ว ได้ผลลัพธ์เหมือนกันทุกครั้ง
สามารถใช้ใน RL แบบ on-policy ได้จริง โดยไม่มี KL divergence
ลดความจำเป็นในการใช้ importance weighting ใน RL
แม้จะช้ากว่า kernel ปกติ ~20% แต่ยังอยู่ในระดับที่ใช้งานได้จริง
ข้อมูลเสริมจากภายนอก
Thinking Machines ก่อตั้งโดยอดีต CTO ของ OpenAI และมีมูลค่ากว่า $12 พันล้าน
โครงการนี้ใช้โมเดล Qwen3-8B และ Qwen3-235B ในการทดลอง
batch-invariant ops ถูกเผยแพร่ผ่าน PyTorch library และ vLLM integration
แนวคิดนี้อาจเปลี่ยนมาตรฐานของการ deploy LLM ในระดับ production
https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/
🧠 “Thinking Machines แก้ปัญหา LLM ตอบไม่เหมือนกัน — เผยต้นเหตุจาก batch-size ไม่คงที่ ไม่ใช่แค่เรื่อง floating point”
หลายคนอาจเคยสงสัยว่า ทำไมเวลาใช้โมเดลภาษาอย่าง ChatGPT ถามคำถามเดิมซ้ำ ๆ แล้วได้คำตอบไม่เหมือนกัน ทั้งที่ตั้งค่า temperature เป็น 0 ซึ่งควรจะได้คำตอบที่ “แน่นอน” ทุกครั้ง ล่าสุดทีมวิจัยจาก Thinking Machines Lab ได้ออกบทความเจาะลึกถึงสาเหตุของความไม่แน่นอน (nondeterminism) ในการทำ inference ของ LLM และเสนอแนวทางแก้ไขที่อาจเปลี่ยนมาตรฐานของวงการ AI ไปตลอดกาล.
บทความนี้ชี้ว่า สาเหตุที่แท้จริงไม่ใช่แค่เรื่อง “floating-point non-associativity” หรือการคำนวณแบบขนานบน GPU ที่ทำให้ผลลัพธ์เปลี่ยนไปตามลำดับการรวมค่า แต่เกิดจากสิ่งที่เรียกว่า “batch-size variance” — กล่าวคือ ผลลัพธ์ของแต่ละคำขอ (request) ขึ้นอยู่กับว่ามีคำขออื่น ๆ เข้ามาพร้อมกันมากแค่ไหน ซึ่งส่งผลให้ batch-size ที่ใช้ใน kernel เปลี่ยนไป และทำให้ผลลัพธ์เปลี่ยนตาม
เพื่อแก้ปัญหานี้ ทีมงานได้พัฒนา kernel แบบใหม่ที่เรียกว่า “batch-invariant kernels” ซึ่งทำให้ผลลัพธ์ของแต่ละคำขอไม่ขึ้นอยู่กับ batch-size ที่ใช้ในระบบ โดยปรับปรุงการคำนวณใน RMSNorm, matrix multiplication และ attention ให้มีลำดับการรวมค่าที่คงที่ไม่ว่าจะมีคำขอมากหรือน้อย
ผลการทดลองแสดงให้เห็นว่า เมื่อใช้ batch-invariant kernels แล้ว โมเดลสามารถให้ผลลัพธ์ที่เหมือนกันทุกครั้งแม้จะมีคำขอหลายชุดเข้ามาพร้อมกัน และยังสามารถนำไปใช้ในงาน reinforcement learning แบบ on-policy ได้อย่างแท้จริง ซึ่งเป็นสิ่งที่ไม่เคยทำได้มาก่อน
✅ สาเหตุของความไม่แน่นอนในการทำ inference ของ LLM
➡️ ไม่ได้เกิดจาก floating-point หรือ atomic add โดยตรง
➡️ เกิดจาก batch-size ที่เปลี่ยนไปตามจำนวนคำขอที่เข้ามาพร้อมกัน
➡️ ทำให้ลำดับการคำนวณใน kernel เปลี่ยนไป และผลลัพธ์เปลี่ยนตาม
➡️ ส่งผลให้แม้จะตั้ง temperature = 0 ก็ยังได้ผลลัพธ์ไม่เหมือนกัน
✅ แนวทางแก้ไขโดย Thinking Machines
➡️ พัฒนา batch-invariant kernels สำหรับ RMSNorm, matmul และ attention
➡️ ใช้ data-parallel strategy เพื่อให้ลำดับการรวมค่าคงที่
➡️ ปรับ attention kernel ให้ลดค่าจาก KV cache และ current KV อย่างสม่ำเสมอ
➡️ ใช้ fixed-size split แทน fixed-number split เพื่อรักษาลำดับการคำนวณ
✅ ผลลัพธ์จากการทดลอง
➡️ เมื่อใช้ batch-invariant kernels แล้ว ได้ผลลัพธ์เหมือนกันทุกครั้ง
➡️ สามารถใช้ใน RL แบบ on-policy ได้จริง โดยไม่มี KL divergence
➡️ ลดความจำเป็นในการใช้ importance weighting ใน RL
➡️ แม้จะช้ากว่า kernel ปกติ ~20% แต่ยังอยู่ในระดับที่ใช้งานได้จริง
✅ ข้อมูลเสริมจากภายนอก
➡️ Thinking Machines ก่อตั้งโดยอดีต CTO ของ OpenAI และมีมูลค่ากว่า $12 พันล้าน
➡️ โครงการนี้ใช้โมเดล Qwen3-8B และ Qwen3-235B ในการทดลอง
➡️ batch-invariant ops ถูกเผยแพร่ผ่าน PyTorch library และ vLLM integration
➡️ แนวคิดนี้อาจเปลี่ยนมาตรฐานของการ deploy LLM ในระดับ production
https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/
0 Comments
0 Shares
40 Views
0 Reviews