Кастомизация Llama под свой бизнес: LoRA fine-tuning без боли
Когда стандартного RAG не хватает: как дообучить open-source модель на ваших данных. Метод LoRA, требования к данным и железу, реальные результаты по точности.
В большинстве корпоративных задач RAG (Retrieval-Augmented Generation) даёт точность 90-95% — модель отвечает по документам, найденным в векторной базе. Но в специфичных доменах (узкоспециальная медицина, нестандартная юриспруденция, технический жаргон отрасли) RAG упирается в потолок: модель находит правильный чанк, но интерпретирует его неточно из-за непонимания доменной лексики.
Решение — fine-tuning базовой модели на ваших данных. В 2026 году это делается через LoRA (Low-Rank Adaptation): не переобучается вся модель, а добавляются небольшие «адаптеры» в нужные слои. Стоит дешевле, делается быстрее, обновления базовой модели не ломают вашу работу.
Чем fine-tuning отличается от RAG
RAG: модель остаётся базовой, в момент запроса ей подаются релевантные документы как контекст.
- Плюсы: данные не «запекаются» в модель — обновляются мгновенно через переиндексацию
- Минусы: модель не «понимает» доменную лексику, иногда формулирует ответы неточно
Fine-tuning: модель дообучается на ваших примерах «вопрос-ответ» и переписывается с учётом ваших данных.
- Плюсы: модель становится экспертом в вашем домене, лучше использует терминологию
- Минусы: дольше готовится, при обновлении базовой модели нужно переучивать (LoRA это упрощает)
Гибрид (стандарт 2026): fine-tuned модель + RAG. Fine-tuning даёт понимание языка, RAG — конкретные факты. Самая мощная связка.
Когда нужен fine-tuning
Не нужен если:
- RAG даёт точность 90%+ на ваших задачах
- Вы только начинаете работать с AI и хочется быстрого старта
- Команда меньше 50 человек
Нужен если:
- Узкоспециализированный домен (узкие медицинские специальности, патентное право, специфические технические области)
- AI-ассистент для customer-facing работы где стиль важен
- Большие команды с регулярной нагрузкой и измеримыми потерями от 5-10% точности
- RAG упёрся в плато при качественных данных и хорошем эмбеддере
LoRA в двух предложениях
LoRA — Low-Rank Adaptation. Вместо обновления всех весов модели (которых десятки миллиардов), мы добавляем «адаптерные» слои — пары матриц низкого ранга (rank=8-32 обычно), которые корректируют выходы существующих слоёв. Обучаются эти адаптеры быстро (часы вместо дней), занимают мало места (10-100 MB вместо десятков GB), и могут активироваться/деактивироваться без перезагрузки модели.
Для практики: LoRA-fine-tuning Llama 3.3 70B возможен на одном RTX 4090 / DGX Spark за 4-8 часов на хорошо подготовленном датасете.
Что нужно для fine-tuning
1. Размеченные данные
Минимум 500-1000 пар «запрос — идеальный ответ» из вашего домена.
Хорошие источники данных:
- Архив переписки специалистов с клиентами (если разрешено по compliance)
- База FAQ с экспертно-проверенными ответами
- Записи разрешённых тренингов и обучений
- Внутренние мануалы с примерами решения задач
Плохие источники:
- Случайные сэмплы из интернета
- Противоречивые ответы разных экспертов
- Мало или слишком кратко (1-2 предложения каждый)
2. Качество > количество
500 высококачественных пар лучше чем 5000 средних. Выбросы и дубликаты ухудшают результат.
Чек-лист качества:
- Запрос реалистичный (как в реальной работе, а не «что такое Х» учебнички)
- Ответ полный, структурированный, с обоснованием
- Стиль соответствует тому что вы хотите от модели
- Нет противоречий между похожими парами
3. Железо
Для LoRA-fine-tuning Llama 3.3 70B:
- 1x A100/H100 80GB или 1x DGX Spark — оптимум
- 1x RTX 4090 (с QLoRA — quantized LoRA) — впритык, медленнее но возможно
- Не подходит: GPU с <24 GB VRAM
4. Время
- Подготовка датасета (самое долгое): 1-3 недели работы эксперта на разметку
- Обучение модели: 4-12 часов
- Тестирование и итерации: 1-2 недели
Полный цикл: 4-6 недель от старта до production.
Pipeline fine-tuning’а
Шаг 1: сбор сырых данных
Из всех источников собирается raw-датасет — пары «запрос-ответ» с метаданными (автор, дата, оценка качества).
Шаг 2: фильтрация
Из raw-датасета убираются:
- Дубликаты
- Слишком короткие/длинные ответы
- Низкокачественные пары
- Противоречивые ответы (если есть несколько ответов на одинаковый запрос — оставляем лучший)
Шаг 3: форматирование
Каждая пара приводится к формату для обучения. Для chat-моделей (Llama 3.3, Qwen) это:
[INST] {запрос} [/INST]
{ответ}
С system-prompt’ом который определяет роль модели:
[INST] <<SYS>>
Ты эксперт-юрист с 15 годами опыта. Отвечай чётко, со ссылками на нормы права.
<</SYS>>
{запрос} [/INST]
{ответ}
Шаг 4: разделение
Датасет делится на train (90%) и validation (10%). Validation используется чтобы отслеживать переобучение.
Шаг 5: обучение
Запуск LoRA-fine-tuning. Стандартные гиперпараметры:
- Rank: 16
- Alpha: 32
- Learning rate: 2e-4
- Epochs: 3-5
- Batch size: 4 (с gradient accumulation)
- Target modules: q_proj, v_proj, k_proj, o_proj (attention слои)
Через 4-12 часов получаем готовый LoRA-адаптер размером 50-200 MB.
Шаг 6: оценка
Тест-сет из 50-100 пар не из train-датасета. Сравнение качества:
- Базовая модель (без fine-tuning)
- Fine-tuned модель (с LoRA)
Метрики:
- Accuracy на конкретных вопросах
- Quality по экспертной оценке (5-балльная шкала)
- Стилистическое соответствие
Шаг 7: deploy
LoRA-адаптер подгружается к базовой модели в vLLM/TGI. Активация при запросе к domain-specific агенту:
agent_doctor: использует Llama 3.3 + lora_medical_v3
agent_lawyer: использует Llama 3.3 + lora_legal_v2
agent_general: использует базовую Llama 3.3 без LoRA
Можно держать несколько LoRA-адаптеров одновременно — каждый агент использует свой.
Реальные результаты
Кейс 1: юридическая фирма (договорная практика)
- База: 1500 пар «запрос юриста — ответ старшего партнёра»
- Базовая Llama 3.3 70B accuracy: 78%
- Fine-tuned + RAG accuracy: 92%
- Прирост: +14 процентных пункта
Кейс 2: медицинская диагностика (один профильный центр)
- База: 800 пар «симптомокомплекс — дифдиагностика»
- Базовая Qwen 3 accuracy: 71%
- Fine-tuned + RAG accuracy: 89%
- Прирост: +18 пунктов
Кейс 3: customer support узкого SaaS-продукта
- База: 600 пар «вопрос пользователя — ответ эксперта поддержки»
- Базовая Llama 3.3 70B accuracy: 84%
- Fine-tuned + RAG accuracy: 94%
- Прирост: +10 пунктов
В среднем fine-tuning даёт +10-18 пунктов точности на доменных задачах.
Типовые грабли
1. Переобучение
LoRA с слишком большим rank или слишком много epochs учит модель повторять датасет наизусть. На новых вопросах ответы хуже.
Решение: валидационный сет, early stopping, rank не больше 32.
2. Catastrophic forgetting
Fine-tuned модель ухудшается на общих задачах. Например, на вопросах не из домена начинает галлюцинировать.
Решение: mix датасета — 70% domain-specific, 30% общих задач из исходного training set’а модели (open-source примеры).
3. Перенос стилистики
Если в обучающих ответах есть «наш канцелярский язык» — модель будет так отвечать всегда, даже на неподходящие вопросы.
Решение: разнообразие стилей в датасете, явное указание стиля в system-prompt.
4. Compliance leak
Модель «запоминает» конкретные имена клиентов, номера договоров, личные данные из training set. И может выдать их в ответе на не связанный запрос.
Решение: обезличивание датасета перед обучением. Замена ФИО на [CLIENT_NAME], номеров договоров на [CONTRACT_ID].
Сколько стоит fine-tuning модели под бизнес?
| Тип проекта | Срок | Цена (включая разметку датасета) |
|---|---|---|
| Простой fine-tune (1 LoRA, 1000 пар) | 4-5 недель | 600-1.2 млн ₽ |
| Комплексный (3-5 LoRA для разных агентов) | 8-12 недель | 1.5-3 млн ₽ |
| С привлечением экспертов на разметку | 12-16 недель | 2-5 млн ₽ |
Для большинства SMB fine-tuning не оправдан — RAG достаточен. Для больших команд (100+) с измеримыми потерями от ошибок — окупается.
LoRA vs полный fine-tuning
| Параметр | LoRA | Полный |
|---|---|---|
| Время | 4-12 часов | 1-3 дня |
| Железо | 1 GPU | 4-8 GPU |
| Размер адаптера | 50-200 MB | 70 GB+ (полная копия модели) |
| Качество | 90-95% от полного | 100% |
| Совместимость с обновлениями базовой модели | Высокая | Низкая (заново обучать) |
В 99% корпоративных кейсов LoRA достаточно. Полный fine-tuning только для исследовательских проектов или ML-компаний.
Альтернативы fine-tuning’у
Перед инвестицией в fine-tuning попробуйте:
- Улучшение RAG — лучший эмбеддер, реранкер, больше документов в базе. Часто даёт +5-10% точности.
- Better prompting — детальный system-prompt с примерами few-shot. Иногда хватает.
- Multi-step reasoning — chain-of-thought, agent с инструментами. На сложных задачах сильнее fine-tuning.
- Качественные данные для RAG — структурированные документы лучше беспорядочной свалки.
Если все эти пути исчерпаны и точность всё ещё ниже целевой — тогда fine-tuning.
Итог
Fine-tuning через LoRA — мощный, но не первый инструмент. Сначала RAG, prompt engineering, multi-step reasoning. Если упёрлись в плато 80-85% и дальше нужно — тогда fine-tuning.
Окупается на больших командах с критичной точностью в специфических доменах. На малых командах с обычными задачами — overkill.
В AGmind мы помогаем определить нужен ли fine-tuning на этапе аудита и при необходимости включаем его в общий проект внедрения.
Если интересно проверить эффект fine-tuning’а на ваших задачах — пилот за 2-3 недели от 100 000 ₽ может включать сравнение базовой модели и fine-tuned версии side-by-side.
Связанные тексты: сравнение open-source моделей, embedding для русского, архитектура AI-помощника.