Перейти к содержимому
ПереводыHugging Face

smol course от Hugging Face: путеводитель

Что внутри smol course — практического курса Hugging Face о дообучении маленьких моделей: перевод вводного юнита, карта обеих версий курса, пересказ юнита 1 о SFT на SmolLM3 и ссылки на переводы юнитов о DPO и VLM.

smol course — бесплатный практический курс Hugging Face о том, как дообучать маленькие языковые модели под свою задачу: обучение на инструкциях (SFT), выравнивание по предпочтениям (DPO), модели «зрение + язык». Всё строится вокруг моделей SmolLM3 (3B) и SmolVLM2 (2.2B), которые помещаются на одну обычную GPU и не требуют платных сервисов. Курс открытый: студенты присылают свои модели на общий лидерборд через pull request.

Курс только на английском: есть переводы на испанский, японский, корейский, португальский и вьетнамский, русского нет. Поэтому мы перевели его ключевые юниты — о DPO и о VLM, — а юнит 1 о SFT пересказали ниже: та же тема полностью переведена в главе 11 LLM Course, которая выросла из первой версии smol course.

В программе ChinaAI курс относится к ступени 6 (модули 6.1–6.3) и к модулю 9.1. Сам курс предупреждает, что он «маленький, но быстрый» и рассчитан на разработчиков; если нужен более пологий вход, он советует LLM Course.

СтраницаЧто внутриУрок ChinaAI
Юнит 2: выравнивание по предпочтениям и DPOЧто такое DPO, формат пар, обучение SmolLM3 в TRL локально и в HF Jobs, оценка в lighteval, лидерборд; плюс раздел об ORPO из первой версии6.3.3
Юнит 3: модели «зрение + язык»Устройство VLM, SmolVLM2 через pipeline и вручную, SFT и DPO для VLM, практикум на ChartQA с LoRA9.1.1
LLM Course, глава 11Chat-шаблоны, SFT, LoRA, оценка — потомок модулей 1, 3 и 4 первой версии smol course6.1.1, 6.1.2, 6.2.1

Переводы полные, с примечаниями переводчика там, где код курса не запустится или текст ошибается (в smol course таких мест много: курс пишется быстро и сообществом).

Добро пожаловать в 🤗 smol course — исчерпывающий (и самый маленький) курс по дообучению языковых моделей! Этот бесплатный курс проведёт вас от новичка до эксперта в понимании, реализации и оптимизации техник дообучения больших языковых моделей.

В курсе вы:

  • 📖 изучите обучение на инструкциях, обучение с учителем, выравнивание по предпочтениям, оценку моделей, модели «зрение + язык»… и многое другое;
  • 🧑‍💻 научитесь пользоваться устоявшимися инструментами дообучения — TRL и Transformers;
  • 💾 будете делиться проектами и изучать приложения дообучения от сообщества;
  • 🏆 поучаствуете в испытаниях, где сравните свои дообученные модели с моделями других студентов;
  • 🎓 получите сертификат, выполнив задания.

Как устроен курс: фундаментальные юниты (понятия дообучения в теории), практика (работа с фреймворками дообучения в заранее настроенных средах), задания на реальные сценарии и совместные материалы с партнёрами Hugging Face.

Программа курса (как она записана во вводном юните):

№ТемаОписаниеВышло
1Обучение на инструкцияхОбучение с учителем, chat-шаблоны, следование инструкциям✅
2ОценкаБенчмарки и оценка в своей предметной области✅
3Выравнивание по предпочтениямВыравнивание моделей с предпочтениями людей алгоритмами вроде DPO✅
4Модели «зрение + язык»Адаптация и использование мультимодальных моделей✅
5Обучение с подкреплениемОптимизация моделей на основе политик обучения с подкреплениемоктябрь
6Синтетические данныеГенерация синтетических датасетов для своих областейноябрь
7Церемония награжденияПоказ проектов и празднованиедекабрь

Что нужно знать заранее: базовые понятия ИИ и LLM; Python и основы машинного обучения; опыт с PyTorch или похожим фреймворком; основы архитектуры трансформера. Если чего-то не хватает, курс советует LLM Course, но подчёркивает, что это не обязательное условие.

Что понадобится: компьютер с интернетом, желательно с доступом к GPU (курс предлагает платную подписку Hugging Face Pro), и бесплатный аккаунт Hugging Face.

