ابزار ارزیابی شما پیش از مدل‌تان به شما دروغ خواهد گفت

تابلوی امتیازات ارزیابی شما نشان داد که هر دو موتور شکست خورده‌اند.

Llama3.2 در ۵ مورد از ۶ مورد شکست خورد. Anthropic Sonnet در ۶ مورد از ۶ مورد شکست خورد.

برچسب خطا "malformed" بود، اما دلایل متفاوت بودند.

یک شکست، یک خطای API بود چون اعتبار تمام شده بود. یک شکست، مربوط به بایت‌های کنترلی ترمینال ناشی از یک دستور CLI بود که متن را خراب کرده بود. یک شکست، مربوط به یک JSON معتبر بود که در میان محصورکننده‌های markdown قرار گرفته بود و پارسر قادر به خواندن آن نبود.

اگر آن خلاصه اول را منتشر می‌کردم، دروغ گفته بودم. من مدل‌ها را برای شکست‌هایی که در کد خودم رخ داده بود، مقصر می‌دانستم.

من این باگ‌ها را با نگاه کردن به سوابق خام (raw records) به جای اعتماد به خلاصه، پیدا کردم.

اولین باگ زمانی رخ داد که من از یک زیرفرآیند (subprocess) در CLI برای فراخوانی Ollama استفاده کردم. آن دستور، انیمیشن‌های ترمینال مانند اسپینرها و حرکت مکان‌نما را ایجاد می‌کرد. این بایت‌های کنترلی ANSI وارد داده‌های من شدند. پارسر کاراکترهای نامرئی را دید و کرش کرد.

راه حل: تغییر از زیرفرآیند CLI به یک HTTP API مستقیم.

دومین باگ به این دلیل رخ داد که LLMها اغلب JSON را در میان محصورکننده‌های markdown قرار می‌دهند. پارسر من از json.loads() روی رشته خام استفاده می‌کرد. پارسر با دیدن بک‌تیک‌ها (backticks) شکست خورد.

راه حل: اضافه کردن تابعی برای حذف محصورکننده‌های کد قبل از تجزیه (parsing).

وقتی خط لوله (pipe) را اصلاح کردم، نتایج واقعی پدیدار شدند.

مدل‌ها «مرده» نبودند؛ بلکه فقط توسط harness دچار اختلال شده بودند. پس از اصلاح، شکاف کیفی بین دو مدل، قابل مشاهده و اندازه‌گیری شد.

درس‌هایی برای خط لوله ارزیابی هوش مصنوعی شما:

  • خروجی خام را نگه دارید. اگر خلاصه می‌گوید malformed، خروجی خام تنها منبع حقیقت شماست.
  • دلیل شکست را ثبت کنید. فقط نگویید "malformed"؛ بگویید "API error" یا "parse error".
  • استانداردهای تست خود را ثابت نگه دارید. قوانین خود را برای بهتر نشان دادن نتایج تغییر ندهید.
  • با harness مانند بخشی از سیستمِ تحت آزمایش رفتار کنید.

مدل تنها چیزی نیست که مورد آزمایش قرار گرفته است؛ کد شما هم هست.

Source: https://dev.to/kenielzep97/your-harness-will-lie-to-you-before-your-model-does-662

Optional learning community: https://t.me/GyaanSetuAi