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

مجموعه‌های ارزیابی فاسد می‌شوند: نسخه‌بندی هارنس، نه فقط مدل

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

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

حالت شکست

ایجنت‌هایی که در برابر یک مجموعه ارزیابی ثابت تکرار می‌کنند، روی وظیفه همگرا نمی‌شوند. آن‌ها روی مجموعه همگرا می‌شوند. این یک مصنوع آماری ظریف نیست؛ نتیجه قابل پیش‌بینی یک حلقه بهینه‌سازی است که در آن تابع هدف یک نمونه محدود و ایستا است. هر بازنگری پرامپت، هر تنظیم سیاست فراخوانی ابزار، هر تنظیم آستانه امتیازدهی، یک گام گرادیان به سمت ویژگی‌های خاص مجموعه ارزیابی است، نه قابلیت زیربنایی که مجموعه قرار بود اندازه‌گیری کند.

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

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

چرا یک باگ خط لوله است

مجموعه‌های ارزیابی بدون تبار به زمینه‌های آموزش و پرامپت کپی می‌شوند. یک فایل JSONL کامیت می‌شود، سپس در یک کار fine-tuning تکثیر می‌شود، سپس در یک پرامپت چندنمونه‌ای جای‌گذاری می‌شود، سپس در یک ایندکس بازیابی جاسازی می‌شود. هر کپی یک انشعاب است. هیچ‌کدام ارجاعی به نسخه اصلی ندارند. وقتی نسخه اصلی به‌روزرسانی می‌شود، انشعاب‌ها بی‌صدا واگرا می‌شوند. وقتی یک انشعاب به آموزش نشت می‌کند، هیچ سابقه‌ای وجود ندارد که آیتم ارزیابی و مثال آموزشی یک نیا مشترک دارند.

هیچ انضباط holdout بین مجموعه‌ای که برای تکرار استفاده می‌شود و مجموعه‌ای که برای گزارش استفاده می‌شود وجود ندارد. تیم‌ها روی همان آیتم‌هایی که گزارش می‌دهند تکرار می‌کنند. مجموعه تکرار به مجموعه تنظیم تبدیل می‌شود و مجموعه تنظیم به هدف حفظ کردن. یک holdout مناسب فقط «مجموعه‌ای که به آن نگاه نمی‌کنیم» نیست؛ مجموعه‌ای است که به‌طور ساختاری از حلقه تکرار جدا شده است، با کنترل‌های دسترسی و لاگ‌های حسابرسی.

Close-up of cooling fans inside a server room rack

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

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

قاعده طراحی: با ارزیابی‌ها به عنوان وابستگی‌های نسخه‌بندی‌شده رفتار کنید

مجموعه ارزیابی، هارنس و کد امتیازدهی را به عنوان یک واحد نسخه‌بندی‌شده پین کنید. نه سه نسخه جداگانه؛ یک نسخه ترکیبی. یک نسخه ارزیابی یک تاپل است: مجموعه آیتم‌ها، پیکربندی پرامپت و ابزار، پیاده‌سازی امتیازدهی و شناسه مدل. هر تغییری در هر عنصر، نسخه جدیدی تولید می‌کند. نسخه یک هش محتواست، نه یک برچسب انسانی، بنابراین نمی‌تواند منحرف شود.

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

نسخه ارزیابی را در کنار هر متریک گزارش‌شده ثبت کنید. یک عدد بدون نسخه ارزیابی یک نتیجه نیست؛ یک شایعه است. نسخه باید در داشبوردها، کارت‌های مدل، ردیاب‌های آزمایش و هر سندی که به یک امتیاز استناد می‌کند ظاهر شود. وقتی یک بازبین می‌پرسد «آیا این بهبود یافت؟»، اولین سؤال این است که آیا دو عدد یک نسخه ارزیابی مشترک دارند.

یک مکانیزم مشخص: یک فایل مانیفست که تاپل را به هم می‌بندد.

eval_version: sha256:9f2c...
items: s3://evals/holdout-2024-11/items.jsonl
harness:
  prompt_template: sha256:1a4b...
  tools: sha256:7c3d...
  scoring: sha256:e8f1...
model: provider/model-name![Close-up of white woven fabric with small ![Close-up of white woven fabric with small textured holes, a stock photo](/media/woven-carbon-fibre-texture-e8e50d-38b215.jpg)erver-rack-closeup-48ae67-477829.jpg)

مانیفست واحد استناد است. یک دروازه انتشار قبل از اجازه استقرار، هش مانیفست را بررسی می‌کند. یک داشبورد هش را در کنار متریک نمایش می‌دهد. یک خط لوله آموزش از دریافت آیتم‌هایی که مانیفستشان با مانیفست holdout مطابقت دارد خودداری می‌کند. هش همان تبار است.

## تشخیص

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

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

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

نکته عمیق‌تر این است که ایجنت‌های خودبهبوددهنده مجموعه ارزیابی را بخشی از حلقه آموزش می‌کنند.一旦 این اتفاق بیفتد، مجموعه ارزیابی دیگر یک ناظر بی‌طرف نیست. یک شرکت‌کننده است. شرکت‌کنندگان به نسخه‌بندی، کنترل دسترسی و چرخش نیاز دارند. نقص خط لوله این نیست که ایجنت‌ها تقلب می‌کنند؛ این است که خط لوله به آن‌ها یک هدف ثابت داد و آن را اندازه‌گیری نامید.

## الزام چرخه حیات

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

خواندن مرتبط

پرسش‌هایی که این پاسخ می‌دهد

What is eval set contamination?

Contamination occurs when eval items leak into training data, prompting contexts, or retrieval indexes, so the agent's score reflects memorisation of the items rather than capability on the task. It is usually discovered after a result has been published because the pipeline lacks lineage between eval items and their copies.

Why version the harness together with the eval set?

A score is produced by a tuple: item set, prompt template, tool definitions, scoring code, and model revision. Changing any element changes the measurement. Pinning the tuple as a single content-hashed version makes historical numbers comparable and makes silent drift detectable.

How often should a private holdout be rotated?

Rotation should be scheduled and triggered by exposure, not by calendar alone. Any time holdout items enter team knowledge, documentation, or iteration discussions, they are candidates for retirement. The cost of authoring new items is the price of a measurement that still means something.

What signals suggest an agent has memorised its eval set?

Per-item tracking reveals suspiciously uniform success, pass rates that jump without a corresponding capability change, and outputs collapsed to a single phrasing. Comparing against a freshly authored slice before a release decision surfaces divergence between iteration-set and holdout performance.