Сертификаты бесплатны: за основы — пройти юнит 1; об окончании — пройти все юниты и сдать итоговый проект. Курс можно проходить и в режиме слушателя. Каждая глава рассчитана на неделю по 3–4 часа.

Автор — Бен Бертеншо, инженер машинного обучения в Hugging Face (приложения на LLM, пост-трейнинг, агенты). Курс благодарит библиотеки Transformers, TRL и PEFT.

Карта курса (версия 2) и связь с уроками ChinaAI

Заголовок раздела «Карта курса (версия 2) и связь с уроками ChinaAI»
ЮнитРазделыГде читатьУрок ChinaAIВажность
0. Добро пожаловатьПрограмма, сертификатывыше на этой странице—можно пропустить
1. Обучение на инструкцияхВведение, chat-шаблоны, SFT, LoRA и PEFT, упражнения, HF Jobs, итоговый проекторигинал, пересказ ниже; та же тема — глава 11 LLM Course6.1.1, 6.1.2, 6.2.1, 6.2.2★★★
2. Выравнивание по предпочтениямВведение, DPO, упражнение, отправка проектанаш перевод6.3.3★★★
3. Модели «зрение + язык»Введение, готовые VLM, дообучение VLM, упражнениянаш перевод9.1.1★★
4. Оценка моделей«Скоро!» — пока заглушка—7.3.1, 7.3.2—
flowchart LR
L61["Уроки 6.1–6.2<br/>SFT и LoRA"] --> U1["Юнит 1: SFT на SmolLM3<br/>(или гл. 11 LLM Course)"]
U1 --> L63["Урок 6.3.3<br/>DPO"]
L63 --> U2["Юнит 2: DPO<br/>(наш перевод)"]
U2 --> L73["Уроки 7.3<br/>оценка"]
L91["Урок 9.1.1<br/>VLM"] --> U3["Юнит 3: VLM<br/>(наш перевод)"]
Когда проходить юниты smol course вместе с курсом ChinaAI

Юнит 1: обучение на инструкциях со SmolLM3 (пересказ)

Заголовок раздела «Юнит 1: обучение на инструкциях со SmolLM3 (пересказ)»

Юнит 1 — самый большой в курсе (около 16 тысяч слов вместе с упражнениями). По содержанию он близок к главе 11 LLM Course, но всё показано на модели SmolLM3-3B и датасете SmolTalk2, а в конце — обучение в облаке через HF Jobs и сдача модели на лидерборд.

1.1. Введение. Обучение на инструкциях превращает базовую модель, которая просто продолжает текст (HuggingFaceTB/SmolLM3-3B-Base), в ассистента (HuggingFaceTB/SmolLM3-3B), который следует инструкциям, ведёт многоходовый диалог и умеет вызывать инструменты. SmolLM3 выбрана потому, что помещается на одну GPU, сильна для своего размера, поддерживает несколько языков и контекст до 8 тысяч токенов (у некоторых вариантов — до 128 тысяч), умеет режим явного рассуждения («thinking») и выпущена вместе с полными рецептами обучения.

1.2. Chat-шаблоны. Чем базовая модель отличается от instruct-модели и как диалог превращается в одну строку с токенами-разделителями. Разобран шаблон SmolLM3 в формате ChatML (<|im_start|>, <|im_end|>), системные промпты, многоходовые диалоги, переключение режима рассуждения и функция apply_chat_template. То же самое руками — в уроке 6.1.1 и в разделе 11.2 нашего перевода главы 11.

1.3. Обучение с учителем (SFT). Главная мысль раздела: SFT учит модель не новым фактам, а новому поведению — знания приходят из предобучения. Разобран путь SmolLM3: базовая модель на 11 трлн токенов → SFT на подборке инструкций (включая SmolTalk2) → выравнивание по предпочтениям (APO — Anchored Preference Optimization). Есть чек-лист «стоит ли вообще делать SFT» (пробовали ли вы сначала промпты, есть ли хотя бы 1000 качественных примеров, хватит ли ресурсов), порядок работы (данные → окружение → конфигурация SFTTrainer → мониторинг) и разбор кривых loss: как выглядят переобучение и недообучение. Это материал урока 6.1.2.

