Методи аугментації наборів даних під час навчання LLM

Модель впевнено відповідає на рідкісних формулюваннях і не ламається на шумі — це питання якості даних, а не розміру корпусу. Ми налаштовуємо аугментацію наборів даних під ключ: розмічаємо правила, збираємо конвеєр, перевіряємо результат на ваших прикладах. Підсумок — стійкість моделі до живих запитів і передбачувана якість відповідей.
Часті запитання

Чому аугментація даних ламається на реальних наборах

Аугментація даних зазвичай ламається не на етапі генерації прикладів, а раніше — на розборі корпусу. Якщо тексти зібрані з одного каналу, наприклад лише з листування підтримки, у набору з'являється зсув вибірки: змінюється довжина реплік, частка формальних звернень, коло тем.

Рідкісні формулювання та пограничні випадки становлять частки відсотка, і під час розбиття вони майже повністю переходять у перевірну частину.

Далі спрацьовує перенавчання моделі, якого не видно у звіті за метриками. Коли даних мало для навчання, модель найшвидше вивчає стійкий шаблон формулювання, а не сенс запиту: підставте іншу тему в той самий зворот — відповідь не зміниться. Перевірна частина цього не показує, бо зібрана з того самого розподілу, що й навчальна.

Третій типовий збій — шум у навчальному наборі. Автоматичні перекази на коротких репліках змінюють сенс, дублювання рідкісних класів дає моделі сурогатну ознаку замість справжньої, а перемішування фрагментів рве зв'язність діалогу.

На живих зверненнях якість розходиться з перевірною, і розходження тим більше, чим агресивнішою була генерація.

Далі розбираємо, як це закривається: стратифікацією вибірки, відбором прикладів за розходженням розподілів і контролем шуму до подачі в навчання.

Що змінюється після впровадження: ефект у вимірюваних метриках

Ефект керованої аугментації видно на відкладеному наборі з реальних звернень, де частину питань навмисно перефразовано. Метрики якості моделі вважаємо за смисловими групами, а не однією загальною цифрою: так видно, де модель розуміє запит, а де вгадує знайоме формулювання.

Стійкість до перефразів перевіряємо напряму — ставимо одне питання в кількох формулюваннях і дивимося на розкид відповідей.

Easy Data Augmentation — заміна синонімів, перестановка та видалення слів — дає на цьому замірі найдешевшу прибавку: модель перестає залежати від порядку слів і від одного вдалого звороту в навчальній вибірці.

Обсяг ручної розмітки знижується не тому, що розмічаємо менше даних, а тому що розмічаємо інші. Типові випадки закриває аугментація, тому люди витрачають час на спірні приклади та контроль узгодженості. Частка задач, що потребують людини, падає, а узгодженість оцінок між розмітниками зростає.

Стабільність навчання вимірюємо як розкид якості між запусками на одному наборі. Збалансована аугментація прибирає перекоси за рідкісними класами, через які модель стрибала від запуску до запуску. Правила генерації та склад вибірки фіксуються — повторний запуск відтворює ту саму картину.

Підсумок: відповіді перестають залежати від формулювання питання, частка ручної розмітки скорочується, а оновлення моделі перестають бути лотереєю. Покращувати рішення можна ітераціями, не перезбираючи навчальну вибірку з нуля.

Порівняння підходів: правила, моделі та синтетика

Методи розширення корпусу різняться не складністю, а ціною помилки: одні додають варіативність формулювань, але не нові смисли, інші породжують нові приклади — разом із новим шумом. Нижче зіставлення за застосовністю та обмеженнями, щоб вибрати спосіб під обсяг і тип даних.

Метод Коли підходить Обмеження
Правила та шаблони заміни Вузька предметна область і жорсткий формат: номери заявок, дати, ідентифікатори. Словник синонімів і маскування сутностей дають швидкий приріст на малих обсягах Нові смисли не з'являються: вибірка зростає, розподіл той самий. Словник ведеться вручну
Перестановка фрагментів тексту Видобування та класифікація, де порядок речень слабко значущий: рубрики, теги, короткі відгуки Ламає зв'язність: для генерації зв'язного тексту й діалогів не підходить
Генеративний синтез прикладів Мало прикладів рідкісного класу, потрібні формулювання, яких немає у вихідних даних: перефразування, дописування відповідей Потрібна перевірка: модель тиражує свої помилки й додає неіснуючі факти. Фільтр за правилами плюс ручна розмітка
Розширення корпусу зовнішніми текстами Є галузеві джерела з відповідною ліцензією: документація, регламенти, галузеві форуми Зсув за тематикою та стилем; ризик перетину з відкладеною вибіркою

Що врахувати під час вибору

На практиці методи комбінують, але не більше двох-трьох на один корпус: правила дають обсяг на старті, генеративний синтез — різноманітність формулювань.

Перед додаванням у навчання вибірку дедуплікують і перевіряють на перетин з відкладеною частиною, інакше оцінка якості перестає щось показувати. Частку синтетики тримають у межах третини — далі модель починає вчитися на власних формулюваннях, і якість на реальних даних падає.

