零基础学 AI:人工智能入门指南
7.3 推理计算:新的AI范式
从固定参数到动态计算:为什么在推理时多花时间是件好事 在过去的十年,AI发展遵循一个简单的规律: 这就是所谓的“扩展法则”(Scaling Law)。为了让模型更聪明,研究人员就训练更大的模型。 与其训练一个超级大的模型,不如让一个足够大的模型花更多时间思考问题。
7.3 推理计算:新的AI范式
从固定参数到动态计算:为什么在推理时多花时间是件好事
7.3.1 问题:为什么我们一直只在乎“模型大小”?
在过去的十年,AI发展遵循一个简单的规律:
graph LR
A["7B"]
B["13B"]
C["70B"]
D["200B"]
E["性能"]
A --> B --> C --> D
A -.->|性能提升| E
这就是所谓的“扩展法则”(Scaling Law)。为了让模型更聪明,研究人员就训练更大的模型。
但是,2024年开始,一个新的想法出现了:
与其训练一个超级大的模型,不如让一个足够大的模型花更多时间思考问题。
这就是推理计算的核心思想。
7.3.2 一个生活类比:考试的两种方式
想象一下两个学生在备考:
学生A:死记硬背所有内容(传统方法)
graph TD
A["备考阶段<br/>花费大量时间<br/><br/>1. 读教科书 100遍<br/>2. 做练习题 1000道<br/>3. 记忆所有答案<br/>4. 背诵公式<br/><br/>结果:脑子里装了巨量信息"]
B["考试阶段<br/>快速回答<br/><br/>看到题目 → 立即说出答案<br/><br/>优点:快<br/>缺点:可能遗忘"]
A --> B
学生B:掌握原理,考试时推导(推理计算方法)
graph TD
A["备考阶段<br/>中等时间投入<br/><br/>1. 理解核心概念<br/>2. 学会推导方法<br/>3. 练习关键问题<br/><br/>结果:掌握原理,不需死记硬背"]
B["考试阶段<br/>花时间思考<br/><br/>看到新题目 → 想一想 → 推导 → 答案<br/><br/>优点:即使题目以前没见过,也能解<br/>缺点:比较慢,但更准确"]
A --> B
学生A代表传统LLM,学生B代表推理模型。
7.3.3 推理计算的三个维度
1. 计算在何时分配
graph TD
subgraph Traditional["传统模型的计算分配"]
T1["训练时 Training<br/>90% 计算"]
T2["尽可能多地学习,<br/>编码所有知识到参数中"]
T3["推理时 Inference<br/>10% 计算"]
T4["快速查表和预测,<br/>不怎么需要计算"]
T1 --> T2 --> T3 --> T4
end
subgraph InferenceCompute["推理计算模型的分配"]
I1["训练时 Training<br/>30% 计算"]
I2["学习基本能力和推理方法"]
I3["推理时 Inference<br/>70% 计算"]
I4["对每个问题进行<br/>详细的推导和思考"]
I1 --> I2 --> I3 --> I4
end
这是一个 范式转变。
2. 计算的深度
不同问题需要不同的计算深度:
graph TD
A["简单题: 2+2=?<br/>思考时间: 0.1秒<br/>token消耗: 少"]
B["中等题: 证明...<br/>思考时间: 5秒<br/>token消耗: 中"]
C["困难题: 设计...<br/>思考时间: 30秒<br/>token消耗: 多"]
A -.->|推理深度<br/>递增| B
B -.->|推理深度<br/>递增| C
style A fill:#90EE90
style B fill:#FFD700
style C fill:#FF6B6B
3. 计算的方式
推理模型在推理时进行的计算包括:
graph TD
A["1. 路径探索<br/>尝试方法A<br/>尝试方法B<br/>比较哪个更好"]
B["2. 验证与回溯<br/>检查中间步骤<br/>发现矛盾时回溯<br/>尝试其他路径"]
C["3. 细节填充<br/>补充缺失的推导步骤<br/>加入必要的例子<br/>完整化论证"]
D["4. 最终检查<br/>答案是否合理<br/>是否遗漏什么<br/>是否有更优的方式"]
A --> B --> C --> D
7.3.4 推理计算的经济学
成本-效益分析
graph LR
A["1秒"] --> B["10秒"] --> C["60秒"]
subgraph Speed["推理时间"]
D["60% 精确度<br/>传统LLM"]
E["80% 精确度<br/>传统LLM优化"]
F["100% 精确度<br/>推理模型"]
end
A -.-> D
B -.-> E
C -.-> F
style D fill:#FFB6C6
style E fill:#FFD700
style F fill:#90EE90
什么时候推理计算是值得的?
graph TD
A["低复杂问题<br/>低价值问题<br/><br/>伦敦在哪?<br/><br/>用推理模型? NO<br/>理由: 问题太简单<br/>推荐: 传统LLM"]
B["高复杂问题<br/>低价值问题<br/><br/>用50个汉字描述量子物理<br/><br/>用推理模型? MAYBE<br/>理由: 问题有挑战但输出很短<br/>推荐: 传统LLM"]
C["高复杂问题<br/>高价值问题<br/><br/>为初创公司设计AI系统架构<br/><br/>用推理模型? YES<br/>理由: 问题很难,答案质量很重要<br/>推荐: 推理模型"]
D["低复杂问题<br/>高价值问题<br/><br/>这个合同条款合法吗?<br/><br/>用推理模型? YES<br/>理由: 正确性至关重要<br/>推荐: 推理模型"]
style A fill:#FFB6C6
style B fill:#FFD700
style C fill:#90EE90
style D fill:#90EE90
7.3.5 推理计算的天花板
虽然推理计算很强大,但也有局限:
graph TD
A["1. 知识的界限<br/>推理只能在现有知识基础上进行<br/>无法想象不存在的概念"]
B["2. 复杂度爆炸<br/>对于极其复杂的问题<br/>思考时间可能趋向无穷"]
C["3. 错误传播<br/>第一步推导错误<br/>后续推导也会出错"]
D["4. 无法创意<br/>推理是逻辑的,创意是超越逻辑<br/>推理模型在创意写作上可能不擅长"]
A --> B --> C --> D
7.3.6 推理计算 vs. 参数扩展
现在AI界有一个重要的讨论:
未来应该继续训练更大的模型,还是让现有模型花更多时间思考?
两条发展路线:
路线A:参数扩展(Scaling Parameters)
模型参数:70B → 300B → 1T
训练成本:持续增加
部署成本:巨大(需要大显卡集群)
推理速度:快
适合:需要快速响应的场景
vs
路线B:推理计算扩展(Scaling Compute)
模型参数:固定(70B或100B)
训练成本:相对稳定
部署成本:可控(普通显卡也能跑)
推理速度:较慢但更准确
适合:对准确性要求高的场景
目前的共识是:两条路线同时推进
- 快速应用场景:用传统的参数扩展(更大的模型)
- 精确应用场景:用推理计算扩展(推理时间更长)
7.3.7 本节小结
推理计算是AI发展的新范式:
- 从“训练时的大量投入 + 推理时的快速查表”转变
- 到“训练时学习基础方法 + 推理时深入思考”
这意味着:
- 推理时间变得和准确度一样重要
- 用户需要在“快速”和“准确”之间做选择
- 成本结构发生了变化(更多token消耗在思考上)
7.3.8 思考题
- 在你的日常工作中,有哪些任务可以受益于推理计算?哪些任务不需要?
- 如果推理模型在推理时要消耗10倍的token,这会如何改变AI的商业模式?
- 未来是否会出现“推理时间太长”反而成为劣势的场景?什么时候?