Дообучение нейросети (fine-tuning): что это и когда оно нужно
Дообучение меняет саму модель: ее доучивают на примерах вашей задачи. Часто это не нужно, и хватает хорошего промпта или поиска по документам. Здесь собрано, как выбирать, как устроена LoRA и какие ошибки мы сами сделали на собственном дообучении.
Обновлено . Текст подготовил ООО «ФИИ», источники в конце страницы.
Что такое fine-tuning простыми словами
Языковую модель сначала обучают на большом объеме текста на естественном языке. Дообучение, или fine-tuning, это следующий шаг: модель доучивают на примерах конкретной задачи, чтобы она лучше с ней справлялась. По учебному курсу Google, иногда для этого хватает нескольких сотен или нескольких тысяч примеров.
Есть два подхода. При полном дообучении меняются все параметры модели. Google предупреждает, что такой путь требует больше вычислений и при обучении, и при работе модели. Авторы LoRA пишут, что с ростом моделей полное дообучение становится все менее осуществимым. Второй подход называют параметрически эффективным: меняется только небольшая часть параметров. Один из таких методов LoRA.
Важная деталь: дообученная модель того же размера, что и исходная. Если в базовой модели десять миллиардов параметров, столько же будет и в дообученной. Это пример из курса Google.
Когда нужно дообучение, а когда хватит промпта или RAG
Google прямо советует начинать с промпта, подобрать лучший вариант и только потом, если нужно, переходить к дообучению. В документации OpenAI сказано, что работы над промптом может оказаться достаточно. Промпт меняет ответ, не меняя параметров модели.
Если модели не хватает знаний, например о ваших договорах или ценах, их обычно не вшивают в веса, а передают в запросе вместе с вопросом. OpenAI советует включать в промпт данные, которых нет в обучающей выборке модели. Так работает RAG, поиск по базе знаний: нужные фрагменты документов находятся и подставляются в запрос.
Дообучение оправдано в других случаях. По документации OpenAI и Google:
- Ответ нужен строго в одном формате, а промпт не дает стабильности.
- Примеров больше, чем помещается в один запрос.
- Хочется сократить промпт: убрать из каждого запроса длинные инструкции и примеры, а с ними часть расходов и задержку.
- Данные чувствительные, и не хочется передавать их примерами в каждом запросе.
- Небольшая модель должна хорошо делать одну задачу там, где большая слишком дорога.
Anthropic напоминает, что не каждая проблема решается промптом: иногда задержку и стоимость проще снизить, выбрав другую модель. Для дообучения Gemini Google ориентирует на набор от 100 примеров и подчеркивает, что качество разметки важнее количества.
Одна оговорка на дату страницы: OpenAI сворачивает свою платформу дообучения, и новым пользователям она уже недоступна.
Что такое LoRA и почему она дешевле
LoRA (Low-Rank Adaptation) предложили Ху и соавторы в 2021 году. Идея такая: веса исходной модели замораживаются, а в каждый слой добавляются две небольшие матрицы, которые и обучаются. Авторы исходили из гипотезы, что изменение весов при дообучении имеет низкий «внутренний ранг», то есть его можно описать гораздо меньшим числом чисел. Размер добавки задает ранг r: чем он меньше, тем меньше обучаемых параметров. В трансформерах LoRA обычно ставят на блоки внимания.
Почему это дешевле, видно по цифрам из статьи на модели GPT-3 175B:
- Обучаемых параметров в 10 000 раз меньше, чем при полном дообучении.
- Памяти видеокарт нужно втрое меньше: при обучении 350 ГБ вместо 1,2 ТБ.
- Сохраняемая добавка весит 35 МБ вместо 350 ГБ полной копии модели. Это при ранге 4 и адаптации только двух матриц внимания.
По качеству LoRA в статье не уступала полному дообучению на RoBERTa, DeBERTa, GPT-2 и GPT-3. Добавочные матрицы можно слить с исходными весами, и тогда ответ модели не замедляется. Документация Hugging Face PEFT добавляет практичное свойство: на одной замороженной модели можно держать несколько легких адаптеров под разные задачи.
QLoRA (Деттмерс и соавторы, 2023) пошла дальше: исходная модель заморожена и хранится в четырехбитном виде, а обучение идет через адаптеры LoRA. Так удалось дообучить модель на 65 млрд параметров на одной видеокарте с 48 ГБ памяти, сохранив качество шестнадцатибитного дообучения.
Граница метода названа в самой статье LoRA. Если задача на другом языке, чем тот, на котором модель училась, полное переобучение может обойти LoRA с малым рангом. Для русского языка и модели, обученной в основном на английском, это стоит иметь в виду.
Отдельно о путанице в поиске: LoRA используют и в генерации картинок, документация PEFT приводит пример со Stable Diffusion WebUI. Часть запросов про LoRA, например с Flux, относится к картинкам. Эта страница про языковые модели.
Что мы узнали, дообучив свою модель на 0,5 млрд параметров
Мы дообучали собственную языковую модель на 0,5 млрд параметров, обученную нами с нуля. Учились все параметры, LoRA мы не применяли. Модель должна была отвечать на вопросы по выдержке из текста и отказываться, если ответа в выдержке нет. Проверка шла на закрытом наборе из 200 заданий: 140 на извлечение ответа и 60 на отказ. Критерии успеха:
- Формат не ниже 85%: модель отвечает на вопрос, а не продолжает текст.
- Язык не ниже 85%: ответ на русский вопрос по-русски. Ответ считается русским, если доля кириллицы среди букв не ниже 0,6.
- Зацикленность ниже 10%: доля ответов, где модель повторяет одно и то же.
Мы сделали шесть версий:
| Версия | Набор, примеров | Шагов | Скорость обучения | Формат | Язык (прежняя мерка) | Зацикленность |
|---|---|---|---|---|---|---|
| версия 1 | 28 318 | 7 080 | 1e-05 | 100% | 83,5% | 12% |
| версия 2 | 3 225 | 300 | 3e-05 | 49% | 75% | 0% |
| версия 3 | 3 225 | 600 | 2e-05 | 45% | 94,5% | 2% |
| версия 4 | 28 318 | 600 | 1e-05 | 100% | 82,5% | 14% |
| версия 5, с маркером конца | 28 318 | 600 | 1e-05 | 100% | 86,0% | 0% |
| версия 6, с маркером конца | 28 318 | 7 080 | 1e-05 | 100% | 83,5% | 0% |
Урок 1. Маленький узкий набор ломает формат
Версии 2 и 3 учились на наборе из 3 225 примеров, в 8,8 раза меньше основного. Формат упал до 49% и 45%: модель переобучилась и разучилась отвечать на вопрос. При этом у версии 3 язык был 94,5%, лучший из всех. Одна хорошая мерка при плохой другой ничего не доказывает. Честная оговорка: у этих версий была и выше скорость обучения, так что вклад размера набора отдельно от нее мы не измеряли.
Урок 2. Модели нужен маркер конца ответа
Версии 1 и 4 зацикливались в 12% и 14% ответов. Причина оказалась не в модели: ни разметка примеров, ни программа опроса не знали, где кончается ответ. Модель была обязана говорить до предела длины и повторяла последнюю фразу. Мы добавили в каждый пример маркер конца, а опрос стал на нем останавливаться. Версия 5 на тех же примерах с маркером конца, с тем же числом шагов и той же скоростью, что четвертая, дала 0%. Длинный прогон шестой версии тоже дал 0%. Независимый пересчет нашел у версии 5 один дословный повтор из 200 ответов, у версии 6 ни одного.
Урок 3. Проверьте потолок самой мерки
По прежней мерке языка порог 85% взяли только версии 3 и 5, а версия 6 нет. Разбор показал, что виновата мерка: в 33 эталонных ответах из 200 есть адреса сайтов, номера статей arXiv, заголовки таблиц CSV и английские фамилии. Сами эталоны набирали только 0,835, ниже порога. На 167 заданиях, где мерка осмысленна, шестая версия дает 0,940, пятая 0,958. Прежде чем винить модель, прогоните через мерку эталонные ответы.
Урок 4. Падающие потери еще не успех
Потери на обучении падают почти всегда, и само по себе это не значит, что модель стала отвечать лучше: проверять надо ответы на отложенных заданиях. Сравнивать потери по последнему пакету тоже нельзя: у шестой версии он показал 2,5139 против 1,8055 у пятой при разбросе от 0,135 до 4,039. Среднее по последним 100 шагам дало обратную картину: 1,84 у шестой против 2,18 у пятой.
Урок 5. «Совпало с эталоном» надо определить точно
Мягкий счет «эталон входит в ответ» завышает результат: длинный ответ с куском выдержки засчитывается как верный. Строгий счет дал у версии 6 43,0% точных ответов, у версии 5 21,5%. Независимый пересчет с приведением регистра и пробелов дал 0,486 и 0,293. Направление одно, величины разные: числа из разных отчетов без одинакового определения сравнивать нельзя.
Итог: выбрана шестая версия. По прежней мерке все три критерия закрыла только пятая. После исправления мерки язык берут обе, а по точным ответам и верным отказам шестая лучше. До идеала далеко: там, где ответа в выдержке нет, версия 6 правильно отказывается в 35% случаев, а на отвечаемые вопросы ошибочно отказывается в 12,9%.
Как проверить результат дообучения
- Запишите критерии успеха и способ их измерить до обучения. Так советуют и OpenAI, и Anthropic: сначала замер исходной модели, потом изменения.
- Отложите проверочную часть данных. OpenAI называет ее контрольной группой и просит, чтобы по разнообразию она не отличалась от обучающей. Google добавляет, что данные должны быть похожи на то, что модель встретит в работе.
- Уберите проверочные тексты из обучающих. Иначе качество будет завышено.
- Следите за переобучением. По описанию OpenAI, модель может сначала улучшаться, а потом начать запоминать набор вместо обобщения. Для этого OpenAI сохраняет промежуточные точки обучения.
- Прежде чем добавлять данные, посмотрите, где именно модель ошибается.
- Смотрите несколько мерок сразу и проверьте потолок каждой на эталонах.
- Не доверяйте одному общему бенчмарку. Авторы QLoRA пишут, что популярные бенчмарки чат-ботов не позволяют точно оценить их уровень.
Как это связано с Сибирь.ИИ
Сибирь.ИИ строит русскоязычные языковые модели с нуля: сторонних весов в программе нет, и путей загрузки чужих весов она не содержит. Наибольшая обученная ею модель имеет 1 млрд параметров. Качество измеряется на замороженных наборах в битах на байт, наборы, словари и контрольные точки хранятся у пользователя. Подробности в документации.
Дообучения и LoRA в описании функций программы нет. Опыт выше получен нашими исследовательскими скриптами на модели собственного обучения, и мы делимся им как наблюдениями, а не как функцией продукта.
Дообучение на заказ мы не делаем: ООО «ФИИ» не принимает заказы на разработку по заданию третьих лиц и работает по лицензии на собственные продукты.
Другие разборы
- ИИ-агент: что это такое простыми словами
- Токены в нейросети и сколько их в русском тексте
- RAG: поиск по базе знаний
- MCP-сервер: что это такое
- Промпт для нейросети: как написать хороший
- Локальная нейросеть: как запустить модель у себя
- Речевая аналитика: как работает анализ звонков
- GEO-оптимизация сайта
Источники
Страницы открыты 13 октября 2026 года.
- Hu и соавторы, LoRA: Low-Rank Adaptation of Large Language Models (2021)
- Dettmers и соавторы, QLoRA: Efficient Finetuning of Quantized LLMs (2023)
- Lewis и соавторы, Retrieval-Augmented Generation (2020)
- Hugging Face: PEFT
- Hugging Face PEFT: LoRA
- OpenAI: Model optimization
- OpenAI: Supervised fine-tuning
- Anthropic: Prompt engineering overview
- Google Cloud: настройка моделей Gemini
- Google Machine Learning Crash Course: Fine-tuning, distillation, and prompt engineering
Частые вопросы
Что такое fine-tuning простыми словами
Это дообучение готовой языковой модели на примерах конкретной задачи. Модель остается того же размера, но лучше справляется с этой задачей.
Чем дообучение отличается от RAG и промпта
Промпт и RAG не меняют модель: промпт задает инструкцию, а RAG подставляет в запрос найденные фрагменты документов. Дообучение меняет веса модели. Знания в RAG обновляются заменой базы документов, без нового обучения. Дообучение полезно для стабильного формата ответа.
Что такое LoRA в нейросетях
Способ дообучения, при котором исходные веса заморожены, а обучаются две небольшие добавочные матрицы в каждом слое. На GPT-3 175B это сократило число обучаемых параметров в 10 000 раз. LoRA применяют и для языковых моделей, и для генерации картинок.
Сколько примеров нужно для дообучения
Google для Gemini ориентирует на 100 примеров и больше, в учебном курсе Google говорится о нескольких сотнях или тысячах. У OpenAI формальный минимум файла 10 строк. В нашем опыте узкий набор из 3 225 примеров сломал формат ответов, а 28 318 примеров дали формат 100%.
Что такое переобучение нейросети
Это когда модель запоминает обучающий набор вместо того, чтобы обобщать. Снаружи это выглядит так: на обучении все лучше, а на новых вопросах хуже. В нашем опыте маленький набор привел к тому, что модель разучилась отвечать на вопрос в нужном формате.