Содержание
Fine-tuning LLM — это дообучение предобученной модели на своих данных. Пять главных open-source инструментов для этого в 2026:
Unsloth — самый быстрый на одном GPU. Пользовательские Triton-ядра дают ускорение в 2-5 раз и экономию VRAM до 70% против стандартного PyTorch. 67 000+ звезд на GitHub.
LLaMA-Factory — универсальный фреймворк со встроенным веб-интерфейсом и 100+ готовых шаблонов обучения. Поддерживает 100+ моделей, включая Llama 4, Qwen 3 и DeepSeek. 72 000+ звезд на GitHub.
Axolotl — production-фреймворк для multi-GPU кластеров с полной поддержкой FSDP и DeepSpeed. Работает с мультимодальными моделями (LLaMA-Vision, Qwen2-VL). 12 000+ звезд.
TRL — библиотека от HuggingFace для RLHF-тренировки: PPO, DPO, GRPO (тот самый метод, который использовал DeepSeek для R1). 18 600+ звезд.
TorchTune — нативный PyTorch-фреймворк от Meta с recipe-подходом и FSDP2. Минималистичный, но требует ручной настройки. 5 700+ звезд.
Fine-tuning — не rocket science, но выбор инструмента сильно влияет на скорость итераций. В 2024 году выбор сводился к «Unsloth быстрее, Axolotl мощнее». К середине 2026-го ландшафт изменился: DeepSeek R1 и GRPO-тренировка, мультимодальные модели, MoE-архитектуры и quantization-aware training (QAT) стали мейнстримом. Разбираем пять open-source фреймворков, которые реально используют в продакшене.
Бенчмарки по всем фреймворкам собирали на одинаковых конфигах: Llama-3.1 8B, QLoRA rank 32, 2 эпохи, длина последовательности 512 токенов, A100 40GB. Данные из открытых тестов The AI Engineer и Spheron Network.
Сравнительная таблица
Все бенчмарки — на Llama-3.1 8B QLoRA (rank 32), A100 40GB, если не указано иное.
| Фреймворк | Скорость | VRAM | Multi-GPU | Моделей | GitHub ★ |
|---|---|---|---|---|---|
| Unsloth | 3.2 ч (2-5x baseline) | ~70% меньше | Только single (OSS) | 150+ | 67 204 |
| LLaMA-Factory | 3.4 ч (с Unsloth) | Умеренная | DeepSpeed | 100+ | 72 418 |
| Axolotl | 5.8 ч (baseline) | Стандартная | FSDP, DeepSpeed, multi-node | 100+ (multimodal) | 12 080 |
| TRL | 5-6 ч | Стандартная | FSDP, DeepSpeed | Любые HF | 18 696 |
| TorchTune | 4.7 ч (compile) | Умеренная | FSDP2 native | Meta-модели | 5 776 |
Цифры — из тестов Spheron (май 2026) и The AI Engineer (май 2026). Сводные данные по Clore.ai.
1. Unsloth — король одного GPU
Unsloth — это фреймворк, который переписал стандартные GPU-ядра для attention, MLP-слоёв и RoPE-эмбеддингов на Triton. Вместо того чтобы вызывать стандартные операции PyTorch, Unsloth компилирует свои ядра, которые обходят большую часть оверхэда HuggingFace Transformers.
Результат: на одной A100 40GB Unsloth сделал QLoRA за 3.2 часа против 5.8 часов у Axolotl и 4.7 часов у TorchTune с compile — разрыв в 1.8x против ближайшего конкурента. А против базового PyTorch — до 5x быстрее. VRAM: 70B модель в QLoRA укладывается в 38 ГБ против 62 ГБ стандартного подхода.
Что нового в 2026:
GRPO-тренировка на consumer GPU. Unsloth стал первым open-source фреймворком, который запустил GRPO (тот самый метод, который DeepSeek использовал для R1) на одном RTX 4090 — всего 5.2 ГБ VRAM. Это сдвиг: раньше для reasoning-тренировки нужны были кластеры A100.
Поддержка MoE-моделей. Qwen3 30B A3B (Mixture-of-Experts) работает на 17.5 ГБ — раньше такая модель требовала 2× A100.
150+ поддерживаемых моделей: Llama 4 Scout и Maverick, Qwen 3, DeepSeek-R1, Phi-4, BAAI/bge-large-en.
Ограничение: open-source версия Unsloth работает только на одном GPU. Для multi-GPU нужна платная лицензия Unsloth Pro. Если вам нужно распределённое обучение на кластере — смотрите на Axolotl.
Установка:
pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
Базовый код:
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="unsloth/Llama-3.1-8B-bnb-4bit",
max_seq_length=2048,
load_in_4bit=True,
)
model = FastLanguageModel.get_peft_model(
model, r=16, target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
)
# trainer.train() — standard HF Trainer
2. LLaMA-Factory — zero-code entry
LLaMA-Factory — это фреймворк с самым низким порогом входа. Главная фишка: веб-интерфейс, в котором можно настроить training config через UI, без единой строчки кода. 100+ готовых шаблонов для разных архитектур: LoRA, QLoRA, DPO, GRPO, full fine-tuning.
Важный нюанс: LLaMA-Factory умеет использовать Unsloth как бэкенд для тренировки. В бенчмарках это даёт скорость в 3.4 часа против 3.2 часов у чистого Unsloth — разница всего 6%. То есть вы получаете удобство веб-интерфейса с почти той же скоростью, что и у специализированного фреймворка.
LLaMA-Factory — самый звёздный проект в этой нише: 72 418 звезд на GitHub, 8 861 форк. Опубликован в ACL 2024 как рецензированная научная работа. Поддерживает 100+ моделей: от Gemma 4 и Qwen 3 до DeepSeek и Yi.
Установка:
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
# Запуск веб-интерфейса
llamafactory-cli webui
3. Axolotl — production multi-GPU
Axolotl — это фреймворк, который берёт на себя всё, что нужно для распределённого обучения: FSDP (Fully Sharded Data Parallelism), DeepSpeed Zero Stage 2/3, Sequence Parallelism для контекстов длиннее 32K токенов и multi-node кластеры.
Если Unsloth — это спринтер на одном GPU, то Axolotl — марафонец на кластере. На одном GPU он медленнее (5.8 часов против 3.2 у Unsloth), но на 8× H100 смысл уже не в скорости одной итерации, а в возможности обучать модели, которые не влезают в один GPU.
Ключевая фишка 2026 года — нативная поддержка мультимодальных моделей: LLaMA-Vision, Qwen2-VL, Pixtral. Если вам нужно дообучать vision-language модель на своих картинках и тексте — Axolotl сейчас лучший выбор среди open-source.
Axolotl поддерживает полный RLHF-пайплайн: SFT → Reward Model → PPO. Это редкость среди open-source фреймворков — большинство умеют либо SFT, либо RLHF, но не оба этапа в одном инструменте.
Установка:
git clone https://github.com/OpenAccess-AI-Collective/axolotl
cd axolotl
pip install -e .
Конфиг (YAML):
model:
type: LlamaForCausalLM
name: meta-llama/Llama-3.1-8B
lora:
r: 32
lora_alpha: 64
target_modules: [q_proj, v_proj]
trainer:
type: axolotl
micro_batch_size: 2
gradient_accumulation_steps: 4
num_epochs: 3
fsdp:
- full_shard
- auto_wrap
4. TRL — HuggingFace стандарт для RLHF
TRL (Transformer Reinforcement Learning) — это библиотека от HuggingFace, которая стала стандартом для RLHF-тренировки. Если вам нужно не просто дообучить модель на инструкциях, а выучить политику через reinforcement learning — TRL ваш выбор.
TRL поддерживает три основных алгоритма: PPO (классический RLHF от InstructGPT), DPO (Direct Preference Optimization — без отдельной reward model) и GRPO (Group Relative Policy Optimization — тот самый, на котором тренировали DeepSeek R1).
GRPO от TRL — единственная open-source реализация, которая воспроизводит метод DeepSeek с гарантией корректности через тесты HuggingFace. Unsloth тоже реализовал GRPO, но TRL даёт больше контроля: настройка KL-штрафа, групповая выборка, кастомные reward-функции.
Интеграция с экосистемой HuggingFace — главное преимущество: TRL работает поверх transformers, PEFT (21 304 звезды), accelerate и datasets. Любая модель на HuggingFace совместима из коробки.
Пример GRPO с TRL:
from trl import GRPOTrainer
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-7B")
trainer = GRPOTrainer(
model=model,
training_args=training_args,
reward_funcs=[reward_function],
train_dataset=dataset,
)
trainer.train()
5. TorchTune — PyTorch native
TorchTune — это фреймворк от Meta AI, встроенный напрямую в PyTorch-экосистему. Он не прячет детали реализации за абстракциями — вместо этого вы работаете с recipe-файлами, где каждый шаг (загрузка данных, конфигурация LoRA, запуск FSDP2) описан явно.
На A100 40GB TorchTune с PyTorch 2.5 compile показал 4.7 часа на Llama-3.1 8B QLoRA — медленнее Unsloth (3.2 ч), но быстрее Axolotl (5.8 ч). С включённым compile скорость примерно в 1.2x от базового PyTorch.
FSDP2 — собственный протокол распределённого обучения PyTorch — работает из коробки, без DeepSpeed. Это делает TorchTune привлекательным для команд, которые уже используют PyTorch и не хотят добавлять ещё одну зависимость.
Минусы: ограниченная поддержка моделей (в основном Meta: Llama, Code Llama, Gemma), нет веб-интерфейса, каждый эксперимент — 200+ строк boilerplate-кода. TorchTune не для новичков.
Установка:
pip install torchtune
tune download meta-llama/Llama-3.1-8B --hf-token YOUR_TOKEN
tune run lora_finetune_single_device --config llama3_1/8B_lora_single_device
Как выбирать под свою задачу
Нет универсально лучшего фреймворка — выбор упирается в ваше железо и сценарий. Четыре вопроса, которые его определяют:
Сколько у вас GPU? Один RTX 4090 или A100 → Unsloth вне конкуренции. Четыре и больше → Axolotl или TorchTune. Один GPU, но нужен веб-интерфейс → LLaMA-Factory с Unsloth-бэкендом.
Что за модель? Llama, Mistral, Qwen — подойдёт любой фреймворк. Мультимодальная (VL-модель) → Axolotl. DeepSeek с GRPO → TRL или Unsloth.
Важнее скорость или масштаб? Исследовательский цикл (много экспериментов, быстрые итерации) → Unsloth. Production-пайплайн с одной большой моделью → Axolotl.
Кто будет пользоваться? ML-инженер пишет код → любой. BI-аналитик без Python → только LLaMA-Factory с веб-UI.
По данным Gartner (2026), 51% компаний уже используют AI-агентов в продакшене, и кастомные модели становятся стандартом. Умение дообучать LLM — навык, который отличает команды, собирающие готовые решения из конструктора, от тех, кто строит конкурентное преимущество на своих данных.