The Confabulation Cascade
عامل هوش مصنوعی من در یک حلقه گیر کرده بود.
عامل یک پرسوجوی SQL با نام ستونی جعلی مینوشت. پایگاه داده یک خطا برمیگرداند. پیام خطا شامل لیست واقعی ستونها بود. عامل اصلاحیه را میخواند. سپس، دوباره دقیقاً همان نام ستون اشتباه را مینوشت.
من این را «آبشار توهم» مینامم.
این مشکل مدل نیست؛ مشکل طراحی ابزار است.
روال این حلقه به این صورت است:
- عامل بر اساس آموزش خود یک پرسوجو تولید میکند.
- پرسوجو با شکست مواجه میشود.
- پیام خطا حقیقت را ارائه میدهد.
- عامل حقیقت را میبیند اما در عوض به آموزش داخلی خود تکیه میکند.
- عامل اشتباه را تکرار میکند.
عامل با دو سیگنال روبرو است. یک سیگنال پیام خطا است. سیگنال دیگر آموزش مدل است. آموزش اغلب قویتر است. پیام خطا فقط یک بار ظاهر میشود. آموزش با تکتک کلماتی که مدل مینویسد، حضور دارد.
سعی کردم این مشکل را با مهندسی پرامپت (prompt engineering) حل کنم. به مدل گفتم به خطاها توجه کند. اما نتیجهای نداشت.
مشکل اصلی این است که عامل من فقط از طریق شکست خوردن میتوانست یاد بگیرد. هیچ راهی برای بررسی ساختار جدول قبل از اقدام نداشت. مجبور بود حدس بزند.
اگر به یک انسان یک API میدهید، مستندات را هم به او میدهید. شما آنها را مجبور نمیکنید تا زمانی که پیامهای خطا طرحواره (schema) را به آنها یاد بدهد، درخواستهای خراب ارسال کنند.
من این مشکل را با ساخت یک ابزار پیشدستانه (proactive) حل کردم. عامل اکنون به جای انتظار برای خطا، ابتدا یک ابزار describe_table را فراخوانی میکند.
گردش کار جدید:
- عامل میخواهد از یک جدول پرسوجو کند.
- عامل
describe_tableرا فراخوانی میکند تا ستونهای واقعی را ببیند. - عامل نامها و انواع (types) صحیح را دریافت میکند.
- عامل در اولین تلاش، یک پرسوجوی صحیح مینویسد.
حلقه متوقف شد. مدل باهوشتر نشد. عامل فقط دست از حدس زدن برداشت.
اگر عاملهای شما از پایگاههای داده یا APIها استفاده میکنند، این سوال را بپرسید: آیا آنها میتوانند قبل از اقدام، ساختار را تأیید کنند؟ یا فقط از طریق شکست خوردن یاد میگیرند؟
راهنماییهای خطای واکنشی (reactive) خوب هستند، اما کافی نیستند. عاملی که فقط از طریق شکست یاد میگیرد، همیشه یک قدم با توهم (hallucination) فاصله دارد.
ابزارهایی بسازید که به عاملها اجازه دهد قبل از اشتباه کردن، سوال بپرسند.
Optional learning community: https://t.me/GyaanSetuAi