Як будується аугментація даних: етапи інженерної роботи

Аугментація даних — це не «розмножити приклади», а кероване розширення корпусу з контролем якості та відсутністю перетинів між вибірками. Робота йде етапами: кожен закінчується артефактом і перевірним критерієм, а не звітом «зробили більше даних».

  1. Аудит корпусу. Інвентаризація джерел: обсяг, мови, домени, частка дублів і битих прикладів, стан розмітки. На виході — звіт і список дефіцитних класів прикладів, які справді потрібно синтезувати.
  2. Схема конвеєра підготовки. Фіксуємо порядок кроків: нормалізація, дедуплікація, розширення, фільтрація, розбиття на навчальну, валідаційну та тестову частини. Схема узгоджується до запуску: правки на цьому етапі коштують години, після — цикли перенавчання.
  3. Налаштування правил і генерації. Детерміновані перетворення (шаблони, перестановки, зворотний переклад) плюс синтетична генерація моделлю. Задаємо обмеження за довжиною, мовою та стилем і ліміт частки синтетики — зазвичай 20–30%, інакше модель відтворює артефакти генератора.
  4. Критерії приймання якості. Пороги фіксуємо заздалегідь: частка відбракованих на фільтрі прикладів, частка дублів, узгодженість розмітки, збереження розподілу класів.
  5. Перевірка на витоки. Шукаємо перетини навчальної та валідаційної частин за фрагментами тексту й близькістю ембеддингів, знайдене вирізаємо. Без цього кроку метрика на валідації завищена, і в роботі якість просідає.
  6. Замір ефекту. Контрольне навчання на вихідному та розширеному корпусі з однаковими перевірними наборами. Дивимося не лише загальну метрику, а й підвибірки, де даних спочатку було мало.
  7. Передавання. Конфігурації, скрипти відтворення, схема конвеєра та звіт з метриками; версіонування корпусу й правил, щоб наступний прогін повторювався без ручного складання.

Артефакти передавання: схеми конвеєра, правила якості, регламенти

Після здачі робіт у замовника має залишитися не звіт-презентація, а робочий комплект, за яким команда продовжує без нас.

Усі артефакти проєкту лежать поруч із кодом, версіонуються та проходять рев'ю так само, як вихідники — інакше за місяць ніхто не згадає, чому поріг фільтрації виставлено саме так.

  • Схеми конвеєра — граф етапів аугментації у вигляді конфігурації (YAML/JSON): залежності кроків, точки розгалуження, формати входу й виходу на кожному етапі.
  • Документація щодо даних — паспорт датасету: джерела та ліцензії, схема полів, розподіл класів і дублів, частка синтетичних прикладів відносно вихідних.
  • Правила розмітки — інструкція з граничними випадками, розібраними прикладами та порядком ескалації спірних фрагментів; новий аннотатор входить у задачу без усних пояснень.
  • Регламент контролю якості — метрики згоди між розмітниками, частка прикладів на повторній перевірці та поріг, нижче якого партія йде на переробку.
  • Конфігурації фільтрації — правила дедуплікації, пороги за близькістю векторних представлень, чорні списки; параметри винесено назовні, правка не потребує зміни коду.
  • Скрипти відтворюваності — зафіксовані середовища та зерна генератора: повторний прогін дає той самий набір, а розходження пояснюється, а не шукається.
  • Звіт про заміри — порівняння моделі до та після аугментації на відкладеній вибірці, з розбивкою за підгрупами та чесним зазначенням, де ефект не підтвердився.
  • Журнал рішень — які підходи пробували, які відхилили й чому.

Кейс: стійкість моделі на рідкісних формулюваннях і шумі

Клієнт — сервіс з асистентом першої лінії: на типових питаннях якість влаштовувала, але варто було користувачу переформулювати питання, додати сленг або одруківку, як частка правильних відповідей падала.

На відкладеній вибірці рідкісних формулювань вона гуляла в коридорі 61-72% від запуску до запуску, а близько третини відповідей доводилося правити вручну — підтримка працювала другим контуром моделі.

Рідкісні формулювання витягли з логів звернень і розмітили окремим шаром, не змішуючи з типовим потоком. Аугментація йшла кількома проходами: зворотний переклад, парафрази зі збереженням сенсу, підміна сутностей і чисел, генерація прикладів на рідкісні шаблони.

Кожен приклад проходив фільтр — збіг мітки, відсутність дублів, різноманітність лексики; рідкісні класи балансувалися, щоб аугментація даних не розмивала часті.

Метрики до та після: частка правильних відповідей на рідкісних формулюваннях 61-72% → 88-91%, розкид між запусками навчання 11 → 3 пункти, ручні правки 32% → 8%. На загальній оцінці, включно з RussianSuperGLUE, просідання не було — стійкість не куплена ціною решти якості.

Протокол закріпили: набір фіксується разом із правилами фільтрації, замір іде на відкладеній вибірці за п'ятьма запусками, і зміни в даних видно в порівнянні, а не у відчуттях.

Чим відрізняється донавчання на слабкій розмітці від повного циклу

