构建推理模型——理解推理模型

107 阅读23分钟

本章内容(This chapter covers)

  • LLM(Large Language Model,大语言模型) 语境下,“推理(reasoning) ”的确切含义
  • 推理与**模式匹配(pattern matching)**的区别
  • LLM 的常规训练流程:预训练(pre-training)后训练(post-training)
  • 提升 LLM 推理能力的关键方法
  • 为什么从零构建推理模型有助于更深入理解其优势、局限与实践取舍

欢迎来到大语言模型(LLM)的下一个阶段:推理(reasoning) 。LLM 彻底改变了我们处理与生成文本的方式,但其成功很大程度上源自统计式的模式识别。如今,推理方法的进展已使 LLM 能处理更复杂的任务,例如逻辑难题与涉及多步运算的高等数学题。重要的是,推理并非纯学术追求,它还是让“Agentic AI(具备主体性/代理能力的 AI) ”落地的核心技术。理解推理方法论,是本书的中心主题。

《Build a Reasoning Model (From Scratch)》 中,你将通过动手、以代码为先的方式学习 LLM 推理方法的内部机理。我们将从一个已预训练的 LLM 出发,逐步扩展其推理能力。这些推理组件将由我们从零实现,以观察其在实践中如何工作。

如果你对 LLM 是如何被构建与训练感兴趣,我在 Manning 出版社的前作 《Build a Large Language Model (From Scratch)》mng.bz/orYv)对这些基础有详尽讲解,但并非阅读本书的前置要求。读完本书后,你将理解推理模型的工作原理,并具备设计、原型实现与评估提升 LLM 推理能力主流方法的能力。

本书以实用应用与解释为重,面向 LLM 工程师、机器学习研究者、应用科学家与软件开发者

本章首先介绍基础概念;自下一章起,我们将转向实践性更强的上机示例,直接实现 LLM 的推理技术。

1.1 在 LLM 语境下定义“推理”(Defining reasoning in the context of LLMs)

什么是基于 LLM 的推理?仅这个问题与其讨论就足以写成另一本书。不过,那会是一部偏概念争鸣的著作,而本书是实操与编码导向,聚焦于从零实现 LLM 推理方法。尽管如此,我认为简要定义我们在 LLM 语境下所指的“推理”仍非常重要。

因此,在进入接下来各章的编码部分之前,本节将先界定 LLM 语境下的推理,并简述其与模式匹配逻辑推理的关系。这将为后续讨论打下基础:LLM 目前如何构建、如何处理推理任务、擅长与不擅长何处。

本书对 LLM 推理的定义如下:

在 LLM 语境中,推理指模型在给出最终答案之前,能够先产出中间步骤的能力。
这通常被称为 Chain-of-Thought(CoT,思维链) 推理。在 CoT 推理中,LLM 会显式生成一系列结构化的陈述或计算步骤,以展示它如何得到结论。

图 1.1 展示了 LLM 进行多步(CoT)推理的一个简单示例。

image.png

图 1.1 LLM 处理多步推理任务的简化示意。模型不只是回忆一个事实,而是需要组合若干中间推理步骤以得到正确结论。是否向用户展示这些中间步骤,取决于具体实现。

LLM 生成的中间推理步骤(见图 1.1)看起来很像人把内在思考“说出来”。然而,这些方法(以及由此产生的推理过程)与人类推理到底有多接近,仍是一个开放的研究问题,本书并不试图回答。甚至,这个问题是否能被定论都未可知。

需要强调的是,尽管图 1.1 代表了典型的 CoT 推理LLM 推理不同于传统的确定性推理。例如,符号逻辑引擎定理证明器遵循严格的规则化步骤,保证一致性与正确性;相对地,LLM 以自回归方式生成推理:基于训练数据中的统计模式逐 token 预测。因此,即便这些“推理步骤”看起来言之成理,也不保证逻辑正确

本书聚焦于解释与实现那些提升 LLM 推理能力基础技术,从而让 LLM 更好地处理复杂任务。希望通过亲手实践这些方法,你能更好地理解与改进正在发展的推理技术,甚至探索它们与人类推理的比较。

