В чём разница между 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'енной модели, чтобы она сразу "угадывала" нужный формат ответа.