← Все статьи

Инженерия датасетов для обучения моделей: с чего начать

Опорный лонгрид о подготовке данных для обучения и оценки ИИ: эталонные записи, редакторы эталонов, разделение обучения и оценки, утечки, манифесты и параметры по задаче и домену.

Инженерия датасетов для обучения моделей: с чего начать
Содержание

Команда две недели подбирает чекпоинт и скорость обучения, а набор данных — папка из четырёхсот диалогов, выгруженных из ChatGPT без схемы, без владельца и без ответа на вопрос «что считать правильным ответом в нашем домене». На демо модель звучит убедительно. В пилоте юрист находит выдуманную ссылку на регламент, оператор видит уверенный ответ по отменённой инструкции, а метрика «улучшилась на 12%» никто не может воспроизвести — потому что набор для оценки меняли вместе с системной инструкцией.

Так выглядит типичный провал не архитектуры, а инженерии данных. В корпоративном и промышленном ИИ набор данных — не приложение к ноутбуку, а версионируемый продукт: с контрактом на вход и выход, владельцем, манифестом, редакторами эталонов и регрессионным барьером перед релизом.

Ниже — опорный лонгрид серии о подготовке наборов для обучения и оценки моделей. Мы разберём эталонные записи (golden-записи) и редакторов эталонов, четыре семейства данных, жизненный цикл от эксплуатации обратно в набор, утечки между обучающей и оценочной выборками, параметры по типу задачи и домену. Материал дополняет, но не дублирует эталонный набор для оценки RAG (оценка в продакшене RAG), подготовку корпуса для RAG (индексация) и промышленную инженерию RAG (вся цепочка доказательств).

Ключевые выводы

Набор данных — версионируемый продукт. У него есть схема, владелец, манифест (хэш + версия + правила разметки) и история изменений в git или хранилище данных.

Обучение и оценка — разные контуры. Тренировочный корпус учит поведение; эталонный набор измеряет его. Смешивать без аудита утечек — обманывать себя метриками.

Сначала контракт задачи, потом объём и модель. Что на входе, что на выходе, когда отказ — определяется до разговора о низкоранговой адаптации LoRA (Low-Rank Adaptation) и размере чекпоинта.

Эталонная запись (golden-запись) — контракт на один пример: вход, ожидаемый результат или критерии приёмки, метаданные. Набор таких записей — эталонный набор.

Редакторы эталонов — доменные эксперты, которые создают и согласуют эталон. Без них синтетика и краудсорсинг дают красивые числа и слабый прод.

Параметры зависят от задачи и домена: объём, единица разметки, «похожие, но неверные» примеры и пороги качества для классификации, дообучения с учителем (SFT, Supervised Fine-Tuning), поиска контекста и компьютерного зрения — разные.

Цикл не заканчивается релизом: провалы в проде попадают в буфер сбора кейсов, проходят ревью редактора и только потом — в эталон или в обучение.

Метрики без срезов врут. Среднее по набору может скрывать провал на редком, но дорогом сегменте — устаревший регламент, чужой арендатор, низкое качество скана.

Чем инженерия датасетов отличается от «собрали CSV»

Инженерия датасетов — это не разовая выгрузка логов и не заказ разметки на бирже. Это повторяемый процесс с явными артефактами:

Артефакт Что фиксирует Без него
Схема Поля записи, типы, обязательность «Каждый файл свой формат»
Рубрика разметки Правила «правильно / отказ / эскалация» Спор на каждом ревью
Манифест Версия, хэш, автор изменений, дата Несравнимые метрики
Владелец Кто утверждает эталон и обучающий корпус Разметка «на кого повесили»
Стенд оценки Прогон с фиксацией версии набора Ручные прогоны в чате
Регрессионный барьер Порог по срезам перед релизом «В среднем стало лучше»

Если в проекте нет хотя бы схемы, владельца эталона и версии — вы ещё не занимаетесь инженерией данных, а экспериментируете с промптом. Это нормально на нулевой стадии, но опасно, когда пилот уже обещан бизнесу.

Почему данные важнее очередной модели

В корпоративных и промышленных проектах цена ошибки асимметрична. Неверный класс на демо-картинке — неприятно. Неверная интерпретация пункта регламента по охране труда — инцидент. Поэтому вопрос «какую модель поставить» логично ставить после вопроса «какой контракт на вход и выход мы можем проверить на данных, похожих на эксплуатацию».

Три сигнала, что пора заняться набором данных

  1. Метрика скачет без воспроизводимости — в одном запросе на слияние (PR, pull request) меняли промпт, набор и модель. Отчёт «+12%» нельзя связать с одним изменением.
  2. Хорошие цифры на тесте, плохой пилот — разрыв доменов: обучающая выборка не похожа на реальный поток. Классический пример — MNIST против фотографий бланков в разборе оптического распознавания рукописных цифр (OCR).
  3. Нет владельца разметки — «правильный ответ» определяется тем, кто последним смотрел в чат.

Стоимость плохих данных

Плохой набор обходится дороже, чем кажется:

  • Переобучение на оценочной выборке — метрики радуют до первого чужого запроса.
  • Дорогое дообучение — часы на GPU на шум вместо исправления поиска или рубрики.
  • Регрессии без имени — нельзя откатить «набор v3», потому что версии не было.
  • Потеря доверия домена — эксперты перестают ревьюить, если их правки игнорируют.

Инженерия датасетов делает улучшения объяснимыми: версия набора, срез, барьер — артефакты, которые понятны и инженеру, и владельцу продукта.

Контракт задачи: вход, выход, отказ

До разметки зафиксируйте контракт в одном документе (или в meta.yaml набора):

Элемент Вопрос Пример
Вход Что видит модель? Вопрос + найденные фрагменты + язык
Выход Формат ответа? Markdown + ссылка на пункт; схема JSON
Отказ Когда не отвечать? Нет источника; вне списка контроля доступа (ACL, Access Control List); устаревшая версия
Эскалация Когда к человеку? Класс риска «высокий»; низкая уверенность
Язык ru / en / mixed? Ответ на языке вопроса
Источник истины Что считать фактом? ERP, СЭД, не чат

Контракт — основа рубрики для редакторов эталонов. Без него два эксперта разметят один кейс по-разному, и согласие между разметчиками (inter-annotator agreement) будет низким не из-за «сложной задачи», а из-за отсутствия правил.

Подход к оценке до эксплуатации в целом — в материале про оценку LLM перед запуском; здесь мы фокусируемся на данных, которые питают этот контур оценки.

Четыре семейства данных

В одном проекте сосуществуют до четырёх семейств. Путать их — источник утечек и ложных релизов.

Семейство Назначение Типичное использование Риск при смешении
Тренировочный корпус Научить паттерну SFT, дообучение классификатора, пары «запрос — фрагмент» Переобучение на оценочной выборке, запоминание эталонов
Данные предпочтений Научить выбирать лучший ответ Пары предпочтений, ранжирование Стиль без фактов
Эталонный набор Измерить поведение Регрессии, непрерывная интеграция (CI), сравнение версий Подгонка промпта под видимые кейсы
Буфер сбора кейсов Сырые провалы из прода Очередь на ревью редактора Оценка по неразмеченным кейсам

Тренировочный корпус

Учит модель как отвечать: тон, формат, типичные паттерны домена. Для SFT это пары «инструкция → ответ»; для классификатора — «текст → метка»; для ранжировщика — «запрос, документ → релевантность**.

Корпус может быть большим, шумным на краях — но должен проходить статическую проверку: дедупликация, проверка ACL, запрет явных дубликатов с оценочной выборкой.

Данные предпочтений

Нужны, когда важно не только «правильный факт», но и предпочтение между двумя правдоподобными ответами: короче или полнее, формальный или разговорный, с цитатой или без. Типичные форматы — прямая оптимизация предпочтений DPO (Direct Preference Optimization) и пары для обучения с подкреплением от человека RLHF (Reinforcement Learning from Human Feedback). Объём обычно меньше, чем у SFT; качество разметчиков критичнее.

Эталонный набор

Фиксированный, версионированный, часто меньше обучающего корпуса. Каждая golden-запись — эталон для сравнения. При оценке RAG измеряем поиск контекста и генерацию; в классификации — точность по срезам; при извлечении — точное совпадение и F1 по полям.

Отдельный разбор: эталонный набор для оценки RAG.

Буфер сбора кейсов

Сырой поток: логи, жалобы, «модель ошиблась». Не отчётная метрика, пока редактор не промотировал запись в эталон или обучение. Соглашение об уровне сервиса (SLA) на ревью зависит от класса риска: инцидент безопасности — часы, косметика — недели.

Эталонная запись: минимальная схема

В экосистемах DeepEval / Confident AI golden-запись — «предшественник» тест-кейса: фиксированные поля до прогона; на оценке добавляются actual_output, контекст поиска, вызовы инструментов.

Минимальный контракт для своего репозитория (JSONL в git):

{
  "id": "reg-2026-0142",
  "input": "Какой срок действия инструкции по работе на высоте?",
  "expected_output": "Ответ со ссылкой на действующую редакцию И-ОТ-12 от 2024-03-01; если в корпусе только отменённая версия — отказ с указанием версии.",
  "acceptance": "citation_required",
  "metadata": {
    "domain": "industrial_safety",
    "risk_class": "high",
    "language": "ru",
    "source_ids": ["И-ОТ-12"],
    "tags": ["height_work", "validity"]
  },
  "annotator": "editor:petrov",
  "rubric_version": "ot-rubric-1.2",
  "dataset_version": "golden-regulations-v3"
}

Поля acceptance и rubric_version связывают запись с правилами редактора. Без них через полгода никто не объяснит, почему «правильный» ответ изменился.

Редакторы эталонов: роль, а не только интерфейс

Термин редактор эталонов (golden editor) пришёл из инструментов оценки LLM: интерфейс, где эксперт заполняет поля, комментирует, назначает ревью. В промышленном контуре важнее роль:

Обязанность Зачем
Писать и обновлять рубрику Единые правила «правильно / отказ / цитата»
Размечать редкие и опасные кейсы Они ломают прод, не «средний» вопрос
Согласование спорных кейсов Два разметчика не сошлись → третий эксперт + запись в манифест
Отклонять плохую синтетику Парафраз без факта не попадает в эталон
Приоритизировать буфер Риск важнее объёма

Инженеры строят схему, валидацию, непрерывную интеграцию (CI); редактор эталонов отвечает за смысл «золота». Без этого — «театр датасетов»: файлы есть, доверия нет.

Состояния записи (как в Confident AI: queue vs push):

Состояние Кто видит Можно ли в оценке
Черновик в буфере Редакторы Нет
На ревью Редактор + ревьюер Нет
Финализированный эталон Вся команда Да
Скрытая выборка (holdout) Ограниченный круг Да, редко и без итераций по ней

Подробный процесс — в статье golden-editors-annotation-workflow-2026.

Жизненный цикл: от прода обратно в набор

flowchart TB
  subgraph sources [Источники]
    prod[Трафик и логи]
    docs[Документы и регламенты]
    synth[Синтетика по рубрике]
  end

  subgraph human [Люди]
    editors[Редакторы эталонов]
    adjud[Согласование спорных кейсов]
  end

  subgraph artifacts [Артефакты]
    buffer[Буфер сбора кейсов]
    golden[Эталонный набор vN]
    train[Тренировочный корпус]
    pref[Пары предпочтений]
  end

  subgraph gates [Контроль]
    eval[Стенд оценки]
    ci[Регрессионный барьер]
  end

  prod --> buffer
  docs --> train
  synth --> train
  buffer --> editors
  editors --> adjud
  adjud --> golden
  adjud --> train
  train --> eval
  golden --> eval
  eval --> ci
  ci -->|pass| release[Релиз модели / промпта]
  prod -->|новый провал| buffer

Правила петли

  • Буфер ≠ эталон — пока нет рубрики и ревью, кейс не в отчётности.
  • Версия фиксируется к каждому прогону — в логе: dataset_version, model_version, prompt_version.
  • Скрытая выборка закрыта при итерациях промпта — иначе подгонка.
  • Один эксперимент — одна переменная — не меняйте парсер, промпт и набор в одном релизе; иначе непонятно, что сработало.

Обучение, оценка и скрытая выборка: границы

Три пула оценки часто путают: обучение (train) — корпус для дообучения; dev — видимая оценочная выборка для итераций команды; holdout — скрытая выборка для редкой проверки перед релизом.

flowchart LR
  subgraph pools [Пулы данных]
    train[Обучение / SFT]
    dev[Dev — видимая оценка]
    hold[Holdout — скрытая]
    mine[Буфер сбора]
  end

  train -->|обучение| model[Модель / промпт]
  dev -->|итерации| model
  dev -->|метрики в CI| gate[Барьер]
  hold -->|редкая проверка| gate
  mine -->|после редакторов| dev
  mine -->|после редакторов| hold
Пул Кто использует Когда смотреть метрику
Обучение (train) Обучение, аугментация Не как финальный аргумент
Dev (видимая оценка) Команда при разработке Каждый PR / ночной прогон
Holdout (скрытая) Техлид, управление данными (governance) Перед крупным релизом
Буфер сбора Редакторы Не для метрик

Утечки: парафразы одного вопроса в обучающей и оценочной выборках; примеры в запросе (few-shot) из эталона; дообучение на текстах, близких к оценочной выборке. Перед доверием баллу — поиск близких дубликатов между пулами. Отдельная статья: dataset-splits-leakage-2026.

Когда нужно обучение, когда достаточно RAG и промпта

Ситуация Часто достаточно Когда нужно обучение / SFT
Факты в документах, редкие формулировки RAG + промпт Стиль ответа, жёсткий формат JSON
Классификация на большом историческом логе Базовая линия + признаки Сложный язык, много классов
Узкий домен, мало данных Промпт + эталонная оценка Тысячи размеченных пар с экспертами
Поведение «как бренд» Системная инструкция Тысячи согласованных пар + предпочтения

Критерии «нужен ли fine-tuning» — в главе о дообучении: без бизнес-причины корпус для SFT — дорогой способ переобучиться на шум.

Параметры по типу задачи

Универсального «10 000 примеров» нет. Ориентиры для планирования:

Тип задачи Единица разметки Порядок объёма На что смотреть первым
Классификация / извлечение класс, фрагмент (span — текстовый отрезок), JSON 1k–50k баланс, легко путаемые пары
Настройка инструкций / SFT «инструкция → ответ» 500–10k шаблон, язык, отказы
Поиск / ранжирование запрос–документ тысячи пар жёсткие негативы, ACL, версия
Генерация с фактами вопрос + эталон + источник сотни–тысячи цитата, «не знаю»
Компьютерное зрение / OCR изображение, рамка (bbox, bounding box), последовательность 5k–500k условия съёмки, разрыв доменов
Предпочтения / DPO пара A/B 2k–20k согласие разметчиков

«Похожие, но неверные» примеры

Особенно важны для поиска и классификации. Без них модель учится на лёгких примерах и падает на соседних разделах регламента или похожих артикулах.

Отказы и запросы вне области

Доля кейсов с ожидаемым отказом — не ошибка разметки, а требование. Для ассистента по регламентам разумно 15–25% эталона с отказом или эскалацией; для узкой классификации — по балансу классов.

Параметры по домену (краткая матрица)

