作者: 引线小白-本文永久链接:httpss://www.limoncc.com/post/bd7e41e00dc8afad/
知识共享许可协议: 本博客采用署名-非商业-禁止演绎4.0国际许可证
摘要: 本文意在理清如何训练大语言模型。若有错误,请大家指正。
关键词:如何训练大语言模型
,C-RLFT
,条件强化学习微调
[TOC]
一、引言
关于大语言模型训练的概念可谓层出不穷:预训练 (PT)、监督微调 (SFT)、基于人类反馈的强化学习 (RLHF)、近端策略优化(PPO)、C-RLFT(条件强化学习微调)[^1]、优势诱导策略调整 (APA)[^2]
构造一个对话数据集 $\mathcal{D}=\{(x_i,y_i)\}$,其中 $x_i$表示指令, $y_i$是预训练的语言模型的输出。 $\pi_0(y\mid x)$是从指令到输出的概率分布。
当前有两条研究路线可以使预训练语言模型与人类对齐,这包括监督微调和基于人类反馈的强化学习微调。
$$\begin{align}
J_{\mathrm{SFT}}(\theta)=\mathbb{E}_{(x,y)\sim \mathcal{D}}\big[\log \pi_{\theta}(y\mid x)\big]
\end{align}$$
$$\begin{align}
J_{\mathrm{RLHF}}(\theta)=\mathbb{E}_{y\sim \pi_{\theta}}\big[ r(x,y)\big]-\beta\mathbb{KL}[\pi_{\theta}\parallel \pi_{0}]
\end{align}$$
二、RLHF实质是一个贝叶斯推断
RLHF实质是一个贝叶斯推断[^3],$\pi$在强化学习中是策略的意思,这里我们不妨理解为大语言模型,或者说就是一个概率分布。一开始我们通过语料训练了一个预训练模型 $\pi_{\text{PT}}$,然后有得到一个 $\pi_{\text{SFT}}$模型,接下来通过RLHF我们要得到一个 $\pi_{\text{RLHF}}$的模型。这其实是什么?是不断调整分布的过程,或者说是语言模型不断调整信念的过程。
符号说明$\mathcal{D}=\{(x_i,y_i)\}$,其中 $x_i$表示指令, $y_i$是预训练的语言模型的输出。 $\pi(y\mid x)$是从指令到输出的概率分布。
1、首先一开始有一个在大规模语料上训练的语言模型 $\pi_0(y\mid x)$, 目前它表现欠佳,它的世界和人类的世界差别有点大,说起话来前言不搭后语。
2、好了现在有一个对话语料 $\mathcal{D}=\{(x_i,y_i)\}$,这个对话预料的特点就是真实反应了人类世界的情况,或者说基于此我们能生成一个评分函数 $r(x,y)$这个函数能给语言模型基于指令 $x$生成的 $y$打分。既然如此不如这样思考
$$\begin{align}
q(r\mid y,x )\propto \exp\bigg(\frac{1}{\beta}r(x,y)\bigg)
\end{align}$$
给定 $x,y$对评分 $r$附上一个信念或者概率 $q$,这里的 $\beta$是一个信念可调整的超参数。比较是个比较主观的东西,加个可调整参数来调节,以便让大多数人满意。
3、现在的问题就变成了如何根据初始模型 $\pi_0(y\mid x)$和人类的评分信念 $q(r\mid y,x )$来调整模型参数 $\theta$得到一个新的模型 $\pi_{\theta}(y\mid x)$
如果说 $\pi_0(y\mid x)$是先验分布,那么人类的评分信念 $q(r\mid y,x )$就是似然函数,于是我们可以构造一个后验分布
$$\begin{align}
\pi_{\text{KL-RL}}(y\mid x, r)
\propto q(r\mid y,x )\pi_0(y\mid x)
=\exp\bigg(\frac{1}{\beta}r(x,y)\bigg)\pi_0(y\mid x)
\end{align}$$
或者加上归一参数或者说证据$Z(y,x,r)$
$$\begin{align}
\pi_{\text{KL-RL}}(y\mid x, r) = \frac{1}{Z}\exp\bigg(\frac{1}{\beta}r(x,y)\bigg)\pi_0(y\mid x)
\end{align}$$
其中 $\displaystyle Z(y,x,r)=\int \exp\bigg(\frac{1}{\beta}r(x,y)\bigg)\pi_0(y\mid x)dy$
现在我们是无法直接得到 $\pi_{\text{KL-RL}}(y\mid x, r)$,计算证据$Z(y,x,r)$计算是巨大的。但是我们可以让一个分布接进它,或者最好的方式就是就地取材微调 $\pi_0(y\mid x,\theta)$得到 $\pi_{\theta}(y\mid x)$使得它接近。 我们的后验$\pi_{\text{KL-RL}}(y\mid x, r)$,这样我们就得到了对齐后的模型。我们自然就使用到了计算分布相似度的 $\mathbb{KL}$散度。于是问题就变为了
$$\begin{align}
\min_{\theta}\mathbb{KL}\bigg[\pi_{\theta}(y\mid x)\parallel\pi_{\text{KL-RL}}(y\mid x, r)\bigg]
\end{align}$$
不难证明它与RLHF是等价的。
证明:
$$\begin{align}
&\min_{\theta}\mathbb{KL}\bigg[\pi_{\theta}(y\mid x)\parallel\pi_{\text{KL-RL}}(y\mid x, r)\bigg]=\min_{\theta}\int \pi_\theta \log \frac{\pi_\theta}{\pi_{\text{KL-RL}}}dy\\
&=\min_{\theta}\int \pi_\theta [\log \pi_\theta -\log\pi_{\text{KL-RL}} ]dy\\
&=-\max_{\theta}\int \pi_\theta \Bigg[\log\Big[\frac{1}{Z}\exp\bigg(\frac{1}{\beta}r(x,y)\bigg)\pi_0(y\mid x)\Big] -\log \pi_\theta\Bigg]dy\\
&=-\max_{\theta}\mathbb{E}_{(x,y)\sim\pi_{\theta}}\bigg[\frac{1}{\beta}r(x,y)-\log Z+\log \frac{\pi_0}{\pi_\theta}\bigg]\\
&=-\max_{\theta}\frac{1}{\beta}\mathbb{E}_{(x,y)\sim\pi_{\theta}}\bigg[r(x,y)-\log Z+\log \frac{\pi_0}{\pi_\theta}\bigg]\\
&=-\max_{\theta}\frac{1}{\beta}\mathbb{E}_{(x,y)\sim\pi_{\theta}}\big[r(x,y)\big]-\mathbb{E}_{(x,y)\sim\pi_{\theta}}\bigg[\log \frac{\pi_0}{\pi_\theta}\bigg]+C\\
&=-\max_{\theta}\frac{1}{\beta}\mathbb{E}_{(x,y)\sim\pi_{\theta}}\big[r(x,y)\big]+\mathbb{KL}[\pi_\theta \parallel\pi_0]+C\\
&= \min_{\theta} \mathbb{E}_{(x,y)\sim\pi_{\theta}}\big[r(x,y)\big]-\beta\mathbb{KL}[\pi_\theta \parallel\pi_0]
\end{align}$$
三、C-RLFT(条件强化学习微调)
openchat3.5模型提出了C-RLFT(条件强化学习微调)[^1],它充分利用了两类数据集 $\mathcal{D}_{sub}$, $\mathcal{D}_{exp}$,其中一类sub是成本比较低的,exp则是专家标注过的。这样我们得到一个综合的数据集$\displaystyle \mathcal{D}_c=\mathcal{D}_{sub}\cup \mathcal{D}_{exp}=\{x_i,y_i,c_i\},c_i\in \{exp,sub\}$,这样处理奖励
$$\begin{align}
r_c(x_i,y_i)=
\begin{cases}
1,\text{if } (x_i,y_i) \in \mathcal{D}_{exp}\\
\alpha,\text{if } (x_i,y_i) \in \mathcal{D}_{sub}\quad(\alpha<1)
\end{cases}
\end{align}$$
C-RLFT的目标是找到最优的KL正则化条件策略。这个优化问题可以表述为
$$\begin{align}
\max_{\pi}\mathbb{E}_{y\sim \pi}\big[r_c(x,y)\big]-\beta \mathbb{KL}[\pi\parallel \pi_c]
\end{align}$$
注意这里的 $\pi_c=\pi_c(y\mid x,\theta)$,是调整后的分布不是初始分布。为了确保 $\pi$概率分布有效,我们添加了归一化约束,优化问题变为:
$$\begin{align}
&\max_{\pi}\mathbb{E}_{y\sim \pi}\big[r_c(x,y)\big]-\beta \mathbb{KL}[\pi\parallel \pi_c]\\
&s.t.\int_{y}\pi(y\mid x,c)dy=1
\end{align}$$
我们可以通过求解其Karush-Kuhn-Tucker(KKT)条件来获得该约束优化问题的最优解。这个问题的拉格朗日量是:
$$\begin{align}
\mathcal{L}(\pi,\lambda)=\mathbb{E}_{y\sim \pi}\big[r_c(x,y)\big]-\beta\mathbb{KL}[\pi\parallel \pi_c]+\lambda(1-\int_{y}\pi(y\mid x,c)dy)
\end{align}$$
根据 KKT 条件,我们取 $\mathcal{L}$的 $\pi$ 和 $\lambda$导数,并将它们设置为零:
$$\begin{align}
\frac{\partial \mathcal{L}}{\partial \pi}
&= r_c(x,y)-\beta\log \pi(y\mid x,c)+\beta\log \pi_c(y\mid x,c)-\beta-\lambda=0\\
\frac{\partial \mathcal{L}}{\partial \lambda}
&=1 -\int_{y}\pi(y\mid x,c )dy =0
\end{align}$$
求解这些方程为我们提供了最优策略 $\pi^*$
$$\begin{align}
\pi^*(y\mid x,c ) &= \frac{1}{Z(x,c)}\pi_c(y\mid x,c)\exp\bigg(\frac{1}{\beta}r_c(x,y)\bigg)\\
Z(x,c) &= \int_{y}\pi_{c}(y\mid x,c)\exp\bigg(\frac{1}{\beta}r_c(x,y)\bigg)dy
\end{align}$$
其中 $Z(x,c)$是归一化项,确保它是 $\pi^*(y\mid x,c ) $有效的概率分布。
也可以基于「RLHF实质是一个贝叶斯推断」的思想重新表述问题
$$\begin{align}
\pi_{\theta} & = \arg\min_{\theta}\mathbb{E}_{(x,c)\sim \mathcal{D}_c}\big[\mathbb{KL}[\pi^*(\cdot\mid x,c))\parallel \pi_{\theta}(\cdot\mid x,c]\big]\\
&=\arg\min_{\theta}\mathbb{E}_{(x,c)\sim \mathcal{D}_c}\big[\mathbb{E}_{y\sim \pi^*}[-\log\pi_{\theta}(y\mid x,c)]\big]\\
&=\arg\max_{\theta}\mathbb{E}_{(x,y,c)\sim \mathcal{D}_c}\bigg[\exp\bigg(\frac{1}{\beta}r_c(x,y)\log \pi_{\theta}(y\mid x,c)\bigg)\bigg]
\end{align}$$
也就是有:
$$\begin{align}
\pi^*(y\mid x,c)\propto \pi_c(y\mid x,c)\exp\bigg(\frac{1}{\beta}r_c(x,y)\bigg)
\end{align}$$
四、关于未来的多模态语言模型
既然RLHF实质是一个贝叶斯推断,而且C-RLFT(条件强化学习微调)已经示范了证怎么充分利用数据集的信息来与人类对齐。那么我们是不是可以充分利率贝叶斯的思想来扩展大语言模型。
如果我们有视觉、听觉、味觉、触觉的一个庞大数据集。如何训练它们与人类对齐呢?
$\displaystyle \mathcal{D}_{\text{total}}=\mathcal{D}_{text}\cup \mathcal{D}_{audio}\cup \mathcal{D}_{image}\cup \mathcal{D}_{video}\cup \mathcal{D}_{smell}\cup \mathcal{D}_{tactus}=\{x_i,y_i,c_i\},c_i\in \{text,audio,image,video,smell,tactus\}$
现在的做法是一个统一的大模型,个人认为未来一定是分开的小模型。理由如下,既然我们是训练一个对齐模型与结合先验和人类信念似然后的后验接近。那么为什么不能是多个模型呢?
$$\begin{align}
\min_{\theta}\mathbb{KL}\bigg[\pi_{\theta}(y\mid x)\parallel\pi_{\text{KL-RL}}(y\mid x, r, c)\bigg]
\end{align}$$
不妨令对齐模型是由多个脑区模型构成的:
$$\begin{align}
\pi_{\theta}(y\mid x)=\sum_{k \in \text{Brain Areas}}\pi_k(y\mid x,c)
\end{align}$$
或许我们还应该添加沟通不同脑区的功能:
$$\begin{align}
\pi_{\theta}(y\mid x)=\sum_{k \in \text{Brain Areas}}\pi_k(y\mid x,c)+\pi_\text{cross}(y\mid x)
\end{align}$$
不同脑区与交叉脑区底层应该都有信号连接。当然未来也许不是这样。受限笔者实验条件,目前无法验证这个想法,如有同行赞同笔者想法,欢迎一起合作。我的邮箱: limoncc@icloud.com
[^1]: Wang, G., Cheng, S., Zhan, X., Li, X., Song, S., & Liu, Y. (2023, September 20). OpenChat: Advancing Open-source Language Models with Mixed-Quality Data. arXiv. http://arxiv.org/abs/2309.11235. Accessed 6 December 2023
[^2]: Zhu, B., Sharma, H., Frujeri, F. V., Dong, S., Zhu, C., Jordan, M. I., & Jiao, J. (2023, November 2). Fine-Tuning Language Models with Advantage-Induced Policy Alignment. arXiv. http://arxiv.org/abs/2306.02231. Accessed 7 December 2023
[^3]: Korbak, T., Perez, E., & Buckley, C. L. (2022, October 21). RL with KL penalties is better viewed as Bayesian inference. arXiv. http://arxiv.org/abs/2205.11275. Accessed 7 December 2023
版权声明 | |
由引线小白创作并维护的柠檬CC博客采用署名-非商业-禁止演绎4.0国际许可证。 本文首发于柠檬CC [ https://www.limoncc.com ] , 版权所有、侵权必究。 | |
本文永久链接 | httpss://www.limoncc.com/post/bd7e41e00dc8afad/ |
如果您需要引用本文,请参考: |
引线小白. (Dec. 7, 2023). 《如何训练——大语言模型研究02》[Blog post]. Retrieved from https://www.limoncc.com/post/bd7e41e00dc8afad |
@online{limoncc-bd7e41e00dc8afad, title={如何训练——大语言模型研究02}, author={引线小白}, year={2023}, month={Dec}, date={7}, url={\url{https://www.limoncc.com/post/bd7e41e00dc8afad}}, } |