Дообучение языковой модели Mistral: LoRA, QLoRA, La Plateforme

Базовая модель не знает вашей терминологии и отвечает мимо регламентов. Мы дообучаем Mistral под ваш домен — режимы LoRA и QLoRA, внедрение под ключ. Сокращает ручную обработку обращений и повышает точность ответов.

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1530
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1354
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1070
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1328
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    772
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1074

Почему базовая модель не решает задачу на ваших данных

Базовая модель обучена на широком срезе интернета и уверенно рассуждает о погоде или кулинарии, но ваша предметная область в этом срезе представлена фрагментарно. Она не знает вашу номенклатуру, внутренние регламенты, историю обращений и принятые у вас сокращения. На демо это незаметно: вопросы задают общие, ответы звучат складно. Проблема проявляется на реальных данных — там, где ответ должен опираться на конкретный документ, а не на усреднённое представление о теме. Именно на этом стыке и ломается внедрение без fine-tuning Mistral.

Первое, что вылезает, — общие фразы вместо фактов. Модель отвечает «это зависит от условий договора» там, где у вас есть однозначная формулировка в регламенте. Она не ошибается формально, но и не приносит пользы: сотрудник получает пересказ темы вместо ответа по существу. Второе — формат. Без дообучения языковой модели трудно удержать структуру ответа: поля, порядок блоков, обязательные оговорки, единицы измерения. Модель «плывёт» от запроса к запросу, и обвязка, которая разбирает её вывод, начинает падать на неожиданных вариантах.

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

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

Что даёт fine-tuning mistral: режимы LoRA и QLoRA

Fine-tuning Mistral через адаптеры решает главную проблему базовой модели: она отвечает «в среднем по интернету», а не в терминах вашей предметной области. LoRA замораживает исходные веса и обучает небольшие низкоранговые матрицы — число настраиваемых параметров падает на два-три порядка, поэтому обучение идёт на одной видеокарте вместо кластера, а сама адаптация занимает часы, не недели.

QLoRA добавляет к этому квантование базовых весов в 4-битный формат: требования к памяти снижаются ещё примерно втрое, и дообучение становится возможным на потребительском железе без потери качества на целевой задаче.

Где эффект измерим

На типовых сценариях — классификация обращений, извлечение сущностей из договоров, ответы по внутренней базе знаний — дообученный адаптер поднимает точность на целевом классе с 60–70% до 85–92% при том же промпте. Модель перестаёт «плыть» в формате ответа: доля валидного JSON без повторных попыток вырастает с 70% до 98%. Адаптер весит десятки мегабайт, поэтому версионируется и откатывается как обычный артефакт, а не как многогигабайтный чекпоинт.

Сравнение режимов дообучения

Вариант Когда подходит Ограничения
LoRA Есть GPU с запасом памяти, нужна максимальная точность на сложной задаче Требует больше памяти под базовые веса и оптимизатор
QLoRA Одна видеокарта, ограниченный бюджет на железо, быстрый старт Квантование даёт небольшую просадку на редких классах
Полное дообучение Меняется сама природа задачи, домен далёк от обучающего корпуса Дорого, долго, риск катастрофического забывания
Промпт-инжиниринг без обучения Задача простая, данных мало, нужен ответ за день Не тянет сложные форматы и узкую терминологию

Выбор между LoRA и QLoRA — это компромисс между запасом по качеству и доступным железом, а не «лучший/худший». Мы прогоняем оба режима на вашем датасете и показываем метрики на отложенной выборке, а не обещания. Работаем с открытыми весами через Hugging Face и стек на PyTorch — это даёт воспроизводимость и перенос адаптера в ваш контур без привязки к чужому API.

Как проходит внедрение дообученной модели: этапы работ

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

  1. Аудит данных и постановка задачи. Смотрим, что уже есть: логи обращений, переписка, база знаний, готовые пары «вопрос-ответ». Определяем, какой результат считаем успешным — точность на тестовой выборке, долю корректных отказов, формат ответа. Без этого критерия обучение превращается в угадывание.
  2. Подготовка датасета. Чистим дубли и мусор, приводим примеры к единому формату, размечаем сложные случаи. Данные делим на обучающую, валидационную и отложенную тестовую части — последняя не участвует в обучении и служит честным замером.
  3. Выбор метода дообучения. Под задачу и объём данных подбираем подход: полное дообучение, LoRA или QLoRA. Для большинства прикладных сценариев хватает адаптеров — они дают нужное качество при меньших требованиях к оборудованию.
  4. Обучение и подбор параметров. Прогоняем несколько конфигураций, следим за переобучением по валидационной выборке. Фиксируем версию данных и параметры, чтобы результат можно было воспроизвести.
  5. Валидация модели. Проверяем не только метрики, но и поведение: устойчивость к перефразировкам, отсутствие выдуманных фактов, корректные отказы на вопросах вне темы. Сравниваем с базовой моделью — дообученная должна быть лучше, а не просто другой.
  6. Передача в эксплуатацию. Разворачиваем модель в вашем контуре или у нас, настраиваем мониторинг качества и логирование запросов. Отдаём документацию: как обновлять данные, как переобучать, как откатиться на предыдущую версию.
  7. Поддержка после запуска. Собираем обратную связь из реальных запросов, доразмечаем спорные случаи и планируем следующую итерацию дообучения.

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