Донавчання моделі на вже зібраній розмітці — це підлаштування готових представлень під ваш домен і формат відповіді.

Такий шлях доречний, коли задача близька до тієї, на якій модель навчалася, а мітки всередині класу узгоджені між собою: модель не вивчає мову заново, а зсуває розподіл відповідей. Роботи вистачає на дні, і потрібні лише розмічений корпус і відкладена вибірка для контролю.

Слабка розмітка перестає бути опорою, коли розходяться самі правила. Якщо розмітники по-різному проводять межу класу, а рідкісні випадки звалені в загальне «інше», донавчання чесно відтворює шум: метрика на відкладеній вибірці зростає, а на реальному потоці якість падає. Аугментація даних тут не рятує — вона розмножує помилкову мітку в нових формулюваннях.

Повний цикл навчання починається з перезбирання корпусу: перегляд схеми класів, інструкція для розмітників, контрольні приклади, замір згоди між людьми.

На вході корисні схеми слабкого контролю — Snorkel з набором функцій-правил дає чорнові мітки та оцінку їхньої надійності, але фінальний шар все одно проходить ручну перевірку.

Вибір стратегії — це діагностика, а не смак. Ми рахуємо згоду розмітників, розбираємо помилки за класами й дивимося приріст на контрольній вибірці: поки донавчання дає приріст, повний цикл не потрібен. Коли модель упирається в стелю, задану якістю міток, далі рухає лише перезбирання даних.

За трудовитратами розвилка виглядає так: донавчання — дні й безпечний відкат на попередню версію, повний цикл — тижні й керована схема розмітки, яка перевикористовується на наступних ітераціях.

Технічні сумніви: шум, витоки, контроль якості

Аугментація перевіряється на малій вибірці, а питання до неї виникають пізніше — коли розширений набір іде в навчання. Нижче чотири технічні сумніви, які ми знімаємо перевірками, а не обіцянками.

Як розширений набір не протече в контрольну вибірку?

Розділення робимо до аугментації та за групами джерел: копії та перефрази одного фрагмента залишаються в одній частині. Потім рахуємо близькість ембеддингів між навчальною та відкладеною частинами — пари вище порога вирізаємо. Розходження метрик на контрольній і сліпій вибірці сигналить про витік.

Шум і повтори — чим відсіюються?

Точні дублі ловимо за хешами, близькі — за відстанню між ембеддингами з порогом, підібраним на розміченій пробі. Модельний фільтр оцінює зв'язність і відповідність відповіді питанню, пограничні приклади йдуть на ручний розбір. Частку дублів ведемо окремою метрикою: її зростання означає, що генератор вироджується.

Що входить у контроль якості набору?

На кожному прогоні рахуємо частку відфільтрованого, розподіл довжин, перетин з контрольною частиною та згоду модельної розмітки з ручною на стратифікованій підвибірці. Пороги зафіксовані в конфігурації, а не «на око»: набір, що не пройшов перевірки, у навчання не йде.

Чи не спотворить аугментація розподіл класів?

Балансувати рідкісні класи варто, але переписувати реальну частоту — ні: інакше модель впевнено відповідає на те, чого в роботі майже не трапляється.

Тримаємо стратифікацію за джерелом, довжиною та типом запиту й порівнюємо частки до та після розширення — зсув понад допуск блокує набір.

Обговоримо задачу: з чого почати роботу на вашому корпусі

Аугментація даних починається не з вибору методів, а з розбору корпусу: від того, що вже лежить у сховищі, залежить, чи потрібні перефразування, зворотний переклад або генерація синтетики.

Аудит корпусу забирає менше часу, ніж подальше налагодження, — на ньому видно, де розмітка суперечлива, а де дублікати роздувають вибірку та спотворюють метрики.

Щоб повернутися з оцінкою та планом впровадження, а не з уточнювальними питаннями, нам потрібні ввідні нижче. Обговорення задачі — у вільній формі: за кожним пунктом достатньо того, що є під рукою.

  • Мета й метрика: яку задачу розв'язує модель і за яким показником ви побачите, що якість зросла.
  • Обсяг і структура корпусу: скільки прикладів, якою мовою, у якому форматі зберігаються тексти й розмітка.
  • Походження розмітки: скільки даних розмічено вручну і за якою інструкцією — це визначає, чи годиться розмітка як еталон.
  • Класи й дисбаланс: які категорії настільки рідкісні, що без аугментації модель їх не вивчить.
  • Обмеження предметної області: що в текстах не можна змінювати — імена, терміни, юридичні формулювання, числа.
  • Минулі запуски: на яких даних уже навчали, який результат отримали і як запуск відтворюється.
  • Доступи та приймання: де розміщено корпус, чи є обмеження на вивантаження і хто приймає результат.

Початок робіт — після цього розбору: фіксуємо, які методи аугментації застосовуємо, на якій частині даних валідуємо і як вимірюємо приріст на відкладеній вибірці. На виході ви отримуєте схему робіт і критерії приймання, узгоджені до першого запуску навчання.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1396
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1375
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    817
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1143