چرا هر بار جواب متفاوتی از هوش مصنوعی می‌گیرم

همان پرامپت را دوباره می‌فرستید و جواب فرق می‌کند. این خرابی نیست؛ روش کار مدل است. اینجا می‌بینیم ریشه‌اش کجاست و چطور خروجی را تکرارپذیر کنیم.

🍊 تیم نارنگی ⏱ 5 دقیقه مطالعه
دو خروجی متنی متفاوت از یک پرسش یکسان که کنار هم روی صفحه نشان داده شده‌اند

یک پرامپت می‌نویسید، جواب خوبی می‌گیرید، تب را می‌بندید. فردا همان جمله را دوباره می‌فرستید و چیز دیگری تحویل می‌گیرید — نه غلط، ولی نه همان. اولین فکر این است که سرویس خراب شده یا مدل را ضعیف‌تر کرده‌اند.

خراب نشده. این رفتار طراحی‌شده است و از همان چیزی می‌آید که اجازه می‌دهد مدل جمله‌ی تازه بسازد. وقتی ریشه‌اش را بدانید، دست از تکرار بی‌فایده برمی‌دارید و جایی که خروجی باید ثابت بماند مهارش می‌کنید.

مدل انتخاب می‌کند، نه اینکه به‌یاد بیاورد

مدل زبانی جواب را از انباری بیرون نمی‌کشد؛ کلمه‌به‌کلمه می‌سازدش و در هر قدم فهرستی از گزینه‌ها پیش رویش است، هرکدام با شانسی متفاوت. بعد از «پایتخت ایران»، «تهران» چنان جلوتر از بقیه است که عملاً همیشه همان می‌آید. ولی بعد از «یک عنوان جذاب برای پست اینستاگرام زعفران»، ده‌ها گزینه‌ی هم‌شانس روی میز است.

آنجاست که مدل عملاً قرعه می‌کشد. یک انتخاب متفاوت در کلمه‌ی پنجم، مسیر جمله را عوض می‌کند و متن از آنجا راه دیگری می‌رود — بی‌آنکه هیچ‌کدام غلط باشند. همین سازوکار — پایه‌ی مدل‌های زبانی بزرگ — در توضیح کار مدل‌ها بدون ریاضیات کامل‌تر باز شده.

دما چقدر از این را کنترل می‌کند

دما شناخته‌شده‌ترین پیچ روی همین قرعه است، ولی تنها پیچ نیست؛ top_p و top_k هم فهرست گزینه‌ها را کوتاه می‌کنند. دما را پایین بیاورید، مدل به محتمل‌ترین گزینه می‌چسبد؛ بالا ببرید، سراغ گزینه‌های کم‌شانس‌تر هم می‌رود و متن رنگی‌تر و گاهی پرت‌تر درمی‌آید. جزئیاتش در دما و تنظیمات مدل باز شده.

دو تذکر. اول: در بیشتر چت‌های عمومی این پیچ در دسترس نیست و فقط از راه API تنظیم می‌شود. دوم: حتی با دمای صفر هم دو خروجی مو به مو یکی نمی‌شوند، چون درخواست شما همراه درخواست‌های دیگر در یک بسته پردازش می‌شود و ترتیب آن بسته، محاسبات اعشاری را در رقم‌های آخر تکان می‌دهد. کارت گرافیک هم همیشه یکی نیست. بعضی سرویس‌ها پارامتر seed می‌دهند، ولی خودشان هم آن را تضمین‌شده نمی‌دانند.

همان پرامپت، ولی نه همان ورودی

خیلی وقت‌ها چیزی که ثابت فرض کرده‌اید ثابت نمانده. مدل فقط پیام آخر را نمی‌بیند؛ کل گفتگوی قبلی، دستور سیستمی سرویس، حافظه‌ی کاربر و گاهی تاریخ روز را هم می‌بیند. اگر بالاتر درباره‌ی قرارداد اجاره حرف زده بودید، جواب بعدی رنگ حقوقی می‌گیرد؛ در گفتگوی تازه نمی‌گیرد.

ساده‌ترین آزمون همین است: پرامپت را در یک گفتگوی خالی امتحان کنید. اگر خروجی‌ها آنجا به هم نزدیک شدند، مقصر تصادف نبوده، زمینه بوده — موضوعی که مهندسی زمینه کامل بازش کرده.

نامِ ثابت، مدلِ متغیر

