تیپ #۱۶

مدل‌های تازه می‌آیند؛ ایجنت را به یک مدل گره نزنید

تقریباً هر چند هفته یک مدل تازه معرفی می‌شود و وسوسه می‌شویم کل ایجنت را دور آن بازنویسی کنیم. راه عاقلانه‌تر این است که مدل را پشت یک لایه‌ی نازک انتزاع نگه داریم تا عوض‌کردنش فقط تغییر یک تنظیم باشد، نه بازنویسی کد 🔌. بعد هم ارزیابی خودتان را دوباره اجرا کنید، چون مدلی که صدر جدول‌های عمومی است ممکن است دقیقاً در حلقه‌ی فراخوانی ابزارهای شما ضعیف عمل کند.

توضیح کامل‌تر

هر بار که یک مدل تازه منتشر می‌شود، تیم‌ها سریع سراغ مقایسه‌ی بنچمارک‌ها می‌روند، اما چیزی که واقعاً در ساخت ایجنت مهم است، هزینه‌ی تغییر است. اگر فراخوانی مدل در سراسر کد پخش شده باشد، تعویض مدل به یک پروژه‌ی چندروزه تبدیل می‌شود و در عمل هیچ‌وقت انجام نمی‌شود. راه‌حل رایج این است که یک رابط واحد برای مدل تعریف کنید: ورودی پیام‌ها، فهرست ابزارهای در دسترس و خروجی ساخت‌یافته، و بقیه‌ی منطق ایجنت فقط با همین رابط کار کند. نکته‌ی ظریف اینجاست که مدل‌های مختلف در قالب‌بندی فراخوانی ابزار، طول پنجره‌ی زمینه و رفتارشان با خطا تفاوت دارند، پس لایه‌ی انتزاع باید این تفاوت‌ها را هم بپوشاند، نه فقط نام مدل را. برای نمونه، اگر ایجنت شما با یک مدل کوچک و ارزان روی وظیفه‌ی خلاصه‌سازی خوب کار می‌کند، می‌توانید فقط برای مسیرهای استدلالی سنگین‌تر مدل بزرگ‌تر را صدا بزنید و هزینه را پایین نگه دارید. در نهایت، بدون یک مجموعه‌ی ارزیابی اختصاصی هیچ مقایسه‌ای معنا ندارد، چون عملکرد مدل روی داده‌ی شما با جدول‌های عمومی فرق می‌کند.

اخبار
← بازگشت به همهٔ نکته‌های روز