Дообучение языковых моделей (fine-tuning LLM) на ваших данных

Дообучение языковой модели меняет её поведение: формат ответа, тон, разметку, разбор узкого типа текстов. Знания о ваших документах оно в модель надёжно не кладёт: для этого есть поиск по базе (RAG). Поэтому мы начинаем не с обучения, а с проверки: что не получается у модели с хорошим промптом и поиском. Если разрыв остаётся, собираем набор данных, дообучаем открытую модель на ваших серверах и сравниваем её с исходной на выборке заказчика, а не на чужих тестах.

Обследование — от 200 000 ₽, 2–3 неделиСначала промпт и RAG, дообучение только если они не справилисьМодель и набор данных остаются у вас, обучение идёт в вашем контуре

С чем приходят

Когда к нам приходят с запросом на дообучение

Модель отвечает не в том формате

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

Узкая предметная область и свой язык

Внутренние сокращения, коды, жаргон отрасли или нестандартные документы, в которых универсальная модель путается. Сначала проверяем, не решает ли это словарь и примеры в запросе.

Нужна маленькая модель вместо большой

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

Что менять

Пять способов изменить поведение модели: что даёт каждый и сколько стоит ошибка

Дообучение с адаптерами — третья ступень из пяти, и выше по таблице почти всегда дешевле. Сравнение с RAG на примерах — в статье «RAG или дообучение LLM», порядок решения — в статье «Дообучение языковой модели: когда нужно».

Способ
Что меняет
Когда выбираем
Цена ошибки
СпособПромпт и примерыинструкция в запросе
Что меняетИнструкцию, роль, формат, несколько образцов ответа; модель остаётся прежней
Когда выбираемПервая попытка всегда. Если формат держится на эталонной выборке, на этом заканчиваем
Цена ошибкиНизкая: правка за минуты, откат мгновенный
СпособRAGпоиск перед ответом
Что меняетЗнания: регламенты, договоры, инструкции, подбираются при каждом вопросе и показываются со ссылкой на источник
Когда выбираемОтвет зависит от документов, которые меняются, и у пользователей разные права на них
Цена ошибкиСредняя: нужен индекс и поддержка, зато обновление знаний не требует обучения
СпособДообучение с адаптерамиLoRA и подобные методы
Что меняетПоведение: стиль, формат, разбор узкого типа текстов. Обучается небольшая добавка к весам, основная модель не трогается
Когда выбираемПромпт и RAG не дали нужного качества на эталоне, а размеченных примеров достаточно
Цена ошибкиСредняя: нужны данные, видеопамять и повторный прогон при каждой смене базовой модели
СпособПолное дообучениеизменение всех весов
Что меняетРедко: большая и очень специфичная задача, адаптеры на ней упёрлись, и есть и данные, и железо
Когда выбираемТолько после того, как адаптеры не справились на той же выборке
Цена ошибкиВысокая: много железа, риск потерять общие способности модели
СпособОбучение модели с нуляпредобучение
Что меняетМы не делаем: нужны корпуса текстов, кластеры и команда, которой в одном проекте нет
Когда выбираемНе рассматриваем; при необходимости берём готовую открытую модель
Цена ошибкиНе применимо: выходит за рамки наших услуг
Разбор

Когда дообучение оправдано, а когда это лишняя работа

Решение принимается по четырём проверкам на эталонной выборке, а не по ощущению, что «модель должна знать наши документы».

Первая проверка: что именно не получается

Берём пятьдесят-сто реальных запросов вашей задачи, прогоняем их через исходную модель с хорошим промптом и считаем долю верных ответов. Ошибки делим на два вида. Не знает факта (срок по договору, артикул) — проблема знаний, её решает поиск. Знает, но отвечает не так (формат, тон, пропущенное поле) — проблема поведения, и дообучение возможно.

Вторая проверка: помогает ли поиск

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

Третья проверка: хватает ли данных и можно ли их использовать

