چرا هر بار جواب متفاوتی از هوش مصنوعی میگیرم
همان پرامپت را دوباره میفرستید و جواب فرق میکند. این خرابی نیست؛ روش کار مدل است. اینجا میبینیم ریشهاش کجاست و چطور خروجی را تکرارپذیر کنیم.
یک پرامپت مینویسید، جواب خوبی میگیرید، تب را میبندید. فردا همان جمله را دوباره میفرستید و چیز دیگری تحویل میگیرید — نه غلط، ولی نه همان. اولین فکر این است که سرویس خراب شده یا مدل را ضعیفتر کردهاند.
خراب نشده. این رفتار طراحیشده است و از همان چیزی میآید که اجازه میدهد مدل جملهی تازه بسازد. وقتی ریشهاش را بدانید، دست از تکرار بیفایده برمیدارید و جایی که خروجی باید ثابت بماند مهارش میکنید.
مدل انتخاب میکند، نه اینکه بهیاد بیاورد
مدل زبانی جواب را از انباری بیرون نمیکشد؛ کلمهبهکلمه میسازدش و در هر قدم فهرستی از گزینهها پیش رویش است، هرکدام با شانسی متفاوت. بعد از «پایتخت ایران»، «تهران» چنان جلوتر از بقیه است که عملاً همیشه همان میآید. ولی بعد از «یک عنوان جذاب برای پست اینستاگرام زعفران»، دهها گزینهی همشانس روی میز است.
آنجاست که مدل عملاً قرعه میکشد. یک انتخاب متفاوت در کلمهی پنجم، مسیر جمله را عوض میکند و متن از آنجا راه دیگری میرود — بیآنکه هیچکدام غلط باشند. همین سازوکار — پایهی مدلهای زبانی بزرگ — در توضیح کار مدلها بدون ریاضیات کاملتر باز شده.
دما چقدر از این را کنترل میکند
دما شناختهشدهترین پیچ روی همین قرعه است، ولی تنها پیچ نیست؛ top_p و top_k هم فهرست گزینهها را کوتاه میکنند. دما را پایین بیاورید، مدل به محتملترین گزینه میچسبد؛ بالا ببرید، سراغ گزینههای کمشانستر هم میرود و متن رنگیتر و گاهی پرتتر درمیآید. جزئیاتش در دما و تنظیمات مدل باز شده.
دو تذکر. اول: در بیشتر چتهای عمومی این پیچ در دسترس نیست و فقط از راه API تنظیم میشود. دوم: حتی با دمای صفر هم دو خروجی مو به مو یکی نمیشوند، چون درخواست شما همراه درخواستهای دیگر در یک بسته پردازش میشود و ترتیب آن بسته، محاسبات اعشاری را در رقمهای آخر تکان میدهد. کارت گرافیک هم همیشه یکی نیست. بعضی سرویسها پارامتر seed میدهند، ولی خودشان هم آن را تضمینشده نمیدانند.
همان پرامپت، ولی نه همان ورودی
خیلی وقتها چیزی که ثابت فرض کردهاید ثابت نمانده. مدل فقط پیام آخر را نمیبیند؛ کل گفتگوی قبلی، دستور سیستمی سرویس، حافظهی کاربر و گاهی تاریخ روز را هم میبیند. اگر بالاتر دربارهی قرارداد اجاره حرف زده بودید، جواب بعدی رنگ حقوقی میگیرد؛ در گفتگوی تازه نمیگیرد.
سادهترین آزمون همین است: پرامپت را در یک گفتگوی خالی امتحان کنید. اگر خروجیها آنجا به هم نزدیک شدند، مقصر تصادف نبوده، زمینه بوده — موضوعی که مهندسی زمینه کامل بازش کرده.
نامِ ثابت، مدلِ متغیر
نامی که در فهرست مدلها میبینید لزوماً به یک چیز ثابت اشاره نمیکند؛ سازندهها نسخهی پشت آن نام را بهروز میکنند، گاهی بیسروصدا. لحن و طول جواب عوض میشود و کاربر خیال میکند کیفیت افت کرده؛ فقط نسخه جابهجا شده.
اگر خروجی برایتان حیاتی است، نسخهی مدل را کنار پرامپت یادداشت کنید و مدل را صریح انتخاب کنید، نه حالت خودکار. در نارنگی مدل هر گفتگو مشخص است و همین یک قدم بخشی از پراکندگی را برمیدارد.
کجا این تنوع سرمایه است و کجا خرابی
تصادفی بودن خروجی بهخودیخود عیب نیست؛ بستگی دارد از مدل چه بخواهید.
| کار | تنوع خروجی | چه باید کرد |
|---|---|---|
| ایدهپردازی و نامگذاری | سرمایه است | دما بالاتر، چند اجرا |
| پیشنویس کپشن و متن | قابل تحمل | یکی را بردارید و ویرایش کنید |
| ترجمه و بازنویسی | مزاحم | لحن و واژهنامه را صریح بنویسید |
| استخراج داده از سند | خطرناک | قالب ستونی ثابت و بازبینی |
| کد و فرمول | خطرناک | نمونه بدهید، خروجی را تست کنید |
سطر چهارم مهمترین است. اگر هر اجرا یک قلم فاکتور را جابهجا بنویسد، کل خروجی بیاعتبار است؛ نمیدانید کدام اجرا درست بوده. روش کمخطرتر در تبدیل PDF و تصویر به اکسل آمده.
قالب را قفل کنید، دوباره امتحان نکنید
رایجترین واکنش، فرستادن دوباره و دوبارهی همان پرامپت است تا «جواب خوب» بیاید. حل نمیشود؛ بار چهارم هم فرق میکند. چیزی که جواب میدهد کم کردن آزادی مدل است: قالب دقیق، یک نمونهی پرشده، و فهرست چیزهایی که نباید بنویسد.
وظیفه: از متن زیر، اقلام فاکتور را دربیاور.
قالب خروجی — دقیقاً همین ستونها و به همین ترتیب:
ردیف | شرح کالا | تعداد | قیمت واحد | جمع
قواعد:
- فقط جدول بده؛ هیچ مقدمه و توضیحی ننویس.
- عددها را بدون جداکننده و بدون واحد بنویس.
- اگر مقداری در متن نبود، بنویس: نامشخص
- حدس نزن و چیزی به متن اضافه نکن.
نمونهی یک سطر درست:
1 | زعفران سرگل یک مثقال | 2 | 480000 | 960000
متن:
[اینجا بچسبانید]
هرچه قواعد صریحتر باشند، فضای انتخاب مدل تنگتر و اجراها نزدیکتر میشود. الگوهای بیشتری در پرامپتنویسی فارسی هست.
هر پرامپتی را که مرتب استفاده میکنید، سه بار در گفتگوهای خالی اجرا کنید. اگر ساختار و عددهای هر سه یکی بود، پرامپت پخته است. اگر نه، سه خروجی را کنار هم بگذارید؛ جایی که فرق دارند، همان بندِ مبهم پرامپت است.
جایی که هنوز جواب نمیدهد
حتی با سفتترین قالب، متن صددرصد تکرارپذیر نمیشود. ساختار و عددها را میشود تثبیت کرد؛ انتخاب کلمهها را نه. پس برای کاری که باید مو به مو تکرار شود — اظهارنامهی مالیاتی، تطبیق حساب بانکی — مرز را همینجا بگذارید: مدل فقط داده را از سند دربیاورد، جمع و درصد را فرمول اکسل بزند، و عدد نهایی را حسابدار تأیید کند؛ خروجی مدل پیشنویس است، نه سند.
جمعبندی
تفاوت جوابها نشانهی خرابی نیست؛ حاصلِ انتخاب احتمالی کلمههاست، بهعلاوهی زمینهای که عوض شده و نسخهای که بیصدا بهروز شده. سه چیز پراکندگی را کم میکند: گفتگوی خالی، قالب صریح با یک نمونه، و انتخاب دستی مدل.
و مهمترین عادتی که باید عوض کنید: وقتی خروجی باید ثابت باشد، دوباره اجرا نکنید — پرامپت را قفل کنید. تکرار، شانس را امتحان میکند؛ قالب، فضای شانس را تنگ میکند.
برای ادامه: