← Все статьи

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выгрузка — ещё не приёмка

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

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

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

Новая машина не чинит кривой калибр

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

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

Три сигнала, что пора чинить калибр, а не крутить чекпоинт:

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

Плохой набор стоит дороже, чем кажется: переобучение на оценочной выборке, часы на GPU на шум вместо исправления поиска, невозможность откатить «набор v3», потеря доверия экспертов. Инженерия данных делает улучшения объяснимыми: версия, срез, барьер — артефакты, понятные и инженеру, и владельцу продукта.

Сначала договоритесь, что считать годным

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

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

Без этого два эксперта размечат один кейс по-разному, и низкое согласие разметчиков окажется отсутствием правил, а не «сложной задачей». Подход к оценке до эксплуатации — в материале про оценку LLM перед запуском; здесь фокус на данных, которые кормят этот контур.

Четыре ящика, которые нельзя смешивать

На одном складе могут стоять четыре ящика. Свалить их в один — получить «красивую» метрику и ложный релиз.

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

Тренировочный корпус учит как отвечать: тон, формат, типичные паттерны. Для SFT это пары «инструкция → ответ»; для классификатора — «текст → метка». Он может быть большим и шумным на краях, но проходит статическую проверку: дедупликация, ACL, запрет явных дубликатов с оценочной выборкой.

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

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

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

Один образец — один контракт

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

{
  "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 связывают образец с правилами. Без них через полгода никто не объяснит, почему «годный» ответ внезапно стал другим — калибр сменили молча.

Кто отвечает за смысл «золота»

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

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

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

Состояние Кто видит Можно ли в оценке
Черновик в буфере Редакторы Нет
На ревью Редактор + ревьюер Нет
Финализированный эталон Вся команда Да
Скрытая выборка (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

Буфер не равен эталону, пока нет рубрики и ревью. К каждому прогону в лог пишут версии набора, модели и подсказки. Скрытую выборку не открывают при каждой итерации — иначе линейку начнут подтачивать. Один эксперимент — одна переменная: не меняйте парсер, подсказку и набор в одном релизе.

Учить, мерить и прятать линейку

Три пула оценки путают чаще всего. Обучение — корпус для дообучения. Видимая оценка для разработки (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 (скрытая) Техлид, управление данными Перед крупным релизом
Буфер сбора Редакторы Не для метрик

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

Когда хватает поиска, а когда нет

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

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

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

Объём зависит от задачи, не от моды

Универсальных «десяти тысяч примеров» нет — у разных задач разная единица приёмки.

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

Особенно важны случаи «похоже, но неверно»: без них модель учится на лёгких примерах и падает на соседних разделах регламента. Доля кейсов с ожидаемым отказом — не ошибка разметки, а требование. Для ассистента по регламентам разумно 15–25% эталона с отказом или эскалацией.

Домен меняет дефицит

Полный разбор — в dataset-parameters-by-domain-2026. Сжатый ориентир: в каждом домене не хватает своего ресурса — цитаты, допуска, свежести API или качества канала.

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

Кто утверждает калибр

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

Запишите, кто утверждает перевод кейса из буфера в эталон и кто может менять рубрику без мажорной версии набора. Без владельцев калибр «плывёт» незаметно — и все спорят о модели.

Без номера версии метрика — другая линейка

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

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, запрет пустого ожидаемого выхода без отказа, проверка что скрытая выборка не попала в обучающий корпус. Статья dataset-versioning-governance-2026 развернёт управление.

Считайте качество самого набора

Точность модели — не единственная шкала. Смотрите на сам артефакт «набор»:

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

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

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

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

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

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

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

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

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

Через квартал отчёт воспроизводим: версия эталона, манифест индекса, модель — и видно, что подняло срез «устаревший регламент». Калибр остался тем же инструментом; меняли то, что им измеряли.

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

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

Связь с 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-кластер: она закрывает обучение, разметку, редакторов эталонов и управление данными там, где одного индекса недостаточно.

Где ломают линейку

Один файл на обучение и тест — без аудита дубликатов и парафраз. Эталон без версии — метрики месяца назад несравнимы. Синтетика вместо экспертов на редких кейсах размножает правдоподобный шум. Нет отказов в эталоне — модель учится угадывать. Пустые метаданные — регрессии по арендатору и риску невидимы. Дообучение до исправления поиска — SFT запоминает ошибки извлечения. Разметка без рубрики — бесконечные споры и низкое согласие.

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

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

Почините калибр до покупки нового станка: иначе следующий «плюс двенадцать процентов» снова нельзя будет повторить.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии

Загрузка комментариев…