Что такое data augmentation для LLM (back-translation, paraphrasing, masking)?

Краткий тезис

dataset|Data augmentation (аугментация данных) для LLM — это набор техник, которые искусственно расширяют и разнообразят обучающий датасет, не собирая новые реальные данные. Основные методы: back-translation (обратный перевод), paraphrasing (перефразирование) и masking (маскирование). Они помогают бороться с overfitting (переобучением), повышают robustness (устойчивость) модели к вариациям входных данных и улучшают обобщающую способность. В контексте LLM аугментация применяется как на этапе pre-training (предобучения), так и при fine-tuning (дообучении), а также в RAG-системах для генерации синтетических пар «запрос–документ».


1. Термин: Data Augmentation для LLM

Data augmentation — это процесс создания модифицированных копий существующих данных с сохранением их смысла (для текстов) или метки (для задач классификации). В отличие от компьютерного зрения, где аугментация (повороты, обрезки) тривиальна, для текста требуется сохранять семантику.

Зачем это LLM

  • Увеличение объёма датасета — особенно важно при fine-tuning на маленьких наборах.
  • Уменьшение overfitting — модель учится на более разнообразных примерах.
  • Повышение robustness — модель лучше обрабатывает опечатки, перестановки слов, синонимы.
  • Сбалансированность классов — для редких интентов или доменов.

Основные группы методов

  • Парафразирование (back-translation, LLM-based paraphrasing)
  • Маскирование и замена (masking, synonym replacement)
  • Перестановка (swap, shuffle)
  • Шум (noise injection: опечатки, удаление слов)

2. Back-translation (обратный перевод)

Back-translation — техника, при которой исходный текст переводится на промежуточный язык (обычно английский), а затем обратно на исходный. Полученный текст является парафразой оригинала.

Процесс

  1. Исходный текст на русском → перевод на английский (через LLM или NMT-модель).
  2. Английский текст → перевод обратно на русский (другая модель или та же).
  3. Полученный вариант — новый пример с тем же смыслом, но другой формулировкой.

Пример:

Исходный: "Кошка сидит на ковре."
→ Английский: "The cat is sitting on the rug."
→ Обратный: "Кошка сидит на половике."

Преимущества

  • Сохраняет смысл почти всегда.
  • Генерирует естественные парафразы.
  • Не требует размеченных данных.

Недостатки

  • Зависит от качества модели перевода.
  • Может потерять специфическую терминологию.
  • Дорого (два вызова LLM на каждый пример).

Применение увеличение датасета для machine translation, text classification, question answering.


3. Paraphrasing (перефразирование)

Paraphrasing — генерация альтернативных формулировок того же предложения с помощью LLM. Модели (GPT, T5, Pegasus) могут быть специально дообучены на задачу парафразирования.

Способы

  • Prompt-based: подать в LLM инструкцию "Перефразируй: {текст}".
  • Fine-tuned model: использовать модель типа parrot или pegasus-paraphrase.
  • Rule-based: замена синонимов, изменение порядка слов (менее качественно).

Пример промпта

Перепиши предложение, сохранив смысл, но изменив структуру и слова:
"Исследование показало, что регулярные тренировки улучшают память."

Результат

  • "Регулярные занятия спортом, как выяснили учёные, положительно влияют на память."
  • "Память улучшается благодаря систематическим тренировкам — таков вывод исследования."

Преимущества гибкость, контроль стиля, возможность генерации множества вариантов.

Недостатки риск искажения фактов (hallucination), необходимость проверки.


4. Masking (маскирование)

