Non-determinism
Non-determinism یعنی خروجی LLMها ذاتا کاملاً ثابت نیست و حتی با ورودی یکسان هم ممکنه جوابهای متفاوتی تولید کنن، پس تکرار و بررسی خروجی بخش طبیعی کار با مدلهاست.
Non-determinism یعنی حتی اگه دقیقا یه Prompt و یه Context یکسان رو دوبار به یه Model بدی، ممکنه دو جواب متفاوت بگیری.
گاهی فقط یکی دو کلمه فرق میکنه، ولی بعضی وقتها کل روش حل مسئله عوض میشه. در حالی که ورودی و کدت هیچ تغییری نکردن.
دلیلش اینه که مدل موقع Inference برای هر Token یه جواب قطعی نداره بلکه برای هزاران Token مختلف، احتمالات رو بررسی میکنه و بعد یکی از اونها رو انتخاب میکنه.
این انتخاب همیشه کاملاً ثابت نیست و کمی شانس هم توش دخیله.
از اونجایی که مدل جواب رو Token به Token میسازه، اگه همون یکی دو تا Token اول یا دوم فرق کنه، بقیهی جواب هم کمکم مسیر متفاوتی پیدا میکنه.
خود Model Provider هم گاهی باعث تفاوتهای کوچیک میشه. چون درخواستهای میلیونها نفر روی سختافزارهای مشترک پردازش میشن، اختلافهای خیلی ریز توی محاسبات هم ممکنه باعث بشه مدل بین دو Token نزدیک، یکی دیگه رو انتخاب کنه.
به خاطر همین هیچ دکمهای وجود نداره که خروجی مدل رو همیشه صددرصد یکسان کنه.
برای Agentها این موضوع کاملاً طبیعیه. ممکنه یه بار یه تسک رو عالی انجام بدن و دفعهی بعد روی همون تسک اشتباه کنن، البته که بیشتر جوابها کیفیت مشابهی دارن، ولی همیشه احتمال یه جواب خیلی خوب یا یه جواب ضعیف هم وجود داره.
به همین خاطر، اگه یه بار مدل نتیجهی خوبی نداد، کاملا منطقیه که داخل یک سشن جدید دوباره همون سوالو ازش بپرسی و شاید دفعه دوم جواب بهتری بهت برگردونه.
از اون طرف هم نباید فقط با یه بار تست کردن، دیگه مطمئن بشی که یه Agent همیشه درست کار میکنه چون دفعهی بعد ممکنه خروجی متفاوتی تولید کنه.
برای همین استفاده از Automated Check خیلی مهمه تا خروجیهای اشتباه رو تشخیص بده.
یه اشتباه رایج هم اینه که بعد از چند جواب بد، سریع نتیجه بگیریم که این مدل دیگه خراب شده یا میگیم نسخهی جدید این مدل ضعیفتره. ولی در واقع هیچ اتفاق عجیب غریبی نیفتاده و شما فقط داری یکی از خروجیهای طبیعی همین توزیع احتمالاتو میبینی.