نامی که در فهرست مدل‌ها می‌بینید لزوماً به یک چیز ثابت اشاره نمی‌کند؛ سازنده‌ها نسخه‌ی پشت آن نام را به‌روز می‌کنند، گاهی بی‌سروصدا. لحن و طول جواب عوض می‌شود و کاربر خیال می‌کند کیفیت افت کرده؛ فقط نسخه جابه‌جا شده.

اگر خروجی برایتان حیاتی است، نسخه‌ی مدل را کنار پرامپت یادداشت کنید و مدل را صریح انتخاب کنید، نه حالت خودکار. در نارنگی مدل هر گفتگو مشخص است و همین یک قدم بخشی از پراکندگی را برمی‌دارد.

کجا این تنوع سرمایه است و کجا خرابی

تصادفی بودن خروجی به‌خودی‌خود عیب نیست؛ بستگی دارد از مدل چه بخواهید.

کارتنوع خروجیچه باید کرد
ایده‌پردازی و نام‌گذاریسرمایه استدما بالاتر، چند اجرا
پیش‌نویس کپشن و متنقابل تحملیکی را بردارید و ویرایش کنید
ترجمه و بازنویسیمزاحملحن و واژه‌نامه را صریح بنویسید
استخراج داده از سندخطرناکقالب ستونی ثابت و بازبینی
کد و فرمولخطرناکنمونه بدهید، خروجی را تست کنید

سطر چهارم مهم‌ترین است. اگر هر اجرا یک قلم فاکتور را جابه‌جا بنویسد، کل خروجی بی‌اعتبار است؛ نمی‌دانید کدام اجرا درست بوده. روش کم‌خطرتر در تبدیل PDF و تصویر به اکسل آمده.

قالب را قفل کنید، دوباره امتحان نکنید

رایج‌ترین واکنش، فرستادن دوباره و دوباره‌ی همان پرامپت است تا «جواب خوب» بیاید. حل نمی‌شود؛ بار چهارم هم فرق می‌کند. چیزی که جواب می‌دهد کم کردن آزادی مدل است: قالب دقیق، یک نمونه‌ی پرشده، و فهرست چیزهایی که نباید بنویسد.

وظیفه: از متن زیر، اقلام فاکتور را دربیاور.

قالب خروجی — دقیقاً همین ستون‌ها و به همین ترتیب:
ردیف | شرح کالا | تعداد | قیمت واحد | جمع

قواعد:
- فقط جدول بده؛ هیچ مقدمه و توضیحی ننویس.
- عددها را بدون جداکننده و بدون واحد بنویس.
- اگر مقداری در متن نبود، بنویس: نامشخص
- حدس نزن و چیزی به متن اضافه نکن.

نمونه‌ی یک سطر درست:
1 | زعفران سرگل یک مثقال | 2 | 480000 | 960000

متن:
[اینجا بچسبانید]

هرچه قواعد صریح‌تر باشند، فضای انتخاب مدل تنگ‌تر و اجراها نزدیک‌تر می‌شود. الگوهای بیشتری در پرامپت‌نویسی فارسی هست.

💡 آزمون سه‌باره پیش از اعتماد

هر پرامپتی را که مرتب استفاده می‌کنید، سه بار در گفتگوهای خالی اجرا کنید. اگر ساختار و عددهای هر سه یکی بود، پرامپت پخته است. اگر نه، سه خروجی را کنار هم بگذارید؛ جایی که فرق دارند، همان بندِ مبهم پرامپت است.

جایی که هنوز جواب نمی‌دهد

حتی با سفت‌ترین قالب، متن صددرصد تکرارپذیر نمی‌شود. ساختار و عددها را می‌شود تثبیت کرد؛ انتخاب کلمه‌ها را نه. پس برای کاری که باید مو به مو تکرار شود — اظهارنامه‌ی مالیاتی، تطبیق حساب بانکی — مرز را همین‌جا بگذارید: مدل فقط داده را از سند دربیاورد، جمع و درصد را فرمول اکسل بزند، و عدد نهایی را حسابدار تأیید کند؛ خروجی مدل پیش‌نویس است، نه سند.

جمع‌بندی

