Hallucination در هوش مصنوعی چیست و چرا برنامهنویس باید آن را جدی بگیرد؟
تعریف confabulation از NIST و ریسک misinformation در OWASP GenAI، با مثال کد و روش تشخیص برای توسعهدهندگان.
بنیانگذار و مهندس محصول

خطرناکترین خروجی مدل لزوماً خطای کامپایل نیست. گاهی کدی میبینید که کامپایل میشود، نام توابع آشناست، حتی «منبع» میآورد — و همهٔ آن ساختگی است. برنامهنویسی که hallucination را جدی نگیرد، باگ را با اعتمادبهنفس وارد main میکند.
NIST در پروفایل Generative AI (AI 600-1) این پدیده را تحت عنوان Confabulation تعریف میکند: تولید محتوایی که با اطمینان بیان میشود اما نادرست یا کاذب است؛ بهصورت عامیانه hallucination یا fabrication. شامل خروجیهایی که از پرامپت منحرف میشوند یا با گفتههای قبلی همان زمینه تناقض دارند. علت ریشهای از نظر NIST با طراحی مدلهای مولد همخوان است: تقریب توزیع آماری دادهٔ آموزش و پیشبینی توکن بعدی.
OWASP در مسیر Top 10 برای کاربردهای LLM، بیشاتکایی و اطلاعات نادرست را ریسک میداند؛ در منابع GenAI نیز misinformation بهعنوان محور باقی مانده است. برای برنامهنویس پکیج جعلی، API ساختگی و استناد دروغین هزینهٔ واقعی دارند.