LLM 与人类推理(LLM VERSUS HUMAN REASONING)

LLM 的推理过程在表面形式上或许与人类思维相似,尤其是在中间步骤的呈现方式上。但关键差异在于:人类能够有意识地应用逻辑规则或在内在世界模型上进行确定性推理;而当前的 LLM 推理是概率式的,依据训练数据中的统计模式逐 token 生成,无法保证逻辑一致性。
人类常以对概念的有意识操控、对抽象关系的直觉把握、或从少量示例中举一反三来推理;LLM 则主要依赖大规模统计关联,而非显式的认知结构自觉反思。正如 Apple 的一项研究所强调的:The Illusion of Thinking: Understanding the Strengths and Limitations of Reasoning Models via the Lens of Problem Complexitymachinelearning.apple.com/research/il…)。 简言之,尽管增强推理的 LLM 输出可能看上去很像人类,但底层机制有根本差异,并且仍是一个活跃的探索领域。

1.2 了解标准的 LLM 训练流程(Understanding the standard LLM training pipeline)

本节简述常规(非推理特化)LLM 通常如何训练,从而理解它们的局限。这一背景也帮助我们为将要讨论的模式匹配 vs 逻辑推理做铺垫。
在应用任何具体推理方法之前,传统 LLM 训练一般分为两个阶段:预训练(pre-training)后训练(post-training) ,见图 1.2

image.png

图 1.2 典型 LLM 训练管线概览。流程以随机权重初始化的模型为起点,随后在海量文本上进行预训练,通过下一 token 预测学习语言模式;再经由后训练指令微调(instruction fine-tuning)偏好微调(preference fine-tuning) ,使模型更好地遵循指令对齐人类偏好

在典型 LLM 训练管线的预训练阶段(见图 1.2),LLM 会在海量(数 TB 级)无标注文本上训练,这些文本来源于书籍、网站、研究论文等。其目标是预测下一词/下一 token

WORDS AND TOKENS

Token 是 LLM 处理的最小文本单元。取决于 tokenizer 的切分方式,一个 token 可以是完整单词词的一部分,甚至是标点
例如,句子 “An LLM can be useful.” 可能会被某些 tokenizer 切分为 "An", " L", "LM", " can", " be", " useful", "."。随后这些 token 会被映射为模型可读的数值 ID
Tokenizer 并非 LLM 本体的一部分,但却是文本处理与生成流程中的关键组件。下一章我们会看到其实际工作方式。

当在数 TB 级数据(约 300–4000 亿 token)上预训练后,LLM 往往会变得极具能力:开始生成与人类相似的文本;并在一定程度上展现所谓涌现能力(emergent properties) ,如翻译代码生成并未显式训练的任务。
但这些预训练模型只是进入后训练阶段的基座:通过两大关键技术——监督微调(SFT,亦称指令微调 instruction tuning)偏好微调(preference tuning,常以 “人类反馈强化学习 RLHF” 实现) ——来教会 LLM 更好地回答用户问题,见图 1.3

image.png

图 1.3 语言模型在不同训练阶段的回答示例。提示要求“总结睡眠与健康的关系”。

  • 仅预训练的 LLM:给出相关但不聚焦的回答,不能很好地遵循指令;
  • 指令微调的 LLM:生成简明准确、与提示对齐的总结;
  • 偏好微调的 LLM:进一步在语气友好表达吸引上优化,使回答更贴近用户

如图 1.3 所示,指令微调提升了 LLM 执行助理型任务(问答、总结、翻译等)的能力;偏好微调进一步细化这些能力。顾名思义,偏好微调帮助模型的回答更符合用户偏好。(读者或已熟悉 RLHF 等术语,它是实现偏好微调的常见技术之一。)

简而言之,可以将预训练理解为“原始语言预测”(通过下一 token 预测)——赋予 LLM 生成连贯文本的一些基本性质与能力;而后训练则通过指令微调提升任务理解,通过偏好微调风格偏好上进一步打磨回答。

需要注意的是,即便完成指令微调,模型仍未必就是“聊天机器人”。聊天界面还需要一层额外编排来引导模型在多轮对话中作答,通常包括系统提示(system prompt)会话历史管理等(其一例在附录 G 中实现)。

