Як тестувати AI-моделі для реальної роботи
Tech
AI evaluation
LLM benchmarks
model selection
AI engineering

Як тестувати AI-моделі для реальної роботи

Практичний процес порівняння AI-моделей на реальних завданнях, із повторними запусками, оцінюванням результатів, аналізом якості, вартості, затримки та безпеки в production.

Uygar DuzgunUUygar Duzgun
Jul 30, 2026
Оновлено 20 серп. 2026 р.
16 min read

Тестуйте AI-моделі на роботі, яку плануєте запускати, а не на leaderboard, створеному для чужого завдання. Публічний benchmark може допомогти визначити сильного кандидата. Але він не скаже, чи надійно ця модель виконуватиме ваш workflow.

Аудиторія: середній рівень — розробники, продуктові команди та технічні покупці, які обирають модель для реального застосунку.

Щоб тестувати AI-моделі для реальної роботи, дайте кожному кандидату однакові репрезентативні завдання, оцінюйте отриманий стан, а не формулювання відповіді, повторюйте кожне завдання, записуйте latency і cost та встановіть rollout gate для помилок, які ви не можете прийняти. Переможцем є найдешевший варіант, який стабільно проходить ці обмеження. Це не обов’язково модель із найвищим середнім балом.

На які запитання має відповідати benchmark AI-моделі?

Корисний benchmark має відповідати на одне операційне запитання:

Prompt — Copy & Paste
Чи може ця модель виконати цю одиницю роботи за наших обмежень достатньо часто, щоб отримати production traffic?

Це речення змушує чітко визначити шість деталей:

Одиниця роботи: класифікувати ticket, узгодити ledger, написати patch, знайти докази або забронювати коректний маршрут.
Розподіл вхідних даних: мови, типи документів, неоднозначність, помилки інструментів та edge cases, які створюють ваші користувачі.
Стан успіху: рядок у базі даних, коректний файл, тест, що проходить, схвалена рекомендація або правильна відмова від відповіді.
Операційні обмеження: версія моделі, prompt, інструменти, context, retry policy та time budget.
Вартість помилки: невдале формулювання без наслідків — це не те саме, що дубльоване повернення коштів або руйнівна команда.
Acceptance gate: мінімальні показники успішності завдання, consistency, latency та cost, які ви дозволите.

Публічні benchmarks зазвичай фіксують іншу комбінацію цих змінних. Model cards і release notes усе одно корисні: вони звужують список кандидатів і показують підтримувані модальності, обмеження context, pricing та відомі особливості safety. Релізи липня 2026 року ілюструють цю різницю. OpenAI опублікувала широкі результати щодо можливостей і safety для GPT-5.6, тоді як Google задокументувала менше використання token і нижчу ціну Gemini 3.6 Flash порівняно з попередньою Flash-моделлю. Це корисні початкові орієнтири, але не вимірювання вашого prompt, інструментів, даних чи error budget. (OpenAI, Google)

Рекомендовано для вас

У case study про безкоштовний AI API NVIDIA NIM показано, як workflow перекладу може перетворити вибір моделі на вимірювані throughput і consistency. Для coding-кандидатів почніть із цілеспрямованого порівняння безкоштовних AI coding agents. Потім перенесіть рішення на власний test set.

Чому один середній бал приховує production risk

Три нещодавні benchmarks демонструють ту саму проблему в різних доменах.

Partial credit може приховати end-to-end failure

APEX-Accounting оцінює моделі на 160 accounting-завданнях у десяти synthetic-компаніях, використовуючи spreadsheets, PDFs та інші файли. Accounting-експерти створили завдання й критерії успіху. Дослідники запускали дев’ять frontier-моделей вісім разів для кожного завдання, отримавши 11 520 trajectories.

Найсильніша модель досягла 56,4% за метрикою partial credit у статті — Mean Criteria@3. Водночас жодна модель не перевищила 2,6% за Pass^8, який запитує, чи успішними були всі вісім спроб завдання. Найкращий Pass@8, який запитує, чи була успішною хоча б одна з восьми спроб, становив 21,5%. Дев’яносто три зі 160 завдань жодна протестована модель не виконала ідеально в жодному запуску. (APEX-Accounting)

