Claude получил возможность файн-тюнить языковые модели с помощью нового инструмента под названием Hugging Face Skills. Не просто писать скрипты для обучения, а реально отправлять задачи на облачные GPU, следить за прогрессом и пушить готовые модели на Hugging Face Hub. В этом туториале показано, как это работает и как использовать самому.
Claude Code умеет использовать "скиллы" — упакованные инструкции, скрипты и доменные знания для выполнения специализированных задач. Скилл hf-llm-trainer учит Claude всему, что нужно знать про обучение: какой GPU выбрать под размер модели, как настроить аутентификацию на Hub, когда использовать LoRA вместо полного файн-тюнинга, и как разрулить десятки других решений, от которых зависит успешный запуск обучения.
С этим скиллом можно сказать Claude что-то вроде:
Fine-tune Qwen3-0.6B on the dataset open-r1/codeforces-cots
И Claude:
Провалидирует формат датасета
Выберет подходящее железо (t4-small для модели на 0.6B)
Использует и обновит скрипт обучения с мониторингом через Trackio
Отправит задачу на Hugging Face Jobs
Сообщит ID задачи и примерную стоимость
Проверит прогресс, когда спросите
Поможет отладить, если что-то пойдет не так
Модель обучается на GPU Hugging Face, пока можно заниматься другими делами. Когда закончится — зафайнтюненная модель появится на Hub, готовая к использованию.
Скилл поддерживает те же методы обучения, что используются в продакшене: supervised fine-tuning, direct preference optimization и reinforcement learning with verifiable rewards. Можно обучать модели от 0.5B до 70B параметров, конвертировать их в GGUF для локального деплоя и запускать многоэтапные пайплайны, комбинирующие разные техники.
Перед началом понадобится:
Аккаунт Hugging Face с планом Pro или Team (Jobs требуют платный план)
Токен с правами записи с huggingface.co/settings/tokens
Кодинг-агент типа Claude Code, OpenAI Codex или Google Gemini CLI
Hugging Face Skills совместимы с Claude Code, Codex и Gemini CLI. Интеграции с Cursor, Windsurf и Continue на подходе.
Зарегистрировать репозиторий как маркетплейс плагинов:
/plugin marketplace add huggingface/skills
Чтобы установить скилл:
/plugin install <skill-folder>@huggingface-skills
Например:
/plugin install hf-llm-trainer@huggingface-skills
Codex определит скиллы через файл AGENTS.md. Можно проверить, что инструкции загружены:
codex --ask-for-approval never "Summarize the current instructions."
Подробности в гайде Codex AGENTS.
Репозиторий включает gemini-extension.json для интеграции с Gemini CLI.
Установить локально:
gemini extensions install . --consent
или использовать GitHub URL:
gemini extensions install https://github.com/huggingface/skills.git --consent
Подробнее в документации Gemini CLI extensions.
Нужно аутентифицировать аккаунт Hugging Face токеном с правами записи, чтобы задача могла создать репозиторий модели.
Настройка токена:
hf auth login
# или
export HF_TOKEN=hf_your_write_access_token_here
Hugging Face MCP Server нужно настроить для использования токена с правами записи, передавая его через
HF_TOKENили HTTP-заголовокAuthorization: Bearer.
Разберем полный пример. Файнтюним маленькую модель, чтобы увидеть весь воркфлоу, а потом рассмотрим более продвинутые возможности.
Начать стоит с простой и понятной инструкции зафайнтюнить конкретную модель:
Fine-tune Qwen3-0.6B on the open-r1/codeforces-cots dataset for instruction following.
Кодинг-агент анализирует запрос и готовит конфигурацию обучения. Для модели на 0.6B на демо-датасете он выбирает t4-small — достаточно GPU для этого размера модели и самый дешевый доступный вариант.
Датасет
open-r1/codeforces-cots— это датасет задач и решений с Codeforces. Хороший датасет для instruction tuning модели на решение сложных задач по программированию.
Прежде чем кодинг-агент что-то отправит, будет показана конфигурация:
I'll fine-tune Qwen/Qwen3-0.6B on open-r1/codeforces-cots using SFT.
Configuration:
- Hardware: t4-small (~$0.75/hour)
- Estimated time: ~20 minutes
- Estimated cost: ~$0.30
- Output: username/qwen-codeforces-cots-sft
The model will be pushed to Hub automatically. Should I submit?
В этот момент можно что-то поменять. Можно изменить имя выходного репозитория, выбрать другое железо или попросить Claude изменить параметры обучения. После одобрения агент отправляет задачу.
Например, можно попросить агента сделать тестовый прогон:
Do a quick test run on 100 examples.
После отправки приходят детали задачи:
✅ Job submitted successfully!
Job ID: abc123xyz
Monitor: https://huggingface.co/jobs/username/abc123xyz
Expected time: ~20 minutes
Estimated cost: ~$0.30
View real-time metrics at: https://huggingface.co/spaces/username/trackio
Скилл включает интеграцию с Trackio, так что можно наблюдать, как падает training loss в реальном времени.
Задачи выполняются асинхронно, так что можно закрыть терминал и вернуться позже. Когда нужен апдейт:
How's my training job doing?
Агент вытащит логи и резюмирует прогресс:
Job abc123xyz is running (45 minutes elapsed)
Current step: 850/1200
Training loss: 1.23 (↓ from 2.41 at start)
Learning rate: 1.2e-5
Estimated completion: ~20 minutes
Когда обучение завершится, модель на Hub:
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("username/qwen-codeforces-cots-sft")
tokenizer = AutoTokenizer.from_pretrained("username/qwen-codeforces-cots-sft")
Вот и весь цикл. Описание того, что нужно, обычным языком — а агент разруливает выбор GPU, генерацию скрипта, отправку задачи, аутентификацию и персистентность. Все это обошлось примерно в тридцать центов.
Скилл поддерживает три подхода к обучению. Понимание, когда использовать каждый, помогает получать лучшие результаты.
С SFT начинается большинство проектов. Предоставляются демонстрационные данные — примеры входов и желаемых выходов — и обучение подстраивает модель под эти паттерны.
SFT стоит использовать, когда есть качественные примеры нужного поведения. Разговоры с поддержкой, пары для генерации кода, доменно-специфичные Q&A — все, где можно показать модели, как выглядит хороший результат.
Fine-tune Qwen3-0.6B on my-org/support-conversations for 3 epochs.
Агент валидирует датасет, выбирает железо (a10g-large с LoRA для модели на 7B) и настраивает обучение с чекпоинтами и мониторингом.
Для моделей больше 3B параметров агент автоматически использует LoRA (Low-Rank Adaptation), чтобы снизить требования к памяти. Это делает обучение моделей на 7B или 13B возможным на одном GPU, сохраняя большую часть качества полного файн-тюнинга.
DPO обучается на парах предпочтений — ответах, где один "выбранный", а другой "отклоненный". Это выравнивает выходы модели с человеческими предпочтениями, обычно после начального этапа SFT.
DPO стоит использовать, когда есть аннотации предпочтений от людей-разметчиков или автоматических сравнений. DPO оптимизирует напрямую под предпочитаемый ответ без необходимости отдельной reward-модели.
Run DPO on my-org/preference-data to align the SFT model I just trained.
The dataset has 'chosen' and 'rejected' columns.
DPO чувствителен к формату датасета. Требуются колонки с точными названиями
chosenиrejected, или колонкаpromptсо входом. Агент сначала это проверяет и показывает, как замапить колонки, если датасет использует другие названия.
GRPO — это задача reinforcement learning, которая доказала эффективность на верифицируемых задачах типа решения математических задач, написания кода или любых задач с программным критерием успеха.
Train a math reasoning model using GRPO on the openai/gsm8k dataset based on Qwen3-0.6B.
Модель генерирует ответы, получает награды на основе корректности и учится на результатах. Это сложнее, чем SFT или DPO, но конфигурация похожа.
Агент выбирает железо исходя из размера модели, но понимание компромиссов помогает принимать лучшие решения.
Для крошечных моделей до 1B параметров хорошо работает t4-small. Эти модели обучаются быстро — рассчитывать стоит на $1-2 за полный прогон. Идеально для обучения или экспериментов.
Для маленьких моделей (1-3B) стоит переходить на t4-medium или a10g-small. Обучение занимает несколько часов и стоит $5-15.
Для средних моделей (3-7B) нужен a10g-large или a100-large с LoRA. Полный файн-тюнинг не влезает, но LoRA делает их вполне обучаемыми. Закладывать стоит $15-40 на продакшен.
Для больших моделей (7B+) эта HF skills job не подходит.
Когда тестируется воркфлоу, начинать стоит с малого:
Do a quick test run to SFT Qwen-0.6B with 100 examples of my-org/support-conversations.
Кодинг-агент настраивает минимальное обучение — достаточно, чтобы проверить работу пайплайна без реальных затрат.
Для продакшена стоит быть конкретнее:
SFT Qwen-0.6B for production on the full my-org/support-conversations.
Checkpoints every 500 steps, 3 epochs, cosine learning rate.
Всегда стоит делать демо перед тем, как коммититься на многочасовую продакшен-задачу. Демо за $0.50, которое поймает ошибку формата, экономит $30 на проваленном прогоне.
Формат датасета — самый частый источник провалов обучения. Агент может провалидировать датасеты до того, как будет потрачено GPU-время.
Check if my-org/conversation-data works for SFT training.
Агент запускает быструю проверку на CPU (доли цента) и выдает отчет:
Dataset validation for my-org/conversation-dаta:
SFT: ✓ READY
Found 'messages' column with conversation format
DPO: ✗ INCOMPATIBLE
Missing 'chosen' and 'rejected' columns
Если датасет требует трансформации, агент покажет как:
My DPO dataset uses 'good_response' and 'bad_response' instead
of 'chosen' and 'rejected'. How do I fix this?
Агент предоставляет код маппинга и может включить его прямо в скрипт обучения.
Мониторинг в реальном времени помогает ловить проблемы на ранней стадии. Скилл по умолчанию настраивает Trackio — после отправки задачи можно смотреть метрики по адресу:
https://huggingface.co/spaces/username/trackio
Там показывается training loss, learning rate и метрики валидации. У здорового прогона loss стабильно падает.
Спрашивать агента о статусе можно в любое время:
What's the status of my training job?
Если что-то пошло не так, агент помогает диагностировать. Out of memory? Агент предложит уменьшить batch size или апгрейдить железо. Ошибка датасета? Агент определит несоответствие. Таймаут? Агент порекомендует увеличить длительность или ускорить настройки обучения.
После обучения может понадобиться запустить модель локально. Формат GGUF работает с llama.cpp и зависимыми инструментами типа LM Studio, Ollama и др.
Convert my fine-tuned model to GGUF with Q4_K_M quantization.
Push to username/my-model-gguf.
Агент отправляет задачу конвертации, которая мержит LoRA-адаптеры, конвертирует в GGUF, применяет квантизацию и пушит на Hub.
Потом можно использовать локально:
llama-server -hf <username>/<model-name>:<quantization>
# Например, чтобы запустить модель Qwen3-1.7B-GGUF на локальной машине:
llama-server -hf unsloth/Qwen3-1.7B-GGUF:Q4_K_M
Показано, что кодинг-агенты типа Claude Code, Codex или Gemini CLI могут справляться с полным циклом файн-тюнинга модели: валидация данных, выбор железа, генерация скриптов, отправка задач, мониторинг прогресса и конвертация результатов. Это превращает то, что раньше было специализированным навыком, в нечто, что можно делать через разговор.
Что попробовать:
Зафайнтюнить модель на своем датасете
Собрать preference-aligned модель через SFT -> DPO
Обучить reasoning-модель с GRPO на математике или коде
Сконвертировать модель в GGUF и запустить через Ollama
Скилл опенсорсный. Можно расширять его, кастомизировать под свои воркфлоу или использовать как отправную точку для других сценариев обучения.
Буду рад за лайк и подписку на канал :) https://t.me/chatgptdom_telegram_bot>
Оригинальная статья на Hugging Face Blog — первоисточник
SKILL.md — полная документация скилла
Training Methods — объяснение SFT, DPO, GRPO
Hardware Guide — выбор GPU и стоимость
TRL Documentation — библиотека обучения под капотом
Hugging Face Jobs — облачная инфраструктура обучения
Trackio — мониторинг обучения в реальном времени