Нужны пары «вход — желаемый ответ», проверенные человеком. Для строгого формата хватает сотен, для сложных текстов нужно больше; число называем после пробного прогона. Архив переписки содержит персональные данные и коммерческую тайну: что обезличивается, что исключается и кто утверждает набор, решается до обучения. Персональные данные граждан России обычно должны храниться на серверах в России.

Четвёртая проверка: что вы будете делать с моделью дальше

Дообученная модель привязана к базовой. Когда выходит новая версия базовой модели или вы меняете её на другую, адаптер придётся обучать заново. Это работа, и она закладывается в сопровождение. Если у вас нет человека, который будет запускать повторное обучение и проверку, лучше остаться на промпте и поиске.

Если после проверок дообучение остаётся разумным, описываем его в документе обследования с вилкой бюджета. Если нет, так и пишем: обследование стоит дешевле обучения, которое ничего не улучшило. Как мы оцениваем качество вообще — на странице «Разработка ИИ на заказ».

Данные

Набор данных для дообучения: какой нужен под каждую задачу

Заготовка для разбора. На ваших данных строки будут другими, вопросы остаются теми же.

Задача
Из чего собирается набор
Что исключаем
Как проверяем качество набора
ЗадачаСтрогий формат ответапары «вход — ответ»
Из чего собирается наборРеальные запросы и ответы, исправленные экспертом до нужного формата
Что исключаемОтветы, где эксперт сам был не уверен, и дубли одного и того же запроса
Как проверяем качество набораДвое независимых проверяющих размечают долю примеров
ЗадачаКлассификация и разметка текстовметки по заданному списку
Из чего собирается наборОбращения, письма, заявки с проставленной категорией
Что исключаемПримеры с неясной категорией и классы, у которых почти нет примеров
Как проверяем качество набораСмотрим матрицу ошибок на отложенной части и перераспределяем спорные случаи
ЗадачаСтиль и тон ответовобразцы текстов
Из чего собирается наборУтверждённые письма, ответы поддержки, шаблоны, написанные опытными сотрудниками
Что исключаемПлохие ответы, тексты с персональными данными и случайные оговорки
Как проверяем качество набораСлепое сравнение: проверяющие не знают, какой ответ от какой модели
ЗадачаИзвлечение полей из документовдокумент и таблица полей
Из чего собирается наборСканы или тексты документов с вручную заполненными полями
Что исключаемДокументы, где разметка расходится с исходным текстом
Как проверяем качество набораПоля сверяются по документу, доля верных считается по каждому полю отдельно
Как проверяем

Как дообученная модель сравнивается с исходной

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

Выборка заказчика делится заранее

Из размеченных примеров мы сразу выделяем отложенную часть и не показываем её модели при обучении. Всё сравнение идёт на ней. Если примеры с обучающей части попадут в проверку, результат окажется завышенным: модель просто запомнила ответы.

Сравниваются три варианта, а не два

  • Исходная модель с простым промптом — нижняя граница.
  • Исходная модель с лучшим промптом, примерами и поиском — честный конкурент дообучению. Если дообучение не обгоняет этот вариант, оно не нужно.
  • Дообученная модель — с тем же промптом и тем же поиском, чтобы разница объяснялась обучением, а не чем-то другим.

Что проверяем сверх основной метрики

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

Каждый запуск фиксируется: версия базовой модели, набор данных, настройки и результат. Прежняя версия остаётся рабочей, откат делается переключением. Подробнее о приложении вокруг модели — на странице «Разработка LLM-приложений».

Риски

Что может пойти не так после дообучения

Модель запомнила данные

Обученная на закрытых текстах модель может воспроизвести фрагмент по подсказке. Поэтому в набор не включаем то, что нельзя показывать всем пользователям модели, а персональные данные обезличиваем до обучения.

Привязка к базовой модели и устаревание

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

Лицензия весов

Открытые модели распространяются на разных условиях: где-то есть ограничения по назначению или по масштабу применения. Лицензию читаем до выбора модели, юридическую оценку делает юрист заказчика.