Автори вимірювали accounting-завдання повного циклу в контрольованому synthetic-середовищі. Вони не охоплювали tax, audit, consolidation, multi-entity або multi-currency роботу чи external reporting. Набір завдань також фільтрували за складністю за допомогою трьох frontier-моделей, що може знижувати бали або надавати перевагу певним model families. Практичний висновок вужчий за твердження «AI не може займатися accounting»: модель може виконувати багато окремих перевірок, але залишатися надто непослідовною для unattended workflow із багатьма кроками.

Коректний output усе одно може порушувати обмеження користувача

TREK тестує travel-planning agents на 800 завданнях проти synthetic knowledge base із 212 530 записами. Його evaluator детерміновано перевіряє правила та final state, а не просить іншу language model оцінити план.

Найсильніший протестований agent ідеально виконав 46,2% feasible-завдань. Він не мав hallucinations у 94,9% випадків і був executable у 86,3%, але задовольнив усі обмеження користувача лише у 50,7% випадків. Система могла створювати правдоподібні плани, придатні для бронювання, але пропускати неявну перевагу або вимогу між кроками. (TREK)

TREK використовує synthetic travel world, виключає live prices і availability та звітує про один запуск для кожного agent. Його порівняння reasoning є спостереженням single-pair між версіями, а не узгодженим контрольованим ablation. Водночас воно демонструє надійне правило evaluation: перевіряйте final state і кожне binding constraint. Fluency — це не task completion.

Сам benchmark може бути несправним

Аудит OpenAI 731-task public split SWE-Bench Pro виявив друге джерело хибної впевненості: несправні evaluation data. Автоматизований pipeline позначив 27,4% завдань як broken, тоді як процес annotation за участю п’яти інженерів позначив 34,1%. Проблеми включали недостатньо визначені prompts, надто суворі тести та тести, які дозволяли проходити неповним рішенням. OpenAI оцінила, що приблизно 30% benchmark були broken, і відкликала попередню рекомендацію використовувати його. (OpenAI benchmark audit)

Складний тест корисний лише тоді, коли відомий правильний reference result проходить його, а неправильний результат не проходить із правильної причини.

Як тестувати AI-моделі у сім кроків

1. Визначте рішення до початку тесту

Сформулюйте production-рішення одним рядком:

Prompt — Copy & Paste
Замінюйте model A на model B лише якщо B зберігає safety gate, покращує task-perfect success щонайменше на п’ять процентних пунктів і утримує cost per successful task нижче €0.08.

Змініть числа відповідно до свого продукту. Структуру залиште. Benchmark без decision rule провокує cherry-picking після отримання результатів.

Розділіть hard gates та optimization metrics:

Hard gates: жодних destructive actions, жодного cross-customer data exposure, required schema завжди валідна, коректна відмова на forbidden requests.
Optimization metrics: task completion, consistency, p95 latency, token use та cost per successful task.

Модель, яка порушує hard gate, програє навіть тоді, коли її середній бал вищий.

2. Створюйте завдання з реальної роботи, а не з demo

Починайте з реальних de-identified прикладів, якщо вам дозволено їх використовувати. Додавайте synthetic cases для покриття рідкісних помилок, але не дозволяйте synthetic prompts замінювати розподіл, який створюють користувачі.

Практичний перший suite може містити 30–50 завдань:

40% звичайних випадків;
20% складних, але коректних випадків;
15% неоднозначних випадків, що потребують уточнення;
15% випадків, де правильна дія — відмовитися або утриматися від відповіді;
10% помилок інструментів, retrieval або malformed input.

Ці відсотки — початковий template, а не statistical standard. Системи з високим впливом потребують ширшого покриття та domain review. Зберігайте окремий holdout set, щоб prompt tuning непомітно не overfit-ив benchmark.

Позначайте кожне завдання за мовою, типом input, risk, difficulty та expected behavior. Aggregate scores можуть покращуватися, тоді як один важливий slice погіршується.

3. Визначайте observable outcomes

За можливості оцінюйте artifact або system state:

Чи пройшов patch нові тести, не зламавши наявні?
Чи проходить JSON перевірку за schema?
Чи збалансований ledger?
Чи правильний record оновлено рівно один раз?
Чи узгоджені всі процитовані claims і sources?
Чи попросила модель відсутню інформацію замість того, щоб її вигадати?

