Инструменты22 июля 2026 г., 14:17 МСК🤖 Auto

Битва фреймворков: Unsloth, Axolotl, TRL и LLaMA-Factory — кто быстрее?

Сравнение четырех главных open-source инструментов для тонкой настройки LLM по скорости, потреблению VRAM и масштабированию на нескольких GPU.

Баннер новости 4117

Кто есть кто в экосистеме

Четыре проекта доминируют в сфере fine-tuning: Unsloth, Axolotl, TRL и LLaMA-Factory. Все они базируются на PyTorch и Hugging Face, но решают задачи по-разному. TRL (v1.8.0) выступает референсным слоем, предоставляя API для SFT, DPO, GRPO и других методов. Axolotl и LLaMA-Factory строятся поверх TRL, но делают акцент на удобстве и параллелизме. Unsloth же переписывает ядра (kernels) на Triton, чтобы ускорить обратное распространение ошибки без потери точности.

Скорость обучения: где кроется прирост

Unsloth демонстрирует впечатляющие результаты на одном GPU за счет оптимизации ядра. Для модели Llama 3.1 8B прирост составляет 2x, а для Llama 3.3 70B — аналогично. Однако на моделях с экспертами (MoE) разрыв становится еще более значительным. Ниже приведены результаты тестирования на NVIDIA B200:

Модель Контекст Unsloth (мс/шаг) Transformers v5 (мс/шаг) Ускорение
gpt-oss-20b-BF16 8K 712.33 5,226.86 7.3x
gpt-oss-20b-BF16 4K 4.82x
gpt-oss-20b-BF16 1K 1.37x

Axolotl, вдохновленный Unsloth, также внедрил кастомные ядра Triton для LoRA (lora_mlp_kernel, lora_qkv_kernel). Для Qwen3.5-35B-A3B 8-bit LoRA на H100 SXM это дало ускорение до 1.45x и экономию памяти на 30%. LLaMA-Factory не пишет свои ядра, а делегирует эту работу: активация use_unsloth: true дает +170% к скорости, а enable_liger_kernel: true — дополнительные оптимизации.

Потребление VRAM: контекст против объема

Ключевое отличие Unsloth — способность работать с огромными контекстами при ограниченном VRAM благодаря алгоритму gradient checkpointing и Cut Cross Entropy. Для Llama 3.1 8B (QLoRA, rank 32, batch size 1) на GPU с 16 ГБ памяти Unsloth позволяет использовать контекст до 40,724 токенов, тогда как базовый стек Transformers + FlashAttention-2 выдает OOM (Out Of Memory) уже при 2,551 токене.

VRAM GPU Контекст Unsloth Контекст Transformers + FA2
8 GB 2,972 OOM
16 GB 40,724 2,551
24 GB 78,475 5,789
48 GB 191,728 15,502
80 GB 342,733 28,454

Для MoE-моделей Unsloth использует split-LoRA, избегая материализации дельты LoRA перед умножением матриц. Это позволило запустить fine-tuning gpt-oss-20b в 12.8 ГБ VRAM. Axolotl решает проблему памяти через квантование экспертных весов (MoE expert quantization), снизив потребление памяти для GLM-4.7-Flash с ~127 ГБ до ~23 ГБ.

Мульти-GPU: инверсия лидерства

На одном GPU Unsloth безоговорочно лидирует, но в распределенных системах первенство переходит к Axolotl. Он предлагает глубокую матрицу параллелизма: DeepSpeed ZeRO (1-3), FSDP (рекомендуется FSDP2), DDP, а также композицию Data, Tensor, Context и Expert Parallelism через PyTorch DeviceMesh.

Однако масштабирование имеет цену. Тесты на H100 для Llama 3.1 8B показывают, что при увеличении степени последовательного параллелизма (SP) с 1 до 8, пропускная способность на один GPU падает с 100% до 15.2%, хотя максимальный контекст растет с 17,408 до 129,024 токенов. На GPU уровня RTX 4090 при SP=8 обучение даже замедлилось (0.88x speedup), несмотря на рост контекста до 32,768 токенов.

Источник: MarkTechPost ↗