NOTE
上述预训练后训练阶段详见拙作 《Build A Large Language Model (From Scratch)》mng.bz/orYv,Mannin… 出版)。阅读本书并不需要对这些阶段有深入背景。在下一章,我们将直接加载一个已完成昂贵预训练与后训练的模型,从而把注意力集中在推理模型特有的方法论与实践上。

1.3 Modeling language through pattern matching

(通过模式匹配建模语言)

正如上一节所述,在预训练阶段,LLM 接触海量文本,并通过识别与复现数据中的统计关联来学习下一个 token 的预测。这一过程使模型能够生成流畅连贯的文本,但其根基仍是表层相关性而非深层理解
LLM 对提示(prompt)的响应,是按照训练中见过的模式生成统计上一致的续写。本质上,它们是在匹配输入与输出之间的模式,而不是通过逻辑推理来演绎出答案。

考虑以下示例:
The capital of Germany is…
AI-Prompt End [blank-line]

Response
Berlin.
AI-Response End [blank-line]

LLM 之所以给出 “Berlin”,并不是逻辑推导,而是回忆起在训练数据中学到的强统计关联。这种行为就是我们所说的模式匹配(pattern matching) :模型依据已学得的相关性补全文本,而非应用结构化推理步骤

但若任务超越了单纯的模式识别——例如必须从给定事实中得出结论才能得到正确答案,该怎么办?这就引出了另一种能力:逻辑推理(logical reasoning)
逻辑推理指基于前提(premises) ,按规则或结构化的推演系统性地得到结论。与模式匹配不同,它依赖中间推理步骤,并要求有能力识别矛盾或根据形式关系推出蕴含。

再看一个示例提示:
Prompt: “All birds can fly. A penguin is a bird. Can a penguin fly?”

有两种评估方式:

  • 第一,封闭世界(仅限提示文本) :只从提示中的两个前提(“所有鸟都会飞”“企鹅是鸟”)出发,演绎有效的答案是 “是的,企鹅会飞”。
  • 第二,开放世界(包含背景知识) :若允许加入提示外的背景知识(如“企鹅不会飞”),则这个外部事实与从前提推导的结论冲突(见图 1.4)。这时,一个推理系统应能发现不一致,要么请求澄清,要么削弱第一句话(例如改为 “大多数鸟会飞,但企鹅等属于例外”)。

image.png

图 1.4 展示了矛盾前提如何导致逻辑不一致:由 “All birds can fly” 与 “A penguin is a bird” 可推得 “Penguin can fly”。但这与已知事实 “Penguin cannot fly” 冲突,因而产生矛盾。

图 1.4 说明了一个基于逻辑推理的系统如何处理上面的 “All birds can fly...” 提示。
与之相对,一个统计式(模式匹配)的 LLM 并不会像图 1.4 那样显式追踪矛盾,而是根据已学到的文本分布来预测。例如,如果训练中 “All birds can fly” 被重复强化,模型可能会很自信地回答:“是的,企鹅会飞。”

下一节我们将看一个具体示例,展示 LLM 如何处理 “All birds can fly...” 的提示。

LOGICAL REASONING AND RULE-BASED SYSTEMS
(逻辑推理与基于规则的系统)

为什么显式规则系统没有更流行?在 80–90 年代,规则系统广泛用于医疗诊断、法律裁决与工程领域。它们至今仍在关键行业(医疗、法律、航天)使用,因为这些领域常需要显式推理透明的决策过程。然而,规则系统实现困难,很大程度依赖人工编写的启发式。相较之下,深度神经网络(包括 LLM)并不依赖手写规则,而是从数据中学习决策模式,并在规模化训练后具有很强的灵活性

1.4 Simulating reasoning without explicit rules

(不借助显式规则来“模拟推理”)

在上一节中,我们看到矛盾前提会导致逻辑不一致传统 LLM并不会显式跟踪矛盾,而是基于学习到的文本分布来生成回答。
现在看一个具体例子(见图 1.5):非推理增强型 LLM(如 OpenAI ChatGPT 的 GPT-4o)如何回应上一节的 “All birds can fly...” 提示。