Полный разбор — в dataset-parameters-by-domain-2026. Сжатый ориентир:

Домен Особенность данных Редактор эталонов Типичная ошибка
Промышленность / ОТ Версии регламентов, высокая цена ошибки Инженер ОТ, методист Ответ по отменённой инструкции
Финансы / соответствие требованиям (compliance) Запрет на совет без оговорок Специалист по compliance + юрист «Уверенный» вывод без источника
Код / репозиторий Версии API, контекст файла Старший разработчик Устаревший фрагмент кода
Документы / OCR Скан, таблица, колонтитул Оператор + контроль качества Мышление «как на MNIST»
Поддержка клиентов Тон, эскалация Супервизор Переобучение на шаблоны

Команда и владение

Роль Ответственность
Владелец продукта Приоритет срезов, класс риска
Владелец эталонного набора Версии эталона, скрытая выборка (holdout)
Редактор эталонов Рубрика, разметка, согласование
Инженер ML / платформы Схема, стенд, CI, манифест
Безопасность и соответствие ACL в метаданных, запрет утечки в обучающий корпус

Матрица RACI (Responsible, Accountable, Consulted, Informed — кто делает, кто утверждает, кого спрашивают, кого информируют) должна быть записана: кто утверждает попадание кейса из буфера в эталон, кто может менять рубрику без мажорной версии набора.

Версионирование и манифест

Каждый релиз оценки привязывайте к манифесту:

dataset_id: golden-regulations
version: v3.2.0
schema_version: 2
rubric_version: ot-rubric-1.2
content_hash: sha256:...
record_count: 142
holdout_count: 28
created_at: 2026-08-15
changelog: "Добавлены 12 кейсов устаревших редакций; исправлен id reg-0088"

В непрерывной интеграции (CI): валидация схемы, уникальность id, запрет пустого expected_output без acceptance: refusal, проверка что скрытая выборка (holdout) не попала в обучающий корпус. Статья dataset-versioning-governance-2026 развернёт управление и контроль.

Метрики качества набора (не только точность модели)

Метрика набора Что показывает
Покрытие намерения / класса Дыры в срезах
Доля отказов Не учим только «отвечать любой ценой»
Стабильность среза при версии N→N+1 Регрессия из-за данных, не модели
κ (Kappa) разметчиков Качество рубрики
Возраст записей Устаревшие эталоны
Доля из прода vs синтетики Реалистичность распределения

Организационные метрики ИИ — в оценке корпоративного ИИ; здесь — качество артефакта «набор».

Корпоративный пример: ассистент по регламентам

Промышленный холдинг запускает ассистента по внутренним регламентам.

Неделя 0 — контракт. Продукт и ОТ фиксируют: ответ только с цитатой; при конфликте версий — отказ; вопросы вне ОТ — отказ с маршрутом к HR/IT.

Недели 1–2 — эталон v0 (80 записей). Редакторы эталонов (два инженера ОТ + методист) размечают по рубрике. Оценка для разработки (dev) — только для команды. Скрытая выборка (holdout): 20 записей — в отдельном файле, доступ у технического лида.

Недели 3–4 — базовая линия RAG. Индексация по контуру подготовки данных. Оценка на golden v0: срез «устаревшая версия» — 40% провалов. Вывод: не модель, а индекс без valid_to и отсутствие отказов в промпте.

Недели 5–8 — корпус SFT (600 пар). Только после фикса поиска. Пары «вопрос → ответ с пунктом», не сырые фрагменты. Обучение не пересекается с holdout (дедупликация по эмбеддингам).

Постоянно — буфер. Два финализированных эталона в неделю из пилота. Ежеквартально — пересмотр рубрики и мажорная версия набора.

Через квартал отчёт воспроизводим: golden v1.3, манифест индекса, модель — и видно, что подняло срез «устаревший регламент».

Промышленный пример: полевые бланки и OCR

