0Pricing
AI Agents · Урок

Создание эталонного набора тестов

Составьте 50–200 качественных пар (вход, ожидаемый вывод), охватывающих редкие случаи реального использования.

«Создание эталонного набора тестов» — бесплатный урок AI Agents на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Что такое золотой набор?

«Золотой набор тестов» (или «золотой набор») — это отобранная коллекция пар (входные данные, ожидаемый результат), которая определяет, как выглядит правильное поведение.

Каждое изменение сравнивается с этим набором.

Свойства хорошего золотого набора

  • Разнообразный — охватывает распространённые AND пограничные случаи
  • Отобран людьми — не создан автоматически
  • Версионируемый — зафиксирован в вашем репозитории
  • Документированный — для каждого случая указано обоснование

Сколько нужно случаев?

Ориентируйтесь на следующие значения:

  • 50 случаев — минимально приемлемый набор
  • 200 случаев — хорошее покрытие
  • 1000 и более случаев — зрелый продукт

Качество важнее количества. 50 хорошо отобранных случаев лучше 500 случайных.

Источники случаев

  1. Интервью с пользователями — что спрашивают реальные пользователи
  2. Рабочие журналы — какие вопросы поступали
  3. Отчёты об ошибках — каждая ошибка становится оценкой
  4. Генерация состязательных случаев — попросите LLM сломать агента

Mining Bad Production Traces

for trace in last_week_traces():
    if trace.has_thumbs_down or trace.had_error:
        case = {
            'input': trace.input,
            'why_bad': trace.feedback_comment,
            'expected': None   # to be filled by human reviewer
        }
        save_to_review_queue(case)

Ожидаемый результат: точный или эвристический

Есть два варианта ожидаемого результата:

  • Точное совпадение — для извлечения данных, классификации и вычислений
  • Эвристический — для открытых вопросов и ответов; оценивается наличие ключевых фактов

Heuristic Scoring

def score_answer(actual, expected_facts):
    return sum(1 for f in expected_facts if f.lower() in actual.lower()) / len(expected_facts)

case = {
    'input': 'What is our refund policy?',
    'expected_facts': ['30 days', 'unopened', 'receipt required'],
    'min_score': 0.66   # at least 2 of 3 facts mentioned
}

actual_answer = "You can return items within 30 days if they are unopened."
score = score_answer(actual_answer, case['expected_facts'])
print(f"Score: {score:.2f} (min required: {case['min_score']})")

Состязательные случаи

Включайте сложные случаи:

  • Вопросы вне области применения («Какая погода на Марсе?»)
  • Неоднозначные запросы
  • Попытки внедрения инструкций в запрос
  • Входные данные на иностранных языках
  • Очень длинные входные данные

Версионирование золотого набора

Храните его в формате JSON в своём репозитории. Каждый PR, изменяющий набор, должен объяснять причину:

// gold-set.json
[
  {
    "id": "refund-policy-001",
    "input": "What is your refund policy?",
    "expected_facts": ["30 days", "unopened", "receipt required"],
    "added_by": "alice@",
    "added_at": "2025-08-12",
    "reason": "Top customer support question"
  }
]

Разбиение на наборы для тестирования и проверки

Чтобы обнаружить переобучение, разделите данные на:

  • Набор разработки — для итераций (вы видите эти данные)
  • Набор тестирования — для измерений (вы НЕ настраиваете модель под него)
  • Отложенный набор — используется только перед крупными выпусками

Разметка по Парето

Помечайте случаи по категориям, чтобы видеть, WHERE произошло ухудшение:

tag1 = {'tags': ['policy', 'common-question']}
tag2 = {'tags': ['math', 'edge-case']}
print(tag1)
print(tag2)

# Run eval and report:
print("Category 'policy': 0.92")
print("Category 'math': 0.68   <- regression here")

Критерии оценки

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

rubric = {
    'must_include': ['30 days'],
    'must_not_include': ['no refunds'],
    'preferably_includes': ['receipt']
}
for k, v in rubric.items():
    print(f"{k}: {v}")

Источник случаев

Какой источник оценочных случаев даёт наиболее полезный сигнал?

Итоги

Более 50 отобранных случаев, полученных из реальных запросов пользователей и сбоев в рабочей среде. Версионируйте набор, размечайте его и разделяйте на наборы разработки, тестирования и отложенной проверки. Расширяйте его после каждой ошибки.

Часто задаваемые вопросы

Урок «Создание эталонного набора тестов» бесплатный?

Да — полный текст урока «Создание эталонного набора тестов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.

Чему я научусь в уроке «Создание эталонного набора тестов»?

Составьте 50–200 качественных пар (вход, ожидаемый вывод), охватывающих редкие случаи реального использования. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AI Agents?

Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Создание эталонного набора тестов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AI Agents?

Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Разработка агентов на основе оценивания
  2. Создание эталонного набора тестов
  3. Недостатки оценки с помощью LLM-судьи
  4. Наборы сравнительных тестов: SWE-Bench, GAIA, ToolBench
← Назад к AI Agents