Masking — техника, при которой часть токенов в тексте заменяется на специальный токен [Вики/attention masking|MASK (или случайный Вики/token|токен), и Вики/model|модель обучается предсказывать исходные слова. Это основа Вики/masked language modeling|masked language modeling (Вики/masked language modeling|MLM), используемой в Вики/BERT|BERT и его вариантах.

Процесс

  • Выбирается 15% токенов в предложении.
  • Из них 80% заменяются на [Вики/attention masking|MASK, 10% — на случайный Вики/token|токен, 10% остаются без изменений.
  • Модель учится восстанавливать исходные токены по контексту.

Пример:

Исходный: "Сегодня [MASK] солнечная погода."
Модель предсказывает: "отличная" / "прекрасная" / "стоит"

Применение в аугментации

  • Data augmentation для fine-tuning: маскировать и заменять слова в предложениях, создавая новые примеры с тем же лейблом (для классификации).
  • Robustness training: обучать модель на зашумлённых данных, чтобы она не зависела от конкретных слов.

Варианты

  • Span masking: маскирование целых фраз (как в T5).
  • Entity masking: замена именованных сущностей на [MASK] для обучения извлечению.

5. Swap (перестановка) и другие техники

Swap — перестановка слов или фраз в предложении для создания новых примеров. Используется для повышения robustness к порядку слов.

Примеры

  • Word swap: "Кошка сидит на ковре" → "На ковре сидит кошка".
  • Phrase swap: "Вчера я купил книгу" → "Я купил книгу вчера".

Другие техники

  • Synonym replacement: замена слов на синонимы (WordNet, тезаурус).
  • Random insertion/deletion: вставка или удаление случайных слов (осторожно, может сломать смысл).
  • Noise injection: добавление опечаток (для robustness к ошибкам ввода).

Сравнение методов

МетодСохранение смыслаРазнообразиеВычислительная стоимость
Back-translationВысокоеСреднееВысокая (2 LLM-вызова)
Paraphrasing (LLM)ВысокоеВысокоеВысокая (1 LLM-вызов)
MaskingСреднееСреднееНизкая (правила)
SwapНизкое–среднееНизкоеОчень низкая
Synonym replacementСреднееНизкоеНизкая

6. Применение в fine-tuning и pre-training

Pre-training:

  • Masking — основа MLM (BERT, RoBERTa). Модель учится понимать контекст.
  • Back-translation используется для создания дополнительных текстов (например, в T5 для задач перевода).

Fine-tuning

  • Paraphrasing — для увеличения датасета инструкций (instruction tuning).
  • Back-translation — для генерации синтетических пар вопрос–ответ в RAG.
  • Swap/noise — для обучения модели игнорировать несущественные вариации.

Пример кода (back-translation с transformers):

from transformers import pipeline

translator_en = pipeline("translation", model="Helsinki-NLP/opus-mt-ru-en")
translator_ru = pipeline("translation", model="Helsinki-NLP/opus-mt-en-ru")

text = "Кошка сидит на ковре."
en_text = translator_en(text)[0]['translation_text']
augmented = translator_ru(en_text)[0]['translation_text']
print(augmented)  # "Кошка сидит на коврике."

7. Применение в RAG-системах

В Agentic RAG data augmentation используется для:

  • Генерации синтетических запросов из документов (обратный процесс: документ → вопрос).
  • Увеличения разнообразия чанков — парафразирование одного и того же фрагмента, чтобы retrieval находил его по разным формулировкам.
  • Robustness retrieval — обучение эмбеддинговой модели на парафразах (например, через back-translation).

Пример: Для документа "Столица Франции — Париж" генерируем вопросы:

  • "Какой город является столицей Франции?"
  • "Назовите столицу Франции."
  • "Париж — это столица какой страны?"

8. Инструменты и библиотеки

  • Hugging Face Transformers — модели для перевода, парафразирования (T5, Pegasus).
  • Parrot (библиотека) — специализированный парафразер на основе T5.
  • NLPAug — библиотека для аугментации текста (синонимы, back-translation, swap).
  • TextAttack — фреймворк для атак и аугментации.
  • OpenAI API — использование GPT для парафразирования (промпт-инжиниринг).

9. Ограничения и риски

  • Искажение смысла — особенно при swap и synonym replacement без контекста.
  • Усиление bias — если модель-парафразер имеет предвзятости, они передадутся в аугментированные данные.
  • Вычислительные затраты — back-translation и LLM-paraphrasing дороги.
  • Необходимость валидации — аугментированные примеры должны проверяться (человеком или автоматически) на корректность.

Пет-проект для закрепления

Задача Разработать пайплайн data augmentation для датасета вопросов к документам (RAG-сценарий).

Инструменты Python, Hugging Face Transformers, NLPAug, OpenAI API (опционально).

Шаги:

  1. Взять 100 пар «документ–вопрос» (например, из SQuAD или собственного набора).
  2. Реализовать три метода аугментации:
    • Back-translation для вопросов (русский → английский → русский).
    • Paraphrasing через промпт к GPT (или T5).
    • Masking — замена 15% слов в вопросе на [MASK] и генерация вариантов через MLM (BERT).
  3. Для каждого исходного вопроса сгенерировать по 3 новых.
  4. Оценить качество: попросить человека оценить сохранение смысла (1–5).
  5. Обучить небольшой классификатор интентов на исходном и аугментированном датасетах, сравнить accuracy и robustness (на тесте с опечатками).

Ожидаемый результат Пайплайн, который увеличивает датасет в 4 раза, повышает accuracy на 5–10% и улучшает robustness на 15–20% (по метрике точности на зашумлённых данных).


Связь с другими вопросами

ВопросТема
680Что такое синтетические данные и как их генерировать для LLM?
681Как бороться с overfitting при fine-tuning LLM?
682Какие методы регуляризации применяются в LLM?
684Как оценивать качество аугментированных данных?
685Что такое instruction tuning и как он связан с аугментацией?
710Как улучшить robustness RAG-системы?

Навигация