image.png

图 1.5 一个示例:语言模型(ChatGPT 中的 GPT-4o)看起来如何在矛盾前提下进行“推理”。

图 1.5 的例子显示:尽管 GPT-4o 并不像 OpenAI 的 o1、o3、o4-mini 以及更近期的 GPT-5 那样,被官方定位为推理模型,它依然看起来能给出正确答案。
那么,4o 是如何得到这类答案的?这是否意味着 GPT-4o 在进行显式逻辑推理未必。但至少可以说,4o 在熟悉语境非常擅长模拟逻辑推理

GPT-4o 并没有实现显式的矛盾检测,它是基于概率加权的模式来生成答案。这在训练数据包含大量纠正矛盾的实例时尤其奏效(如文本里频繁出现 “penguins cannot fly”),使模型学到“penguins ↔ not flying”的统计关联。正如图 1.5 所示,即便没有显式的基于规则显式逻辑推理流程,它也能答对。
换言之,模型是因为在训练中多次遇到这种相同或相似的推理场景,而隐式地识别出矛盾。这种有效性高度依赖于大规模暴露所形成的统计关联

因此,即使一个传统 LLM 看起来像图 1.5 那样完成了逻辑演绎,它也并不是在执行显式、基于规则的逻辑,而是在利用海量训练数据中学到的模式
尽管如此,GPT-4o 的表现很好地说明:当训练规模足够大时,隐式模式匹配也会变得非常强大。不过,这类基于模式的“推理”模型通常在以下场景会吃力:

  • 逻辑情境新颖(训练中未遇到);
  • 推理复杂度高(涉及繁复的多步逻辑关系);
  • 需要结构化推理,而训练数据中缺乏相似推理模式的直接暴露。

LOGICAL REASONING AND CURRENT REASONING LLM OFFERINGS
(逻辑推理与当前的推理型 LLM)

虽然 GPT-4o 并未被官方贴上“推理模型”的标签,OpenAI 已提供多种专用推理模型,包括 o1、o3、o4-mini、GPT-5。此外,其他公司也在研发具备显式推理能力的 LLM。就目前而言,较流行的例子包括 Anthropic 的 Claude 4、xAI 的 Grok 4、Google 的 Gemini 2.5、DeepSeek 的 R1、阿里巴巴的 Qwen3 等。本书将聚焦这些模型所采用的技术。正如我们将看到的,这些能力无需实现基于规则的推理管线(图 1.4 仅示意了规则推理的总体思路)。相反,LLM 的推理能力是通过改造推理阶段(inference)的计算/搜索后训练方法学习或增强的。

可以说,LLM 通过学习到的模式模拟逻辑推理,而我们可以通过特定推理方法(包括推理/算力扩展后训练策略)进一步改进它,但模型内部并未显式执行任何基于规则的逻辑。

同时需要指出,LLM 的“推理”是一个光谱。这意味着,即使在专用推理模型(如 OpenAI o1、DeepSeek-R1)出现之前,LLM 就已能在一定程度上模拟推理行为。例如,它们会生成中间步骤来走向正确结论,这与我们先前给出的定义是一致的。如今被明确称作“推理模型”的,实质上是对这种能力的更精细化版本。而这些改进,主要是通过特定的推理算力扩展技术针对性的后训练方法(下一节将解释),来强化巩固推理行为。

本书其余部分将专注于这些先进方法,以提升 LLM 解决复杂问题的能力,帮助你更好地理解如何改进 LLM 的隐式推理能力

1.5 Improving reasoning with training and inference techniques

(通过训练与推理技巧提升推理能力)

在公众视野中,LLM 语境下的“推理”随着 2024 年 9 月 12 日 OpenAI 在 ChatGPT 中发布 o1 而“出圈”。在发布文章(openai.com/index/intro…)中,OpenAI](openai.com/index/intro…) 提到:“我们开发了一系列新模型,旨在在作答前花更多时间思考(thinking)。

OpenAI 进一步写道:“这些增强的推理能力在你处理科学、编码、数学及类似领域的复杂问题时尤其有用。”