Evaluation guidance Anthropic проводить таку саму різницю між transcript і outcome: agent може сказати, що flight заброньовано, але важливо перевірити, чи існує reservation у database. Вона рекомендує deterministic graders, де це можливо, model-based graders, де це необхідно, і human review для calibration. (Anthropic)

Використовуйте partial credit для діагностики failure, а не для схвалення deployment. Task-perfect rate показує, як часто вся робота завершилася. Criteria coverage показує, яка вимога зазвичай порушується.

4. Зафіксуйте умови тесту

Записуйте повну configuration для кожного запуску:

provider і точну model version;
system prompt і task prompt;
tool definitions і permissions;
context construction і retrieval settings;
maximum steps, token budget і timeout;
reasoning або sampling controls, які надає provider;
retry і fallback policy;
evaluator version.

Не порівнюйте одну модель із tuned prompt, а іншу — із generic prompt, якщо питання не звучить конкретно як «яку complete system нам слід deploy-ити?». Model benchmark і system benchmark відповідають на різні запитання.

Provider APIs змінюються. Наприклад, поточний model guide Google зазначає, що Gemini 3.6 Flash ігнорує deprecated sampling parameters і в майбутніх поколіннях відхилятиме їх. Reproducible record не дає тихій зміні configuration виглядати як model drift. (Google model guide)

5. Проводьте paired, repeated trials

Запускайте кожного кандидата на тих самих task IDs. Paired comparisons зменшують шум, спричинений різницею у складності тестів.

Один запуск вимірює anecdote. Повторні запуски виявляють variance:

Використовуйте pass@k, коли дозволено кілька спроб і достатньо одного успішного результату.
Використовуйте pass^k, коли workflow має завершуватися успішно щоразу.
Звітуйте про first-attempt success, коли retries додають cost, delay або side effects.

Три повтори для кожного завдання дають недорогий перший погляд на instability. П’ять-вісім повторів дають чіткішу картину для workflows із високою variance або високим risk. Це практичні початкові орієнтири, а не універсальні правила sample size. Збільшуйте кількість повторів, коли scores кандидатів близькі або наслідки deployment значні.

Бібліотека завдань проходить однакові повторні trials, перш ніж моделі порівнюють за completion, consistency, latency, cost і canary rollout
Бібліотека завдань проходить однакові повторні trials, перш ніж моделі порівнюють за completion, consistency, latency, cost і canary rollout

*Запускайте кожного кандидата через однакові завдання та повторні trials. Порівнюйте outcomes, consistency, latency і cost перед контрольованим rollout.*

6. Аналізуйте failures, а не лише totals

Для кожного failed trial зберігайте:

task ID і slice tags;
model і configuration version;
final output або state;
tool calls і errors;
grader results;
latency, token use та estimated cost;
короткий failure label, заснований на evidence.

Корисні failure labels включають missing constraint, wrong tool, invalid argument, retrieval miss, fabricated fact, premature completion, unsafe action, timeout і grader defect.

Читайте також sample успішних проходжень. Loose grader може винагороджувати shortcut, який згодом зламається. Strict grader може відхиляти коректну альтернативу. Якщо failures виглядають несправедливими, виправте task до порівняння моделей.

Рекомендовано для вас

Саме тут може допомогти вузьке evaluation. Якщо слабким етапом є retrieval, протестуйте його окремо за допомогою RAG evaluation workflow. Якщо signal confidence керує escalation, відкалібруйте LLM confidence score за labeled outcomes, а не сприймайте його як істину.

7. Застосуйте rollout gate

Обирайте модель лише після того, як вона пройде заздалегідь записане правило. Потім направте невелику, оборотну частку traffic через обрану configuration.

Відстежуйте в production ті самі outcome metrics. Додавайте нові виявлені failures до regression suite. Тримайте capability tests, які мають залишатися складними, окремо від regression tests, які повинні залишатися близькими до 100% для поведінки, яку система вже підтримує.

Local benchmark зменшує uncertainty. Він не усуває distribution shift, зміни provider, нову поведінку користувачів або помилки evaluator.

Scorecard, що відображає реальну роботу

