Зміст
Команда два тижні підбирає чекпоінт і швидкість навчання, а датасет — папка з чотирьохсот діалогів, вивантажених із ChatGPT без схеми, без власника й без відповіді на питання «що вважати правильною відповіддю в нашому домені». На демо модель звучить переконливо. У пілоті юрист знаходить вигадане посилання на регламент, оператор бачить впевнену відповідь за скасованою інструкцією, а метрику «покращилось на 12%» ніхто не може відтворити — бо набір для оцінки змінювали разом із промптом.
Це типовий провал не архітектури, а інженерії даних. У корпоративному й промисловому ШІ датасет — не додаток до ноутбука, а версіонований продукт: контракт на вхід і вихід, власник, маніфест, редактори еталонів і регресійний гейт перед релізом.
Нижче — опорний лонгрід серії про підготовку датасетів для навчання та оцінки моделей. Розберемо golden-записи й редакторів еталонів, чотири сімейства даних, життєвий цикл від production назад у набір, витоки між train і eval, параметри за типом задачі й доменом. Матеріал доповнює, але не дублює еталонний набір для оцінки RAG, підготовку корпусу для RAG та промислову інженерію RAG.
Ключові висновки
Датасет — версіонований продукт — схема, власник, маніфест (хеш + версія + правила розмітки), історія змін у git або data store.
Навчання й оцінка — різні контури. Тренувальний корпус вчить поведінку; еталонний набір її вимірює. Змішувати без аудиту витоків — обманювати себе метриками.
Спочатку контракт задачі, потім обсяг і модель. Вхід, вихід, відмова — до розмови про LoRA й розмір чекпоінта.
Golden-запис — контракт на один приклад: вхід, очікуваний результат або критерії приймання, метадані. Набір таких записів — еталонний набір (golden dataset).
Редактори еталонів (golden editors) — доменні експерти, які створюють і погоджують еталон. Без них синтетика й краудсорс дають гарні числа й слабкий прод.
Параметри залежать від задачі й домену: обсяг, одиниця розмітки, hard negatives і пороги якості для класифікації, SFT, retrieval і computer vision — різні.
Цикл не закінчується релізом: провали в проді потрапляють у буфер майнінгу, проходять рев’ю редактора й лише потім — в еталон або в навчання.
Середнє без зрізів бреше. Гарне середнє може ховати провал на рідкому, але дорогому сегменті — застарілий регламент, чужий тенант, поганий скан.
Чим інженерія датасетів відрізняється від «зібрали CSV»
Інженерія датасетів — не разова вигрузка логів і не замовлення розмітки на біржі. Це повторюваний процес із явними артефактами:
| Артефакт | Що фіксує | Без нього |
|---|---|---|
| Схема | Поля запису, типи, обов’язковість | «Кожен файл у своєму форматі» |
| Rubric | Правила «правильно / відмова / ескалація» | Суперечки на кожному рев’ю |
| Маніфест | Версія, хеш, автор змін, дата | Несумісні метрики |
| Власник | Хто затверджує golden і train | Розмітка «на кого повісили» |
| Eval harness | Прогон із піном версії набору | Ручні перевірки в чаті |
| Регресійний гейт | Поріг за зрізами перед релізом | «У середньому стало краще» |
Якщо немає схеми, власника еталона й версії — ви ще експериментуєте з промптом, а не займаєтесь інженерією даних. Це нормально на нульовій стадії, але небезпечно, коли пілот уже обіцяний бізнесу.
Чому дані важливіші за чергову модель
Ціна помилки асиметрична. Хибний клас на демо — неприємно. Хибна інтерпретація пункту регламенту з охорони праці — інцидент. Тому «яку модель поставити» — після «який контракт можемо перевірити на production-подібних даних».
Три сигнали, що пора зайнятися датасетом
- Метрика стрибає без відтворюваності — у одному PR змінювали промпт, набір і модель.
- Гарні цифри на тесті, поганий пілот — domain gap (див. MNIST проти фото бланків у OCR рукописних цифр).
- Немає власника розмітки — «правильно» визначає той, хто останнім дивився в чат.
Вартість поганих даних
- Переобучення на eval — метрики радують до першого чужого запиту.
- Дороге дообучення — GPU-години на шум замість retrieval або rubric.
- Регресії без імені — не відкотити «набір v3», бо версії не було.
- Втрата довіри домену — експерти перестають рев’юити.
Інженерія датасетів робить покращення пояснюваними: версія набору, зріз, гейт — зрозумілі інженеру й власнику продукту.
Контракт задачі: вхід, вихід, відмова
До розмітки зафіксуйте контракт:
| Елемент | Питання | Приклад |
|---|---|---|
| Вхід | Що бачить модель? | Питання + retrieved chunks + мова |
| Вихід | Формат відповіді? | Markdown + посилання на пункт; JSON schema |
| Відмова | Коли не відповідати? | Немає джерела; ACL; застаріла версія |
| Ескалація | Коли до людини? | Високий клас ризику; низька впевненість |
| Мова | ru / en / mixed? | Відповідь мовою питання |
| Джерело істини | Що вважається фактом? | ERP, СЕД — не чат |
Контракт — основа rubric для редакторів еталонів. Без нього низький inter-annotator agreement — провал процесу, а не «складна задача».
Загальний підхід до eval: оцінка LLM перед production. Тут фокус на даних для цього eval.
Чотири сімейства даних
| Сімейство | Призначення | Типове використання | Ризик при змішуванні |
|---|---|---|---|
| Тренувальний корпус | Навчити патерну | SFT, класифікатор, пари query–фрагмент | Переобучення на eval |
| Preference data | Навчити віддавати перевагу | DPO, RLHF-пари | Стиль без фактів |
| Еталонний набір (golden) | Виміряти поведінку | Регресії, CI | Підгонка промпта |
| Буфер майнінгу | Сирі провали з прода | Черга на рев’ю | Оцінка за нерозміченим |
Тренувальний корпус
Вчить як відповідати: тон, формат, патерни домену. Може бути більшим і шумнішим на краях — але з lint: дедуп, ACL, без перетину з eval.
Preference data
Коли важливе уподобання між двома правдоподібними відповідями. Менший обсяг, ніж SFT; якість розмітників критичніша.
Еталонний набір
Фіксований, версіонований. Окремий розбір eval RAG: еталонний набір для оцінки RAG.
Буфер майнінгу
Сирий потік: логи, скарги. Не звітна метрика, поки редактор не промотував запис. SLA за класом ризику.
Golden-запис: мінімальна схема
{
"id": "reg-2026-0142",
"input": "Який строк дії інструкції з роботи на висоті?",
"expected_output": "Відповідь із посиланням на чинну редакцію І-ОТ-12 від 2024-03-01; якщо лише скасована версія — відмова з вказівкою версії.",
"acceptance": "citation_required",
"metadata": {
"domain": "industrial_safety",
"risk_class": "high",
"language": "uk",
"source_ids": ["І-ОТ-12"],
"tags": ["height_work", "validity"]
},
"annotator": "editor:petrov",
"rubric_version": "ot-rubric-1.2",
"dataset_version": "golden-regulations-v3"
}
Поля acceptance і rubric_version пов’язують запис із правилами редактора.
Редактори еталонів: роль, а не лише UI
| Обов’язок | Навіщо |
|---|---|
| Писати й оновлювати rubric | Єдині правила «правильно / відмова / цитата» |
| Розмічати рідкісні й небезпечні кейси | Вони ламають прод |
| Adjudication | Два розмітники не зійшлися → третій експерт |
| Відхиляти погану синтетику | Парафраз без факту не в golden |
| Пріоритизувати буфер | Ризик важливіший за обсяг |
Інженери будують схему, CI; редактор еталонів відповідає за зміст «золота».
| Стан | Хто бачить | У eval? |
|---|---|---|
| Чернетка в буфері | Редактори | Ні |
| На рев’ю | Редактор + рев’юер | Ні |
| Finalized golden | Команда | Так |
| Holdout | Обмежене коло | Так, рідко |
Детальний workflow: golden-editors-annotation-workflow-2026.
Життєвий цикл
flowchart TB
subgraph sources [Джерела]
prod[Трафік і логи]
docs[Документи й регламенти]
synth[Синтетика за rubric]
end
subgraph human [Люди]
editors[Редактори еталонів]
adjud[Узгодження спорних кейсів]
end
subgraph artifacts [Артефакти]
buffer[Буфер майнінгу]
golden[Еталонний набір vN]
train[Тренувальний корпус]
pref[Preference пари]
end
subgraph gates [Контроль]
eval[Eval harness]
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
Правила: буфер ≠ еталон; версія піниться до кожного прогону; holdout закритий при ітераціях промпта; один експеримент — одна змінна.
Train, eval і holdout
flowchart LR
subgraph pools [Пули даних]
train[Train / SFT]
dev[Dev eval — видимий]
hold[Holdout — прихований]
mine[Буфер майнінгу]
end
train -->|навчання| model[Модель / промпт]
dev -->|ітерації| model
dev -->|метрики в CI| gate[Гейт]
hold -->|рідка перевірка| gate
mine -->|після редакторів| dev
mine -->|після редакторів| hold
Витоки: парафрази в train і eval; few-shot з golden; fine-tune на текстах близько до eval. Стаття: dataset-splits-leakage-2026.
Коли потрібен train, коли достатньо RAG і промпта
| Ситуація | Часто достатньо | Коли потрібен train / SFT |
|---|---|---|
| Факти в документах | RAG + промпт | Стиль, жорсткий JSON |
| Класифікація на великому лозі | Baseline | Складна мова, багато класів |
| Вузький домен, мало даних | Промпт + golden eval | Тисячі пар з експертами |
| «Голос бренду» | System prompt | Тисячі пар + preference |
Критерії дообучення: коли потрібен fine-tuning.
Параметри за типом задачі
| Тип задачі | Одиниця розмітки | Порядок обсягу | На що дивитися першим |
|---|---|---|---|
| Класифікація / витяг | клас, span, JSON | 1k–50k | баланс, confusable pairs |
| Instruction tuning / SFT | instruction → output | 500–10k | шаблон, мова, відмови |
| Retrieval / ранжування | query–документ | тисячі пар | hard negatives, ACL |
| Генерація з фактами | питання + еталон | сотні–тисячі | цитата, «не знаю» |
| Computer vision / OCR | image, bbox | 5k–500k | умови зйомки, domain gap |
| Preference / DPO | пара A/B | 2k–20k | згода розмітників |
Для асистента з регламентів розумно 15–25% golden з відмовою або ескалацією; для вузької класифікації — за балансом класів.
Hard negatives
Особливо важливі для retrieval і класифікації: «схоже, але хибно». Без них модель вчиться на легких прикладах і падає на сусідніх розділах регламенту або схожих артикулах.
Параметри за доменом (коротка матриця)
| Домен | Особливість | Редактор еталонів | Типова помилка |
|---|---|---|---|
| Промисловість / ОТ | Версії регламентів | Інженер ОТ | Відповідь за скасованим документом |
| Фінанси / compliance | Обмеження на поради | Compliance + юрист | Впевнена відповідь без джерела |
| Код | Версії API | Senior dev | Застарілий snippet |
| Документи / OCR | Скан, таблиця | Оператор + QA | Мислення в стилі MNIST |
| Підтримка | Тон, ескалація | Супервізор | Переобучення на шаблони |
Повний розбір: dataset-parameters-by-domain-2026.
Команда та володіння
| Роль | Відповідальність |
|---|---|
| Власник продукту | Пріоритет зрізів, клас ризику |
| Власник еталонного набору | Версії golden, holdout |
| Редактор еталонів | Rubric, розмітка, adjudication |
| ML / platform engineer | Схема, harness, CI, маніфест |
| Security / compliance | ACL у метаданих |
Запишіть RACI: хто затверджує buffer → golden.
Версіонування та маніфест
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 кейсів застарілих редакцій"
У CI: валідація схеми, унікальність id, holdout не в train.
Метрики якості набору
| Метрика | Що показує |
|---|---|
| Покриття intent / класу | Діри в зрізах |
| Частка відмов | Не вчимо «відповідати будь-якою ціною» |
| Стабільність зрізу N→N+1 | Регресія даних |
| κ розмітників | Якість rubric |
| Вік записів | Застарілі golden |
| Частка prod vs синтетики | Реалістичність |
Організаційні метрики ШІ: оцінювання корпоративного ШІ.
Корпоративний приклад: асистент з регламентів
Промисловий холдинг запускає асистента з внутрішніх регламентів.
Тиждень 0 — контракт. Продукт і ОТ фіксують: відповідь лише з цитатою; при конфлікті версій — відмова; питання поза ОТ — відмова з маршрутом до HR/IT.
Тижні 1–2 — golden v0 (80 записів). Редактори еталонів (два інженери ОТ + методист) розмічують за rubric. Dev eval — лише для команди. Holdout 20 записів — окремий файл, доступ у tech lead.
Тижні 3–4 — baseline RAG. Індексація за контуром підготовки даних. Eval на golden v0: зріз «застаріла версія» — 40% провалів. Висновок: не модель, а індекс без valid_to і відсутність відмов у промпті.
Тижні 5–8 — корпус SFT (600 пар). Лише після фікса retrieval. Пари «питання → відповідь із пунктом», не сирі чанки. Train не перетинається з holdout (перевірка embedding-dedup).
Постійно — буфер. Два finalized golden на тиждень із пілота. Щокварталу — перегляд rubric і мажорна версія набору.
За квартал звіт відтворюваний: golden v1.3, маніфест індексу, модель — видно, що підняло зріз «застарілий регламент».
Промисловий приклад: польові бланки
У розборі OCR рукописних цифр параметри диктує середовище: не гліф 28×28, а фото з перспективою; не одна цифра, а послідовність у комірці; розмітка з БД замість армії розмітників; різні постановки → різні метрики й архітектури.
Той самий закон для LLM: канал, шум і постановка в датасеті важливіші за розмір чекпоінта.
Зв’язок з RAG-кластером
| Питання | Куди глибше |
|---|---|
| Eval RAG у проді | rag-golden-dataset-eval-2026 |
| Ingestion PDF/OCR | rag-document-ingestion-2026 |
| Вся ланка RAG | production-rag-engineering-2026 |
| Коли потрібен fine-tuning | when-fine-tuning-is-needed |
| Метрики на рівні підприємства | evaluating-enterprise-ai |
Ця серія не замінює RAG-кластер: вона закриває навчання, розмітку, golden editors і governance даних там, де одного індексу недостатньо.
Типові помилки
Один файл на train і test. Потрібен аудит дублікатів і парафраз, не лише random_split.
Golden без версії. Метрики місяць тому несумісні — змінилася лінійка, не «дрейф моделі».
Синтетика замість експертів на рідкісних кейсах. LLM розмножує правдоподібний шум.
Немає відмов у golden. Модель вчиться вгадувати.
Порожні метадані. Неможливо різати за тенантом, мовою, ризиком — регресії невидимі.
Fine-tune до виправлення retrieval. SFT запам’ятовує помилки пошуку.
Розмітка без rubric. Суперечки безкінечні, κ низький.
Що зробити сьогодні
- Намалюйте чотири сімейства і де лежать дані.
- Призначте власника еталонного набору і одну golden-запис (JSON вище).
- Перевірте витік між train/dev і звітним eval.
- Додайте 5 кейсів з очікуваною відмовою.
- Запишіть маніфест v0.1.0 навіть для 30 записів.
FAQ
Чим еталонний набір для навчання відрізняється від eval?
Eval фіксований і версіонований — вимірюємо, не вчимо (якщо лише свідомо й без витоку). Train змінюється частіше. Один формат JSONL, різні політики.
Скільки golden-записів для старту?
Для CI-гейта 50–150 стратифікованих кейсів; holdout 20–50. Вісімдесят adjudicated краще за 800 синтетичних без редактора.
Чи можна розмічати golden через LLM?
Як чернетку — так. Як єдиного редактора для high-risk — ні. Finalized golden проходить rubric людини.
Окремі датасети для RAG і SFT?
Часто так. Перетин текстів — кандидат на витік; робіть dedup.
Чи підходить git?
Для сотень–тисяч текстових записів у JSONL — так. Великі медіа — object storage + маніфест у git.
Далі в серії
- Golden-записи й редактори еталонів —
golden-editors-annotation-workflow-2026 - Train / eval / holdout і витоки —
dataset-splits-leakage-2026 - SFT і preference data —
sft-dataset-design-2026,preference-dataset-rlhf-2026 - Параметри за доменом —
dataset-parameters-by-domain-2026
Каталог серії: docs/ml-datasets/README.md у репозиторії проєкту.

