【技术】推理LLMs及DeepSeek R1原理图解

360影视 动漫周边 2025-03-26 21:53 3

摘要:2024年,Scaling Law逐步见顶,业界普遍认为通用LLM走到“高原区”,进化乏力,除了多模态LLM还在日新月异。行业灯塔OpenAI也迟迟不发布GPT-5, 哪怕是GPT-4.5。

2024年,Scaling Law逐步见顶,业界普遍认为通用LLM走到“高原区”,进化乏力,除了多模态LLM还在日新月异。行业灯塔OpenAI也迟迟不发布GPT-5, 哪怕是GPT-4.5。

于是,不少厂商把精力转向第二增长曲线:大模型应用,纷纷角力聊天助手、办公、情感陪伴、Bot编排等产品。

没想到,9月份,OpenAI 发布预览版o1,12月正式发布o1, 接着 o3, 而国产之光DeepSeek也紧跟其后,先后发布V3和R1, Google发布Geimin 2 Flash Thinking等,推理LLMs成为近半年的热点。

那么,推理LLMs是什么原理?跟普通LLMs有什么区别,为什么推理效果优于通用LLMs?

国外知名博主Maarten Grootendorst写了个推理LLMs教程,以图片方式讲解推理LLMs的原理。

注:

Jay Alammar博客(https://jalammar.github.io/)质量非常高,先后推出了TransfORMer/BERT/GPT等图解系列文章,广受好评。Jay Alammar和Maarten Grootendorst二人联手写了一本书《动手学大模型》(Hands-On Large Language Models)

下面按照个人理解,重新组织、表述,方便大家快速理解,更多细节建议看英文原文。

(1)LLM训练

思考:影响预训练LLM效果的主要因素有哪些?

核心要素有3个:训练数据量(单位是token)+模型参数规模(单位B,10亿)+计算能力(GPU)

人们常说的模型训练主要有两类:预训练、微调(后训练)

思考:什么是预训练、后训练?

预训练(Pre-training):在基座模型上,借助GPU强大的算力,按照自回归方式学习大规模语料里的知识。后训练(Post-training):继续在新语料上增量训练(CPT)/监督指令微调(SFT, 具备聊天能力)/对齐训练(RLHF, 对齐人类标准,3H)

因此,LLM训练包含预训练、后训练,又称“训练时计算”(train-time-compute)。

(2)Scaling Law

温习下概念:Scaling Law,扩展法则,或规模法则。

人们发现,模型效果与数据量、参数规模、计算能力成正比

而且呈现一定规律:对数线性,即Scaling Law(扩展法则)。

扩展法则有多个版本:

2020年,OpenAI推出Kaplan’s Scaling Law: 模型规模比数据更重要2022年,Google DeepMind推出Chinchilla Scaling Law: 模型规模与数据同等重要

内容略有差异,区别是模型规模与数据量哪个更重要,但主体意义一致:参与训练的数据量越多,模型规模越大,模型效果越好。

于是,“大力出奇迹”、优化模型规模与数据量配比,成为业界共识,纷纷砸钱吞卡,造就了NVIDIA帝国。

(4)测试时计算

但好景不长。2024年,模型规模、数据、计算量稳步增长,而模型性能却在下滑。扩展法则似乎走到了尽头!

既然LLM训练(预训练+后训练)金矿干涸了,那就继续挖掘推理环节的潜力!

“测试时计算”(test-time-compute):回答用户问题时,让模型先“静一静”,心里打打草稿,想好了再说。

注意:

此处的“推理”指机器学习里的推理(inference),输出结果,仅此而已,并非字面意义,中文推理包含inference和reason。

研究发现:打草稿篇幅越大、时间越长,模型效果越好。

详情:

OpenAI 论文 Learning to reason with LLMs:测试时计算Scaling Law与训练时计算Scaling Law一致Google DeepMind AlphaZero 论文 Scaling Scaling Laws with Board Games :两种形式的Scaling Law高度相关

好家伙,又是OpenAI和Google这对好基友,殊途同归,如影随形。

测试时计算成了新的金矿。

训练范式随之发生迁移:训练时计算→测试时计算。

接下来,推理LLMs闪亮登场。

(5)什么是推理LLMs

“推理LLMs”概念是为了区分常规LLMs:

推理LLMs将用户问题拆解成更小的单元(即推理步骤/思维过程),分别解答、汇总后,再返回。

可以发现,二者解决的问题不同:

常规LLMs学习回答什么,直接输出作答内容,一步到位,快思考,解决简单问题。推理LLMs学习怎么回答,作答前先想想该怎么回答,然后逐步解答,汇总后才返回给用户,慢思考,专门复杂推理问题。

示例:

问题:我有10个苹果,给了别人两个,自己吃了1个,请问还有几个苹果?常规LLMs:7个。(不稳定,可能会计算错误)推理LLMs:先拆解成3个子问题,我有10个苹果,给别人两个后还剩8个,吃了1个,于是最后还剩7个。(更加稳定,准确性更高)

这里的推理(reason)基本等效于测试时计算(test-time-compute)

(6)测试时计算分类

有哪些实现方案?

测试时计算分类

①验证式搜索 Search against Verifiers:采样生成多个输出结果,挑选最好的②修改提议分布 Modifying Proposal Distribution:训练思考过程(输入),模型生成改进后的推理步骤

其中,验证式搜索 Search against Verifiers 过程:搜索、验证

Search: 采样多个推理过程及其回答Verifiers: 奖励模型(验证器)分别打分;奖励模型由LLM微调而来,分PRM(过程奖励模型)和ORM(结果奖励模型)

验证器使用奖励模型,并未唯一选择,有更简单的多数投票机制(self-consistance)、最佳N个投票(Best-of-N-Samples),也有更加复杂的加权投票机制(Weighted-Best-of-N-Samples),综合使用投票+奖励模型打分。

还有类似思维树的Beam Search方案:每次从当前层级选取top n个步骤,再逐步往下推理。

以及借鉴强化学习蒙特卡洛树搜索(MCTS)方案:选1个子节点,开始扩展推理步骤,执行后获取得分,反馈给父节点,继续下一轮探索。

MCTS充分发挥了强化学习里的探索-利用平衡,效果好,但计算开销大。

(7)测试时计算案例

两种类型

①验证式搜索 Search against Verifiers:采样生成多个输出结果,挑选最好的②修改提议分布 Modifying Proposal Distribution:训练思考过程(输入),模型生成改进后的推理步骤

方法①推理时贪心到底,只取概率最大的词,而贪心搜索是局部最优,并不能保证全局最优。

于是,方案②直接修改概率分布,提升部分词汇的概率,尽量保留潜在更优的词(如逻辑单词,if、then等)。

方案②的具体代表:

通过提示工程(PE)更新提示语(prompt)“Let’s think step-by-step”静态线性自我抑制过程训练推理模型,生成推理过程数据STaR: Self-Taught ReasonerOpenAI o1,DeepSeek-R1

STaR示例:自学习推理器,针对question,生成reasoning和answer

如果answer正确,三元组训练数组回流否则,用正确答案提示,让LLM更新推理链。

(8)DeepSeek R1原理

介绍下推理LLMs优秀代表:DeepSeek R1。

刚开始基于DeepSeek-V3-Base,首次使用纯RL(GRPO)预训练,基于规则的奖励模型,得到DeepSeek-R1-Zero模型。

证明: 纯规则 RL也有效,表现出自我验证反思、和生成长COT的能力

R1-Zero=Pretrain(DeepSeek-V3-Base)+RL(GRPO)

由于DeepSeek-R1-Zero可读性差,语言混合,继续优化,得到R1:

R1=Pretrain+Cold-Start(SFT)+RL(提升推理能力)+生成数据SFT监督数据微调Base(SFT)+RL(对齐),先提升推理能力,搞出数据,再提升LLM整体能力

另外,DeepSeek提供R1的蒸馏版本

DeepSeek论文要点概括:

附录

英文原文:A Visual Guide to Reasoning LLMs,https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-reasoning-llms技术博客:https://wqw547243068.github.io/o1#deepseek-r1

来源:鹤啸九天blog

相关推荐