До основного вмісту
Kodarik

· 1 хв читання

Спершу eval, потім промпт

Людина сидить на вершині гори над морем хмар

Перш ніж правити промпт утретє за вечір, зберіть десять реальних прикладів і запишіть, яку відповідь вважаєте правильною. Без цього кожна «покращена» версія — лише відчуття.

Це стаття-приклад: замініть її своїм текстом у content/articles/eval-before-prompt.mdx.

Мінімальний набір

Десять прикладів — не статистика, але достатньо, щоб побачити, що зміна щось зламала. Формат найпростіший:

evals.ts
type Case = { input: string; expected: string };
 
export const cases: Case[] = [
  { input: "Скасуй мою підписку", expected: "cancel_subscription" },
  { input: "Чому списали двічі?", expected: "billing_question" },
];

Прогін

Далі проганяйте кожну зміну промпту через цей набір і дивіться на цифру, а не на один вдалий приклад:

run.ts
let passed = 0;
for (const c of cases) {
  const answer = await classify(c.input);
  if (answer === c.expected) passed++;
}
console.log(`${passed}/${cases.length}`);

Що робити, коли цифра впала, а приклади начебто «кращі» — розбираю в каналі.

Три помилки, які трапляються найчастіше

  • Набір складений з прикладів, які ви вже бачили під час написання промпту.
  • Очікувані відповіді записані після того, як подивились на відповідь моделі.
  • Один набір на все: класифікацію й генерацію тексту варто перевіряти окремо.

Кодарик · усі статті