前言

因为之前接了个活,这几天我在给学生上课,讲一些人工智能、嵌入式方面的。正好带他讲到人工智能的发展,于是我就顺便带着他一起看了一下最近的热点模型—— DeepSeek-R1 的论文。

这里附上一个论文链接:https://arxiv.org/abs/2501.12948

关于 DeepSeek-R1

这个模型最首当其冲需要介绍的是,它的效果据说是可以对标 OpenAI-o1 模型,并且 DeepSeek 是开源的。

在这里我们主要学它的创新点和一些训练过程,细节我们可能就直接略过。所以这篇笔记会比较简短。

DeepSeek-R1-Zero

在介绍 DeepSeek-R1 前,我们先介绍 DeepSeek-R1-Zero。

Group Relative Policy Optimization

为了生成更好的答案,DeepSeek-R1-Zero 使用强化学习算法进行微调,而不是传统大语言模型的 SFT(有监督微调)。DeepSeek 介绍了一种叫做 Group Relative Policy Optimization 的强化学习优化算法。下面我们把原论文的公式放出来。

Group Relative Policy Optimization 从策略分布 \pi_\theta 采样一个输出组 \{o_1, o_1, ..., o_G\}并最大化以下优化项:

\frac{1}{G} \sum^G_{i=1}(\min(\frac{\pi_\theta(o_i|q)}{\pi_{\theta_{old}}(o_i|q)} A_i, \text{clip}(\frac{\pi_\theta(o_i|q)}{\pi_{\theta_{old}}(o_i|q)}, 1-\varepsilon, 1+\varepsilon) A_i) - \beta \bold{D}_{KL}(\pi_\theta || \pi_{ref}))

这里我们可以看到 min 和 clip 函数都是对数值进行选择截断的函数,为了方便理解,我们先忽略掉。

忽略 min 和 clip 函数后公式如下:

\frac{1}{G} \sum^G_{i=1}(\frac{\pi_\theta(o_i|q)}{\pi_{\theta_{old}}(o_i|q)} A_i - \beta \bold{D}_{KL}(\pi_\theta || \pi_{ref}))

这样一来就好理解多了。我们可以看到两个优化项:一个是优势函数乘上一个策略分布比值的因子,另一个是附带一个超参数因子的 KL 散度。

其中 \pi_\theta\pi_{\theta_{old}}分别是策略分布和过去的策略分布, A_i 为强化学习中 Actor-Critic 模型模型的优势函数,等于动作价值函数减去状态价值函数,也就是 A(s,a) = Q(s,a) - V(s)。因此这个优化过程的意思是:最大化 \pi_\theta 在高优势下的概率输出,并适当使 \pi_\theta\pi_{ref} 之间的分布距离更小。

至于 min 和 clip 函数做的数据截断我就不深究了,毕竟只是学个思想嘛。

训练设计

接下来,DeekSeek 指定了 DeepSeek-R1-Zero 的模板格式:

A conversation between User and Assistant. The user asks a question, and the Assistant solves it.The assistant first thinks about the reasoning process in the mind and then provides the user with the answer. The reasoning process and answer are enclosed within <think> </think> and <answer> </answer> tags, respectively, i.e., <think> reasoning process here </think> <answer> answer here </answer>. User: prompt. Assistant:

可以看到,当中有两个标签指定输出的不同内容:<think> 和 <answer>,它们分别指模型的思考和答案。

DeepSeek-R1-Zero 设置了两个奖励项:Accuracy 和 Format。Accuracy 很好理解,指的就是与正确答案的准确度,而 Format 则是模型在生成文本是是否遵循上面的模板格式,这是为了让模型能够以正确的格式输出思考和答案。

接着研究团队将 DeepSeek-R1-Zero 与 OpenAI-o1 进行了性能对比:

可以看到,R1-Zero 的表现以及可以和 o1 掰掰手腕了。

接着研究团队又介绍了两种基于强化学习带来的现象:Self-evolution Process 和 Aha Moment,分别是自进化过程和顿悟时刻,但也存在思考的语言存在混合的问题。具体可以看原论文,这里不再赘述。

DeepSeek-R1

DeepSeek-R1 为了可解释性、通用性等做了很多训练上的设计,这里不再一一赘述。下面我总体上来说几点 R1 相比 R1-Zero 做的改变。

R1 在 R1-Zero 的基础上,包括但不限于进行进一步安全性、通用性的强化学习,并使用 SFT 技术从 Llama,Qwen 等开源大语言模型蒸馏。最终得到一个集大成的模型:R1。

最后我们来看看 R1 在不同数据集上的结果:

可以看到,R1 在数学等上的表现以及达到了 state-of-the-art,但是在软件工程的能力上还是逊于 o1。

总结

总而言之,R1 使用了强化学习算法训练,不仅仅是模仿人类输出,从而获得了更好的效果。

首先它证明了强化学习的可行性,然后在表现上也达到了 state-of-the-art,作为开源模型来说这是对整个 AI 研究和开发社区的推动。最后就是能够对标目前炒得最火的 ClosedAI 的 o1 模型,这一点也是非常乐的。

我也很高兴中国能出现这样一个开源的优秀大模型,希望它能为我之后的研究提供更好的平台罢😁。