AI-инжиниринг

Synthetic Data: GPT-4 обучает Llama - как работает data distillation

Цели урока

  • Понять почему реальных размеченных данных всегда не хватает и сколько они стоят
  • Освоить Self-Instruct и Evol-Instruct как методы генерации датасетов
  • Разобраться как фильтровать синтетику: дедупликация, LLM-as-judge, diversity metrics
  • Собрать production pipeline с Distilabel и форматированием для fine-tuning

Alpaca (Stanford, 2023): 52 000 instruction-following примеров сгенерировано за USD 500. LLaMA-7B fine-tuned на этих данных был неотличим от text-davinci-003 в blind evaluation. WizardLM с Evol-Instruct обошёл ChatGPT. Phi-1 с 1.3B параметрами обошёл 13B модели - на чисто синтетических данных. Принцип scale laws перевернули с ног на голову: качество данных важнее размера модели.

  • Alpaca (Stanford) - первая публичная дистилляция: USD 500 на генерацию, результат сопоставим с GPT-3.5
  • WizardLM-70B с Evol-Instruct превзошёл ChatGPT на Vicuna benchmark в 2023
  • Phi-1.5 (Microsoft) - 1.3B параметров, синтетические данные, обходит 13B модели на coding tasks
  • Meta Llama 3 использует синтетически сгенерированные данные как значительную часть обучающего набора

От Web Crawl до Synthetic Curricula

**2022 - Self-Instruct** (Wang et al., ACL 2023): bootstrap через 175 seed задач, инструкция-следование без RLHF. **Март 2023 - Alpaca** (Stanford): 52K примеров за USD 500 через text-davinci-003, первая публичная дистилляция в open-source. **Апрель 2023 - WizardLM** (Microsoft): Evol-Instruct - усложнение инструкций пятью операторами, 70B модель обходит ChatGPT. **Июнь 2023 - Phi-1** (Microsoft Research): 1.3B параметров на 'textbook-quality' синтетике обходит 13B модели. **2024 - Distilabel 1.0**: production-grade фреймворк для синтетических pipeline. **2025**: синтетические данные - стандартный компонент обучения всех frontier моделей, включая Llama 3 и Gemini.

Предварительные знания

  • Fine-tuning: последнее средство, не первое - дообучение модели на своих данных

Почему реальных данных всегда не хватает

Fine-tuning требует данных. Доменные данные - редки. Разметка - дорогая. Это фундаментальный треугольник: хочется модель в узком домене, данных нет, разметчики стоят дорого. Решение пришло неожиданно: попросить сильную модель сгенерировать данные для обучения слабой.

Конкретные числа: Llama 2 Chat потребовал около 40 000 пар question-answer с RLHF-разметкой. Каждая пара - это работа человека-аннотатора: USD 1-2 за пример. Итого USD 40 000-80 000 только за instruction-following датасет, без учёта preference data. Для большинства компаний - непозволительно.

Тип данныхСтоимость разметкиДоступностьАльтернатива
Instruction followingUSD 1-2 / примерУмереннаяSelf-Instruct генерация
RLHF preference pairsUSD 3-5 / параНизкаяConstitutional AI
Domain Q&AUSD 2-5 / вопросНизкая (нет экспертов)GPT-4 distillation
Code reviewsUSD 5-20 / reviewОчень низкаяEvol-Instruct + code LLM

Phi-1 (Microsoft, 2023) - модель 1.3B параметров обученная на 'textbook-quality' синтетических данных. На coding benchmarks обошла CodeLlama 13B и GPT-3.5-turbo. Вывод исследователей: **качество данных важнее объёма и размера модели**. Это изменило подход к fine-tuning в индустрии.

Alpaca (Stanford, 2023) - первая публичная демонстрация дистилляции: 52 000 instruction-following примеров сгенерировано GPT-3 text-davinci-003 за USD 500. Fine-tuned LLaMA-7B вёл себя как instruction-following модель, неотличимо от text-davinci-003 в blind evaluations. Начало эпохи data distillation.

Вывод из исследования Phi-1 (Microsoft, 2023) о синтетических данных:

Self-Instruct и Evol-Instruct: bootstrap через LLM

**Self-Instruct** (Wang et al., 2022) - метод bootstrap: начать с небольшого seed-набора задач (175 примеров) и попросить LLM генерировать новые задачи в том же духе. Каждая новая задача проверяется на непохожесть с существующими (ROUGE similarity < 0.7), плохие отфильтровываются.

**Evol-Instruct** (Xu et al., WizardLM, 2023) - эволюция: взять существующую инструкцию и усложнить её. Пять операторов усложнения: add constraints, increase reasoning, concretize, increase input length, complicate. Результат: WizardLM-70B превзошёл ChatGPT (GPT-3.5-turbo) на Vicuna benchmark.

