huggingface-llm-trainer
Hugging Face LLM Trainer — навык для обучения и дообучения языковых и vision-моделей через TRL или Unsloth на инфраструктуре Hugging Face Jobs. Источник перечисляет четыре направления: supervised fine-tuning (SFT), direct preference optimization (DPO), group relative policy optimization (GRPO) и reward modeling. Дополнительно материал описывает подготовку датасета, выбор аппаратуры, оценку стоимости, мониторинг через Trackio, а также сохранение результата в Hugging Face Hub. Отдельный сценарий касается преобразования обученной модели в GGUF для локального использования с Ollama, LM Studio или llama.cpp. Навык рассчитан на воспроизводимый запуск, а не на случайный скрипт в локальном окружении. В исходной процедуре рекомендуется использовать UV-скрипты с PEP 723-зависимостями или поддерживаемые TRL-примеры, проверять датасет до дорогостоящего запуска и выбирать конфигурацию по методу обучения. Для SFT ожидаются текстовые, messages или prompt-completion данные; для DPO нужны пары prompt, chosen и rejected; для GRPO нужен prompt-only формат. Проверка датасета особенно важна для DPO, поскольку неправильные названия колонок или необходимость маппинга приводят к ошибке уже после старта job. В качестве модели мониторинга источник требует включать Trackio и сохранять промежуточные результаты, чтобы состояние обучения было видно во время выполнения. Unsloth предлагается как вариант, когда критичны память и скорость: в источнике он описан для сценариев с ограниченной VRAM, ускоренного обучения, больших моделей свыше 13B параметров и vision-language моделей. Для cloud job материал требует заранее проверить доступ к платному плану Hugging Face Jobs, авторизацию Hub и наличие токена с правом записи, если результат должен быть опубликован. Токен передаётся в job как секрет, а не встраивается в код. Для сохранения результата в Hub нужно настроить push_to_hub и идентификатор модели; это защищает от потери результата в эфемерной среде выполнения. Практический workflow включает выбор базовой модели, инспекцию и проверку датасета, создание скрипта с Trackio, настройку длины последовательности, аппаратуры и timeout, отправку задания и последующую проверку логов и Hub. Источник отдельно предупреждает о корректном имени параметра max_length в SFTConfig и DPOConfig и отличает его от несуществующего max_seq_length в этих конфигурациях. Асинхронная job возвращает идентификатор и продолжает работу в фоне, поэтому после отправки нужно хранить job ID, ссылку на мониторинг и ожидаемое время вместо предположения, что обучение уже закончено. Ограничения подтверждены самим материалом. Навык не гарантирует качество конкретной модели или датасета и не заменяет валидацию данных, контроль стоимости и проверку лицензий базовой модели. Результат обучения можно потерять в эфемерной среде, если не включить сохранение или публикацию в Hub. Недостаток VRAM, неправильный timeout, неподходящий формат preference-данных и неверный параметр конфигурации остаются операционными причинами неудачи. Поэтому безопасный сценарий — сначала выполнить дешёвую инспекцию датасета и маленький пробный запуск, затем увеличить ресурсы, длину последовательности и объём обучения; после завершения проверить артефакты и метрики в Hub/Trackio.
Для чего подходит
- Дообучение LLM или VLM через Hugging Face Jobs
- Подготовка датасета для SFT, DPO или GRPO
- Экспорт обученной модели в GGUF
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/huggingface/skills/tree/main/skills/huggingface-llm-trainer