چطور بفهمیم سیستم‌های هوش مصنوعی کارشون رو درست انجام میدن؟ یه راه جدید!

Fall Back

فرض کن یه عالمه سیستم هوش مصنوعی (مثل همون چت‌بات‌ها یا Agentها که خودشون کار انجام میدن) داری که باید همیشه درست و بدون دردسر کار کنن. اما یه مشکل بزرگ داریم: این مدل‌های زبانی پیشرفته (Large Language Models یا به اختصار LLMها، همون مدل‌هایی مثل ChatGPT) جواب‌هاشون همیشه یکی نیست و ممکنه بارها و بارها یه جور دیگه جواب بدن چون یه جور تصادفی عمل می‌کنن. این یعنی نمی‌شه فقط جواب متنی اون‌ها رو بررسی کنیم و مطمئن بشیم همه چی اوکیه.

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

حالا تو این مقاله یه روش جدید پیشنهاد شده که یکم باحال‌تره و الهام گرفته از کاریه که تو دنیای سخت‌افزار برای تست کردن مدارها انجام میدن (اونجا هم با منطق زمانی یا temporal logic کار می‌کنن، یعنی با ابزارهایی که ارتباط بین اتفاقات رو در طول زمان بررسی می‌کنه). این روش جدید یه زبان به اسم temporal expression language معرفی کرده که می‌تونی باهاش رفتار سیستم رو تو زمان بررسی کنی؛ مثلاً اینکه ببینی هر agent (همون موجودات هوشمند توی سیستم) چطوری ابزارها رو صدا زده و چه جوری با بقیه ارتباط برقرار کرده.

چیزی که اینجا چک می‌کنن، دونه‌دونه متن‌ها نیست، بلکه ترتیب اتفاقات و عملکردهاست؛ مثل این که Agentها چه زمانی چه ابزاری استفاده کردن یا چه موقع با هم حرف زدن (Inter-agent communications یعنی همین که چند تا Agent مختلف با هم تعامل و هماهنگی دارن). با این روش می‌شه فهمید رفتار کلی سیستم درست بوده یا نه و دیگه وابسته به متن خاصی نیست گفت جواب بده یا نده.

حالا این زبان که معرفی کردن، اجازه می‌ده یه سری قانون و الگو (که باهاشون می‌گن temporal assertions یعنی قاعده‌هایی برای رفتار درست و غلط توی زمان) تعریف کنی. این قاعده‌ها چندتا کار رو با هم انجام میدن:

  • هم وقتی داری سیستم رو اول طراحی می‌کنی، می‌شه باهاش بفهمی prompt engineering یا گاردریل‌هایی که گذاشتی (guardrails یعنی همون سدها و محدودیت‌هایی که جلوی رفتارهای اشتباه رو می‌گیرن) واقعاً درست کار می‌کنن یا نه.
  • هم وقتی سیستم رو آپدیت می‌کنی (مثلاً مدل قوی‌تر یا منطق برنامه تغییر می‌کنی)، دوباره با همین تست‌ها بفهمی چیزی خراب شده یا نه (اینو بهش می‌گن regression testing یعنی اگر به خاطر تغییرات جدید، یه رفتار قبلاً درست، الان خراب بشه سریع بفهمی).

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

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

منبع: +