پرش به محتوای اصلی
پرش به محتوای مقاله

حفاظ‌های کدنویسی، وسواسِ مدل‌های زبانی در بازبینی برنامه‌ها را مهار کردند

·۳۰ مرداد ۱۴۰۵۴ دقیقه مطالعه۱ بازدید
من به منتقد LLM‌ام گفتم مخالف‌خو باش. شروع کرد به رد کردن طرح‌ها به خاطر «کافی دقیق نبودن».
من به منتقد LLM‌ام گفتم مخالف‌خو باش. شروع کرد به رد کردن طرح‌ها به خاطر «کافی دقیق نبودن».
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

معرفی یک مکانیزم بازگشتی (Downgrade) در لایه کد که قضاوت‌های субъекتیو مدل زبانی را بر اساس یک لیست سفید (Whitelist) قطعی اصلاح می‌کند و نرخ خطای بازبینی را به صفر می‌رساند.

اگر امروز یک سامانه چندعاملی برای اتوماسیون زیرساخت‌های ابری طراحی می‌کنید، احتمالاً با بحران «وسواس مدل» روبرو شده‌اید؛ وضعیتی که در آن هوش مصنوعی به‌دلیل ترس از خطاهای احتمالی، ساده‌ترین برنامه‌های ایمن را هم رد می‌کند. در یک سیستم دو-مدلی (Dual-LLM) — جایی که یک مدل برنامه را می‌نویسد و مدل دوم آن را از نظر ایمنی و منطق بازبینی می‌کند — زیربنای قدرتمندی ایجاد می‌شود، اما این ساختار به‌تنهایی نمی‌تواند مانع از آن شود که مدل دوم به‌دلیل دقت بیش از حد، برنامه‌های ایمن را مسدود کند.

به گزارش وب‌سایت dev.to، موتور متن‌باز PlannerCritic در مواجهه با این چالش، دریافت که تکیه بر قضاوت مدل زبانی برای تعیین سطح خطر، یک استراتژی شکست‌خورده است. برای حل این مشکل، توسعه‌دهندگان دریافتند که تنها راهکار مؤثر، استفاده از یک «حفاظ کد قطعی» (Deterministic Code Guardrail) است تا لایه‌ای از کدنویسی سخت جایگزین «احساس» مدل شود و از مسدود شدن بی‌دلیل فرآیندها جلوگیری گردد.

همان‌طور که در تحلیل قبلی ما درباره‌ی پایداری جریان‌های توکن در StreamingLLM اشاره کردیم، چالش فعلی در سامانه‌های عامل‌محور، دیگر حافظه نیست، بلکه «قضاوت» است. این مطلب دومین مقاله از سری بررسی‌های موتور PlannerCritic است که پس از یک تست میدانی روی ۱۵۷ هدف در ۳۵ حوزه مختلف تهیه شده است. در این آزمایش، توسعه‌دهنده متوجه شد وقتی به یک مدل زبانی بزرگ (LLM) — مثل کتابخانه‌داری که میلیاردها صفحه را خوانده و حالا با همان لحن جواب می‌دهد — شخصیتی «خصمانه» (Adversarial) داده شود، یک شکست سیستمی رخ می‌دهد: مدل شروع می‌کند به علامت‌گذاری هر برنامه‌ای به عنوان «مسدودکننده» (Blocker)، صرفاً چون می‌تواند یک مورد خاص و احتمالی (Edge Case) برای اعتراض پیدا کند. این رویکرد در تضاد با کاربردهای موفق این متد است؛ برای مثال، استفاده از حلقه‌های بررسی تخاصمی در برخی پروژه‌ها توانسته است باگ‌های بحرانی را شناسایی کند، اما در اینجا وسواس مدل بر دقت غلبه کرده است.

ریشهٔ شکست: تضاد در درک «سخت‌گیری»

