reasoning-from-scratch

GitHub
4.1k 587 中等 1 次阅读 今天Apache-2.0图像语言模型开发框架Agent
AI 解读 由 AI 自动生成,仅供参考

reasoning-from-scratch 是一个基于 PyTorch 从零构建推理大语言模型(LLM)的开源教育项目,也是同名技术书籍的官方代码库。它旨在解决当前开发者对"AI 推理”概念理解抽象、难以掌握其底层实现逻辑的痛点。不同于直接调用现成 API,该项目引导用户从一个预训练的基础模型出发,通过一步步编写代码,亲手添加并优化推理能力,从而直观地揭示模型如何像人类一样进行逻辑思考。

该项目特别适合希望深入理解大模型内部机制的 AI 开发者、研究人员以及计算机专业学生。对于想要探究 DeepSeek R1 或 GPT-5 Thinking 等先进模型背后原理的技术人员,这里提供了极佳的实践路径。其独特的技术亮点在于“手把手”的教学模式:内容涵盖从基础文本生成、模型评估,到利用推理时缩放(Inference-Time Scaling)和自我修正(Self-Refinement)等前沿技术提升模型表现的全过程。所有代码均配有详细的 Jupyter Notebook 教程和习题解答,支持在 Linux、macOS 和 Windows 环境下运行,帮助用户在实战中真正吃透推理模型的构建细节。

使用场景

某 AI 教育团队计划开发一门关于“大模型推理机制”的实战课程,需要向学员清晰展示如何从零构建具备逻辑推导能力的模型。

没有 reasoning-from-scratch 时

  • 理论脱离实践:学员只能阅读抽象的论文公式,无法理解“思维链”在代码层面是如何具体落地和运作的。
  • 复现门槛极高:从头编写推理模型涉及复杂的 PyTorch 架构设计,讲师需耗费数周清洗和调试基础代码,难以保证教学进度。
  • 黑盒困惑:面对 DeepSeek R1 等成熟模型,学员仅能调用 API,完全无法洞察其内部“自我反思”与“推理缩放”的具体实现细节。
  • 缺乏对比基准:没有标准的基线模型和评估脚本,难以量化展示添加推理模块前后模型性能的直观差异。

使用 reasoning-from-scratch 后

  • 代码级透明教学:直接利用书中提供的分步代码,学员可逐行运行并观察预训练基座模型如何一步步被赋予逻辑推理能力。
  • 快速搭建环境:复用仓库中经过多平台(Linux/macOS/Windows)验证的完整工程代码,将课程准备时间从数周缩短至几天。
  • 深度机制拆解:通过第 4、5 章的实战案例,直观演示“推理时缩放”和“自我修正”技术如何显著提升模型解决数学难题的准确率。
  • 标准化评估体系:使用内置的评估脚本,即时生成数据图表,清晰对比普通生成模式与推理模式在复杂任务上的表现差距。

reasoning-from-scratch 将高深的推理模型原理转化为可执行、可修改的代码实验,让开发者真正看透大模型“思考”的本质。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU
  • 非必需
  • 第 2-4 章可在 CPU 或 GPU 上运行
  • 第 5-6 章复现结果推荐使用 GPU
  • 具体型号、显存大小及 CUDA 版本未说明
内存

未说明

依赖
notes代码旨在消费级硬件上运行,无需专用服务器。若有 GPU 会自动利用。详细的环境设置(Python 安装、包管理)请参考第 2 章或仓库内的 setup_tips 文档。基础模型使用 Qwen3。
python未说明 (README 指引参考 ch02 中的安装指南)
torch
transformers
reasoning-from-scratch hero image

快速开始

构建一个推理模型(从零开始)

本仓库包含开发 LLM 推理模型的代码,也是书籍 构建一个推理模型(从零开始) 的官方代码库。



(彩色印刷。)


构建一个推理模型(从零开始) 中,你将学习并理解推理型大语言模型(LLM)的工作原理。

推理是近年来提升 LLM 性能最令人兴奋且最重要的进展之一,但如果你只是听过“推理”这个词并在理论上读到相关介绍,也最容易产生误解。因此,本书采取了动手实践的方式。我们将从一个预训练的基础 LLM 开始,然后一步步通过代码为其添加推理能力,让你能够清楚地看到其具体实现过程。

本书中介绍的方法会引导你完成一个小型但功能完整的推理模型的开发,用于教学目的。它与 DeepSeek R1、GPT-5 Thinking 等大规模推理模型的构建方法相呼应。此外,本书还包含了加载现有预训练模型权重的代码。



