Универсальное дообучение Axolotl
YAML-управляемое дообучение LLM с Axolotl на Clore.ai — LoRA, QLoRA, DPO, multi-GPU
Axolotl объединяет HuggingFace Transformers, PEFT, TRL и DeepSpeed в единый интерфейс на основе YAML. Вы задаёте модель, датасет, метод обучения и гиперпараметры в одном конфигурационном файле — затем запускаете всё одной командой. Для стандартных рабочих процессов скрипты на Python не требуются.
Все примеры работают на GPU-серверах, арендованных через маркетплейс CLORE.AI.
Ключевые особенности
Только конфигурация 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
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: в пустую строку
Ресурсы
Последнее обновление
Это было полезно?