طبق مستندات این پروژه، مشکل با یک پرامپت سیستمی (System Prompt) شش‌کلمه‌ای شروع شد: «تو یک بازبین خصمانهٔ برنامه‌ها هستی» (You are an adversarial plan reviewer). در حالی که این دستور در ابتدا کافی به نظر می‌رسید، اما باعث ایجاد یک «عدم تطابق در قرارداد» (Contract Mismatch) شد. هدف محصول از فعال کردن «حالت سخت‌گیرانه» (Strict Mode) این بود که فقط تخلفات عینی در زمینه ایمنی، ترتیب اجرا یا نقص در برنامه‌های بازگشت (Rollback) مسدود شوند. اما مدل زبانی، کلمه «خصمانه» را به عنوان دستوری برای یافتن هرگونه اعتراض ممکن، بدون در نظر گرفتن شدت خطا، تفسیر کرد.

نتیجه این شد که در ۱۶ هدف حساس، نرخ ارجاع به انسان (Escalation Rate) ۱۰۰٪ شد. برنامه‌ها از نظر ساختاری ناایمن نبودند؛ بلکه بازبین صرفاً استانداردی را اجرا می‌کرد که «هیچ‌گونه ملاحظه‌ای از سوی بازبین وجود نداشته باشد»، به جای اینکه بر «نبود نقص‌های ساختاری» تمرکز کند.

نمونه‌های واقعی از مسدودسازی‌های بی‌مورد

بر اساس گزارش‌های منتشر شده در dev.to، مدل شروع به مسدود کردن برنامه‌هایی کرد که از نظر ساختاری درست بودند اما «جامع» یا «کامل» نبودند. دو مثال مشخص این رفتار را نشان می‌دهد:

  • اتصال VPC (VPC Peering): برنامه‌ای برای اتصال دو حساب ابری (Cross-account VPC peering) مسدود شد، چون بازبین اشاره کرد که برنامهٔ بازگشت «می‌توانست» سناریوهای جایگزینی DNS (DNS failback) را هم در نظر بگیرد. این یک پیشنهاد برای تکمیل برنامه بود، نه یک نقص ایمنی.
  • مهاجرت شاخص (Index Migration): جابه‌جایی یک بردار معنایی (Embedding) — مثل کارت معرفی عددی برای هر واژه که می‌گوید این کلمه همسایه‌ی چه کلمات دیگری است — به‌دلیل یک یافته کلی درباره «ریسک» احتمالی تأخیر (Latency) در زمان انتقال، مسدود شد. این یک تحلیل ریسک بود، نه یک خطای ساختاری.

در هر دو مورد، موتور باید برنامه را با ذکر ریسک تأیید می‌کرد، اما به‌جای آن، کل فرآیند را متوقف و به انسان ارجاع داد.

راهکار: جایگزینی قضاوت با قرارداد کد

توسعه‌دهندگان برای خروج از این بن‌بست، یک سامانه دو لایه طراحی کردند:

۱. طبقه‌بندی شدت خطا (Severity Taxonomy): شخصیت «خصمانه» از پرامپت سیستمی حذف شد و قوانین صریح شدت خطا جایگزین گشت. اکنون دسته‌بندی «مسدودکننده» فقط برای نقص‌های عینی و محلی در برنامه رزرو شده است که اجرای آن را ناایمن می‌کند:

  • مسدودکننده (Blocker): مخصوص موارد unsafe_sequencing (توالی ناایمن)، weak_rollback (بازگشت ضعیف)، unverified_dependencies (وابستگی‌های تأییدنشده) و feasibility (امکان‌سنجی).
  • هشدار (Warning): مخصوص ریسک‌ها یا مراحل فراموش شده.
  • اطلاعات (Info): مخصوص مشاهدات جزئی.

اکنون پرامپت صراحتاً مدل را از ارجاع نگرانی‌های مربوط به «جامعیت» یا «دقت» به سطح مسدودکننده منع می‌کند. این تغییر در واقع بازگشت به این اصل است که بسیاری از وظایف پیچیده هوش مصنوعی را می‌توان به مسائل ساده‌تر طبقه‌بندی تبدیل کرد تا دقت و کارایی افزایش یابد.

۲. حفاظ کدنویسی (Code Guardrail): چون مهندسی پرامپت (Prompt Engineering) — هنر سؤال درست پرسیدن برای گرفتن بهترین جواب — به‌تنهایی شکست خورد و مدل همچنان در ۳۰٪ موارد نگرانی‌های مربوط به جامعیت را مسدود می‌کرد، یک frozenset در کد برنامه تعریف شد تا به عنوان یک قرارداد قطعی عمل کند:

