Содержание
Команда две недели подбирает чекпоинт и скорость обучения, а набор данных — папка из четырёхсот диалогов, выгруженных из ChatGPT без схемы, без владельца и без ответа на вопрос «что считать правильным ответом в нашем домене». На демо модель звучит убедительно. В пилоте юрист находит выдуманную ссылку на регламент, оператор видит уверенный ответ по отменённой инструкции, а метрика «улучшилась на 12%» никто не может воспроизвести — потому что набор для оценки меняли вместе с системной инструкцией.
Так выглядит типичный провал не архитектуры, а инженерии данных. В корпоративном и промышленном ИИ набор данных — не приложение к ноутбуку, а версионируемый продукт: с контрактом на вход и выход, владельцем, манифестом, редакторами эталонов и регрессионным барьером перед релизом.
Ниже — опорный лонгрид серии о подготовке наборов для обучения и оценки моделей. Мы разберём эталонные записи (golden-записи) и редакторов эталонов, четыре семейства данных, жизненный цикл от эксплуатации обратно в набор, утечки между обучающей и оценочной выборками, параметры по типу задачи и домену. Материал дополняет, но не дублирует эталонный набор для оценки RAG (оценка в продакшене RAG), подготовку корпуса для RAG (индексация) и промышленную инженерию RAG (вся цепочка доказательств).
Ключевые выводы
Набор данных — версионируемый продукт. У него есть схема, владелец, манифест (хэш + версия + правила разметки) и история изменений в git или хранилище данных.
Обучение и оценка — разные контуры. Тренировочный корпус учит поведение; эталонный набор измеряет его. Смешивать без аудита утечек — обманывать себя метриками.
Сначала контракт задачи, потом объём и модель. Что на входе, что на выходе, когда отказ — определяется до разговора о низкоранговой адаптации LoRA (Low-Rank Adaptation) и размере чекпоинта.
Эталонная запись (golden-запись) — контракт на один пример: вход, ожидаемый результат или критерии приёмки, метаданные. Набор таких записей — эталонный набор.
Редакторы эталонов — доменные эксперты, которые создают и согласуют эталон. Без них синтетика и краудсорсинг дают красивые числа и слабый прод.
Параметры зависят от задачи и домена: объём, единица разметки, «похожие, но неверные» примеры и пороги качества для классификации, дообучения с учителем (SFT, Supervised Fine-Tuning), поиска контекста и компьютерного зрения — разные.
Цикл не заканчивается релизом: провалы в проде попадают в буфер сбора кейсов, проходят ревью редактора и только потом — в эталон или в обучение.
Метрики без срезов врут. Среднее по набору может скрывать провал на редком, но дорогом сегменте — устаревший регламент, чужой арендатор, низкое качество скана.
Чем инженерия датасетов отличается от «собрали CSV»
Инженерия датасетов — это не разовая выгрузка логов и не заказ разметки на бирже. Это повторяемый процесс с явными артефактами:
| Артефакт | Что фиксирует | Без него |
|---|---|---|
| Схема | Поля записи, типы, обязательность | «Каждый файл свой формат» |
| Рубрика разметки | Правила «правильно / отказ / эскалация» | Спор на каждом ревью |
| Манифест | Версия, хэш, автор изменений, дата | Несравнимые метрики |
| Владелец | Кто утверждает эталон и обучающий корпус | Разметка «на кого повесили» |
| Стенд оценки | Прогон с фиксацией версии набора | Ручные прогоны в чате |
| Регрессионный барьер | Порог по срезам перед релизом | «В среднем стало лучше» |
Если в проекте нет хотя бы схемы, владельца эталона и версии — вы ещё не занимаетесь инженерией данных, а экспериментируете с промптом. Это нормально на нулевой стадии, но опасно, когда пилот уже обещан бизнесу.
Почему данные важнее очередной модели
В корпоративных и промышленных проектах цена ошибки асимметрична. Неверный класс на демо-картинке — неприятно. Неверная интерпретация пункта регламента по охране труда — инцидент. Поэтому вопрос «какую модель поставить» логично ставить после вопроса «какой контракт на вход и выход мы можем проверить на данных, похожих на эксплуатацию».
Три сигнала, что пора заняться набором данных
- Метрика скачет без воспроизводимости — в одном запросе на слияние (PR, pull request) меняли промпт, набор и модель. Отчёт «+12%» нельзя связать с одним изменением.
- Хорошие цифры на тесте, плохой пилот — разрыв доменов: обучающая выборка не похожа на реальный поток. Классический пример — MNIST против фотографий бланков в разборе оптического распознавания рукописных цифр (OCR).
- Нет владельца разметки — «правильный ответ» определяется тем, кто последним смотрел в чат.
Стоимость плохих данных
Плохой набор обходится дороже, чем кажется:
- Переобучение на оценочной выборке — метрики радуют до первого чужого запроса.
- Дорогое дообучение — часы на 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 запоминает ошибки извлечения контекста.
Разметка без рубрики. Споры бесконечны, κ низкий.
Что сделать сегодня
- Нарисуйте четыре семейства и выпишите, где данные лежат сейчас.
- Назначьте владельца эталонного набора и зафиксируйте одну golden-запись (JSON выше).
- Проведите поиск утечки между обучением, dev и отчётной оценкой.
- Добавьте 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 в репозитории проекта.