Что делаем

Из чего состоит работа и сколько она стоит

Цены совпадают со страницей «Тарифы». Цена называется по итогам обследования, остановиться можно после любой ступени, сделанное остаётся у вас по акту.

Обследование: задача, данные, проверка без обучения

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

200 000 ₽ · 2–3 недели

Обследование: несколько задач или источников данных

Несколько типов запросов, разные источники и права на данные, схема подготовки набора и размещения обучения.

350 000 ₽ · 3–4 недели

Лёгкий пилот: дообучение на одной задаче

Подготовка набора, обучение адаптера на открытой модели, сравнение с исходной моделью на отложенной выборке, протокол испытаний.

150 000–400 000 ₽ · 2–8 недель

Тяжёлый пилот: несколько задач или интеграция

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

400 000–1 200 000 ₽ · 2–3 месяца

Вывод в эксплуатацию

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

от 1 500 000 ₽ этапами по 300 000–700 000 ₽ · от 3 месяцев

Сопровождение

Проверка на эталоне при смене версий, повторное обучение, разбор инцидентов, ответы на обращения. Сверх пакета — 5 000 ₽ в час.

20 000 / 60 000 / 120 000 ₽ в месяц
Процесс

Как идёт работа

2–3 недели — Обследование: проверка без обучения

Собираем реальные запросы, прогоняем исходную модель с хорошим промптом и поиском, считаем долю верных ответов. Решаем, обучать ли вообще.

1–3 недели — Подготовка набора данных

Отбираем примеры, обезличиваем, размечаем, делим на обучающую и отложенную части. Состав набора и права на него утверждает владелец данных.

1–2 недели — Первое обучение

Подбираем базовую модель и настройки на небольшом запуске, разбираем ошибки на отложенной выборке.

2–6 недель — Итерации и сравнение

Правим набор и настройки, сравниваем три варианта, проверяем общие способности. Останавливаемся, когда следующий запуск не даёт заметного прироста.

От 3 месяцев — Эксплуатация

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

Дальше — повторное обучение или остановка

При смене базовой модели или появлении новых данных повторяем цикл. Остановиться можно в любой момент.

Цена

Что двигает цену внутри вилки

Состояние данных

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

Размер модели и железо

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

Число задач и классов

Одна задача с одним форматом ответа и десять типов документов с разными полями отличаются по объёму разметки и проверки в разы.

Требования контура

Закрытый периметр без доступа в интернет, отдельный сервер обучения и согласование каждой загрузки добавляют работы и на подготовке, и на приёмке.

Контроль

Что остаётся у вас и чего мы не делаем

Остаётся у вас

  • Адаптер или дообученная модель, набор данных и скрипты обучения.
  • Исходный код в вашем репозитории с первого коммита.
  • Протокол сравнения на отложенной выборке и таблица версий.
  • Инструкция по повторному обучению и откату на прежнюю версию.
  • Право остановиться после любой ступени: сделанное остаётся у вас по акту.

Мы этого не делаем

  • Не обучаем модели с нуля: берём открытую модель и дообучаем.
  • Не обещаем рост качества заранее: результат показывает сравнение на вашей выборке.
  • Не обучаем на закрытых данных без решения их владельца и службы безопасности.
  • Не предоставляем видеокарты и хостинг.
  • Не берём работы дешевле 150 000 ₽, не дежурим круглосуточно и не имеем лицензии ФСТЭК.
Граница

Дообучение, RAG, ИИ-приложение или ML-модель: где проходит граница

Если вам нужен ассистент, который отвечает по вашим документам со ссылкой на источник, это RAG-система, а не дообучение. Если нужно приложение вокруг модели с правами, лимитами и журналом, это разработка LLM-приложения, и дообучение в нём может быть одним из компонентов. Если нужно подключить уже готовую внешнюю модель к процессу, смотрите интеграцию LLM в бизнес-процессы.