تفاوت جواب‌ها نشانه‌ی خرابی نیست؛ حاصلِ انتخاب احتمالی کلمه‌هاست، به‌علاوه‌ی زمینه‌ای که عوض شده و نسخه‌ای که بی‌صدا به‌روز شده. سه چیز پراکندگی را کم می‌کند: گفتگوی خالی، قالب صریح با یک نمونه، و انتخاب دستی مدل.

و مهم‌ترین عادتی که باید عوض کنید: وقتی خروجی باید ثابت باشد، دوباره اجرا نکنید — پرامپت را قفل کنید. تکرار، شانس را امتحان می‌کند؛ قالب، فضای شانس را تنگ می‌کند.

برای ادامه:

پرسش‌های پرتکرار

چرا با اینکه پرامپت را عوض نکرده‌ام، جواب کوتاه‌تر یا بلندتر می‌شود؟ +
مدل طول جواب را از قبل برنامه‌ریزی نمی‌کند؛ طول، نتیجه‌ی همان انتخاب‌های کلمه‌به‌کلمه است و یک تصمیم متفاوت در جمله‌ی اول، کل ساختار را جابه‌جا می‌کند. اگر طول برایتان مهم است، آن را عددی و صریح بنویسید: «حداکثر ۱۲۰ کلمه، در سه بند». مدل معمولاً به سقف عددی بهتر از «کوتاه بنویس» پایبند می‌ماند، هرچند کلمه‌ها را دقیق نمی‌شمارد.
اگر دما را صفر بگذارم، خروجی کاملاً یکسان می‌شود؟ +
نه، فقط بسیار نزدیک‌تر. دمای صفر جلوی انتخاب تصادفی را می‌گیرد ولی جلوی بقیه‌ی منابع تفاوت را نه: پردازش دسته‌ای روی سرور، تفاوت سخت‌افزار، و به‌روزرسانی بی‌اعلام نسخه‌ی مدل. ضمناً در بیشتر چت‌های عمومی اصلاً به تنظیم دما دسترسی ندارید؛ این گزینه معمولاً فقط از راه API روی میز است.
یعنی سرویس خراب است یا مدل ضعیف شده؟ +
معمولاً هیچ‌کدام. تنوع خروجی بخشی از طراحی مدل‌های زبانی است و همان چیزی است که به آن‌ها اجازه می‌دهد جمله‌ی تازه بسازند. افت واقعی کیفیت را باید با اجرای چندباره‌ی یک پرامپت مشخص و مقایسه‌ی نتیجه‌ها سنجید، نه با یک بار جواب بد.
چطور بفهمم تفاوت از تصادف است یا از گفتگوی قبلی؟ +
یک گفتگوی کاملاً خالی باز کنید و همان پرامپت را دو بار پشت سر هم بفرستید. اگر آنجا خروجی‌ها به هم نزدیک بودند، مقصر زمینه‌ی گفتگوی قبلی بوده نه نمونه‌برداری تصادفی. اگر همان‌جا هم پراکنده بود، ایراد از خود پرامپت است و قالب خروجی باید سفت‌تر شود. حواستان به حافظه‌ی کاربر هم باشد؛ بعضی سرویس‌ها آن را بین گفتگوها منتقل می‌کنند و «خالی» واقعاً خالی نیست.
برای استخراج داده چه کنم که هر اجرا یک نتیجه بدهد؟ +
قالب را ستون‌به‌ستون بنویسید، یک سطر نمونه‌ی پرشده بگذارید و صریح بخواهید که حدس نزند و برای مقدار غایب «نامشخص» بنویسد. سند بلند را هم تکه‌تکه بدهید، چون هرچه متن طولانی‌تر باشد احتمال جاافتادن سطر بیشتر می‌شود. و جمع و درصد را از مدل نخواهید؛ داده را دربیاورید و محاسبه را به فرمول اکسل بسپارید.
#جواب متفاوت هوش مصنوعی #تکرارپذیری خروجی #دما در مدل زبانی #چرا جواب هوش مصنوعی عوض می‌شود #نمونه‌برداری تصادفی
به‌دردِ کسی می‌خورد؟ تلگرام واتساپ
🍊

خواندنش خوب بود — حالا امتحانش کن

هرچه در این صفحه خواندی، همین حالا داخلِ نارنگی قابلِ اجراست. ثبت‌نام با شماره‌ی موبایل، نارنگیِ رایگانِ شروع، بدونِ نیاز به کارت یا تحریم‌شکن.

بدونِ نصب هم کار می‌کند — ولی در اپ سریع‌تر است