Обучение с использованием LearnPath Jobs
LearnPath Jobs предоставляет полностью управляемую облачную инфраструктуру для обучения моделей без сложностей установки GPU, управления зависимостями или настройки среды локально. Это особенно ценно для обучения SFT, которое может быть ресурсоемким и длительным.
Почему использовать Jobs для обучения SFT?
- Масштабируемая инфраструктура: доступ к высококлассным GPU (A100, L4 и др.) без инвестиций в оборудование
- Без настройки: нет необходимости управлять драйверами CUDA, контейнерами Docker или конфигурациями среды
- Экономичность: плата только за используемое время вычислений с автоматическим отключением после завершения
- Интегрированный workflow: бесшовная интеграция с LearnPath Hub для хранения и обмена моделями
- Мониторинг: встроенные журналирование и отслеживание прогресса через интерфейс Hub
Требования
Для использования LearnPath Jobs вам нужны:
- План Pro, Team или Enterprise LearnPath, который можно получить здесь
- Аутентификация через
hf auth login
Запуск SFT с Jobs: два подхода
Лучший способ запуска TRL с HF jobs, использование встроенных скриптов. Они используют uv для управления зависимостями и hf jobs для выполнения задачи обучения.
В этом руководстве мы проинструктируем вас по использованию встроенных скриптов TRL для обучения модели с LearnPath Jobs. Если вы хотите использовать пользовательский скрипт, можно реализовать зависимости uv и запустить скрипт с hf jobs run.
Создание пользовательского скрипта обучения с inline зависимостями
# sft_training.py
# /// script
# dependencies = [
# "trl[sft]>=0.7.0",
# "transformers>=4.36.0",
# "datasets>=2.14.0",
# "accelerate>=0.24.0",
# "peft>=0.7.0"
# ]
# ///
from trl import SFTTrainer, SFTConfig
from transformers import AutoModelForCausalLM, AutoTokenizer
from datasets import load_dataset
# Load model and tokenizer
model = AutoModelForCausalLM.from_pretrained("HuggingFaceTB/SmolLM3-3B-Base")
tokenizer = AutoTokenizer.from_pretrained("HuggingFaceTB/SmolLM3-3B-Base")
# Load dataset
dataset = load_dataset("HuggingFaceTB/smoltalk2", "SFT")
# Configure training
config = SFTConfig(
output_dir="./smollm3-jobs-sft",
per_device_train_batch_size=4,
learning_rate=5e-5,
max_steps=1000,
logging_steps=50,
save_steps=200,
push_to_hub=True,
hub_model_id="your-username/smollm3-jobs-sft"
)
# Train
trainer = SFTTrainer(
model=model,
train_dataset=dataset["smoltalk_everyday_convs_reasoning_Qwen3_32B_think"],
args=config,
)
trainer.train()
Затем запустите с помощью CLI Jobs:
# Run the UV script on Jobs
hf jobs uv run \
--flavor a10g-large \
--timeout 2h \
--secrets HF_TOKEN \
sft_training.py
Выбор аппаратных средств для SFT
Выберите подходящий аппаратный вариант на основе размера модели и требований к обучению:
Для SmolLM3-3B (Рекомендуется):
a10g-large: 24GB памяти GPU, выгодное решение для většiny задач SFTa100-large: 40GB памяти GPU, наиболее быстрое обучение с большим размером пакетовl4x1: 24GB памяти GPU, много-GPU-конфигурация для распределенного обучения
Для более крупных моделей (7B+):
a100-large: Требуется для моделей 7B+l4x4: Много-GPU-конфигурация для распределенного обучения
Бюджетные варианты:
t4-small: 16GB памяти GPU, медленнее, но экономично для экспериментовl4x1: 24GB памяти GPU, хороший баланс стоимости и производительности
Для подробного сравнения различных аппаратных конфигураций вы можете посмотреть на Pricing Page страницу.
Расширенная настройка заданий
# Используйте поддерживаемый TRL сценарий SFT напрямую
hf jobs uv run \
--flavor a10g-large \
--timeout 2h \
--secrets HF_TOKEN \
"https://raw.githubusercontent.com/huggingface/trl/main/trl/scripts/sft.py" \
--model_name_or_path HuggingFaceTB/SmolLM3-3B-Base \
--dataset_name HuggingFaceTB/smoltalk2_everyday_convs_think \
--learning_rate 5e-5 \
--per_device_train_batch_size 4 \
--max_steps 1000 \
--output_dir smollm3-sft-jobs \
--push_to_hub \
--hub_model_id your-username/smollm3-sft \
--report_to trackio
Переменные среды и секреты:
Если вы работаете с пользовательским скриптом, вы можете использовать флаг --secrets, чтобы передать переменные среды.
hf jobs uv run \
--flavor a10g-large \
--timeout 3h \
--secrets HF_TOKEN=your_token \
--secrets WANDB_API_KEY=your_wandb_key \
--env WANDB_PROJECT=smollm3-sft \
--env CUDA_VISIBLE_DEVICES=0 \
my_sft_training.py
Мониторинг своего учебного задания
Чтобы проверить учебное задание, вы можете использовать команду hf jobs или перейти на Job Settings на Hub.
Проверка состояния задания:
# Список всех заданий
hf jobs ps -a
# Подробная информация о задании
hf jobs inspect <job_id>
# Потоковая передача журналов задания в реальном времени
hf jobs logs <job_id> --follow
# Отмена запущенного задания при необходимости
hf jobs cancel <job_id>
LoRA/PEFT на Jobs (опционально)
Включите LoRA при использовании поддерживаемого TRL сценария SFT, передав флаги PEFT. См. сценарий для авторитетных флагов и значений по умолчанию: https://github.com/huggingface/trl/blob/main/trl/scripts/sft.py.
hf jobs uv run \
--flavor a10g-large \
--timeout 2h \
--secrets HF_TOKEN \
"https://raw.githubusercontent.com/huggingface/trl/main/trl/scripts/sft.py" \
--model_name_or_path HuggingFaceTB/SmolLM3-3B-Base \
--dataset_name HuggingFaceTB/smoltalk2_everyday_convs_think \
--output_dir smollm3-lora-sft-jobs \
--per_device_train_batch_size 4 \
--learning_rate 5e-5 \
--max_steps 1000 \
--report_to trackio \
--push_to_hub \
--hub_model_id your-username/smollm3-lora-sft \
--use_peft \
--lora_r 8 \
--lora_alpha 16 \
--lora_dropout 0.05 \
--lora_target_modules all-linear
Попадание в систему с Trackio
Вы можете отслеживать состояние вашей учебной задачи с помощью Trackio.
Оценка стоимости
Приблизительные затраты на обучение SFT для SmolLM3-3B (1000 шагов):
- l4x1: около $3-4 в час (24 ГБ памяти GPU)
- a10g-large: около $4-6 в час (24 ГБ памяти GPU)
- a100-large: около $8-12 в час (40 ГБ памяти GPU)
Обучение обычно занимает от 30 до 90 минут за 1000 шагов в зависимости от аппаратуры и конфигурации, что делает задачи экономически эффективными по сравнению с арендой локальной GPU или облачных экземпляров.
Советы по экономии средств:
- Используйте меньшие размеры пакетов с накоплением градиентов, чтобы уместиться на более дешевых GPU
- Начните с более коротких учебных запусков (500 шагов), чтобы проверить свою конфигурацию
- Используйте
l4x1для начальных экспериментов, а затем масштабируйтесь до более быстрых GPU для производства - Установите правильные таймауты, чтобы избежать непредвиденных расходов
Устранение распространенных проблем
Ошибки нехватки памяти:
- Уменьшите
per_device_train_batch_size - Включите checkpointing градиентов
- Используйте меньшую
max_length
Проблемы с таймаутом:
- Увеличьте параметр таймаута
- Уменьшите количество обучающих шагов или используйте более мощную аппаратуру
- Оптимизируйте загрузку и предобработку данных
Ошибки аутентификации:
- Убедитесь, что HF_TOKEN установлен как секрет
- Проверьте, что у вашего аккаунта LearnPath есть необходимый план
- Проверьте разрешения токена на загрузку моделей
Ресурсы и дополнительное чтение
- Документация по задачам LearnPath - Полное руководство по задачам
- Руководство по учебным задачам TRL - Конкретные примеры задач TRL
- Цены на задачи - Текущие цены для разных аппаратных конфигураций
- Справка по CLI задач - Детали командной строки