要下载本仓库的副本,请点击 Download ZIP 按钮,或在终端中执行以下命令:

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

提示: 第 2 章提供了关于安装 Python、管理 Python 包以及搭建编程环境的更多建议。



目录(持续更新中)

Linux 代码测试 macOS 代码测试 Windows 代码测试

章节标题 主要代码
第 1 章:理解推理模型 无代码
第 2 章:使用预训练 LLM 生成文本 - ch02_main.ipynb
- ch02_exercise-solutions.ipynb
第 3 章:评估推理模型 - ch03_main.ipynb
- ch03_exercise-solutions.ipynb
第 4 章:通过推理时缩放提升推理能力 - ch04_main.ipynb
- ch04_exercise-solutions.ipynb
第 5 章:通过自我精炼进行推理时缩放 - ch05_main.ipynb
- ch05_exercise-solutions.ipynb
第 6 章:用强化学习训练推理模型 - ch06_main.ipynb
- ch06_exercise-solutions.ipynb
第 7 章:改进强化学习中的 GRPO - ch07_main.ipynb
- ch07_exercise-solutions.ipynb
第 8 章:蒸馏推理模型以实现高效推理 - ch08_main.ipynb
- ch08_exercise-solutions.ipynb
附录 A:参考文献及延伸阅读 无代码
附录 B:习题解答 每章子文件夹中均包含代码和解答
附录 C:Qwen3 LLM 源代码 - chC_main.ipynb
附录 D:使用更大的 LLM - chD_main.ipynb
附录 E:批处理与吞吐量导向的执行 - chE_main.ipynb
附录 F:LLM 评估的常见方法 - chF_main.ipynb
附录 G:构建聊天界面 - chG

 

下图总结了本书涵盖的主要技术。


 

配套书籍

请注意,《构建一个推理模型(从零开始)》是一本独立的书籍,专注于提升 LLM 推理能力的方法。

在本书中,我们基于一个预训练的开源基础 LLM(Qwen3),从零开始编写代码来应用各种推理方法,包括推理时缩放、强化学习和模型蒸馏等。

然而,如果你对传统基础 LLM 的实现方式感兴趣,可能会喜欢我的另一本书《构建一个大语言模型(从零开始)》(Build a Large Language Model (From Scratch))。


 

硬件要求

本书主要章节中的代码设计为在消费级硬件上以合理的时间范围内运行为主,无需专门的服务器硬件。这种做法确保了广泛的读者群体能够参与学习和实践。此外,如果系统中存在 GPU,代码会自动利用 GPU 进行加速。不过,第 2 至 4 章在 CPU 和 GPU 上均可良好运行。而对于第 5 和第 6 章,若希望复现书中结果,建议使用 GPU。

(更多建议请参阅 setup_tips 文档。)

 

练习题

本书每章都包含若干练习题。答案汇总于附录 B,相应的代码笔记本则位于本仓库各主章节文件夹中(例如,ch02/01_main-chapter-code/ch02_exercise-solutions.ipynb)。

 

附加资料

多个文件夹中包含了供感兴趣读者参考的可选材料:

 

问题、反馈及对本仓库的贡献

如遇常见问题,请参阅 故障排除指南

我欢迎各种形式的反馈,最佳方式是通过 Manning 讨论论坛GitHub Discussions 提交。同样地,如果您有任何疑问或只是想与其他读者交流想法,也请随时在论坛中发帖。

请注意,由于本仓库包含与纸质书对应的代码,目前我无法接受任何会扩展主章节代码内容的贡献,因为这会导致与实体书的内容产生偏差。保持一致性有助于为所有用户提供顺畅的学习体验。

 

引用

如果您在研究中发现本书或其中的代码有所帮助,请考虑引用它。

芝加哥格式引用:

Raschka, Sebastian. 从零开始构建推理模型. Manning 出版社,2025 年。ISBN:9781633434677。

BibTeX 条目:

@book{build-llms-from-scratch-book,
  author       = {Sebastian Raschka},
  title        = {从零开始构建推理模型},
  publisher    = {Manning},
  year         = {2025},
  isbn         = {9781633434677},
  url          = {https://mng.bz/lZ5B},
  github       = {https://github.com/rasbt/reasoning-from-scratch}
}

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

160k|★★☆☆☆|今天
开发框架Agent语言模型

opencode

OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信

144.3k|★☆☆☆☆|2天前
Agent插件

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|今天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像