Проблема: LLM не подходит под вашу задачу?
Вы обучили Llama 3.1 8B на общих данных, но она некачественно отвечает на вопросы по вашей юридической документации. Полный fine-tuning требует 80 ГБ VRAM и нескольких A100 — ресурсы есть не у всех. Parameter-Efficient Fine-Tuning (PEFT) решает эту проблему: дообучаются лишь 0.1–5% параметров, а базовая модель остаётся замороженной. Мы используем PEFT, чтобы адаптировать любую LLM (от LLaMA до Mistral) под вашу задачу — классификацию, генерацию, RAG — без дополнительных GPU.
Наш опыт в дообучении LLM — 5+ лет, сотни проектов для клиентов из FinTech и LegalTech. Гарантируем стабильную точность и оптимизацию инференса.
Какие проблемы решает PEFT?
- Нехватка GPU-памяти. Полный fine-tuning модели 7B требует ~56 ГБ VRAM с Adam. LoRA с рангом 16 сокращает до ~18 ГБ, QLoRA (4-bit) — до 9 ГБ. Одна карта A100 вместо кластера.
- Долгое обучение. Полный fine-tuning Llama 3.1 8B — 8 часов на 4×A100. LoRA r=16 — 55 минут на 1×A100. Разница в 8–10 раз.
- Ухудшение обобщающей способности. Полный fine-tuning часто вызывает катастрофическое забывание. PEFT сохраняет базовые знания, дообучая только адаптацию.
Какой метод PEFT выбрать для вашей задачи?
Выбор зависит от объёма данных, ресурсов и требований к латентности. Сводная таблица:
| Метод | Обучаемые параметры | Overhead инференса | Когда использовать |
|---|---|---|---|
| LoRA | 0.1–5% | Нет (после merge) | Генерация, классификация, любой объём данных от 500 примеров |
| QLoRA | 0.1–5% | Нет (после merge) | То же, но при дефиците VRAM (4-bit база) |
| DoRA | 0.1–5% | Нет (после merge) | Улучшенная LoRA с весовой декомпозицией |
| AdaLoRA | 0.1–3% | Нет (после merge) | Автоматический подбор ранга, неизвестная важность слоёв |
| Prefix Tuning | <0.1% | Да (виртуальные токены) | Мало данных (50–200 примеров), NLU-задачи |
| Prompt Tuning | <0.01% | Да | Минимум данных, промпт-инжиниринг |
| IA³ | <0.01% | Нет (масштабирование) | Few-shot адаптация при экстремальном дефиците данных |
Отметим: как отмечено в официальной документации, PEFT позволяет сократить ресурсы на 90% (Hugging Face PEFT docs).
LoRA: золотой стандарт PEFT
LoRA (Low-Rank Adaptation) добавляет в слои attention матрицы низкого ранга (r=8–16). После обучения они сливаются с базовыми весами — задержка инференса не увеличивается. Пример конфигурации:
from peft import LoraConfig, get_peft_model config = LoraConfig( r=16, lora_alpha=32, target_modules=["q_proj", "v_proj"], task_type="CAUSAL_LM", ) model = get_peft_model(model, config) На задаче классификации тональности финансовых новостей (1200 примеров, модель Llama 3.1 8B) LoRA r=16 достигла accuracy 0.91 против 0.74 у 5-shot без дообучения. Полный fine-tuning дал 0.93, но занял в 8 раз больше времени.
AdaLoRA: адаптивный ранг для сложных случаев
AdaLoRA автоматически распределяет бюджет параметров между слоями, выделяя больший ранг более важным. Полезна, когда неизвестно, какие слои критичны для задачи.
from peft import AdaLoraConfig, get_peft_model config = AdaLoraConfig( init_r=12, target_r=8, beta1=0.85, beta2=0.85, deltaT=10, lora_alpha=32, target_modules=["q_proj", "v_proj", "k_proj", "o_proj"], task_type="CAUSAL_LM", ) model = get_peft_model(model, config) Prefix Tuning и IA³: когда данных очень мало
Prefix Tuning добавляет обучаемые виртуальные токены (20–100), IA³ — масштабирующие векторы. Оба метода требуют <0.1% параметров и работают от 50–200 примеров. LoRA при 500+ примерах превосходит их в 2–3 раза по точности.
Пример кода для Prefix Tuning
from peft import PrefixTuningConfig config = PrefixTuningConfig( task_type="CAUSAL_LM", num_virtual_tokens=20, prefix_projection=True, ) model = get_peft_model(model, config) Как мы дообучали Llama 3.1 для анализа тональности финансовых новостей?
Задача: классификация тональности (Positive/Negative/Neutral) по 1200 текстам. Базовая модель — Llama 3.1 8B Instruct.
| Метод | Параметры | VRAM (A100) | Accuracy | Время обучения |
|---|---|---|---|---|
| 5-shot (без FT) | 0 | 16 GB | 0.74 | — |
| IA³ | ~0.01% | 16 GB | 0.81 | 15 мин |
| Prefix Tuning (20 tokens) | ~0.05% | 16 GB | 0.83 | 25 мин |
| LoRA r=8 | ~0.2% | 18 GB | 0.89 | 45 мин |
| LoRA r=16 | ~0.4% | 19 GB | 0.91 | 55 мин |
| QLoRA r=16 (4-bit base) | ~0.4% | 9 GB | 0.90 | 70 мин |
| Full FT | 100% | 4×A100 | 0.93 | 8 ч |
Итог: LoRA r=16 — оптимальный выбор по соотношению точность/ресурсы. QLoRA даёт сопоставимую точность при вдвое меньшем VRAM.
Управление несколькими адаптерами через PEFT
Библиотека PEFT позволяет загружать и переключать адаптеры в одной базовой модели:
from peft import PeftModel base_model = AutoModelForCausalLM.from_pretrained("meta-llama/Meta-Llama-3.1-8B-Instruct") model = PeftModel.from_pretrained(base_model, "./adapter-legal", adapter_name="legal") model.load_adapter("./adapter-finance", adapter_name="finance") model.load_adapter("./adapter-medical", adapter_name="medical") model.set_adapter("legal") output_legal = model.generate(...) Это архитектурный паттерн «один базовый инстанс — несколько специализаций», снижающий расход памяти в 5 раз.
Что входит в работу
- Анализ вашей задачи и подбор метода PEFT.
- Подготовка и разметка датасета (при необходимости).
- Обучение с мониторингом метрик (loss, accuracy, F1).
- Тестирование на отложенной выборке, сравнение с бейзлайном.
- Интеграция адаптера в ваш пайплайн (Hugging Face, SageMaker, Triton).
- Документация и обучение команды.
- Пост-обучение поддержка и донастройка при изменении данных.
Сроки
- Выбор метода PEFT и эксперименты: 3–7 дней.
- Подготовка данных: 2–4 недели.
- Обучение и сравнение методов: 1–2 недели.
- Итого: 3–6 недель. На этапе консультации уточним сроки под ваш проект.
Свяжитесь с нами для бесплатного анализа вашей задачи — мы подберем оптимальный метод PEFT и предложим детальный план дообучения. Закажите консультацию, чтобы получить индивидуальный план.