尽管 o1 的训练与实现细节尚未公开,但普遍看法是:o1 基于其前代(如 GPT-4)之一,并通过推理时算力扩展(inference-compute scaling,稍后本节会详述)显著提升了推理能力。

数月之后的 2025 年 1 月,DeepSeek 发布 DeepSeek-R1 模型与技术报告(arxiv.org/abs/2501.12…),详述了用于训练推理模型的方法学。该发布引发轰动:他们不仅自由开放了一个可与专有的 o1 竞争甚至超越的模型,还分享了训练此类模型的蓝图

本书旨在通过从零实现相似方法,讲清楚这些用于构建推理模型的方法学如何工作

改进与发展 LLM 推理能力的途径大致可分为三类(见图 1.6)。

image.png

图 1.6 提升 LLM 推理能力的三种常见路径:推理时算力扩展强化学习蒸馏。这些方法通常在常规训练阶段(初始模型训练、预训练、以及指令/偏好微调的后训练)之后应用。

正如图 1.6 所示,这些方法建立在已经历预训练后训练(含指令与偏好微调)的 LLM 之上。

1) 推理时算力扩展(Inference-time compute scaling)。
又称 inference compute scaling、test-time scaling 等,指在推理阶段(用户发起提示时)提升模型推理能力的各种方法,无需再训练或修改底层权重。核心思想是:以更多计算资源换取更好表现,让固定权重的模型通过诸如 Chain-of-Thought(CoT) 、多样化采样流程等技巧变得更强。本主题是第 4 章的重点。

2) 强化学习(Reinforcement Learning, RL)。
强化学习指通过奖励反馈鼓励模型采取通往高回报结果的行动,从而提升推理能力。奖励可以很宽泛(任务成功或启发式评分),也可以狭义且可验证(例如数学题或编码任务的正确性)。
与推理时扩展不同,RL 会在训练中更新模型权重,让模型在“试错反馈”循环中学习与改进推理策略。详见第 5 章

REINFORCEMENT LEARNING FOR REASONING AND PREFERENCE TUNING
(用于推理的强化学习 vs. 偏好微调中的 RLHF)
在推理模型开发语境下,需要将此处的 RL偏好微调阶段常用的 RLHF(Reinforcement Learning with Human Feedback)区分开(参见先前图 1.2)。
二者共享相同的
RL 过程
,但主要区别在于奖励的来源与验证方式RLHF 依赖人工评估/排序来作为奖励,直接引导模型对齐人类偏好;而推理场景中的 RL 多依赖自动化或环境式的奖励(更客观,但未必与人类偏好一致)。例如,推理型 RL 的管线可能通过对“证明正确”给予显式奖励来训练模型在数学证明上出色;对比之下,RLHF 会让人工对不同回答打分/排序,引导模型输出更接近人类标准与主观偏好的结果。

3) 监督微调与模型蒸馏(Supervised fine-tuning & Distillation)。
蒸馏旨在把大模型学到的复杂推理模式迁移到更小或更高效的模型中。在 LLM 语境下,常见做法是:利用更强模型生成的高质量指令数据集进行监督微调(SFT) 。文献中通常称之为知识蒸馏或直接蒸馏。需要注意:这与经典深度学习的蒸馏略有不同——后者经常让“小(学生)模型”同时学习“大(教师)模型”的输出与 logits。详见第 6 章

1.6 为什么要从零构建推理模型?(Why build reasoning models from scratch?)

自 2025 年 1 月 DeepSeek-R1 发布以来,提升 LLM 推理能力成为 AI 领域最热门的话题之一,这有充分理由:更强的推理意味着能解决更复杂的问题,在用户关心的各类任务上更能打

这种转向也体现在 2025 年 2 月 12 日 OpenAI CEO 的表述中:

“我们接下来将发布 GPT-4.5(内部称 Orion),这是我们最后一个非 CoT(chain-of-thought)模型。之后,我们的一个核心目标是统一 o 系列与 GPT 系列,打造能够使用我们所有工具知道何时需要长时间思考或不需要、并在广泛任务上普遍有用的系统。”