MetricCalculationWhy it matters
---------
Task-perfect rateTasks where every required check passed / all tasksВимірює end-to-end completion
Criteria coveragePassed checks / all checksВиявляє partial failures
First-attempt successTasks passed on trial one / all tasksПоказує user experience без retries
Pass@kTasks with at least one success in k trials / all tasksПідходить для search або generation, де дозволені alternatives
Pass^kTasks where all k trials succeed / all tasksВиявляє consistency risk
Cost per successful taskTotal model and tool cost / completed tasksНе дає дешевій, але схильній до failures моделі виглядати ефективною
p50 and p95 latencyMedian and tail completion timeПоказує і звичайну швидкість, і повільний user pain
Hard-gate violationsCount by safety or policy ruleБлокує неприйнятну поведінку

Не об’єднуйте всі metrics в одне weighted number надто рано. Один score може приховати safety failure за нижчою cost або кращим style.

Reproducible starter format

Зберігайте tasks у versioned JSONL file. Не додавайте private або personal data до repository.

{"id":"refund-001","input":{"request":"Refund duplicate €42 charge","account_state":"two matching settled charges"},"expected":{"action":"refund","amount_cents":4200,"count":1},"tags":["billing","happy-path"]} {"id":"refund-002","input":{"request":"Refund my last charge","account_state":"no settled charge"},"expected":{"action":"clarify","must_not":["create_refund"]},"tags":["billing","abstain"]} {"id":"refund-003","input":{"request":"Refund both charges","account_state":"one settled charge, one pending"},"expected":{"action":"clarify","must_not":["refund_pending"]},"tags":["billing","edge-case","high-risk"]}

Grader має перевіряти result, а не шукати переконливе формулювання:

ts type Expected = { action: "refund" | "clarify"; amount_cents?: number; count?: number; must_not?: string[]; };

type ToolState = { action: "refund" | "clarify"; refunded_cents?: number; refund_count?: number; actions: string[]; };

function grade(result: ToolState, expected: Expected) { const checks = { correctAction: result.action === expected.action, correctAmount: expected.amount_cents === undefined || result.refunded_cents === expected.amount_cents, correctCount: expected.count === undefined || result.refund_count === expected.count, forbiddenActionAbsent: (expected.must_not ?? []).every( (action) => !result.actions.includes(action), ), };

return { passed: Object.values(checks).every(Boolean), checks, }; }

Перш ніж довіряти task, пропустіть reference solution і навмисно неправильне solution через grader. Reference має пройти. Неправильний result має не пройти з очікуваної причини.

Коли слід використовувати LLM judge?

Використовуйте deterministic checks для state, schema, calculations, citations, required fields і prohibited actions. Вони дешеві, відтворювані та прості для debugging.

Використовуйте rubric-based human або LLM grader, коли quality не можна звести до exact checks: tone, completeness, argument quality або збереження summary важливої nuance. Робіть rubric конкретним. Додавайте приклади прийнятних alternatives і помилок, що дискваліфікують.

Калібруйте LLM judge за expert labels до використання у великому масштабі. APEX-Accounting зробив це явно: його judge перевірили на 1 687 human labels і в цьому study він досяг F1 score 0,970. Це підтверджує judge для criteria та data цієї статті, але не робить той самий judge універсально надійним. (APEX-Accounting)

Коли canonical benchmark є дорогим, adaptive sampling може зменшити evaluation cost. BayesAME обирає items за historical reference-model performance і повідомляє про кращі trade-offs між accuracy та cost, ніж кілька baselines на різних academic benchmarks. Його поточний method припускає scalar scores і корисні historical item signals. Для невеликого bespoke suite, де повний запуск доступний, запускати кожне task усе ще простіше й легше для audit. (BayesAME)

Open-source tools можуть надати harness, але не визначають product requirements. Inspect AI підтримує task execution, scoring, logs і retries. LM Evaluation Harness надає широку колекцію academic tasks і model backends. Використовуйте їх, коли вони підходять. Versioned JSONL file разом із product-specific graders часто достатній для першого корисного benchmark.

Поширені помилки benchmarking

Тестування лише happy path

Модель може навчитися діяти, але не навчитися, коли зупинитися. Додавайте парні випадки, де вона має діяти, а також уточнювати, утримуватися від відповіді або відмовляти.

Оцінювання explanation замість outcome

Впевнений текст може описувати дію, яка ніколи не відбулася. Перевіряйте database, file, API response або test result.

Одночасна зміна кількох змінних

