Happy-LLM: путеводитель по книге
Обзор книги Datawhale «Строим большую модель с нуля» (Happy-LLM): структура восьми глав, карта соответствия урокам курса, порядок чтения вместе со ступенями 4–8, что запускать на своей машине, а также полный перевод предисловия, раздела о подготовке окружения и дополнительных глав.
Happy-LLM — открытая книга сообщества Datawhale «Строим большую модель с нуля», подзаголовок — «Глубоко понять устройство LLM и своими руками собрать свою первую большую модель». Она ведёт от основ обработки языка через Transformer к собственной LLaMA2-подобной модели на 215 млн параметров, затем к промышленному обучению (Hugging Face Transformers, DeepSpeed, LoRA), приложениям (оценка, RAG, агенты) и, в главе 8 2026 года, к обучению агентов с подкреплением (GRPO, OPD, Search-R1, ReTool).
Книга распространяется по лицензии CC BY-NC-SA 4.0, поэтому все наши страницы по ней — под той же лицензией. Оригинал: репозиторий на GitHub, онлайн-версия, бесплатный PDF — в выпусках репозитория (авторы поставили в PDF водяной знак Datawhale, чтобы его не перепродавали новичкам). Готовые модели из главы 5 — Happy-LLM-Chapter5-Base-215M и SFT-215M — лежат на ModelScope.
Карта книги
Заголовок раздела «Карта книги»Авторы делят книгу на две части: главы 1–4 — основы (теория без или почти без кода), главы 5–8 — практика.
| Глава оригинала | О чём | Наша страница | Уроки курса | Сложность |
|---|---|---|---|---|
| Глава 1. Основы NLP | что такое NLP, история, задачи, представления текста от one-hot до ELMo | конспект | 4.1.1, 4.2.1, 4.3.1 | 🟢 |
| Глава 2. Архитектура Transformer | внимание, маски, многоголовое внимание, энкодер-декодер, Transformer на PyTorch | конспект | 4.4.1–4.4.3, 4.5.1–4.5.2 | 🟡 |
| Глава 3. Предобученные языковые модели | BERT, T5, GPT, LLaMA, GLM — три семейства | конспект | 4.5.3, 4.5.4, 5.2.1 | 🟡 |
| Глава 4. Большие языковые модели | что такое LLM, способности, три этапа обучения | конспект | 5.1.1, 5.4.3, 6.1.1, 6.3.2 | 🟢 |
| Глава 5. Собираем большую модель своими руками | своя LLaMA2 на 215M: модель, токенизатор, претрейн, SFT | конспект | 4.5.3, 4.2.3, 5.6.1–5.6.2 | 🟡→🔴 |
| Глава 6. Практика обучения большой модели | претрейн и SFT на Transformers + DeepSpeed, LoRA и peft | полный перевод | 5.4.3, 6.1.2, 6.2.1–6.2.2 | 🟡 |
| 6.4 [WIP] Выравнивание по предпочтениям — дополнение | основы RL, модель награды, данные chosen/rejected (черновик) | полный перевод | 6.0.1, 6.3.1–6.3.3 | 🟢 |
| Глава 7. Приложения больших моделей | бенчмарки и рейтинги, Tiny-RAG, Tiny-Agent | полный перевод | 7.3.1, 8.2.1, 8.3.1–8.3.2 | 🟢→🟡 |
| Глава 8, раздел 8.1 GRPO | LLM как политика, PPO → GRPO, проверяемые награды, GRPO с нуля | полный перевод | 6.4.1, 6.4.5 | 🔴 |
| Глава 8, раздел 8.2 OPD | on-policy дистилляция, обратная KL по токенам | полный перевод | 6.4.4 | 🔴 |
| Глава 8, раздел 8.3 Search-R1 | агент учится искать: многоходовой rollout, маска наблюдений | полный перевод | 8.3.4, 8.2.1 | 🔴 |
| Глава 8, раздел 8.4 ReTool и итоги главы | агент учится пользоваться интерпретатором кода; итоги главы | полный перевод | 8.3.4, 6.4.3 | 🔴 |
Как совмещать с курсом
Заголовок раздела «Как совмещать с курсом»Книга покрывает ступени 4–6 и 8 курса и немного — 7. Удобнее всего читать её главу после соответствующего модуля курса: курс даёт объяснение «с нуля» с квизами и заданиями, книга — второй взгляд, китайскую терминологию и целостный проект.
flowchart TB S4["Ступень 4: язык и Transformer"] --> C12["Гл. 1–2:<br/>NLP, Transformer"] C12 --> C3["Гл. 3:<br/>BERT, T5, GPT, LLaMA"] S5["Ступень 5: большие модели"] --> C4["Гл. 4: что такое LLM"] C4 --> C5["Гл. 5: своя LLaMA2 на 215M<br/>(параллельно с MiniMind, 5.6)"] S6["Ступень 6: дообучение и RL"] --> C6["Гл. 6: Transformers, DeepSpeed, LoRA"] C6 --> C64["Дополнение 6.4:<br/>модель награды"] C64 --> C81["8.1 GRPO, 8.2 OPD"] S8["Ступень 8: приложения и агенты"] --> C7["Гл. 7: оценка, RAG, агент"] C7 --> C83["8.3 Search-R1, 8.4 ReTool"] C81 --> C83
| Когда в курсе | Что читать в книге | Зачем |
|---|---|---|
| Модули 4.1–4.3 | глава 1 | обзор истории NLP и представлений текста перед вниманием |
| Модули 4.4–4.5 | главы 2 и 3 | вторая версия Transformer с кодом; обзор семейств моделей |
| Модуль 5.1 | глава 4 | что изменилось с переходом к LLM, этапы обучения |
| Модуль 5.6 | глава 5 | параллельный проект к MiniMind: та же архитектура, подробнее теория |
| Модули 6.1–6.2 | глава 6 | переход от самописного кода к Transformers, DeepSpeed и peft |
| Модуль 6.3 | дополнение 6.4 | короткое введение в модель награды |
| Модуль 6.4 | разделы 8.1 и 8.2 | GRPO и on-policy дистилляция в коде, как в настоящем RL-фреймворке |
| Модуль 7.3 | раздел 7.1 | обзор бенчмарков и рейтингов (с нашими поправками) |
| Модули 8.1–8.3 | разделы 7.2 и 7.3 | RAG и агент с нуля, без фреймворков |
| Урок 8.3.4 | разделы 8.3 и 8.4 | как учат агентов искать и писать код |
Перевод: «Предисловие»
Заголовок раздела «Перевод: «Предисловие»»Полный перевод файла предисловия из папки docs/ репозитория.
В конце 2022 года появление ChatGPT изменило представления людей об искусственном интеллекте и принесло поэтапную революцию в обработку естественного языка (Natural Language Process, NLP): большие языковые модели (Large Language Model, LLM) во главе с серией GPT стали главным направлением исследований в NLP и во всём искусственном интеллекте. С 2023 года и по сей день LLM остаются центральной темой в области ИИ и вызывают одну технологическую волну за другой.
На самом деле LLM — производный результат классического метода NLP, предобученных языковых моделей (Pretrain Language Model, PLM). NLP занимается обработкой, пониманием и порождением текстов на естественном языке, написанных людьми, и с момента появления пережила несколько революций: этап символизма, этап статистического обучения, этап глубокого обучения, этап предобученных моделей и нынешний этап больших моделей. PLM во главе с GPT и BERT — главный исследовательский результат предыдущего этапа NLP: архитектура на механизме внимания и идея этапов «предобучение — дообучение», с самообучением на огромных массивах неразмеченного текста, дали сильные способности к пониманию естественного языка. Однако классические PLM всё ещё зависят от определённого количества размеченных данных для дообучения под конкретные задачи, а в задачах порождения текста их качество оставляло желать лучшего; до общего искусственного интеллекта, которого от NLP-систем ждали люди, было ещё далеко.
LLM — прорывной результат, полученный на базе PLM за счёт многократного увеличения числа параметров модели и объёма данных предобучения, а также дообучения на инструкциях, обучения с подкреплением на обратной связи от людей и других приёмов. В отличие от классических PLM, у LLM есть эмерджентные способности: сильное обучение в контексте, понимание инструкций и порождение текста. На этапе больших моделей исследователи NLP могут в определённой мере отказаться от масштабной разметки данных: получив лишь несколько размеченных примеров, LLM достигает в заданной задаче качества, сравнимого с PLM, дообученной на большом объёме данных. А сильные способности к пониманию инструкций и порождению текста позволяют LLM прямо, эффективно и точно отвечать на запросы пользователя — то есть по-настоящему приближаться к цели общего искусственного интеллекта.
Прорыв LLM разжёг интерес к исследованиям в NLP и во всём ИИ: университеты, исследовательские институты, крупные компании в Китае и за рубежом и даже множество компаний из традиционных отраслей включились в волну исследований LLM. С 2023 года и до сих пор результаты появляются один за другим, качество моделей постоянно обновляет рекорды: от первого ChatGPT к GPT-4, затем к рассуждающим моделям во главе с DeepSeek-R1, мультимодальным моделям во главе с Qwen-VL — моделям всё более мощным и всё более специализированным. Постоянно появляются и приложения LLM, которые реально повышают производительность и помогают людям в жизни: от «войны ста моделей» до «первого года агентов». Исследования базовых LLM, возможно, уже пришли к устойчивой расстановке сил, но изучение LLM в целом по-прежнему в самом разгаре. Можно уверенно сказать: в не таком уж далёком будущем LLM и приложения на их основе станут для людей базовой инфраструктурой, неотделимой от жизни, учёбы и работы каждого.
На этом фоне глубокое понимание принципов LLM и умение своими руками применить и обучить любую LLM крайне важны для каждого исследователя NLP и для исследователей ИИ из других областей. В конце 2023 года мы создали два оригинальных открытых учебника по большим моделям — self-llm («Руководство по использованию открытых больших моделей»: https://github.com/datawhalechina/self-llm) и llm-universe («Разработка приложений на больших моделях своими руками»: https://github.com/datawhalechina/llm-universe). Первый даёт разработчикам единое руководство по развёртыванию, выводу и дообучению открытых LLM, второй учит строить своё приложение на LLM с нуля. Оба учебника помогли множеству разработчиков в Китае и за рубежом и получили широкую поддержку и признание; из отзывов учащихся мы поняли, что пока нет полного учебника, который с нуля объясняет принципы LLM и ведёт учащегося к тому, чтобы своими руками собрать и обучить LLM.
Поэтому мы и написали этот учебник, соединяющий принципы LLM и практику. Книга начинается с базовых методов исследований в NLP и, следуя логике и принципам LLM, слой за слоем углубляется, по очереди разбирая для читателя архитектурные основы LLM и процесс обучения. Одновременно мы на самых популярных сегодня фреймворках покажем, как своими руками собрать и обучить LLM, — чтобы дать не только рыбу, но и удочку. Надеемся, что с этой книги читатель войдёт в безбрежный мир LLM и откроет для себя их бесконечные возможности.
Советы читателю
Заголовок раздела «Советы читателю»Книга содержит теоретические основы LLM, объяснение принципов и практические проекты: разбор ключевых идей LLM и NLP, разбор формул и практику с кодом. Её цель — помочь разработчикам глубоко понять и освоить базовые принципы и применение LLM. Поэтому книга подходит студентам, исследователям и любителям LLM. Перед чтением нужен некоторый опыт программирования, особенно знакомство с языком Python. Желательно также знать основы глубокого обучения и понятия и термины NLP — так читать будет легче.
Книга делится на две части — базовые знания и практическое применение. Главы 1–4 — базовая часть, от простого к сложному она объясняет базовые принципы LLM. Глава 1 кратко знакомит с основными задачами и развитием NLP — для исследователей не из NLP; глава 2 объясняет базовую архитектуру LLM — Transformer, включая принципы и реализацию в коде, — это важнейшая теоретическая основа LLM; глава 3 даёт общий обзор классических PLM трёх архитектур — Encoder-Only, Encoder-Decoder и Decoder-Only — и заодно знакомит с архитектурами и идеями некоторых популярных LLM; глава 4 официально переходит к LLM и подробно рассказывает об их особенностях, способностях и общем процессе обучения. Главы 5–7 — практическая часть, она шаг за шагом ведёт читателя в низкоуровневые детали LLM. Глава 5 ведёт читателя к тому, чтобы на уровне PyTorch своими руками собрать LLM и пройти весь путь предобучения и дообучения с учителем; глава 6 вводит популярный в индустрии фреймворк обучения LLM Transformers и показывает, как на нём быстро и эффективно обучить LLM; глава 7 рассказывает о различных приложениях на основе LLM и дополняет картину системы LLM: оценка LLM, генерация с дополнением найденным (Retrieval-Augmented Generation, RAG), идеи и простая реализация агентов (Agent). Можно выборочно читать главы по своим интересам и потребностям.
Читая книгу, совмещайте теорию с практикой. LLM — быстро развивающаяся область, где важна практика; советуем больше заниматься практикой, воспроизводить весь код из книги и активно участвовать в проектах и соревнованиях по LLM — по-настоящему влиться в волну разработки LLM. Советуем следить за Datawhale и другими открытыми сообществами по LLM; если возникнут проблемы, вы всегда можете задать вопрос в сообществе Datawhale. Datawhale и дальше будет следить за развитием LLM и других технологий искусственного интеллекта — будем рады, если вы подпишетесь на нас или присоединитесь к совместному развитию сообщества Datawhale.
Наконец, мы приглашаем каждого читателя после этой книги присоединиться к рядам разработчиков LLM. Как китайское открытое сообщество ИИ, мы хотим собрать как можно больше соавторов, чтобы вместе обогатить мир открытых LLM и создать больше полных учебников по LLM с собственным лицом. Из искр складывается море огня. Мы хотим стать лестницей между LLM и широкой публикой и в духе свободы и равенства открытого кода принять ещё более величественный и широкий мир LLM.
Спасибо, что выбрали эту книгу, приятного чтения!
Примечание переводчика. Предисловие писалось до главы 8 и описывает практику как главы 5–7. В README репозитория книга уже названа восьмиглавой: «главы 5–8 — практическая часть», а глава 8 описана как «GRPO, OPD и две практики Agentic RL — Search-R1 и ReTool». README также добавляет, что книга подходит «студентам, исследователям и любителям LLM», и предлагает задавать вопросы в разделе issues репозитория.
Перевод: «Подготовка к учёбе и окружение»
Заголовок раздела «Перевод: «Подготовка к учёбе и окружение»»Полный перевод файла «Подготовка к учёбе и окружение» из папки docs/ репозитория.
Happy-LLM — это прежде всего чтение учебника, а практика с кодом — дополнение к нему. Чтобы снизить конфликты окружений, рекомендуем готовить зависимости отдельно для каждой главы, а не ставить всё в одно окружение.
Глава 8 использует PyTRIO для удалённого сэмплирования модели, прямого и обратного проходов и обновления параметров; локальная программа отвечает за обработку данных, поисковую среду, среду выполнения кода и управление обучением. Поэтому главу 8 можно изучать и пробно запускать на CPU-машине с доступом в интернет, но нужны аккаунт TRIO, стабильное сетевое соединение и доступный баланс.
1. Советы по чтению и практике
Заголовок раздела «1. Советы по чтению и практике»- Главы 1–4 в основном о принципах: сначала полностью прочитайте текст, затем выборочно воспроизведите код.
- Главы 5–8 в основном практические: изучайте их вместе с текстом главы, папкой с кодом и соответствующими зависимостями.
- Если ресурсы вашего компьютера ограничены, в первую очередь воспроизведите самописную реализацию главы 5 и в главе 6 — обработку данных и отладку на одной видеокарте.
- В главе 8 сначала запустите синхронные версии GRPO и OPD, а затем переходите к многофайловым проектам Agentic RL — Search-R1 и ReTool.
2. Окружение по главам
Заголовок раздела «2. Окружение по главам»| Глава | Основное содержание | Файл зависимостей | Рекомендуемое железо |
|---|---|---|---|
| Глава 2. Архитектура Transformer | самописная реализация Transformer | ./chapter2/code/requirements.txt | CPU или одна GPU |
| Глава 5. Строим большую модель своими руками | самописные LLaMA2, токенизатор, предобучение и SFT | ./chapter5/code/requirements.txt | одна GPU, часть шагов можно сначала отладить на CPU |
| Глава 6. Практика обучения больших моделей | обучение с Transformers, DeepSpeed, PEFT | ./chapter6/code/requirements.txt | желательно несколько GPU, минимум — начать с малой выборки и одной карты |
| Глава 7. Приложения — RAG | генерация с дополнением найденным | ./chapter7/RAG/requirements.txt | можно попробовать на CPU, для векторного поиска лучше оставить больше памяти |
| Глава 7. Приложения — Agent | агенты и вызов инструментов | ./chapter7/Agent/requirements.txt | можно попробовать на CPU, доступ в сеть — по нуждам конкретных инструментов |
| Глава 8. Agentic-RL | GRPO, OPD, Search-R1, ReTool | ./chapter8/requirements.txt | достаточно локального CPU и стабильной сети; нужен аккаунт TRIO, для ReTool — изолированная среда выполнения |
3. Общие шаги подготовки
Заголовок раздела «3. Общие шаги подготовки»Для глав 2–7 лучше всего Python 3.10 или 3.11; код главы 8 использует Python 3.13 и фиксирует версии PyTRIO и других
зависимостей в ./chapter8/requirements.txt. Создайте отдельное виртуальное окружение для каждой главы. Для главы 6,
например, так:
python -m venv .venvsource .venv/bin/activatepip install --upgrade pippip install -r ./docs/chapter6/code/requirements.txtДля других глав замените файл зависимостей в последней строке на requirements.txt нужной главы.
4. Быстрый старт для главы 6
Заголовок раздела «4. Быстрый старт для главы 6»Основной текст главы 6 сосредоточен на трёх линиях — Pretrain, SFT и эффективное дообучение; читайте его вместе
с ./chapter6/readme.md. Папка с кодом — ./chapter6/code.
Рекомендуемый порядок практики:
- Сначала прочитайте
./chapter6/readme.md, чтобы понять модель, данные и точки входа скриптов. - Скачайте исходную модель скриптом
./chapter6/code/download_model.py. - Скачайте или подготовьте обучающие данные скриптом
./chapter6/code/download_dataset.py. - Сначала отладьте на малой выборке
./chapter6/code/pretrain.pyили./chapter6/code/finetune.py. - И только потом проведите полное обучение с
./chapter6/code/pretrain.shи./chapter6/code/finetune.sh.
Учтите, что путь autodl-tmp, номера видеокарт и параметры DeepSpeed в скриптах — примеры; перед настоящим запуском
настройте их под своё окружение.
Примечание переводчика. AutoDL — популярный в Китае сервис аренды GPU;
autodl-tmp— его папка для данных. На своей машине замените эти пути на свои.
5. Быстрый старт для главы 8
Заголовок раздела «5. Быстрый старт для главы 8»Основной текст главы 8 — в markdown-файле главы «Обучение больших моделей с подкреплением» в папке ./chapter8/, общие зависимости — в ./chapter8/requirements.txt.
Все команды ниже нужно выполнять из корня репозитория Happy-LLM.
О стоимости: PyTRIO выполняет сэмплирование и обучение модели удалённо и берёт плату по фактическому использованию. При первом запуске оставьте настройки из README каждого примера — один шаг, маленький batch и короткие траектории, — убедитесь, что вся цепочка работает, и только потом увеличивайте масштаб эксперимента.
О безопасности: ReTool выполняет на локальной машине код Python, сгенерированный моделью. Сопутствующий
sandbox.pyможет ограничить лишь часть ресурсов и не обеспечивает надёжной изоляции. Используйте одноразовый контейнер, виртуальную машину с минимальными правами или специальный сервис-песочницу и уберите из окружения API-ключи, настройки SSH и учётные данные облачных сервисов.
5.1 Создаём отдельное окружение
Заголовок раздела «5.1 Создаём отдельное окружение»Для главы 8 рекомендуем отдельное окружение на Python 3.13:
uv venv --python 3.13source .venv/bin/activateuv pip install -r docs/chapter8/requirements.txtЕсли uv ещё не установлен, сначала выполните python -m pip install --upgrade uv. В Windows PowerShell окружение
активируется командой .\.venv\Scripts\Activate.ps1. После установки можно проверить зафиксированную в главе версию
PyTRIO:
python -c "from importlib.metadata import version; print(version('pytrio'))"5.2 Входим и проверяем соединение
Заголовок раздела «5.2 Входим и проверяем соединение»Войдите в TRIO и прочитайте список моделей, которые поддерживает сервис сейчас:
trio loginpython -c "import pytrio as trio; print(trio.ServiceClient().get_supported_models())"Если список моделей печатается, значит установка PyTRIO, авторизация и сеть в порядке. swanlab login нужен, только
если вы хотите вести журнал экспериментов онлайн; параметр --swanlab-mode disabled из примеров позволяет сначала
отключить удалённый журнал. При проблемах с установкой или входом смотрите
официальный быстрый старт PyTRIO.
5.3 Рекомендуемый порядок практики
Заголовок раздела «5.3 Рекомендуемый порядок практики»| Модуль | С чего начать | Что подготовить дополнительно |
|---|---|---|
| GRPO | ./chapter8/grpo/README.md | сначала пробный шаг синхронной версии; GSM8K скачается при первом запуске |
| OPD | ./chapter8/opd/README.md | сначала один фрагмент DeepMath; убедиться, что модели Student и Teacher сейчас доступны |
| Search-R1 | ./chapter8/search-r1/README.md | сначала подготовить данные и проверить многоходовой поиск на бэкенде Wikipedia, которому не нужен API Key |
| ReTool | ./chapter8/retool/README.md | сначала подготовить данные и изолированную среду выполнения, потом запустить один шаг PPO |
Основной текст подробно разбирает синхронные версии GRPO и OPD; асинхронные версии сохраняют те же алгоритмы и выравнивание данных. Search-R1 и ReTool разбиты на многофайловые проекты по слоям: данные, протокол, среда, rollout, обучение и оценка. Если хотите изучать дальше другие алгоритмы и эксперименты Agentic RL, читайте постоянно обновляемый автором репозиторий agentic-rl-lab: он обновляется быстрее и будет пополняться новым кодом обучения и журналами практики.
6. Частые вопросы
Заголовок раздела «6. Частые вопросы»6.1 Почему нет общего файла зависимостей в корне?
Заголовок раздела «6.1 Почему нет общего файла зависимостей в корне?»Проект охватывает всю цепочку — от реализации принципов к фреймворкам обучения и дальше к приложениям RAG и Agent, — и зависимости разных глав сильно различаются. Раздельные зависимости по главам уменьшают конфликты версий и лучше подходят для учебного формата.
6.2 Можно ли изучать главу 6 без нескольких GPU?
Заголовок раздела «6.2 Можно ли изучать главу 6 без нескольких GPU?»Можно. Сначала прочитайте текст и поймите процесс обучения, затем отладьте обработку данных и скрипты обучения на малой выборке, меньшем batch size или одной карте. Даже если полностью воспроизвести обучение на нескольких картах не получится, общий подход вы всё равно освоите.
6.3 Нужна ли для главы 8 локальная GPU?
Заголовок раздела «6.3 Нужна ли для главы 8 локальная GPU?»Нет. Сэмплирование модели, вычисление logprob, прямой и обратный проходы LoRA и обновление параметров в главе 8 выполняет PyTRIO удалённо. Локальная машина нужна для обработки данных и взаимодействия со средой; Search-R1 зависит от поиска в интернете, а ReTool ещё и требует безопасно изолированной среды выполнения кода.
6.4 С какой главы лучше начинать практику?
Заголовок раздела «6.4 С какой главы лучше начинать практику?»Если вам ближе понимание низкоуровневой реализации, начните с главы 5; если вас больше интересуют популярные в индустрии фреймворки обучения, сначала прочитайте основы — главы 1–4, а потом переходите к главам 6 и 7. К главе 8 о Agentic RL переходите после основ обучения с подкреплением и агентов и практикуйтесь в порядке GRPO, OPD, Search-R1, ReTool.
Перевод: «Пояснения к практике главы 6»
Заголовок раздела «Перевод: «Пояснения к практике главы 6»»Полный перевод файла docs/chapter6/readme.md.
Глава 6 посвящена тому, как провести обучение большой модели в экосистеме Transformers. Основная линия текста — три части: Pretrain, SFT и PEFT; глава служит мостом от самописной реализации модели к промышленным фреймворкам обучения.
1. Что входит в главу
- Основной текст главы 6: фреймворк обучения, обработка данных, Trainer, DeepSpeed, LoRA/QLoRA и другие ключевые темы.
- Дополнение 6.4 о выравнивании предпочтений: материал для дальнейшего чтения после основного текста.
code/: папка с кодом главы — скачивание данных, предобучение, SFT, пример конфигурации DeepSpeed.
2. Рекомендуемый порядок
- Прочитайте раздел 6.1 «Предобучение модели», чтобы понять основы Transformers, Trainer и DeepSpeed.
- Прочитайте раздел 6.2 «Дообучение с учителем» и сравните, чем Pretrain и SFT различаются в построении данных и вычислении loss.
- Прочитайте раздел 6.3 «Эффективное дообучение», чтобы освоить идеи LoRA/QLoRA и подключение
peft. - После этого читайте дополнение о выравнивании предпочтений, чтобы составить полное представление о пути от SFT к Post-Training.
3. Точки входа в код
code/download_model.py: скачать исходную модель.code/download_dataset.py: скачать или подготовить обучающие данные.code/pretrain.py: скрипт предобучения.code/finetune.py: скрипт дообучения с учителем.code/pretrain.sh: пример запуска предобучения через DeepSpeed.code/finetune.sh: пример запуска дообучения через DeepSpeed.code/ds_config_zero2.json: файл конфигурации DeepSpeed.
4. Окружение
- Файл зависимостей:
code/requirements.txt. - Рекомендуемая версия Python: 3.10 или 3.11.
- Рекомендуемое железо: несколько GPU; при ограниченных ресурсах сначала отладьте обработку данных и процесс обучения на малой выборке или одной карте.
Окружение можно подготовить по разделу «Подготовка к учёбе и окружение» выше.
5. Практические советы
5.1 Сначала проложите пути, потом наращивайте масштаб. autodl-tmp, номера видеокарт, batch size и выходные
каталоги в скриптах — примеры настроек. Сначала замените пути к модели, данным и результатам на реальные локальные,
затем проверьте процесс на малой выборке.
5.2 Сначала поймите данные, потом запускайте обучение. И в Pretrain, и в SFT формат данных прямо определяет результат обучения. Прочитайте раздел текста об обработке данных и перед запуском распечатайте 1–2 примера для проверки.
5.3 Выравнивание предпочтений — тема для продвинутых. Основной текст главы 6 уже покрывает ключевую линию обучения. Если хотите глубже понять RLHF, DPO, KTO и модели награды, после основного текста читайте дополнение о выравнивании предпочтений; не обязательно осваивать все детали пост-обучения с первого раза.
Дополнительные главы (Extra Chapter)
Заголовок раздела «Дополнительные главы (Extra Chapter)»В репозитории есть папка Extra-Chapter — блог-заметки сообщества, которые не входят в основной учебник. По правилам
папки каждая заметка лежит в своём каталоге с readme.md, кодом и, если есть код, ноутбуком. Мы их не переводили;
краткое содержание — чтобы понять, стоит ли читать оригинал.
| Заметка | Автор, дата | О чём | К какому уроку |
|---|---|---|---|
| «Зачем дообучать модель на 0,6B, если большие модели так сильны?» | Сун Чжисюэ (KMnO4-zx), 11.07.2025 | когда выгоднее своя маленькая модель, чем API: конфиденциальность, простые задачи, высокая нагрузка; пример дообучения с ноутбуком | 6.2.2 |
| «Разбор устройства модулей Transformer» | ditingdapeng, 14.07.2025 | дополнение к разделу 2.2: энкодер, декодер, позиционное кодирование с опорой на исходники PyTorch | 4.5.1 |
| «Обработка текстовых данных подробно» | Цай Юньцзе, 14.07.2025 | эмбеддинги слов, токенизация, номера токенов, служебные токены, BPE, нарезка обучающих примеров скользящим окном, позиционные эмбеддинги — с кодом | 4.2.3, 4.3.1 |
| «Qwen3-”VL”: сборка сверхмаленькой китайской мультимодальной модели склейкой и дообучением» | ShaohonChen, 30.07.2025 | визуальный модуль SmolVLM2 (0,09B) присоединяют к самой маленькой Qwen3 (0,6B) и дообучают на датасете the_cauldron; журналы SwanLab; для обучения нужна GPU от 40 ГБ | 9.1.1 |
| S1: Thinking Budget with vLLM — «S1: бюджет размышлений в vLLM» | Сун Чжисюэ (KMnO4-zx), 03.08.2025 | разбор статьи «s1: Simple test-time scaling» и реализация «бюджета размышлений» на vLLM: если модель хочет закончить рассуждение раньше бюджета, ей дописывают «Wait» | 6.4.4 |
| «CDDRS: RAG-поиск, усиленный мелкозернистой семантикой» | Hongru0306, 21.08.2025 | RAG для проверки строительной документации: динамическая смысловая нарезка и поиск по фрагментам запроса | 8.2.2 |
| «Какими способами модель генерирует токены?» | Сун Чжисюэ (KMnO4-zx), 17.10.2025 | жадное декодирование, сэмплирование с температурой, top-k, top-p и другие способы с кодом; код перенесён в главу 5 | 4.1.3 |
Где ещё искать
Заголовок раздела «Где ещё искать»- Автор главы 8 ведёт репозиторий agentic-rl-lab с OPSD, DAPO, GSPO, ALFWorld и журналами экспериментов — продолжение главы 8.
- Другие книги Datawhale из предисловия: self-llm (рецепты развёртывания и дообучения открытых моделей) и llm-universe (приложения на LLM с нуля). Минимальные «прозрачные» реализации TinyRAG, TinyAgent и других — в tiny-universe.
- Параллельный проект в курсе — MiniMind, модуль 5.6: та же LLaMA-подобная архитектура, что в главе 5, но дальше в сторону RL.
Словарик
Заголовок раздела «Словарик»| English | Русский |
|---|---|
| building an LLM from scratch | строим большую модель с нуля |
| pretrained language model, PLM | предобученная языковая модель |
| large language model, LLM | большая языковая модель |
| emergent abilities | эмерджентные способности |
| in-context learning | обучение в контексте |
| instruction tuning | дообучение на инструкциях |
| RLHF | обучение с подкреплением на обратной связи от людей |
| «war of a hundred models» | «война ста моделей» |
| agent | агент |
| virtual environment | виртуальное окружение |
| dependencies | зависимости |
| sandbox | песочница |