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 с LoRA | 9.1.1 |
| LLM Course, глава 11 | Chat-шаблоны, SFT, LoRA, оценка — потомок модулей 1, 3 и 4 первой версии smol course | 6.1.1, 6.1.2, 6.2.1 |
Переводы полные, с примечаниями переводчика там, где код курса не запустится или текст ошибается (в smol course таких мест много: курс пишется быстро и сообществом).
Вводный юнит 0 (перевод с сокращениями)
Заголовок раздела «Вводный юнит 0 (перевод с сокращениями)»Добро пожаловать в 🤗 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 Course | 6.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/>(наш перевод)"]
Юнит 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):
-
Chat-шаблоны SmolLM3. Загрузить базовую и instruct-модель, применить шаблон к разным диалогам (с системным промптом, многоходовым, с инструментами) и сравнить, как отвечают обе модели.
-
Подготовка датасета. Изучить SmolTalk2 (
HuggingFaceTB/smoltalk2, конфигурацияSFT): это сборник из двух десятков открытых датасетов — диалоги, длинный контекст, вызов инструментов, рассуждения — в режимахthinkиno_think. Привести разные форматы к единому списку сообщенийmessages. -
SFT в
SFTTrainer. Дообучить SmolLM3-3B-Base на части SmolTalk2 и сравнить ответы до и после. -
Продакшн-процесс через 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.
Первая версия курса (v1): 8 модулей
Заголовок раздела «Первая версия курса (v1): 8 модулей»Первая версия курса (декабрь 2024 года) лежит в папке v1: markdown-тексты и ноутбуки, модели SmolLM2. Она короче и местами устарела, но покрывает темы, которых во второй версии нет. Её модули 1, 3 и 4 переработаны в главу 11 LLM Course.
| Модуль v1 | О чём | Где по-русски / урок ChinaAI |
|---|---|---|
| 1. Instruction Tuning | Chat-шаблоны, SFT | гл. 11 LLM Course, 6.1.2 |
| 2. Preference Alignment | DPO и ORPO | раздел ORPO переведён на странице юнита 2; 6.3.3 |
| 3. Parameter-efficient Fine-tuning | LoRA-адаптеры, 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, сервер TGI | 7.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 template | chat-шаблон |
| base / instruct model | базовая / instruct-модель |
| adapter, merge | адаптер, слияние адаптера с моделью |
| leaderboard, submission | лидерборд, отправка результата |
| synthetic data | синтетические данные |
| Hugging Face Jobs | облачные задания Hugging Face (платная услуга) |