Если задача сводится к прогнозу или классификации по таблицам, а не по тексту, то языковая модель не нужна, и мы описываем это на странице «Разработка модели машинного обучения». Как развернуть модель на своём сервере и посчитать железо, написано на странице «Развернуть LLM на своём сервере».

Инструменты

На чём собираем

Обучение и модели
  • Python, PyTorch, библиотеки Hugging Face (Transformers, PEFT, TRL)
  • Открытые модели с подходящей лицензией; выбор — на обследовании
  • Адаптеры LoRA, при необходимости с квантованием
  • Фиксация версий данных, настроек и результатов обучения
Размещение и проверка
  • Сервер инференса в вашем контуре (vLLM или аналог)
  • Docker, Nginx, GitLab CI
  • Эталонная выборка и скрипт сравнения версий
  • Журнал запросов без текстов и мониторинг качества
Материалы

Материалы по теме

Статья

Дообучение языковой модели: когда нужно, а когда хватает RAG и промпта

Порядок решения: что проверить на выборке до обучения, какие данные нужны и по каким признакам понять, что дообучение не поможет.

  • Что проверить
  • Какие данные
  • Когда не нужно
Читать →
Статья

RAG или дообучение LLM: что выбрать для корпоративной задачи

Три способа работать со своими знаниями, правила выбора, права доступа и обновление знаний.

  • Знания или поведение
  • Права доступа
  • Дерево решений
Читать →
Статья

Сколько видеопамяти нужно для LLM

Как оценить память под модель и под обучение, и что считать до закупки видеокарт.

  • Размер модели
  • Квантование
  • Контекст
Читать →
Заявка

Проверим, нужно ли вам дообучение

Сорок минут созвона: что должна делать модель, что она делает сейчас и какие данные у вас есть. По итогам скажем, хватит ли промпта и поиска, и в какую вилку укладывается обучение.

Спасибо, заявка отправлена. Ответим в течение рабочего дня.

Не удалось отправить. Напишите в телеграм или позвоните.

Вопросы

Частые вопросы: дообучение языковых моделей

Сколько стоит дообучение языковой модели?

Начинаем с обследования: 200 000 ₽ за одну задачу, 350 000 ₽ за несколько задач или источников. Лёгкий пилот с обучением адаптера на одной задаче стоит 150 000–400 000 ₽ за 2–8 недель, тяжёлый — 400 000–1 200 000 ₽ за 2–3 месяца. Вывод в эксплуатацию — от 1 500 000 ₽ этапами по 300 000–700 000 ₽.

Чем дообучение отличается от RAG?

RAG подбирает нужные фрагменты документов при каждом вопросе и показывает источник; знания можно обновить, не трогая модель, а права доступа проверяются при поиске. Дообучение меняет поведение самой модели: формат, тон, разбор узкого типа текстов. Факты и закрытые документы в веса мы не кладём, для них нужен поиск.

Сколько примеров нужно для дообучения?

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

Можно ли обучать на закрытых документах и переписке с клиентами?

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

Какую модель вы дообучаете?

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

Как вы понимаете, что дообучение помогло?

Сравниваем три варианта на отложенной выборке, которую модель не видела: исходную модель с простым промптом, её же с лучшим промптом и поиском и дообученную. Дообучение считается удачным, если оно лучше второго варианта и не ухудшило ответы вне задачи. Пороги записываем до начала обучения.

Что будет, если выйдет новая версия базовой модели?

Адаптер привязан к конкретной версии базовой модели, поэтому при смене базы обучение повторяется на том же наборе, а результат сравнивается с прежним. Инструкцию по повторному обучению мы передаём, и этот прогон входит в сопровождение или оплачивается по ставке 5 000 ₽ в час сверх пакета.

Что остаётся у нас после работы?

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

Вы работаете только в Ростове-на-Дону?

Мы в Ростове-на-Дону, работаем с заказчиками по всей России: удалённо и в вашем контуре. Доступ к системам и обследование согласуем на старте с вашей службой безопасности.