Ваші оцінювання теж нестабільні: припиніть довіряти показнику успішності, який ви не можете відтворити

Більшість людей знають, що ШІ-агенти недетерміновані. Ви надсилаєте один і той самий промпт, але отримуєте різні результати.

Ми з цим змирилися. Ми почали використовувати LLM як суддів для оцінювання цих агентів.

Але ми припустилися величезної помилки. Ми вважали, що наші судді детерміновані. Це не так.

Ваш набір оцінювань — це випадкова система, що оцінює іншу випадкову систему. Якщо ви не вимірюєте, наскільки сильно коливається ваш оцінювач, у вас немає контролю якості. У вас є лише підкидання монетки.

Я бачив, як це сталося з агентом підтримки. Панель керування тижнями залишалася зеленою. Потім кількість скарг клієнтів різко зросла. Я запустив те саме оцінювання для 200 старих відповідей. 14 із них змінили свій вердикт. Агент не змінився. Змінився думку суддя.

Нестабільний контроль гірший за його відсутність. Він дає вам хибну впевненість.

Є три причини, чому ваші оцінювання не працюють:

  • Модель-суддя: Кожен LLM-суддя має варіативність. Навіть при температурі 0 провайдери не гарантують однаковий результат. Тихе оновлення моделі може за одну ніч зруйнувати ваш базовий показник.
  • Середовище (harness): Якщо ваш контекст або вихідні дані інструментів змінюються між запусками, суддя бачить інше запитання. Вхідні дані змістилися.
  • Критерії (rubric): Нечіткі правила на кшталт «чи це добре?» створюють варіативність. Чіткі, конкретні правила зменшують її.

Ви повинні ставитися до нестабільних оцінювань так само, як до нестабільних програмних тестів. Не випускайте їх у продакшн. Ізолюйте їх. Вимірюйте частоту нестабільності.

Припиніть звітувати про єдиний показник успішності. Почніть звітувати про узгодженість.

Запускайте кожен виклик судді кілька разів. Якщо суддя не може погодитися сам із собою, вердикт не є сигналом. Він НЕСТАБІЛЬНИЙ.

НЕСТАБІЛЬНИЙ результат має бути повноцінним результатом у вашому CI/CD конвеєрі. Він має гучно сигналізувати про помилку.

Щоб виправити нестабільне оцінювання, вам потрібні дві речі:

  1. Шар оцінювання (scoring layer): він обчислює стабільність і перетворює результати на PASS, FAIL або UNSTABLE.
  2. Шар трасування (tracing layer): ви повинні бачити сирі байти, точний промпт і вихідні дані інструментів для кожного запуску.

Без трасування ви будете думати, що модель просто випадкова. Ви знизите температуру і подумаєте, що виправили це. Ви не виправили це. Ви просто зробили баг тихішим.

Дотримуйтесь цих правил, щоб побудувати справжню якість:

  • Звітуйте про узгодженість, а не лише про середні значення.
  • Зробіть UNSTABLE станом помилки у вашому конвеєрі.
  • Фіксуйте версії ваших моделей-суддів.
  • Читайте трасування, коли перевірка не проходить.

Зелена панель керування, яку ви не можете відтворити, — це не сигнал. Це історія, яку ви розповідаєте самі собі.

Source: https://dev.to/saurav_bhattacharya/your-evals-are-flaky-too-stop-trusting-a-pass-rate-you-cant-reproduce-6pk

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