В разборе OCR рукописных цифр параметры диктует среда:

  • не глиф 28×28, а фото с перспективой;
  • не одна цифра, а последовательность в ячейке;
  • разметка из БД, а не ручная армия;
  • разные постановки → разные метрики и архитектуры.

Тот же закон для LLM: канал, шум, постановка в наборе важнее размера чекпоинта.

Связь с RAG-кластером и книгой

Вопрос Где углубиться
Оценка RAG в проде rag-golden-dataset-eval-2026
Загрузка PDF/OCR rag-document-ingestion-2026
Вся цепочка RAG production-rag-engineering-2026
Нужно ли дообучение when-fine-tuning-is-needed
Метрики на уровне предприятия evaluating-enterprise-ai

Эта серия не заменяет RAG-кластер: она закрывает обучение, разметку, редакторов эталонов и управление данными там, где индекса одного недостаточно.

Типичные ошибки

Один файл на обучение и тест. Нужен аудит дубликатов и парафраз, не только случайное разбиение.

Эталон без версии. Метрики месяца назад несравнимы — сменилась линейка, не «дрейф модели».

Синтетика вместо экспертов на редких кейсах. LLM размножает правдоподобный шум.

Нет отказов в эталоне. Модель учится угадывать.

Метаданные пустые. Нельзя резать по арендатору, языку, риску — регрессии невидимы.

Дообучение до исправления поиска. SFT запоминает ошибки извлечения контекста.

Разметка без рубрики. Споры бесконечны, κ низкий.

Что сделать сегодня

  1. Нарисуйте четыре семейства и выпишите, где данные лежат сейчас.
  2. Назначьте владельца эталонного набора и зафиксируйте одну golden-запись (JSON выше).
  3. Проведите поиск утечки между обучением, dev и отчётной оценкой.
  4. Добавьте 5 кейсов с ожидаемым отказом до смены модели.
  5. Запишите манифест v0.1.0 даже для 30 записей — привычка версий с первого дня.

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

Чем эталонный набор для обучения отличается от эталонного набора для оценки?

Для оценки набор фиксирован и версионирован — вы измеряете систему, не обучаете на нём (если только осознанно и без утечки в dev). Тренировочный корпус меняется чаще, может быть шире и шумнее. Один и тот же JSONL-формат, разные политики доступа и барьеры.

Сколько эталонных записей нужно для старта?

Для регрессионного барьера в CI часто хватает 50–150 хорошо стратифицированных кейсов; для holdout — ещё 20–50, которые команда не «подгоняет» глазами. Лучше 80 записей, согласованных экспертами (согласование спорных кейсов, adjudication), чем 800 синтетических без редактора.

Можно ли размечать эталон с помощью LLM?

Как черновик и для ускорения очереди — да. Как единственный редактор для домена с высоким риском — нет. Финализированный эталон должен проходить рубрику человека; LLM-судья — отдельный контур с калибровкой.

Нужен ли отдельный набор для RAG и для SFT?

Часто да. Оценка RAG проверяет поиск и генерацию на вопросах к корпусу. SFT-корпус учит формулировки и формат. Пересечение по тексту вопросов — кандидат на утечку; проверяйте дедупликацию.

Git подходит для хранения наборов?

Для сотен–нескольких тысяч текстовых записей в JSONL — да: сравнение версий (diff), проверка в PR, теги версий. Для больших медиа — объектное хранилище + манифест в git. Не редактируйте эталон «на месте» без версии.

Дальше в серии

  • Golden-записи и редакторы эталонов — рубрика, согласование, очередь ревью (golden-editors-annotation-workflow-2026).
  • Обучение / оценка / holdout и утечки (dataset-splits-leakage-2026).
  • SFT и данные предпочтений (sft-dataset-design-2026, preference-dataset-rlhf-2026).
  • Параметры по домену (dataset-parameters-by-domain-2026).

Каталог серии: docs/ml-datasets/README.md в репозитории проекта.