For the complete documentation index, see llms.txt. This page is also available as Markdown.

Универсальное дообучение Axolotl

YAML-управляемое дообучение LLM с Axolotl на Clore.ai — LoRA, QLoRA, DPO, multi-GPU

Axolotl объединяет HuggingFace Transformers, PEFT, TRL и DeepSpeed в единый интерфейс на основе YAML. Вы задаёте модель, датасет, метод обучения и гиперпараметры в одном конфигурационном файле — затем запускаете всё одной командой. Для стандартных рабочих процессов скрипты на Python не требуются.

Ключевые особенности

  • Только конфигурация YAML — задайте всё в одном файле, Python не нужен

  • Все методы обучения — LoRA, QLoRA, полная донастройка, DPO, ORPO, KTO, RLHF

  • Многогпу из коробки — DeepSpeed ZeRO 1/2/3 и FSDP одним флагом

  • Пакетирование примеров — объединяйте короткие примеры, чтобы заполнить длину последовательности, прирост пропускной способности в 3–5×

  • Flash Attention 2 — автоматическая экономия VRAM на поддерживаемом оборудовании

  • Широкая поддержка моделей — Llama 3.x, Mistral, Qwen 2.5, Gemma 2, Phi-4, DeepSeek, Falcon

  • Встроенные форматы датасетов — alpaca, sharegpt, chat_template, completion и custom

Требования

Компонент
Минимум
Рекомендуется

GPU

RTX 3060 12 ГБ

RTX 4090 24 ГБ (×2+)

VRAM

12 ГБ

24+ ГБ

ОЗУ

16 ГБ

64 ГБ

Диск

50 ГБ

100 ГБ

CUDA

12.8+

12.8+

Python

3.10

3.11

Цены Clore.ai: RTX 4090 ≈ $0.14–0.42/ч · RTX 3090 ≈ $0.07–0.21/ч · RTX 3060 ≈ $0.03–0.07/ч

Быстрый старт

1. Установите Axolotl

Или используйте Docker-образ (рекомендуется для воспроизводимости):

2. Создайте конфигурационный файл

Сохраните это как config.yml:

3. Запустите обучение

Прогресс обучения выводится в stdout и при необходимости в Weights & Biases.

Подробный разбор конфигурации

Форматы датасетов

Axolotl нативно поддерживает несколько форматов входных данных:

Многогпу с DeepSpeed

Создайте deepspeed_zero2.json:

Добавьте в вашу конфигурацию:

Затем запустите:

Согласование DPO / ORPO

Полная донастройка (без LoRA)

Примеры использования

Инференс после обучения

Слить LoRA в базовую модель

Предобработка датасета (проверка перед обучением)

Это токенизирует и проверяет датасет. Полезно для выявления ошибок формата до длительного запуска обучения.

Справочник по использованию VRAM

Модель
Метод
GPU
VRAM/GPU
Конфигурация

Llama 3.1 8B

QLoRA 4bit

1

~12 ГБ

r=32, seq_len=2048

Llama 3.1 8B

LoRA 16bit

1

~20 GB

r=16, seq_len=2048

Llama 3.1 8B

Полное

2

~22 ГБ

DeepSpeed ZeRO-3

Qwen 2.5 14B

QLoRA 4bit

1

~16 ГБ

r=16, seq_len=2048

Llama 3.3 70B

QLoRA 4bit

2

~22 ГБ

r=16, seq_len=2048

Llama 3.3 70B

Полное

4

~40 ГБ

DeepSpeed ZeRO-3+offload

Советы

  • Всегда включайте sample_packing: true — самое большое улучшение пропускной способности (3–5× на коротких датасетах)

  • Используйте flash_attention: true на GPU Ampere+ для экономии VRAM на 20–40%

  • Начните с QLoRA для экспериментов переключайтесь на полную донастройку только тогда, когда качество LoRA выходит на плато

  • Установите val_set_size: 0.02 для мониторинга переобучения во время обучения

  • Сначала предобработайте — запустите axolotl.cli.preprocess чтобы проверить формат данных перед запуском длительного обучения

  • Используйте Docker-образ для воспроизводимых окружений — это позволяет избежать конфликтов зависимостей

  • lora_target_linear: true применяет LoRA ко всем линейным слоям, обычно лучше, чем нацеливаться только на attention

Устранение неполадок

Проблема
Решение

OutOfMemoryError

Уменьшите micro_batch_size до 1, включите gradient_checkpointing

Ошибки формата датасета

Запускайте python -m axolotl.cli.preprocess config.yml для отладки

sample_packing медленно на первой эпохе

Нормально — начальный расчёт пакетирования выполняется один раз

Обучение на нескольких GPU зависает

Проверьте NCCL: export NCCL_DEBUG=INFO, убедитесь, что видны все GPU

flash_attention ошибка импорта

Установите: pip install flash-attn --no-build-isolation

Потеря не уменьшается

Уменьшите LR до 1e-4, увеличьте warmup, проверьте качество датасета

Ошибка соединения WandB

Запускайте wandb login или установите wandb_project: в пустую строку

Ресурсы

Последнее обновление

Это было полезно?