Skip to main content

Build A Reasoning Model (From Scratch)

This repository contains the code for developing an LLM reasoning model and is the official code repository for the book Build a Reasoning Model (From Scratch).



(Printed in color.)


In Build a Reasoning Model (From Scratch), you will learn and understand how a reasoning large language model (LLM) works.

Reasoning is one of the most exciting and important recent advances in improving LLMs, but it’s also one of the easiest to misunderstand if you only hear the term reasoning and read about it in theory. This is why this book takes a hands-on approach. We will start with a pre-trained base LLM and then add reasoning capabilities ourselves, step by step in code, so you can see exactly how it works.

The methods described in this book walk you through the process of developing your own small-but-functional reasoning model for educational purposes. It mirrors the approaches used in creating large-scale reasoning models such as DeepSeek R1, GPT-5 Thinking, and others. In addition, this book includes code for loading the weights of existing, pretrained models.



To download a copy of this repository, click on the Download ZIP button or execute the following command in your terminal:

git clone --depth 1 https://github.com/rasbt/reasoning-from-scratch.git

Tip: Chapter 2 provides additional tips on installing Python, managing Python packages, and setting up your coding environment.



Table of Contents (In Progress)

Code tests Linux Code tests macOS Code tests Windows

Chapter Title Main Code
Ch 1: Understanding reasoning Models No code
Ch 2: Generating Text with a Pre-trained LLM - ch02_main.ipynb
- ch02_exercise-solutions.ipynb
Ch 3: Evaluating Reasoning Models - ch03_main.ipynb
- ch03_exercise-solutions.ipynb
Ch 4: Improving Reasoning with Inference-Time Scaling - ch04_main.ipynb
- ch04_exercise-solutions.ipynb
Ch 5: Inference-Time Scaling via Self-Refinement - ch05_main.ipynb
- ch05_exercise-solutions.ipynb
Ch 6: Training Reasoning Models with Reinforcement Learning - ch06_main.ipynb
- ch06_exercise-solutions.ipynb
Ch 7: Improving GRPO for Reinforcement Learning - ch07_main.ipynb
- ch07_exercise-solutions.ipynb
Ch 8: Distilling Reasoning Models for Efficient Reasoning - ch08_main.ipynb
- ch08_exercise-solutions.ipynb
Appendix A: References and Further Reading No code
Appendix B: Exercise Solutions Code and solutions are in each chapter's subfolder
Appendix C: Qwen3 LLM Source Code - chC_main.ipynb
Appendix D: Using larger LLMs - chD_main.ipynb
Appendix E: Batching and throughput-oriented execution - chE_main.ipynb
Appendix F: Common Approaches to LLM Evaluation - chF_main.ipynb
Appendix G: Building a Chat Interface - chG

 

The mental model below summarizes the main techniques covered in this book.


 

Companion Book

Please note that Build A Reasoning Model (From Scratch) is a standalone book focused on methods to improve LLM reasoning.

In this book, we work with a pre-trained open-source base LLM (Qwen3) on top of which we code apply reasoning methods from scratch. This includes inference-time scaling, reinforcement learning, and distillation.

However, if you are interested in understanding how a conventional base LLM is implemented, you may like my previous book, Build a Large Language Model (From Scratch).


 

Hardware Requirements

The code in the main chapters of this book is designed to mostly run on consumer hardware within a reasonable timeframe and does not require specialized server hardware. This approach ensures that a wide audience can engage with the material. Additionally, the code automatically utilizes GPUs if they are available. That being said, chapters 2-4 will work well on CPUs and GPUs. For chapters 5 and 6, it is recommended to use a GPU if you want to replicate the results in the chapter.

(Please see the setup_tips doc for additional recommendations.)

 

Exercises

Each chapter of the book includes several exercises. The solutions are summarized in Appendix B, and the corresponding code notebooks are available in the main chapter folders of this repository (for example, ch02/01_main-chapter-code/ch02_exercise-solutions.ipynb).

 

Bonus Material

Several folders contain optional materials as a bonus for interested readers:

 

Questions, Feedback, and Contributing to This Repository

For common problems, please see the Troubleshooting Guide.

I welcome all sorts of feedback, best shared via the Manning Discussion Forum or GitHub Discussions. Likewise, if you have any questions or just want to bounce ideas off others, please don't hesitate to post these in the forum as well.

Please note that since this repository contains the code corresponding to a print book, I currently cannot accept contributions that would extend the contents of the main chapter code, as it would introduce deviations from the physical book. Keeping it consistent helps ensure a smooth experience for everyone.

 

Citation

If you find this book or code useful for your research, please consider citing it.

Chicago-style citation:

Raschka, Sebastian. Build A Reasoning Model (From Scratch). Manning, 2025. ISBN: 9781633434677.

BibTeX entry:

@book{build-llms-from-scratch-book,
  author       = {Sebastian Raschka},
  title        = {Build A Reasoning Model (From Scratch)},
  publisher    = {Manning},
  year         = {2025},
  isbn         = {9781633434677},
  url          = {https://mng.bz/lZ5B},
  github       = {https://github.com/rasbt/reasoning-from-scratch}
}

Release files for reasoning-from-scratch 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for reasoning-from-scratch 0.2.0
File Size Uploaded
reasoning_from_scratch-0.2.0.tar.gz 79.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for reasoning-from-scratch 0.2.0
File Interpreter ABI Platform
reasoning_from_scratch-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 144.3 kB

Release files / reasoning_from_scratch-0.2.0.tar.gz

Download URL reasoning_from_scratch-0.2.0.tar.gz
Size 79.5 kB
Tags Source
SHA-256 checksum
How to use checksums
81e3255cbf7f3c14fe1c54f6d7ccc4b646c26eaae7137cfadfe9b9005ad4a078
BLAKE2b-256 checksum
How to use checksums
74d091b626cc493525b9451584a01bc8f311e36c2fa5f862544a89961879fcbc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / reasoning_from_scratch-0.2.0-py3-none-any.whl

Download URL reasoning_from_scratch-0.2.0-py3-none-any.whl
Size 64.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bce8f7cbce9a5eab626b66f88cca11b935cb335f7c2f76a87acc9a95e9ee6d4e
BLAKE2b-256 checksum
How to use checksums
d790acac3a6b12caaf7edecb89fe1f061046d8e5a3f5b57c3193f37e776d9ec8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.21

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page