Чем LoRA отличается от QLoRA и что выбрать под нагрузку

LoRA обучает небольшие низкоранговые матрицы-адаптеры поверх замороженных весов базовой модели: сами веса не трогаются, обновляется лишь добавленный слой. Это снижает объём обучаемых параметров на порядки и позволяет дообучать модель на одной-двух видеокартах, не поднимая полный кластер. Классический LoRA держит базовые веса в полной точности — обычно 16 бит — и требует, чтобы они целиком помещались в память вместе с градиентами адаптеров и активациями.

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

Выбор режима адаптации упирается в требования к ресурсам и в то, насколько чувствительна задача к точности. Если ускорителей достаточно и важна скорость итераций — берут классический LoRA. Если память ограничена, а модель крупная, QLoRA даёт возможность запустить дообучение там, где полный вариант просто не влезает. На итоговом качестве при аккуратно подобранном ранге и разумной длине контекста разница чаще всего лежит в пределах погрешности, но её стоит проверять на валидационной выборке, а не принимать на веру.

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

Кейс: дообучение Mistral для службы поддержки

Дообучение запускали для службы поддержки с каталогом типовых обращений: операторы отвечали по регламенту, но базовая модель регулярно уходила в свободный пересказ, теряла обязательные поля и путала категории. Ручная правка каждого второго ответа съедала время первой линии, а доля корректных ответов по регламенту держалась около 60%.

Собрали датасет из реальных диалогов с разметкой: эталонный ответ, категория обращения, обязательные поля. Обучали адаптеры LoRA поверх базовой модели — полный fine-tuning mistral не требовался, веса не переписывались целиком, поэтому обучение шло на одной видеокарте и заняло часы, а не сутки. Отдельно зафиксировали проверочный набор из обращений, которых не было в обучении, — чтобы метрики отражали поведение на новых запросах, а не запоминание примеров.

Что изменилось в метриках

Метрика До После
Корректный ответ по регламенту ~60% ~92%
Соблюдение формата (поля, тон, структура) ~55% ~97%
Доля ответов с ручной правкой ~50% ~12%
Ответы с выдуманными условиями регулярно единичные случаи

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

Как удержали качество

Дообучение не отдаёт всё на откуп модели: ответы проходят проверку на соответствие регламенту, а спорные случаи уходят оператору. Мы заложили механизм отката — если качество на новых обращениях проседает, предыдущая версия адаптеров возвращается без переобучения.

Для обучения использовали Mistral AI — открытая архитектура позволяет держать модель на своём контуре, без передачи обращений клиентов наружу.

Совместимость, доступы и откат: что обсудить до старта

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

Что будет, если обученная модель начнёт отвечать хуже, чем базовая?

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

Что если у нас закрытый контур без выхода наружу? Обучение и инференс разворачиваются внутри вашей инфраструктуры, данные не покидают периметр. Кто получит доступ к данным? Работаем по принципу минимальных прав: доступ выдаётся только инженерам на задаче, логируется и закрывается по завершении. Что если модель уже используется в проде? Новый адаптер идёт отдельным маршрутом, перевод трафика — управляемый шаг с возможностью вернуть прежний.

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

  • конфигурации обучения и инференса с описанием параметров;
  • схему размещения модели в вашем контуре и требования к ресурсам;
  • политику доступа и разграничения прав на данные и артефакты;
  • процедуру отката с пошаговым описанием и точками возврата;
  • набор контрольных запросов и эталонных ответов для приёмки;
  • документацию по сопровождению и обновлению адаптеров.

Опишите вашу инфраструктуру и ограничения по данным — вернёмся с оценкой и планом интеграции.

Сроки внедрения дообученной модели по этапам

Сроки дообучения складываются не из одной операции, а из цепочки: подготовка данных, настройка обучения, прогон, оценка качества, выкатка. Основное время уходит не на сам прогон, а на сбор и разметку корпуса и на приёмку результата — эти этапы определяют план-график работ сильнее, чем выбор метода.

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

Мы фиксируем план-график работ после аудита, когда виден реальный объём данных, и держим промежуточные контрольные точки: на каждой заказчик видит результат и может скорректировать приоритеты. Опишите задачу — вернёмся с оценкой и планом по этапам.