В чём разница между zero-shot, few-shot и fine-tuning подходами?

Zero-shot, few-shot и fine-tuning — это три разных подхода к применению языковых моделей (и других моделей машинного обучения) для выполнения конкретных задач. Они различаются по степени обучения модели на примерах из целевой задачи и по требованиям к данным.

1. Zero-shot learning (нулевое обучение)

Определение:
Zero-shot learning означает, что модель решает задачу без предоставления ни одного примера этой задачи в момент запроса. Она опирается исключительно на знания, полученные на этапе общего предобучения.

Как это работает:
Предположим, модель предобучена на огромном объёме текстов. Благодаря этому она уже видела много задач в разных форматах. Теперь вы можете дать ей инструкцию вроде:

"Переведи следующий текст с английского на французский: 'Hello, how are you?'"

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

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

  • Не требует дополнительных данных.

  • Мгновенно применима к новой задаче.

  • Подходит для задач, где сложно получить тренировочные примеры.

Недостатки:

  • Точность может быть низкой, особенно для узкоспециализированных задач.

  • Ограничена тем, что модель знает из предобучения.

Примеры:

  • Классификация тональности текста без обучающих примеров.

  • Ответы на вопросы по теме, которую модель "встретила" в корпусе предобучения.

  • Генерация кода по инструкции.

2. Few-shot learning (обучение на нескольких примерах)

Определение:
Few-shot learning — это ситуация, когда модели предоставляются несколько примеров целевой задачи в момент выполнения (в prompt'е), чтобы помочь ей понять формат и контекст.

Как это работает:
Модель получает запрос в виде:

Пример 1:

Вопрос: Какая столица Франции?

Ответ: Париж

Пример 2:

Вопрос: Какая столица Японии?

Ответ: Токио

Вопрос: Какая столица Германии?

Ответ:

Здесь модель может лучше понять паттерн и выдать ответ "Берлин", основываясь на аналогии. Это не обучение в классическом смысле, а скорее имитация обучения во время инференса (Inference-time learning).

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

  • Повышенная точность по сравнению с zero-shot.

  • Гибкость: можно быстро адаптироваться под конкретную задачу или формат, просто меняя prompt.

  • Не требует изменения самой модели.

Недостатки:

  • Ограничено количеством контекста, который можно уместить в prompt.

  • Модель не запоминает информацию между запросами.

  • Работает хуже, если структура задачи сложная или примеры неоднозначны.

Примеры:

  • Генерация текстов в заданном стиле по паре образцов.

  • Ответы на вопросы с нестандартной логикой, где нужны примеры.

  • Автоматическая категоризация товаров, если дать 2–3 примера каждой категории.

3. Fine-tuning (донастройка, тонкая настройка)

Определение:
Fine-tuning — это процесс, при котором модель дообучается на конкретном датасете, чтобы улучшить её производительность по целевой задаче. Это требует пересчёта весов модели, в отличие от предыдущих подходов.

Как это работает:
Берётся предобученная модель (например, GPT, BERT, T5) и предоставляется специализированный датасет. Например, вы можете fine-tune'ить модель для:

  • Юридического анализа документов

  • Медицинской диагностики по описаниям симптомов

  • Генерации технической документации

В процессе дообучения модель подгоняет свои внутренние представления под особенности новой задачи, накапливает паттерны и коррекции ошибок, что позволяет достигать высокой точности и стабильности.

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

  • Высокая эффективность для специфичных задач.

  • Модель "запоминает" логику задачи, что даёт лучшее качество, чем few-shot.

  • Возможность создать узкоспециализированную модель (например, GPT, обученную только на медицинских данных).

Недостатки:

  • Требует большого объёма размеченных данных (хотя существуют методы low-resource fine-tuning).

  • Затратно по времени и ресурсам (требуются GPU, инфраструктура и время на дообучение).

  • Риск переобучения на ограниченном датасете.

  • Не всегда переносимо между задачами (модель становится "заточенной" под конкретную).

Подвиды fine-tuning'а:

  • Full fine-tuning: все веса модели обучаются заново на новом датасете.

  • LoRA / PEFT / Adapter-based подходы: обучаются только небольшие адаптационные слои, остальная часть модели остаётся неизменной. Это экономит ресурсы и позволяет быстро переключаться между задачами.

  • Instruction-tuning: модель дообучается на задачах с инструкциями, чтобы лучше понимать пользовательские запросы (например, как у моделей ChatGPT).

Примеры:

  • Дообучение BERT на юридических документах для задачи классификации исков.

  • Fine-tuning GPT-2 для генерации текстов в стиле писателя.

  • Модели, дообученные на медицинских записях для предсказания диагнозов.

Эти подходы можно также комбинировать. Например, можно сначала fine-tune'ить модель на задачах в стиле инструкции (instruction-tuning), а затем использовать её в few-shot режиме. Или применять zero-shot к уже fine-tune'енной модели, чтобы она сразу "угадывала" нужный формат ответа.