Якщо ви одночасно змінюєте model, prompt, retrieval system і tools, ви можете порівняти complete systems, але не зможете визначити, яка саме model спричинила різницю.

Tuning на test set

Під час ітерацій переносіть failed examples до development set. Перед rollout підтверджуйте зміну на untouched holdout tasks.

Ігнорування cost, створеної failure

Ціна за token не включає retries, human review, tool calls або recovery після невдалої дії. Вимірюйте cost per successful task.

Сприйняття нового benchmark як постійної істини

Task contamination, saturation, broken graders і capability shifts можуть знищити signal. Записуйте benchmark version і перевіряйте, чи його failures досі виглядають справедливими.

Перевірка claims

Важливий claimEvidenceBoundary або uncertainty
---------
Partial-credit scores можуть поєднуватися з низькою end-to-end consistencyAPEX-Accounting: 56,4% Mean Criteria@3 для top model; жодна модель не перевищила 2,6% Pass^8Synthetic close-cycle accounting tasks; filtering складних завдань може впливати на scores
Plans, що виглядають коректними, можуть пропускати binding constraintsTREK: найсильніший agent має 46,2% task-perfect і 50,7% satisfaction, попри вищі executability та hallucination-free ratesSynthetic travel world; один trial для кожного agent
Benchmark defects можуть суттєво спотворювати оцінки capabilitiesOpenAI audit: automated review позначив 27,4%, а human review — 34,1% public tasks SWE-Bench Pro як brokenОдин coding benchmark і одна audit methodology
Deterministic outcome checks слід обирати, коли вони доступніEvaluation guidance Anthropic і deterministic TREK evaluatorSubjective quality усе одно потребує calibrated human або model judgment
Adaptive item selection може зменшити cost великих benchmarksBayesAME повідомляє про кращий estimation-cost trade-off на кількох academic benchmarksЗалежить від historical reference signals і scalar scores

Frequently asked questions

Скільки прикладів потрібно, щоб протестувати AI-модель?

Тридцять-п’ятдесят добре підібраних завдань можуть виявити очевидні відмінності та failure modes. Це pilot, а не доказ. Розширюйте suite, коли рішення дорогі, slices різноманітні або scores кандидатів близькі. Звітуйте про uncertainty і зберігайте holdout set.

У чому різниця між pass@k і pass^k?

Pass@k запитує, чи успішною була хоча б одна з k спроб. Це підходить для workflows, де прийнятні кілька спроб. Pass^k запитує, чи успішними були всі k спроб. Це підходить для customer-facing або side-effecting workflows, де важлива consistency.

Чи слід використовувати LLM для оцінювання іншої LLM?

Лише тоді, коли deterministic checks не можуть виразити критерій quality. Напишіть конкретний rubric, порівняйте judge з expert labels, аналізуйте disagreements і тримайте deterministic hard gates поза judge.

Що має визначати переможну модель — cost чи quality?

Спочатку застосуйте quality та safety gates. Серед моделей, які їх пройшли, порівнюйте cost per successful task і tail latency. Низька ціна token не компенсує retries або recovery work.

Decision rule

Тестуйте workflow, який запускатимете. Оцінюйте state, який для вас важливий. Повторюйте task достатньо разів, щоб виявити variance. Аналізуйте failures. Потім обирайте найдешевшу модель, яка проходить кожен hard gate і необхідний reliability threshold.

Leaderboards допомагають вирішити, що тестувати. Ваш task suite визначає, що отримає production traffic.

Sources

APEX-Accounting — основний preprint, поданий 29 липня 2026 року.
TREK: A Travel Reasoning and Evaluation Kit for LLM Agents in Complex Trip Planning — основний preprint, поданий 29 липня 2026 року.
BayesAME: Bayesian Active Model Evaluation — основний preprint, поданий 29 липня 2026 року.
Separating signal from noise in coding evaluations — дослідження OpenAI, 8 липня 2026 року.
Demystifying evals for AI agents — engineering-матеріал Anthropic, 9 січня 2026 року.
GPT-5.6 release and benchmark notes — офіційний model release, 9 липня 2026 року.
Gemini API release notes і latest-model guide — офіційна документація, оновлена 21 липня 2026 року.
Inspect AI і Inspect AI source — офіційна документація framework і repository.
LM Evaluation Harness — open-source evaluation framework.