_BLOCKER_ELIGIBLE_FAMILIES = frozenset({ "unsafe_sequencing", "weak_rollback", "unverified_dependencies", "feasibility", })

در این ساختار، اگر مدل سطح شدت را Severity.BLOCKER برگرداند اما خانواده‌ی مورد (item.heuristic_family) در این مجموعه (frozenset) نباشد، کد به‌طور خودکار سطح خطا را پیش از ورود به لیست یافته‌ها، به Severity.WARNING کاهش می‌دهد.

این تغییر باعث شد موتور از تکیه بر «احساس» متغیر مدل زبانی به یک قرارداد سخت منتقل شود. پس از این اصلاح، در ۹۲ اجرای بعدی، هیچ مورد مشورتی (Advisory) به‌اشتباه مسدود نشد، در حالی که ۱۳۲ نقص ساختاری واقعی یا گیت‌های قطعی همچنان به‌درستی شناسایی شدند.

این یافته با پژوهش‌های اخیر (arXiv 2507.02778) همسو است که نشان می‌دهد حدود ۶۴.۵٪ از مدل‌ها دچار «نقطه کور خوداصلاحی» (Self-correction blind spot) هستند و نمی‌توانند به‌درستی صحت خروجی خود را ارزیابی کنند.

گام بعدی شما

برای توسعه‌دهندگانی که جریان‌های کاری عامل‌محور (Agentic Workflows) می‌سازند، این بدان معناست که نمی‌توانید به مدل اعتماد کنید تا خودش دروازه کیفیت (Quality Gate) باشد. شما باید معیارهای «مسدودکننده» را در کد برنامه (Application Code) تعریف کنید، نه در پرامپت سیستمی. اگر از سامانه‌های چندعاملی استفاده می‌کنید، عامل‌های «بازبین» (Critic Agents) خود را ممیزی کنید تا ببینید آیا به‌خاطر وسواس در جامعیت، تولیدات شما را مسدود می‌کنند یا خیر. مخزن PlannerCritic در گیت‌هاب یک الگوی عملی برای پیاده‌سازی این جایگزینی‌های قطعی ارائه می‌دهد.

اما این تنها بخشی از چالش‌های استدلال است؛ برای درک اینکه مدل‌ها چگونه در زنجیره تفکر دچار توهم می‌شوند، تحلیل ما درباره‌ی حفره‌های ساختاری در زنجیره تفکر مدل‌های OpenAI و Anthropic را بخوانید.

چرا این موضوع مهم است؟

این رویکرد استقرار «حفاظ‌های سخت» (Hard Guardrails) را به جای تکیه بر پرامپت‌های سیستمی به استاندارد تبدیل می‌کند. این تغییر برای سازمان‌هایی که از AI برای مدیریت زیرساخت‌های حساس استفاده می‌کنند، تفاوت بین توقف کامل عملیات و اتوماسیون پایدار است.

تأثیر برای ایران

برای توسعه‌دهندگان ایرانی که در حال ساخت ابزارهای اتوماسیون با APIهای مدل‌های زبانی هستند، این الگو راهکاری برای کاهش هزینه‌های استنتاج است؛ چرا که جلوگیری از ارجاعات بی‌مورد به انسان، سرعت چرخه تولید را بالا می‌برد.

·نگاه ما
تحریریه دات‌هوش

این مورد ثابت می‌کند که در طراحی سامانه‌های عامل‌محور، «اعتماد به مدل» برای نظارت بر خودش، یک اشتباه استراتژیک است. لایه‌ی نظارتی باید از منطق احتمالی (Probabilistic) به منطق قطعی (Deterministic) تغییر کند تا سیستم از حالت «پیشنهاددهنده» به «اجراکننده» تبدیل شود. در واقع، کدنویسی سنتی در اینجا نه به عنوان رقیب، بلکه به عنوان لنگرگاهِ حقیقت برای هوش مصنوعی عمل می‌کند.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.