اگر برای تکرارپذیری نتایج روی دمای صفر (Temperature-0) حساب کردهاید، احتمالاً فریب خوردهاید. باید بدانید که نتایج شما ممکن است صرفاً به دلیل تعداد درخواستهای همزمان در یک پردازنده تغییر کند.
این مشکل در استنتاج (Inference) — که مثل خودِ آشپزی است، نه دورهی آموزش آشپز — رخ میدهد. در واقع، استفاده از فرمت BF16 (نوعی نمایش اعداد اعشاری که مثل ترازویی است که اعداد را گرد میکند و جزئیات ریز را نادیده میگیرد) باعث میشود جمعهای ریاضی در دستههای مختلف، نتایج متفاوتی بدهند. همانطور که در تحلیلهای پیشین ما دربارهی بهینهسازی هزینههای استنتاج اشاره کردیم، توازن میان سرعت و دقت همیشه یک ریسک پنهان دارد.

به نقل از مقالهای که در ۲۸ مه ۲۰۲۶ منتشر شد، سیستمی به نام MarginGate معرفی شده است که این باگ خاموش را میگیرد. طبق مستندات این پژوهش، سازوکار آن به این صورت است:
- شناسایی گامهای پرریسک: حدود ۱۵ تا ۱۸ درصد از توکنها به عنوان «حساس» شناسایی میشوند.
- بازبینی دقیق: فقط این توکنهای حساس با دقت FP32 دوباره محاسبه میشوند.
- اصلاح خطا: تغییرات واقعی که در ۰.۳ تا ۱.۳ درصد گامها رخ میدهند، از طریق جایگزینی حافظه K/V اصلاح میشوند.
- نتیجه: مدلهای Llama-3.1-8B و Qwen2.5-14B به تکرارپذیری ۱۰۰ درصدی در سطح توالی رسیدند.
این روش نیاز به بازبینی دائمی FP32 را که هزینهها را دو برابر میکند، از بین میبرد. برای شما به عنوان توسعهدهنده، این یعنی میتوانید دوباره به بنچمارکهای خود اعتماد کنید بدون اینکه سرعت استنتاج را فدا کنید.
گام بعدی شما
- بررسی کنید آیا سیستم سرویسدهی شما از Continuous Batching استفاده میکند یا خیر.
- طرح MarginGate را برای پیادهسازی حلقه «تأیید و اصلاح» در ماژول حافظه K/V خود مطالعه کنید.
اما تأثیر این نوسانات بر مدلهای استدلالی پیچیدهتر حتی تکاندهندهتر است — به بررسی ما دربارهی مدلهای Reasoning مراجعه کنید.

گفتگو