پاسخ کوتاه
Hallucination یعنی مدل چیزی بسازد که شبیه حقیقت یا کد معتبر است ولی با واقعیت، مخزن شما، یا منابع قابلاستناد نمیخواند. جدی گرفتن یعنی هر ادعای کتابخانه، فلگ، مسیر فایل و استدلال امنیتی را با شاهد مستقل (سند رسمی، کد موجود، تست) چک کنید — بهویژه وقتی لحن پاسخ خیلی مطمئن است.
اطمینان در متن مدل، متریک کالیبرهشدهٔ احتمال صحت نیست.
چرا در کدنویسی زیاد دیده میشود؟
کد ساختار تکراری دارد؛ مدل در تولید ظاهر درست مهارت دارد. همزمان فضای نام پکیجها و APIها بزرگ و متغیر است. وقتی زمینهٔ مخزن ناقص باشد، مدل به الگوی عمومی برمیگردد و «چیزی شبیه» میسازد. NIST میگوید این پویایی در پرامپتهای باز و حوزههای تخصصی پررنگ است.
نظرسنجی Stack Overflow ۲۰۲۵ نشان میدهد بیاعتمادی به دقت ابزارهای AI از اعتماد پیشی گرفته؛ تجربهٔ جمعی با همین پدیده همراستاست.
گونههای hallucination که برنامهنویس میبیند
| گونه | مثال | چگونه بفهمید |
|---|---|---|
| API / متد ساختگی | متدی که در SDK نیست | Go to Definition؛ stub رسمی |
| پکیج یا ماژول جعلی | نامی شبیه پکیج معروف | رجیستری رسمی؛ قفل وابستگی |
| پیکربندی دروغین | فلگی که در --help نیست | مستند همان نسخه |
| مسیر فایل خیالی | فایلی که در repo نیست | جستجوی مخزن |
| استناد ساختگی | URL یا DOI ناموجود | باز کردن لینک |
| منطق بهظاهر درست | قفل ناقص همزمانی | تست و بازبینی |
| تناقض با گفتهٔ قبلی | دو توصیهٔ متعارض | منبع حقیقت خارج از چت |
مثال عملی: کد جعلیِ زیبا
python
# پیشنهاد مدل (نمونهٔ آموزشی — تعمداً معیوب) from payment_sdk import InstantRefund def refund(order_id: str) -> bool: return InstantRefund.complete(order_id, reason="customer_request")
اگر payment_sdk این کلاس را نداشته باشد، ظاهر مرتب کمکتان نمیکند. قبل از Merge: import را resolve کنید، تست یکپارچه در محیط آزمایشی اجرا کنید، مستند رسمی همان نسخه را بخوانید.
چرا برنامهنویس باید جدی بگیرد؟
- دیباگ almost-right میتواند از نوشتن دستی بیشتر طول بکشد
- نام پکیج جعلی میتواند به ریسک زنجیرهٔ تأمین تبدیل شود
- توهم «این از نظر امنیتی کافی است» خطرناکتر از اعتراف به ندانستن است
- استناد ساختگی در حوزههای حساس خسارت سازمانی دارد
- Agent بدون دروازه شعاع اثر خروجی نادرست را بزرگ میکند
چگونه تشخیص دهیم؟ چکلیست عملی
- وجود نماد را با جستجوی مخزن یا Go to Definition تأیید کنید.
- نام پکیج را در رجیستری رسمی و قفل وابستگی پروژه چک کنید.
- نسخه و فلگ را با changelog و راهنمای همان نسخه بسنجید.
- URL و شمارهٔ استاندارد را باز کنید؛ اگر یافت نشد، استناد را کنار بگذارید.
- از مدل نقلقول از فایل مشخص بخواهید؛ بعد خودتان همان خطوط را بخوانید.
- برای رفتار، تست اجرا کنید — بحث جایگزین مشاهده نیست.
- پاسخ کلی بدون مسیر فایل اغلب نشانهٔ پر کردن شکاف زمینه است.
کاهش ریسک — نه حذف کامل
حذف ۱۰۰٪ با پرامپت ممکن نیست؛ میتوان آسیب را کم کرد:
- زمینهٔ مخزن و قراردادها را قبل از تولید بیاورید (مقالهٔ ۱۲۴)
- از مدل بخواهید صریحاً بگوید چه چیزی را ندیده و نباید حدس بزند
- typecheck، لینتر و تست را توری اجباری کنید
- جستجوی مستند داخلی با منبع قابلکلیک
- بدون Review و CI سبز، Merge از Agent ممنوع
- ابزارهای پرریسک Agent را محدود کنید
NIST برای confabulation بر روایی، قابلیت اطمینان و راستیآزمایی منبع تأکید دارد. OWASP اعتبارسنجی خروجی و جلوگیری از بیشاتکایی را کنترل کلیدی میداند.
Hallucination در برابر باگ عادی
باگ کلاسیک معمولاً از منطق برنامهنویس یا نقص مشخصات میآید. Hallucination از تولید محتملترین ادامهٔ متن میآید و ممکن است با توضیح بهظاهر منطقی همراه باشد. مدل «نیت فریب» ندارد؛ اثر روی کاربر اما میتواند مشابه اعتماد به منبع نادرست باشد.
اشتباههای رایج
- قبول کردن کتابخانه فقط چون نامش حرفهای به نظر میرسد
- کپی تشخیص خطا از مدل بدون بازتولید محلی
- خاموش کردن شک وقتی لحن مؤدب و مطمئن است
- تکرار سوال تا جواب خوشایند بدون شاهد
- داور نهایی قرار دادن خود مدل برای صحت خودش
سوالات متداول
آیا مدلهای جدیدتر hallucination ندارند؟
ممکن است در برخی بنچمارکها بهتر باشند؛ صفر نیست. همان چکلیست را روی مخزن خودتان اجرا کنید.
اگر مدل بگوید مطمئن نیستم بهتر است؟
از نظر ارتباطی بله. نبود اعتراف هنوز دلیل صحت نیست؛ شاهد خارجی معیار است.
تکمیلکننده هم hallucination میکند؟
بله. ممکن است import یا آرگومان رایج اکوسیستم را پیشنهاد دهد که در پروژهٔ شما معتبر نیست.
خلاصه
Hallucination یا confabulation تولید مطمئنِ نادرست است؛ در کدنویسی به شکل API، پکیج، مسیر و منطق جعلی ظاهر میشود. NIST و OWASP آن را ریسک واقعی میدانند. پادزهر: حلقهٔ شاهد با مخزن، مستند نسخه، تست و Review. مدل پیشنهاد میدهد؛ شما مسئول ادغام هستید.
منابع و مراجع
- NIST AI 600-1 — Generative AI Profile: https://doi.org/10.6028/NIST.AI.600-1
- NIST PDF — NIST.AI.600-1: https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.600-1.pdf
- OWASP — Top 10 for LLM Applications: https://owasp.org/www-project-top-10-for-large-language-model-applications/
- OWASP GenAI — LLM Top 10 hub: https://genai.owasp.org/llm-top-10/
- OWASP GenAI — LLM Top 10 2026: https://genai.owasp.org/resource/owasp-genai-llm-top-10-2026/
- Stack Overflow — 2025 Developer Survey AI: https://survey.stackoverflow.co/2025/ai
نویسنده
سهیل ابراهیمپور بنیانگذار FutureForge است. روی طراحی محصول، معماری و استقرار نرمافزار سفارشی کار میکند.
یادداشتهای مرتبط
اگر در انتخاب معماری یا مسیر توسعه مطمئن نیستید، میتوانید درباره پروژه صحبت کنیم.
مسئله و محدودیت را بنویسید. اگر تطابق داشته باشیم، برای گفتگو هماهنگ میکنیم.