1.3a. LoRA и PEFT. Когда нужно параметрически-эффективное дообучение, как устроена LoRA, как загружать адаптеры, сливать их с базовой моделью (merge_and_unload) и как передать peft_config в SFTTrainer; кратко — вариант OLoRA (инициализация адаптеров через QR-разложение). Подробно — урок 6.2.1.

1.4. Практические упражнения (самый длинный раздел, ноутбук notebooks/1/4.ipynb):

  1. Chat-шаблоны SmolLM3. Загрузить базовую и instruct-модель, применить шаблон к разным диалогам (с системным промптом, многоходовым, с инструментами) и сравнить, как отвечают обе модели.

  2. Подготовка датасета. Изучить SmolTalk2 (HuggingFaceTB/smoltalk2, конфигурация SFT): это сборник из двух десятков открытых датасетов — диалоги, длинный контекст, вызов инструментов, рассуждения — в режимах think и no_think. Привести разные форматы к единому списку сообщений messages.

  3. SFT в SFTTrainer. Дообучить SmolLM3-3B-Base на части SmolTalk2 и сравнить ответы до и после.

  4. Продакшн-процесс через TRL CLI. Та же задача одной командой trl sft … или через YAML-конфигурацию.

1.5. Обучение в Hugging Face Jobs. Платный облачный запуск: hf jobs uv run --flavor a100-large … sft.py со скриптом из репозитория TRL или своим скриптом с зависимостями в заголовке (PEP 723); выбор GPU, LoRA в облаке, мониторинг через hf jobs logs и Trackio, оценка стоимости и типичные ошибки. На вашей машине всё это делается локально — так, как в уроке 6.2.2.

1.6. Итоговый проект. Обучить модель, выложить на Hub, оценить её командой lighteval vllm "model_name=…" "lighteval|gsm8k|0|0" и добавить результат в submissions.json лидерборда через pull request.

Первая версия курса (декабрь 2024 года) лежит в папке v1: markdown-тексты и ноутбуки, модели SmolLM2. Она короче и местами устарела, но покрывает темы, которых во второй версии нет. Её модули 1, 3 и 4 переработаны в главу 11 LLM Course.

Модуль v1О чёмГде по-русски / урок ChinaAI
1. Instruction TuningChat-шаблоны, SFTгл. 11 LLM Course, 6.1.2
2. Preference AlignmentDPO и ORPOраздел ORPO переведён на странице юнита 2; 6.3.3
3. Parameter-efficient Fine-tuningLoRA-адаптеры, prompt tuningгл. 11 LLM Course, 6.2.1
4. EvaluationАвтоматические бенчмарки, своя оценка в предметной областигл. 11 LLM Course, 7.3.1
5. Vision Language ModelsИспользование и дообучение VLMюнит 3 версии 2, 9.1.1
6. Synthetic DatasetsГенерация датасетов инструкций и предпочтений (distilabel)5.1.2, 6.1.2
7. InferenceКонвейер pipeline, сервер TGI7.1.2
8. AgentsАгенты на smolagents: агенты-поисковики, агенты кода, свои функцииAgents Course, 8.3.1
  • Окружение. pip install transformers datasets trl peft accelerate trackio (для VLM ещё num2words). Версия 1 ставится как пакет через uv sync в корне репозитория (Python 3.11).
  • Железо. SmolLM3-3B: LoRA помещается на одну RTX 4080, полное SFT или DPO — на четыре карты с FSDP или DeepSpeed (урок 6.2.2). SmolVLM2-2.2B с LoRA — на одну карту.
  • HF Jobs. Курс постоянно предлагает обучать в облаке через Hugging Face Jobs — это платная услуга (тариф Pro и выше). На вашей машине облако не нужно: те же скрипты TRL запускаются локально через accelerate launch.
  • Лидерборд. Чтобы попасть в таблицу курса, модель выкладывают на Hub, оценивают lighteval и присылают pull request в Space smol-course/leaderboard. Для учёбы это не обязательно.
EnglishРусский
fine-tuningдообучение
instruction tuningобучение на инструкциях
supervised fine-tuning (SFT)обучение с учителем
preference alignmentвыравнивание по предпочтениям
chat templatechat-шаблон
base / instruct modelбазовая / instruct-модель
adapter, mergeадаптер, слияние адаптера с моделью
leaderboard, submissionлидерборд, отправка результата
synthetic dataсинтетические данные
Hugging Face Jobsоблачные задания Hugging Face (платная услуга)