Тонкая настройка

Тема дорожной карты · Большие языковые модели (LLM)

Тонкая настройка (fine-tuning) представляет собой процесс дополнительного обучения предобученной большой языковой модели (LLM) на специализированном датасете с целью улучшения её производительности в конкретном домене или на определённых задачах. Этот метод позволяет модели адаптироваться к конкретному стилю или формату задачи, что делает её более эффективной и точной в контексте конкретного применения.

Тонкая настройка отличается от метода prompting тем, что она записывает знания в веса модели, что позволяет использовать более короткие промпты и снижает затраты на инференс при масштабировании. Полное fine-tuning обновляет все параметры модели, что требует значительных вычислительных ресурсов. В то же время, параметр-эффективные методы, такие как LoRA (Low-Rank Adaptation) и QLoRA, обновляют только небольшой адаптер, что значительно снижает потребление GPU-памяти, делая процесс доступным даже на одной графической карте.

Тонкая настройка требует качественного размеченного датасета и тщательной оценки модели после fine-tuning, чтобы избежать катастрофического забывания (catastrophic forgetting), когда модель теряет общие способности из-за переобучения на узкой задаче. Важно также поддерживать версионирование датасета и рецептов fine-tuning, чтобы результаты можно было воспроизводить.

Как это работает

Тонкая настройка адаптирует pre-trained модель под вашу задачу/домен дополнительным обучением. Методы fine-tuning включают полное fine-tuning (редко, так как это дорого), LoRA / QLoRA (эффективные, с низким рангом адаптерами на замороженной базе — популярные), instruction tuning, DPO/RLHF для предпочтительного выравнивания. Для закрытых исходных кодов OpenAI и Anthropic предлагают hosted fine-tuning. Для открытых моделей используются библиотеки peft, trl, axolotl от Hugging Face или unsloth.

Качество данных важнее количества — 500 отличных примеров > 50k средних.

Когда применять

Тонкая настройка следует применять после промптинга и RAG (Retrieval-Augmented Generation), когда промптинг и RAG не могут обеспечить необходимого уровня специфичности или структурированности вывода. Fine-tuning целесообразно применять, когда (а) в домене специфичный словарный запас или стиль, который не может быть обобщён, (б) требуется последовательный структурированный вывод, (в) задержка выполнения является критической (например, для distillation). LoRA и QLoRA делают fine-tuning доступным на одной графической карте, что значительно упрощает процесс обучения.

Для эффективного fine-tuning важно держать eval-датасет отдельно, чтобы избежать переобучения на eval-данных. Это позволяет проводить тщательную оценку модели после fine-tuning и избегать катастрофического забывания.

Типичные ошибки

Типичные ошибки при fine-tuning включают следующее: fine-tuning, когда промптинг или RAG могут решить задачу (ловушка затрат на обучение); загрязнение датасета eval-данными (ваше "улучшение" может быть просто переобучением); катастрофическое забывание (модель теряет общие способности ради узкой задачи); отсутствие версионирования датасета и рецептов fine-tuning (невозможность воспроизвести результаты).

Связанные понятия

Полезные ресурсы