WizardCoder (2023, WizardLM team) применил Evol-Instruct к code generation: StarCoder 15B с эволюционными данными набрал 57.3% на HumanEval, обогнав GPT-3.5 (48.1%) и Claude-v1 (56.0%). Модель в 4 раза меньше GPT-3.5 - но с лучшими данными.

Что отличает Evol-Instruct от Self-Instruct?

Качество vs количество: как не сгенерировать мусор

1 миллион синтетических примеров - звучит хорошо. На практике без фильтрации это 60-80% мусора: повторяющиеся шаблоны, неверные ответы, слишком лёгкие задачи, галлюцинации генератора. Модель, обученная на таком датасете, учится быть уверенной мусорщицей.

**Phi-1 и 'textbook quality'**: Microsoft отфильтровал 6 триллионов токенов Common Crawl до 7 миллиардов 'учебного качества' с помощью LLM-классификатора. Потом синтетически сгенерировали ещё 1 миллиард. Итог: модель 1.3B обошла 13B модели. Качество > количество.

Diversity metrics: после фильтрации проверить разнообразие через embedding clustering. Если 70% датасета кластеризуется в 3 кластера - данные однородные, модель обучится на узком distribution. Инструмент: Argilla + UMAP-визуализация эмбеддингов датасета.

Почему Microsoft Phi-1 обошёл модели в 10 раз крупнее, используя синтетические данные?

Pipeline синтетики на практике

Полный pipeline: seed примеры -> генерация -> фильтрация -> дедупликация -> форматирование для fine-tuning. Каждый этап влияет на итоговое качество модели.

**Инструменты экосистемы** для production-grade синтетики:

ИнструментНазначениеПлюсы
Distilabel (Argilla)Pipeline для синтетики с built-in фильтрациейDeclarative API, поддержка любых LLM
ArgillaАннотация + обзор синтетических данныхUI для human review, интеграция с HuggingFace
LabelStudioUniversal annotation toolSupports QA, NER, preferences - всё в одном
DataDreamerSynthetic dataset generation frameworkResearch-ориентированный, воспроизводимый

Дистилляция из OpenAI/Anthropic API запрещена Terms of Service (нельзя использовать выход GPT-4 для обучения конкурирующей модели). Для коммерческого использования: генерировать данные через open-source модели (Llama 3, Mixtral) или покупать лицензию. Meta разрешает использовать Llama для дистилляции в другие модели при соблюдении Meta Community License.

Почему нельзя использовать выход GPT-4 для обучения собственной модели в коммерческих целях?

Синтетические данные хуже реальных - модель учится галлюцинациям генератора

При правильной фильтрации синтетика превосходит нефильтрованные реальные данные по эффективности обучения

Phi-1 и WizardLM доказали это эмпирически. Ключевые условия: сильный генератор (GPT-4 или Llama 70B), многоуровневая фильтрация, diversity контроль. Нефильтрованный синтез действительно токсичен - поэтому фильтрация критична.

Больше данных = лучше модель; нужно генерировать миллионы примеров

10 000 высококачественных примеров часто лучше 1 000 000 низкокачественных

LIMA (Less Is More for Alignment, 2023): 1000 высококачественных instruction-following примеров дали модель, сопоставимую с RLHF-обученным Llama на 50x больших данных. Quality over quantity - не метафора, а измеренный эффект.

Итоги

  • Разметка данных вручную стоит USD 1-5 за пример - дистилляция через LLM в 100x дешевле
  • Self-Instruct генерирует новые задачи из seed; Evol-Instruct усложняет существующие через 5 операторов
  • Качество фильтрации важнее объёма: дедупликация + LLM-as-judge + diversity metrics
  • Phi-1 (1.3B) обходит 13B модели на синтетике - quality beats scale
  • Коммерческое ограничение: OpenAI/Anthropic ToS запрещает использовать их вывод для обучения конкурентов

Вопросы для размышления

  • Для какой задачи в текущем проекте можно создать синтетический датасет? Какой seed набор нужен для старта?
  • Как проверить что синтетически обученная модель не переобучилась на distribution генератора?
  • Если нельзя использовать GPT-4 для генерации (ToS), какие open-source альтернативы подойдут для домена?

Связанные темы

Синтетические данные - топливо для fine-tuning. Следующий вопрос: как запустить и оценить обученную модель.

  • Fine-tuning — Применение синтетических данных - полный цикл fine-tuning
  • Локальные модели — Дистиллированные модели часто запускаются локально для экономии
  • Evaluation — Как измерить качество модели обученной на синтетических данных

Связанные уроки

  • aie-36-fine-tuning
  • aie-31-evaluation
  • aie-39-local-models
  • aie-40-model-serving
  • aie-65-alignment-rlhf-dpo
Synthetic Data: GPT-4 обучает Llama - как работает data distillation

0

1

Войти