上面的引述强调了头部 LLM 厂商向推理模型的重大转向,其中 chain-of-thought 指一种引导模型逐步思考以提升推理能力的提示技巧(第 4 章将详述)。

还值得注意的是“知道何时需要长时间思考或不需要”。这提示了一个重要的设计考量:推理并非总是必要或值得
例如,推理模型擅长复杂任务(解谜、复杂数学、多步骤编码等),但对简单任务(摘要、翻译、基于知识的问答等)并非必需。事实上,凡事都用推理模型可能低效且昂贵:推理模型通常更贵更啰嗦,有时还会因为“过度思考”而更易出错。简单的原则是:为任务选对工具(或选对 LLM 类型)

推理模型往往更昂贵,主要有两点原因:
第一,它们的输出通常更长,因为会包含中间步骤来解释答案的来由。正如图 1.7 所示,LLM 是逐 token 生成的,每个 token 都要进行一次完整前向传播。如果推理模型的答案长度翻倍,则大致意味着前向次数翻倍,计算成本自然上升。 image.png

图 1.7 LLM 的逐 token 生成:每一步以“当前生成序列”为输入预测下一个 token,再把新 token 追加到序列中作为下一步的输入。该迭代解码流程同时适用于标准语言模型侧重推理的模型

第二,许多推理工作流会为单个任务触发多次推理调用(例如采样多份候选解调用工具、或运行验证器)。这些额外调用会成倍增加处理的 token 总量,使成本进一步超越图 1.7 所示的“单次调用”情形。

这直接强调了从零实现 LLM 与推理方法的重要性:这是理解其工作机理的最佳途径之一。而当我们真正理解了 LLM 与推理模型如何工作,也就能更好地理解其中的取舍与权衡

1.7 A roadmap to reasoning models from scratch

(从零构建推理模型的路线图)

在从宏观层面讨论了 LLM 的推理之后,后续章节将带你从零编码并应用推理方法。我们将分阶段推进,如图 1.8 所示。

image.png

Figure 1.8 本书所涵盖的推理模型开发阶段的“心智模型”。我们从常规 LLM 作为基础模型(阶段 1)出发;在阶段 2,我们介绍评测策略,用于跟踪阶段 3 与阶段 4 的推理方法所带来的改进。

如图 1.8 所示,我们把推理模型的开发分为多个阶段:

  • 阶段 1(下一章) :加载一个已完成预训练指令微调常规 LLM
  • 阶段 2:覆盖评估 LLM 与推理能力的常用方法,以便在阶段 3 与阶段 4 应用推理增强方法时,能够量化改进
  • 阶段 3:介绍推理阶段(inference)技巧,以提升 LLM 的回答质量推理行为。注意,这些技巧既可用于常规 LLM,也可用于已作为推理模型训练的 LLM。
  • 阶段 4:引入用于训练推理模型的方法。

希望你和我一样,对接下来的旅程充满热情!

1.8 Summary

(小结)

  • 常规 LLM 训练包含多个阶段:

    • 预训练(pre-training) :模型从海量文本中学习语言模式;
    • 指令微调(instruction fine-tuning) :提升模型对用户提示的响应;
    • 偏好微调(preference tuning) :使输出更贴合人类偏好。
  • 推理方法是在常规 LLM之上应用的。

  • LLM 中的推理是用中间步骤(chain-of-thought, CoT)系统性地求解多步任务

  • LLM 的推理不同于基于规则的推理,也可能不同于人类推理;当前普遍共识是:LLM 的推理依赖统计模式匹配

  • 模式匹配依赖从数据中学习到的纯统计关联——能生成流畅文本,但缺乏显式的逻辑演绎

  • 提升 LLM 推理可通过:

    • 推理时算力扩展(inference-time compute scaling) :无需再训练即可增强推理(如 CoT 提示);
    • 强化学习(RL) :用奖励信号显式训练模型;
    • 监督微调与蒸馏(SFT & distillation) :利用更强推理模型的示例进行迁移。
  • 从零构建推理模型有助于切实理解 LLM 的能力、局限算力/成本权衡