数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
- 线性模型
- 支持向量机
- 朴素贝叶斯
- 决策树
- knn
- 集成学习
- 梯度提升树
- 数据预处理
- 模型评估
- 降维
- 聚类
- 半监督学习
- EM 算法
- 最大熵算法
- 隐马尔可夫模型
- 概率图与条件随机场
- 边际概率推断
- 主题模型
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- CRF ++
- lightgbm
- xgboost
- xgboost 使用指南
- scikit-learn
- spark
- numpy
- matplotlib
- matplotlib 使用指南
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
二十三、Fine-Tuning Language Models from Human Preferences [2019]
-
我们希望将强化学习应用于仅由
human judgment
所定义的复杂的任务,对于该任务我们只能通过询问人类来判断一个结果是好还是坏。要做到这一点,我们可以首先使用human labels
来训练一个奖励模型reward model
,然后优化这个模型。虽然通过互动从人类那里学习这种模型的工作由来已久,但这项工作最近才被应用于现代深度学习,即使如此,也只被应用于相对简单的模拟环境simulated environments
。相比之下,真实世界的setting
(其中人类需要向AI agents
指定复杂目标)很可能涉及并需要自然语言,其中自然语言是一种丰富的媒介来表达value-laden
的概念。当agent
必须与人类沟通从而帮助提供更准确的监督信号时,自然语言尤其重要。自然语言处理最近取得了实质性的进展。一种成功的方法是在无监督数据的语料库上预训练大型生成式语言模型,然后针对有监督的
NLP
任务对模型进行微调。这种方法往往大大优于在监督数据集上从头开始的训练,并且在许多不同的监督数据集上,一个预训练的语言模型往往可以微调从而得到SOTA
的性能。在某些情况下,不需要进行微调:GPT-2
发现,生成式预训练的模型在没有额外训练的情况下(即,zero-shot)
),在NLP
任务上显示出合理的性能。有大量文献将强化学习应用于自然语言任务。这些工作大多使用算法定义的奖励函数
reward functions
,如用于翻译的BLEU
、用于摘要的ROUGE
、music theory-based
的奖励、或者用于故事生成的event detectors
。《Reinforcement learning for bandit neural machine translation with simulated human feedback》
在BLEU
上使用强化学习,但应用了几个error models
来近似human behavior
。《Learning to extract coherent summary via deep reinforcement learning》
以及《Towards coherent and cohesive long-formtext generation》
从现有文本中学习了coherence model
,并将其作为强化学习奖励分别用于摘要和长篇小说的生成。《Preference-based interactive multi-document summarisation》
通过一次对一篇文章应用reward learning
,建立了一个交互式的摘要工具。- 使用人类评价作为奖励的实验包括
《Reliability and learnability of human bandit feedback for sequence-to-sequence reinforcement learning》
将off-policy
的reward learning
用于翻译、以及《Way off-policy batch deep reinforcement learning of implicit human preferences indialog》
将《Sequence tutor: Conservative fine-tuning of sequence generation models with kl-control》
修改后的Q-learning
方法应用于对话中的隐式的human preferences
。 《Towards coherent and engaging spoken dialog response generation using automatic conversation evaluators》
从人类那里学习奖励来微调对话模型,但对奖励进行了平滑处理从而允许监督学习。- 我们参考
《A survey of reinforcement learning informed by natural language》
对涉及语言作为一个组成部分的强化学习任务的综述,以及使用从语言迁移学习的强化学习结果。 - 强化学习并不是纳入持续的
human feedback
的唯一方式。《Learning from dialogue after deployment: Feed yourself, chatbot!》
询问人类关于对话系统应该说些什么,然后继续监督训练。
在论文
《Fine-Tuning Language Models from Human Preferences》
中,作者将自然语言处理的预训练进展与human preference learning
相结合。作者用reinforcement learning
而不是supervised learning
来微调预训练的语言模型,使用来自在text continuations
上的human preferences
训练的一个奖励模型reward model
。遵从《Sequence tutor: Conservative fine-tuning of sequence generation models with kl-control》
和《Way off-policy batch deep reinforcement learning of implicit human preferences indialog》
之后,作者使用KL constraint
来防止微调模型与预训练模型相差太远。作者将该方法应用于两类任务:以符合目标风格的方式续写文本
continuing text
(无论是积极的情感还是生动的描述)、以及CNN/Daily Mail
或TL;DR
数据集的文本摘要。论文的动机是NLP
任务,其中监督数据集不可用或数量不够,而且程序化的奖励函数(如BLUE
)对任务的真正目标来说是很差的代理proxy
。对于风格延续
stylistic continuation
,5K
个human comparisons
(每次选择4
个continuation
中最好的一个)的结果是:reinforcement learning
微调模型与zero-shot
相比,人类在86%
的情况下优先选择reinforcement learning
微调模型的结果。reinforcement learning
微调模型与被监督微调到情感分类网络相比,人类在77%
的情况下选择reinforcement learning
微调模型的结果。
注意,这里有两种微调:
reinforcement learning
微调、supervised learning
微调。对于摘要,论文使用
60K
个人类标注的样本来训练模型,这些模型可以大致描述为"smart copiers"
:它们通常从输入中复制整个句子,但改变它们复制的内容以跳过不相关的初始文本。这种复制行为是在数据收集和训练过程中自然出现的。作者没有像《Get to the point: Summarization with pointer-generator networks》
和《Bottom-up abstractive summarization》
那样使用任何显式的架构机制进行复制。一种解释是,鉴于作者没有指示labelers
惩罚copying
,而是指示labelers
惩罚inaccuracy
,所以复制是一种容易的方式来实现accurate
。这也可能反映了这样一个事实:即一些labelers
将检查copying
作为一种快速的启发式方法来确保摘要的准确性。事实上,相比于有监督的fine-tuning baselines
甚至是human-written
的reference
摘要,human labelers
明显倾向于论文的模型,但是论文的模型反而比不过lead-3 baseline
(简单地拷贝文本的前三句话)。对于摘要,作者继续收集额外的数据,并随着策略的改善重新训练奖励模型(
online data collection
)。作者还测试了offline data collection
,其中论文只使用原始语言模型的数据来训练奖励模型(而没有重新训练奖励模型)。离线数据收集大大降低了训练过程的复杂性。- 对于
TL;DR
数据集,human labelers
在71%
的情况下更喜欢用online data collection
训练的策略。在定性评估中,offline model
经常提供不准确的摘要。 - 相比之下,对于风格延续,作者发现
offline data collection
的效果同样很好。这可能与风格延续任务需要很少的数据有关。《Learning to generate reviews and discovering sentiment》
表明:生成式训练的模型可以从很少的标记样本中学习情感分类。
在同时进行的工作中,
《Better rewards yield better summaries: Learning to summarise without references》
也使用human evaluations
来学习摘要的奖励函数,并通过强化学习来优化该奖励函数。他们的工作对CNN/Daily Mail
数据集上的学习策略函数和奖励函数进行了更详细的调查。而论文
《Fine-Tuning Language Models from Human Preferences》
对更通用地探索从human feedback
中学习、以及更大的计算规模感兴趣。因此,作者考虑了几个额外的任务,探索了on-policy reward model training
和更多数据的效果,并同时为reward modeling
和强化学习来微调大型语言模型。
23.1 模型
-
我们以一个词表
$ \mathbb V $ 和一个语言模型 $ \rho(\cdot) $ 来开始,其中 $ \rho(\cdot) $ 在一个长度为 $ n $ 的token
序列 $ \mathbf x=(x_0,\cdots,x_{n-1}) $ 上定义了分布概率:我们将
$ \rho(\cdot) $ 应用到一个任务,该任务的输入空间 $ X $ 为所有长度小于等于 $ m $ 的token
序列、输出空间 $ Y $ 为长度等于 $ n $ 的token
序列。定义 $ \mathcal D $ 为该任务在输入空间 $ X $ 上的数据分布。例如: $ \mathbf x \in X $ 可以是一篇最大长度为1000
个单词的文章, $ \mathbf y\in Y $ 可能是一篇长度为100
个单词的摘要。 $ \rho(\cdot) $ 通过 $ \rho(\mathbf y\mid \mathbf x) = \frac{\rho(\mathbf x,\mathbf y)}{ \rho(\mathbf x)} $ 为该任务定义了一个概率性的策略policy
:将样本的开头固定为 $ \mathbf x $ ,然后使用 $ \rho(\cdot) $ 生成后续的token
。这是一个强化学习策略,其中每个
action
可以视为生成一个token
,总的奖励等于 $ \mathbf y $ 的human preference
(即,人工标注是好、还是坏)。 -
我们初始化一个策略
$ \pi_\theta = \rho $ ,然后使用强化学习微调 $ \pi_\theta $ 从而顺利执行该任务。如果我们通过一个奖励函数来定义该任务,其中奖励函数为 $ r: X\times Y \rightarrow \mathbb R $ ,那么我们可以使用强化学习来直接优化期望的奖励expected reward
:然而,我们希望执行由
human judgments
定义的任务,在这种情况下,我们只能通过询问人类来了解奖励的情况。为了做到这一点,我们将首先使用human labels
来训练奖励模型,然后优化该奖励模型。遵从
《Deep reinforcement learning from human preferences》
的做法,我们要求human labelers
针对给定的输入 $ \mathbf x $ 从若干个输出 $ \{\mathbf y_0,\mathbf y_1,\cdots\} $ 中挑选出最佳的response
。我们要求人类在四个选项 $ \{\mathbf y_0,\mathbf y_1,\mathbf y_2,\mathbf y_3\} $ 中做出选择。考虑更多的选项可以使人类摊薄阅读和理解prompt
$ \mathbf x $ 的成本。令 $ b\in \{0,1,2,3\} $ 为human labelers
的选择结果。在收集了一个由 $ (\mathbf x,\mathbf y_0,\mathbf y_1,\mathbf y_2,\mathbf y_3,b) $ 的元组成的数据集 $ \mathbb S $ 后,我们使用如下的损失函数来训练一个奖励模型 $ r: X\times Y \rightarrow \mathbb R $ :由于奖励模型需要理解语言,我们遵从
GPT-1
的做法,将奖励模型初始化为语言模型策略 $ \rho $ 的final embedding output
的随机线性函数(对于为什么从 $ \rho $ 而不是 $ \pi_\theta $ 来初始化,参考后面的内容)。为了使奖励模型的scale
在整个训练中保持一致,我们将其归一化为:针对 $ \mathbf x\sim \mathcal D, \mathbf y\sim \rho(\cdot\mid \mathbf x) $ ,奖励模型的输出的均值为零、方差为1
。为什么从
$ \rho $ 而不是 $ \pi_\theta $ 来初始化?因为训练过程中会周期性重新训练奖励模型,每次重新训练奖励模型都需要对它进行初始化。如果选择 $ \pi_\theta $ 来初始化奖励模型 $ r(\mathbf x,\mathbf y) $ ,那么由于 $ \pi_\theta $ 在训练过程中不断更新、且 $ \pi_\theta $ 的更新过程依赖于 $ r(\mathbf x,\mathbf y) $ 的结果,因此造成一个feedback loop
,这不利于训练。注:读者猜测模型结构为
GPT-1
中的Multiple Choice
。每个输入都添加了start token
$$ 和extract token
$$ (也叫做 end token
)。 -
现在我们强化学习微调
$ \pi_\theta $ 从而优化奖励模型 $ r $ 。为了防止 $ \pi_\theta $ 离 $ r $ 太远,我们增加了一个惩罚项 $ \beta \text{KL}(\pi_\theta,\rho) $ ,其中KL
为KL
散度。可以参考Table 10
来了解没有这个惩罚项的后果。即,我们在修改后的奖励上执行强化学习:我们要么选择一个常数
$ \beta $ ,要么动态地改变 $ \beta $ 以达到一个特定的 $ \text{KL} $ 值。这个惩罚项有几个目的:
-
它起到了熵的作用。
-
它可以防止策略
$ \pi_\theta $ 离 $ r $ 有效的范围太远。因为奖励模型是通过
$ \rho(\cdot) $ 来初始化的,因此如果策略 $ \pi_\theta(\mathbf y\mid \mathbf x) $ 距离 $ \rho(\cdot) $ 太远,则奖励模型的评估结果可能失效。 -
在我们的风格延续任务中,它也是任务定义的一个重要部分:我们要求人类评估风格,但依靠
KL
项来鼓励一致性coherence
和主题性topicality
。
奖励模型用于判定文本生成的好坏。有两种优化奖励模型的方式:
- 监督微调:利用大量的带标记的文本来进行监督微调,此时每个被生成的文本需要评估一次(在整体上进行评估)。
- 强化学习微调:利用一个预训练好的(或者微调好的)奖励模型来进行强化学习微调,此时每个被生成的文本需要被评估多次(每生成一个
token
就在已经生成的序列上进行评估,即使生成过程尚未完成)。
-
-
我们的整体训练过程是:
-
通过
$ \mathbf x\sim \mathcal D, \mathbf y\sim \rho(\cdot\mid \mathbf x) $ 来收集样本 $ (\mathbf x,\mathbf y_0,\mathbf y_1,\mathbf y_2,\mathbf y_3) $ ,并要求人类从每个样本中挑选出最好的 $ \mathbf y_i $ 。注意,前提是必须有一个预训练好的语言模型
$ \rho(\cdot\mid \mathbf x) $ 。这里的 $ \mathcal D $ 不是预训练数据集,而是下游的目标任务数据集。注意,这里应该是
$ \mathbf y\sim \pi_\theta(\cdot\mid \mathbf x) $ ,因为奖励模型要对策略进行打分,而不是对预训练模型进行打分。但是,初始的策略 $ \pi_\theta $ 就是语言模型 $ \rho(\cdot\mid\mathbf x) $ 。 -
初始化奖励模型
$ r(\mathbf x,\mathbf y) $ 为 $ \rho(\mathbf y\mid \mathbf x) $ ,对 $ r $ 的final linear layer
使用随机初始化,使用损失 $ \text{loss}(r) $ 在human samples
上训练 $ r(\mathbf x,\mathbf y) $ 。注意,这里的
label
来自于人工标注,即human labelers
的选择结果 $ b\in \{0,1,2,3\} $ 。 -
在
$ \mathbf x\sim \mathcal D $ 上采用奖励 $ R(\mathbf x,\mathbf y) = r(\mathbf x,\mathbf y) - \beta\log \frac{\pi_\theta(\mathbf y\mid \mathbf x)}{\rho(\mathbf y\mid \mathbf x)} $ 通过Proximal Policy Optimization: PPO
来训练 $ \pi_\theta $ 。根据
InstructGPT
,PPO
的损失函数为:其中:
$ \pi_\theta $ 为学到的RL
策略, $ \theta $ 为策略的参数; $ \rho $ 为预训练好的语言模型。 $ \mathcal D $ 为强化学习的数据分布, $ \beta $ 为KL
系数。
-
在
online data collection
的情况下,继续收集更多的样本(样本来自于更新后的策略 $ \pi_\theta $ ),并周期性重新训练奖励模型 $ r(\mathbf x,\mathbf y) $ 。
整体框架如下图所示。
注意,根据下图所示,奖励模型的样本由
policy
函数 $ \pi_\theta $ 生成,而不是预训练模型 $ \rho(\cdot\mid\mathbf x) $ 生成。这是讲得通的,因为奖励模型要对策略进行打分,而不是对预训练模型进行打分。 -
23.1.1 预训练细节
-
我们使用
774M
参数版本的GPT-2
语言模型,在GPT-2
的WebText
数据集、以及50257
个token
的invertible BPE
(保留大写和标点符号)上进行训练。该模型是一个具有36
层、20
个头、embedding size = 1280
的Transformer
。对于风格延续任务,我们在强化学习微调之前对
BookCorpus
数据集进行监督微调(语言模型):首先在WebText
上从头开始训练,然后在BookCorpus
上进行监督微调,最后对我们的最终任务进行强化学习微调。为了提高样本质量,我们在所有的实验中都使用了
$ T<1 $ 的温度。我们通过将logits
除以 $ T $ 来修改初始语言模型,这样,未来的sampling
和强化学习在 $ T=1 $ 的情况下对应于针对unmodified pretrained model
的较低温度。这个
unmodified pretrained model
的较低温度是什么意思?论文未解释。
23.1.2 微调细节
-
监督微调:以预训练好的语言模型作为开始,我们使用
Adam
优化器来训练奖励模型,损失为 $ \text{loss}(r) $ 。风格任务的batch size = 8
、摘要任务的batch size = 32
,两者的学习率均为 $ 1.77\times 10^{-5} $ 。我们使用单个epoch
从而过拟合于small amount of human data,
,并禁用dropout
。 -
强化学习微调:对于策略
$ \pi $ 的训练,我们使用来自《Openai baselines》
的Proximal Policy Optimization
的PPO2
版本。我们使用2M
个episodes
的 $ (\mathbf x,\mathbf y_0,\mathbf y_1,\mathbf y_2,\mathbf y_3,b) $ , $ \gamma=1 $ ,每个batch
有四个PPO epoch
,每个batch
有一个minibatch
,其它超参数为默认值。我们对风格任务使用batch size = 1024
、对摘要任务使用batch size = 512
。我们在策略训练中禁用dropout
。风格任务的学习率为 $ 1.41\times 10^{-5} $ 、摘要任务的学习率为 $ 7.07\times 10^{-6} $ 。外层的
batch
对应于 $ (\mathbf x,\mathbf y) $ 的pair
,内层的minibatch
对应于trajectory segment
长度 $ T $ 。我们对每个样本收集长度为 $ T $ 的轨迹,然后在这些轨迹上训练4
个epoch
。 -
用不同的种子和相同的
KL
惩罚系数 $ \beta $ 训练出来的模型有时会有相当不同的 $ \text{KL}(\pi,\rho) $ 的值,使它们难以比较。为了解决这个问题,在一些实验中,我们使用对数空间比例控制器log-space proportional controller
动态地改变 $ \beta $ 从而实现 $ \text{KL}(\pi,\rho) $ 的特定目标值:其中:
$ \text{KL}_\text{target} $ 为指定的KL
值,根据具体任务来指定。 $ K_\beta $ 为反馈系数,我们使用 $ K_\beta=0.1 $ 。
通过这种方式的调节,使得
$ \text{KL}(\pi_t,\rho) $ 尽可能接近于 $ \text{KL}_\text{target} $ 。 -
监督微调
baselines
:我们在CNN/Daily Mail
和TL;DR
训练集上微调了1
个epoch
(对于TL;DR
,我们从训练集中删除了30K
的样本作为验证集)。我们用cosine schedule
将学习率衰减到0
。对于学习率的初始值,我们在 $ 10^{-4} $ 和 $ 3\times 10^{-4} $ 之间在对数线性空间扫描了8
个值 。我们还试验了不同的dropout rate
,发现dropout rate = 0.1
的效果最好。然后我们选择了具有最佳验证损失的模型。
23.1.3 Online data collection
-
如果训练后的策略
$ \pi $ 与zero-shot
策略 $ \rho $ 有很大的不同,那么奖励模型将遭受到一个大的分布漂移distributional shift
:在来自 $ \rho $ 的样本上训练、但是在来自 $ \pi $ 的样本上评估。为了防止这种情况,我们可以在整个强化学习微调过程中收集human data
,通过从 $ \pi $ 中采样来不断收集新的数据,并重新训练奖励模型。如实验部分所示,online data collection
对摘要任务很重要,但对较简单的风格任务不重要。Online data collection
影响的是奖励模型(即,状态价值函数)。 -
在
online
的情况下,我们将选择一个函数 $ l(n) $ ,该函数描述在开始第 $ n $ 个PPO episode
之前我们想要多少个标签。令 $ N_e = 2\times 10^6 $ 是PPO episodes
的总数, $ N_h^0 = l(0) $ 是human labels
的初始数量, $ N_h $ 是human labels
的总数。我们选择:- 如果我们的标签少于
$ l(n) $ 个,我们在第 $ n $ 个PPO episode
之前暂停。 - 如果到目前为止的总请求数少于
$ l(n)+1000 $ ,我们就向labelers
发送另一个batch
的请求,以确保他们在任何时候都有至少1000
个未完成的query
。
我们在第一个
PPO episode
之前训练奖励模型,然后在均匀间隔的 $ l(n) $ 值下重新训练19
次。每次重新训练时,我们将奖励模型 $ r $ 重新初始化为 $ \rho $ 顶部的一个随机线性层,并通过迄今为止收集的标签训练单个epoch
。offline
情况是一种极端情况: $ N_h = N_h^0 $ 。 $ l(n) $ 是经过 $ (0,N_h^0) $ 和 $ (N_e,N_h) $ 这两个点的二次函数,重新训练奖励模型 $ r $ 的点位于:human labels
总数分别为: $ N_h^{0} + \frac{1}{20}\times (N_h-N_h^0),N_h^{0} + \frac{2}{20}\times (N_h-N_h^0),\cdots $ 。注意:奖励模型
$ r $ 的样本不仅来自于最新的策略、还来自于历史策略、以及来自于初始的预训练模型 $ \rho $ ,因为每次重新训练奖励模型,我们都用历史所有的human labels
来训练。 - 如果我们的标签少于
-
为了估计总体进度,我们以恒定的速度收集由
$ \mathbf x\sim \mathcal D; \mathbf y_0,\mathbf y_1\sim \rho(\cdot\mid \mathbf x); \mathbf y_2,\mathbf y_3\sim \pi(\cdot\mid \mathbf x) $ 组成的验证样本。这些样本上的human labels
给出了 $ \pi $ 胜过 $ \rho $ 的频率。由于验证样本只用于评估当前的 $ \pi $ ,我们可以把它们加入到奖励模型 $ r $ 的训练集中。为了估计
labeler-labeler
之间的一致性,5%
的query
由不同的labeler
回答5
次。实验部分的label
计数包括验证样本和重复标签。
23.1.4 人类标注
-
我们使用
Scale AI
来收集标签。Scale API
接受形式为 $ (\mathbf x,\mathbf y_0,\mathbf y_1,\mathbf y_2,\mathbf y_3 ) $ 的请求,并返回选择 $ b\in \{0,1,2,3\} $ 。我们通过指令(如下图所示,来自论文附录A
)、以及本文作者提供的大约100
个样本的comparison
数据集的组合向Scale AI
描述任务。 -
与机器学习中的许多任务不同,我们的
query
没有明确的ground-truth
,特别是对于similar outputs
的pair
(这在我们的训练过程中起了很大的作用,因为我们在从单个策略 $ \pi_\theta $ 中抽样的label pair
上训练奖励模型 $ r $ )。这意味着,即使是对任务有类似理解并试图进行一致评级的labelers
之间也存在着重大分歧。- 在情感分类和
TL;DR
摘要的4-way comparisons
中,本文作者之间有60%
的时间达成一致(与随机猜测的25%
相比)。这种低的一致率使Scale AI
的质量控制过程变得复杂。 - 在情感分类方面,本文作者与
Scale labelers
的一致率为38%
。 - 在
TL;DR
摘要方面,作者本文与Scale labelers
的一致率为46%
。
针对
comparision
的标注带有很大的主观性,因为每个人对于什么是好的、什么是生动的、什么是客观的等等这些评价标准的理解都不同。 - 在情感分类和
-
人类数据收集和质量评估的细节(来自论文附录
B
):我们的质量保证过程是由Scale AI
处理的。由于我们最初认为online data collection
将是至关重要的,即使是离线实验也是在这种快速周转的要求下收集的。在未来,我们计划使用一个更宽松的延时要求。数据收集的第一步是把任务教给少数受信任的
Scale labelers
,给他们一个任务的描述(如前文所述)。Scale AI
使用这些labelers
收集大量的benchmark
数据点(从 $ \rho $ 的一大批unlabeled
的数据点中),在这些数据点上,几个受信任的labelers
达成了一致。在完整的数据收集过程中,Scale AI
将这些benchmark
数据点与真实的未标记数据一起提供给freelance workers
进行训练(当 $ \pi=\rho $ 时,这两类数据是无法区分的,尽管它们在训练过程中确实变得可以区分),为每个labeler
在benchmark
分布上的表现维持一个confidence model
。判断数据点是来自benchmark
还是来自真实的未标记数据,这个概率在各种因素上动态变化,如对labeler
正确标记某个类别的信心。在benchmark
任务上表现不佳的freelance workers
会被过滤掉。此外,Scale AI
随着时间的推移对质量控制进行临时改进,有时通过与本文作者的少量gold-standard labels
进行比较来验证质量。我们在事后评估了其中两个任务的数据质量。在所有的数据收集过程中,有
5%
的query
是由5
个不同的labelers
回答的。我们从这些query
中采样100
个(仅限于从 $ \rho $ 产生的query
),让两名作者给每个query
进行标注。基于这些数据,我们估计了本文作者和Scale labelers
、labeler-labeler
、以及author-author
之间的一致率,如下表所示。早期的版本要求
labelers
进行1-10
的评分。在最好的情况下,每个labeler
提供了更多的信息,但很难衡量labeler
的表现:-
归一化是必要的,因为两个好的
labelers
往往会有一个(噪音的)monotonic transform
。例如,
labeler A
的评分比较保守,评分集中在1~8
分;labeler B
的评分比较激进,评分集中在5 ~ 10
分。那么同样是7
分,对于这两个labeler
是不同的含义 。 -
如果许多分数集中在几个数值上(例如
7
和8
),简单的策略 $ \pi $ 就能骗过过滤过程。此时策略
$ \pi $ 只需要维持不变就可以获得较高的得分,因为强化学习微调没有见过更高的得分、也没有见过更低的得分,它不知道什么是更好的行为、也不知道什么是更差的行为。 -
绝对分数也倾向于在训练过程中漂移,因为
labelers
会根据变化的策略 $ \pi $ 中新的样本分布进行调整。因为策略
$ \pi $ 会在迭代过程中越来越好,所以它生成的样本的质量也越来越高。
寻找高质量的
workers
涉及到human answering
质量控制问题,质量控制在我们的实验中没有使用,并移除了低质量workers
的数据。因此,实验的总人力成本要比我们实际使用的标签数量(也就是我们报告的内容)高一些。对于一个短期的training run
来说,这很容易支配实际的标签要求,尽管它可以通过识别持续的good workers
在几个任务中摊销。对于我们较长的training run
,额外的标签数量并不高。 -
-
对于两个模型
A
和B
的最终评估,我们产生了pair
$ (a\sim A,b\sim B) $ 之间的2-way comparisons
、或者pair
$ (a_0,a_1\sim A,b_0,b_1\sim B) $ 之间的4-way comparisons
。我们随机调整样本的呈现顺序,并将这些comparisons
呈现给Scale AI
。用
Scale AI
的同一组人类来评估 由Scale AI
训练的模型的质量是很危险的:它表明奖励 $ r $ 和策略 $ \pi $ 已经成功地适应了human reward
,但并不表明这些human evaluations
捕获到了我们真正关心的东西,并且我们的模型被激励去利用标注过程的特质。我们包括我们的模型的样本,以便读者可以自己判断。也就是说:最终评估的人、训练过程中标注的人,他们是同一波人。这类似于在训练集上进行评估。
理论上,应该使用训练过程中的标注人员之外的人来进行评估,但是这样做的成本比较高。
23.2 实验
-
首先,我们通过使用
mock labeler
(在评论分类问题上训练的情感模型)作为human labels
的替身来测试我们对语言模型进行强化学习微调的方法。我们表明强化学习微调可以有效地优化这个复杂的、但一定程度上人造的奖励。然后,我们表明我们可以用很少的数据从人类对风格延续任务(情感和物理描述性)的偏好中优化语言模型,在情感的情况下,结果优于优化
review sentiment model
。接着,我们将强化学习微调应用于
CNN/Daily Mail
和TL;DR
数据集的摘要任务,表明所得到的模型本质上是"smart copiers"
,并在其他摘要工作的背景下讨论这些结果。我们发布了
offline data
情况下的奖励建模和微调的代码。我们的公开版本的代码只适用于一个较小的124M
参数模型,有12
层,12
个头,embedding size = 768
。我们包括这个较小模型的强化学习微调版本,以及我们为主要实验收集的一些human labels
(注意,这些标签是从使用较大模型的运行中收集的)。
23.2.1 风格延续任务
- 我们首先将我们的方法应用于风格化的文本延续任务,在这个任务中,策略需要对来自
Book-Corpus
数据集的节选来生成文本的continuation
。奖励函数会自动或根据human judgments
来评估continuation
文本的风格。我们采样长度为32
到64
个token
的节选,该策略生成24
个额外的token
。如前所述,我们将预训练模型的温度设置为 $ T=0.7 $ 。
a. Mock 情感分析任务
-
为了在受控环境下研究我们的方法,我们首先应用它来优化一个已知的奖励模型
$ r_s $ ,该任务被设计来反映human judgments
的一些复杂性。我们通过在Amazon review
数据集的一个二元平衡子集上训练一个分类器从而构建奖励模型 $ r_s $ 。该分类器预测评论是正面的还是负面的,并且我们将 $ r_s(\mathbf x, \mathbf y) $ 定义为评论是正面的对数几率log odds
(即,final sigmoid layer
的输入)。在没有约束的情况下优化
$ r_s $ 会导致策略产生incoherent continuations
,但如前所述,我们包括一个KL
约束,迫使它靠近基于BookCorpus
上预训练的语言模型 $ \rho $ 。我们的方法的目标是只使用少量的
human queries
(即,人类标注数据)来监督微调 $ r_s(\mathbf x,\mathbf y) $ 。此外,我们询问需要多少次query
来优化 $ r_s $ 。注意,
mock
情感分析任务的目标是获得良好的情感分类模型(即,奖励模型 $ r_s $ ,它在Amazon review
上已经微调过)。有两种方式可以获得:-
利用强化学习直接优化奖励模型
$ r_s $ 。此时通过策略
$ \pi $ 来生成text continuation
,然后通过奖励模型 $ r_s $ 来打分从而选择正面情感的continuation
。 -
利用监督微调来通过人类标注数据来优化
$ r_s $ 。
在使用强化学习直接优化奖励模型
$ r_s $ 、或有限数量的query
来训练一个奖励模型的情况下,下图显示了 $ r_s $ 在训练过程中的演变情况。20k
到60k
的query
允许我们优化 $ r_s $ ,其效果几乎和使用强化学习直接优化 $ r_s $ 一样好。监督微调的奖励模型也有
reward
,虽然它不是强化学习,但是根据定义,reward
是:文本是正面的对数几率log odds
。 -
-
因为我们知道奖励函数,我们也可以分析计算出最优策略,并将其与我们学到的策略进行比较。在对所学到的策略
$ \pi $ 和语言模型 $ \rho $ 之间的KL
散度 $ \text{KL}(\pi,\rho) $ 的约束下,最优策略的形式是:对于给定的
$ \mathbf x $ 和 $ \beta $ ,我们通过从 $ \rho(\mathbf y\mid \mathbf x) $ 中采样大量的continuations
,并通过 $ \exp\left(\frac{r_s(\mathbf x,\mathbf y)}{\beta}\right) $ 对它们进行重新加权,从而近似计算这个策略的奖励。下图比较了我们的策略获得的奖励、以及在一个范围的
KL
值之间估计的最优奖励。在对2M
个continuations
(我们的主要实验中使用的数字)之上训练策略之后,我们的策略获得的奖励与最佳奖励之间有很大的差距,但随着更多的训练(64M episodes
)这种差距基本上被消除。我们的策略在较大的
KL
散度中继续获得更高的奖励,在这种情况下我们不能通过采样来近似选择 $ \pi_\text{opt} $ 。因为此时
$ \pi $ 和 $ \rho $ 的分布差异较大,从 $ \rho $ 中采样的样本无法代表策略 $ \pi $ 的分布。
b. 人类对 continuation 的评估
-
我们将我们的方法应用于由
human judgments
定义的两个continuation
任务:- 情感:人类被要求奖励
"positive and happy"
的continuation
。 - 描述性:人类被要求奖励
"vividly descriptive"
的continuation
。
human labelers
会收到BookCorpus
数据集的一份节选、以及四个可能的continuations
。他们被要求选择最佳continuations
。论文附录A
提供了针对labelers
的完整指令(因为labelers
也从论文作者标注的大约50
个comparisons
中学习,所以任务并不完全由指令来定义)。 - 情感:人类被要求奖励
-
为了标注任务更加自然,我们选择以句号开始和结束的节选。当采样
continuations
(这些采样的结果交给人类来判断),我们使用rejection sampling
来确保有一个句号在token
长度为16 ~ 24
之间,然后在这个句号截断。在强化学习微调期间,我们通过采用固定的奖励-1
,从而对没有这样一个句号的continuations
施加惩罚。我们通过动态调整
$ \beta $ 从而为descriptiveness
任务获得6 nat
的KL
散度、为sentiment
任务获得10 nat
的KL
散度。我们使用不同数量的
feedback
训练了一系列的模型,同时测试了offline data collection
(其中人类只对初始语言模型的continuation
进行评分)、以及online data collection
(其中人类不断对当前策略的continuations
进行评分)。然后,我们将这些不同的策略相互比较,并与原始语言模型的zero-shot
性能进行比较。offline data collection
的情况下,奖励模型仅训练一次;online data collection
的情况下,奖励模型会周期性地重新训练(在截至到当前时刻的所有human judgments
数据上)。 -
结果显示在下图和下表中。每一对
model
之间的评估都是基于1024
个4-way continuation comparisons
,每个模型都包含两个样本,然后不同模型之间的comparision
进行两两比较,每个评分都由3
个人进行。对于两个模型
A
和B
的评估,我们产生了pair
$ (a_0,a_1\sim A,b_0,b_1\sim B) $ 之间的4-way comparisons
。对于这些
continuation
任务,我们发现:-
offline data collection
和online data collection
给出了相似的性能(在情感指标上相等,在描述性指标上在线方式要略好)。human feedback
的数据量是关键,而offline
还是online
收集方式倒不是特别关键。 -
强化学习微调所需的
human data
很少:5k, 10k, 20k
奖励模型的训练样本的性能相似,只在少于5k
的样本中出现性能退化。 -
使用评论情感分类器训练的模型(如前文所述,即下图中的
mock
)相对于使用human preference
优化的模型表现较差:在77%
的情况下,labelers
更喜欢使用real human feedback
训练的模型的输出。
-
23.2.2 摘要
-
我们还将我们的方法应用于两项摘要任务:
CNN/Daily Mail
数据集、TL;DR
数据集。 -
我们采样文章或
Reddit
帖子,截断为500
个token
,添加"\n\nTL;DR:"
后缀(对于CNN/Daily Mail
则添加"Article:\n\n"
前缀),并让策略响应最多75
个token
。我们将
CNN/Daily Mail
的预训练模型的温度设置为 $ T = 0.5 $ 、TL;DR
的预训练模型的温度设置为 $ T = 0.7 $ 。为了使任务对人类来说更自然,我们通过截断最后一个换行符来确保文章由整句组成。当采样
summary
时(这些摘要需要展示给人类),我们使用rejection sampling
来确保有一个换行符在长度为55
到75
个token
之间,并在换行符处截断。在强化学习微调过程中,我们对没有换行符的摘要进行惩罚,给它们一个固定的-1
的奖励分。对于
CNN/Daily Mail
,我们使用固定的KL
系数 $ \beta=0.1 $ ;对于TL;DR
,我们我们使用固定的KL
系数 $ \beta=0.03 $ 。 -
我们的方法以及
baseline
:- 强化学习微调:我们用
15k, 30k, 60k
的human labels
训练了online data collection
的模型,并用60k
标签训练了offline data collection
的模型。 - 预训练模型的
zero-shot
。 - 监督微调:使用相同的预训练模型作为初始化的监督微调模型。
- 复制上下文的前三句话的
lead-3 baseline
。我们相同的方式将lead-3
截断在句号(参考前面关于截断所生成的摘要的描述),所以lead-3
结果偶尔是两句话。 - 最后,我们把监督微调和强化学习微调结合起来:从监督微调模型开始进行人类强化学习微调,即
supervised+RL
。
纯粹的强化学习微调模型在训练过程中使用数据集的上下文,但忽略了
reference
摘要;监督微调和supervised+RL
模型同时使用上下文和reference
摘要。我们报告了两组数字结果:
CNN/Daily Mail
(测试集)TL;DR
(验证集)上,model pair
之间human evaluations
结果(Table 5
)、以及ROUGE
结果(Table 4
)。 - 强化学习微调:我们用
-
根据
Table 4
,ROUGE
指标的结果表明:-
与我们的风格延续任务相比,
online data collection
对最佳性能很重要。在固定的标签数量下,online data collection
往往比offline data collection
更好,其中在60k
个标签时,CNN/DM
的R-AVG
增益为3
个点。 -
在这两个数据集上,我们看到数据量在
60k
个human labels
之前的显著回报(尽管human evaluation
的趋势不太明显)。在
CNN/Daily Mail
数据集上,数据量的效果为15k > 60k > 30k
,有点奇怪? -
在这两个数据集上,
supervised+RL
微调是最好的,事实上,根据ROUGE
,纯强化学习微调在所有情况下都比supervised baseline
更差(尽管supervised baseline
使用完整的监督训练数据集,这比60k
样本大得多)。 -
Lead-3
很难被打败:它是CNN/Daily Mail
上R-1
和R-2
指标的最佳模型,只有supervised + RL
微调在R-L
和R-AVG
指标上打败它。
60k/30k/15k fine-tune
和60k offline fine-tune
指的是强化学习微调模型。 -
-
但我们的目标是优化人类定义的奖励而不是
ROUGE
。Table 5
显示了根据human labelers
对model pairs
的pairwise comparisons
,使用1024
个样本,每个样本有3
个labelers
进行多数投票。这里的结果与ROUGE
是不同的,尽管也有明显的噪音:-
我们的
online data collection
训练,60k
个标签的强化学习微调模型可靠地击败了zero-shot
和supervised baseline
,甚至击败了supervised + RL
微调模型。 -
online data collection
训练仍然很重要,但在数据量方面的情况不太清楚,而且可能受到噪音的影响:例如,60k
的TL;DR
模型只有40%
的时间能击败30k
的模型,但是在79%
的时间上击败了15k
的模型。更令人担忧的是:
- 在
TL;DR
数据集上,60k
的online data collection
模型在96%
的时间内击败了human ground truth
(即reference
)。 - 在
CNN/Daily Mail
数据集上,60k
的online data collection
模型在84%
的时间内击败了human ground truth
。
- 在
这到底是怎么回事?正如我们在下一节中所展示的,我们的
60k
的强化学习微调模型几乎完全是extractive
的(尽管我们的模型缺乏任何显式的extractive
的架构组件 ):它主要是从上下文中拷贝整个句子,但是对于哪个句子被拷贝,则有所变化。 -
23.2.3 我们的模型拷贝什么
-
以前在摘要方面的许多工作都集中在显式的拷贝机制上,包括
《Get to the point: Summarization with pointer-generator networks》
的pointer network-based
的架构、以及《Bottom-up abstractive summarization》
的两阶段mask
和paraphrase
方法。我们的目标是利用拷贝的优势(这对摘要任务具有根本的重要性),而不仅仅是拷贝:任务是abstractive
的而不是extractive
的。Figure 5
和Figure 6
显示了我们的模型所分别产生的新颖的和重复的n-grams/sentences
的比例。-
从新颖性方面,我们看到我们的强化学习微调一直导致模型更多的拷贝(即,从
input
文本中拷贝内容作为摘要)。具体而言,我们的
60k
的强化学习微调模型几乎完全是extractive
的:在TL;DR
中,它们有71%
的时间拷贝整个句子;在CNN/Daily Mail
中,它们有98%
的时间拷贝整个句子。从监督的微调模型开始应用强化学习微调(即,
supervised + 60k fine-tuned
),其拷贝率要低得多:TL;DR
和CNN/Daily Mail
分别为6%
和30%
。 -
在重复性方面(即,摘要中的句子出现多次),虽然我们没有像
《Get to the point: Summarization with pointer-generator networks》
和《Bottom-up abstractive summarization》
那样使用明确的覆盖率coverage
指标,但监督微调模型和强化学习微调模型在摘要中的重复率都很低。
-
-
虽然纯粹的强化学习微调模型大多是拷贝文本,但它们拷贝的地方不同。下图通过上下文和摘要之间最长公共子序列的位置说明了这一点。
为了了解模型何时从
exact beginning
拷贝,我们确定了文章中常见的前导句preamble
(如,以'hi', 'hello','hey', 'ok', 'okay', 'so'
这样开头的句子),这样我们就可以预期拷贝是一个糟糕的策略。下表显示,这些前导句被拷贝的频率远远低于其他文章的立即开始immediate beginning
,这证明我们的模型在何时拷贝方面很聪明。然而,我们不能确定我们的奖励模型除了奖励拷贝之外还很聪明,因为zero-shot
模型也跳过了前导句。几乎所有的
baseline
都跳过了前导句。 -
既然结合监督微调和强化学习微调(即,
supervised + 60k fine-tuned
)可以得到最好的ROUGE
分数,而且也更abstractive
,为什么不使用它呢?不幸的是,下表中显示纯拷贝有一个好处:它使模型很容易tell the truth
。注意,摘要的准确性是由人工判断的。
-
拷贝最多的模型,
60k
的监督学习微调模型,在TL;DR
和CNN/Daily Mail
上的准确率是90%
和95%
。从文章中抽取整个句子通常会让它们是true
的。 -
监督微调模型和
supervised+RL fine-tuned
的组合模型最多只有70%
的准确率:它们转述但转述得很糟糕,经常从上下文中交换名称、或以无效的方式将多个句子混合在一起。即,这些模型编造事实的可能性更大。
-
zero-shot
是最新颖的,但只有20%
的时间是准确的。同样,《Neural text summarization: A critical evaluation》
发现,他们测试的监督的摘要模型中有30%
的样本包含不一致inconsistency
。而《Sample efficient text summarization using a single pre-trained transformer》
发现,他们预训练的encoder-decoder
模型"hallucinates facts...which are topical but never appear in the source"
。
根据这里的结论:拷贝的方式来生成摘要,在准确性方面要更可靠一些。
-
-
对这些结果至少有两种解释方式:
-
第一种解释是,拷贝是最容易做到准确的方法。
labelers
被告知要惩罚不准确和冗余,但没有被告知要惩罚拷贝。zero-shot
模型在某些时候会拷贝,而当它拷贝的时候是准确的,所以这种行为被强化了(因为被labelers
所标注的第一批样本就是来自于zero-shot
模型)。结果是一个"degenerated to copying"
的模型,但至少不会撒谎。 -
然而,这并不能解释为什么相比于
reference
摘要,我们的模型和lead-3
都被labelers
所强烈偏好(Table 5
)。这揭示了我们希望我们的模型学习的质量概念、和humans labelers
实际评估的质量概念之间的不匹配。由于
online data collection
的setting
使得质量控制更加困难,我们未能发现和惩罚拷贝这种行为。
-
23.3 挑战
-
最后,我们总结了一些经验和方向,计划在未来的
reward learning
工作中考虑。 -
online data collection
是困难的:为了在摘要任务上取得最佳效果,online data collection
是必要的。然而,完全的online data collection
(其中每个标签都来自最新版本的策略,而该策略已经从previous
的几乎所有标签中学习而来)有很大的缺点:- 软件的复杂性:我们的
online system
将数据收集、奖励模型训练、和强化学习微调交错进行。由此产生的分布式系统比每项任务单独进行要复杂得多,减缓了软件开发的进程。此外,任何一个任务中的bug
都会破坏整个训练过程。 - 机器学习的复杂性:在线实验很难调试,因为它很难一次在机器学习系统的一个部分上迭代。 我们往往只能通过短暂地切换到离线来调试一个在线工作,例如启动一个独立的奖励模型的
training run
,但一旦调试完成,就会切换回在线(直到下一个周期)。 - 质量控制问题:在
labelers
部分需要做大量的工作,使他们的数据质量机制在低延迟的在线环境中发挥作用。然而,即使在这项工作完成后,也很难在很长一段时间内保持高的数据质量,而且往往在训练完成后(或很久以后)才发现退化。由于对labeler
性能的评估是在线的,当一个工人被检测出有问题时,他们的一些数据可能已经被上报回来并用于奖励模型的训练。
我们相信,在
offline data collection
和online data collection
之间的正确中间地带是batched data collection
,并计划在未来的工作中使用这种设置:- 从预训练的策略
$ \rho $ 中收集一个batch
的数据,在这批数据上训练奖励模型 $ r $ ,然后在 $ r $ 冻结的情况下微调策略 $ \pi $ 。 - 一旦这些都完成了,收集另一个
batch
的从 $ \pi $ 采样的数据,并进行迭代。
每个
batch
数据的延迟可能远远长于online data collection
,但是简化了质量控制。如同在完全online data collection
的情况下,我们总是可以在迄今为止收集的所有数据上从头开始重新训练奖励模型。human data
很昂贵,所以总量会很低。移除 $ r $ 和 $ \pi $ 的交错训练,简化了软件架构和机器学习问题的诊断,如果出现问题,可以只对一个组件(比如说独立的 $ r $ )进行迭代。《Dialogue learning with human-in-the-loop》
在仿真中验证了oneline data collection
和batched data collection
训练的性能相似后,在一个受限的对话的setting
中得出了类似的结论。在
batch data collection
的情况下,也是数据收集、奖励模型训练、和强化学习微调交错进行,和online data collection
有什么区别?感觉唯一的区别是这里是
batch
粒度的数据收集,因此如果人工标注的数据有问题,可能就影响这单个batch
而已,而且更快地被发现。在下一篇论文
《Fine-Tuning Language Models from Human Preferences 》
中,OpenAI
转向了batch data collection
。batched data collection
也是active learning
技术的一个被充分研究的setting
。虽然我们使用强化学习来微调策略 $ \pi $ ,但human data
只用于奖励模型 $ r $ 的监督训练。因此,任何用于batch mode active learning
的监督模型的方法都适用,使用 $ \pi $ 作为 $ r $ 的unlabeled data distribution
。这类技术的例子包括:selecting batches based on entropy considerations
(《Discriminative batch mode active learning》
)。- 基于梯度的指标(
《Active learning for speech recognition: the power of gradients》
、《Deep batch active learning by diverse, uncertain gradient lower bounds》
)。 - 通过尝试区分标记的和未标记的样本(
《Discriminative active learning》
)。
- 软件的复杂性:我们的
-
奖励模型和策略之间共享参数导致过拟合:虽然奖励模型和策略都被初始化为
$ \rho $ ,但我们将它们作为独立的网络进行训练,而不是一个具有多个头的单个共享网络。我们可能期望联合训练是有帮助的,有效地将强化学习作为一个辅助任务来提高奖励模型的性能。联合训练特别有吸引力,因为它可以帮助奖励模型保持足够强大。共享也可以提高计算效率,因为它允许模型共享激活,而不是要求两个单独的前向传播。尽管做了几次尝试,我们还是没能使这个想法成功。问题来自于数据的巨大不平衡:我们的奖励模型最多只有
60k
个样本,但策略却有2M
个episodes
。这使得在不对奖励模型进行许多epochs
和过拟合的情况下保持这两项任务的性能成为挑战。我们希望未来的工作能够克服这一挑战。 -
含糊不清的任务使标注工作变得困难:我们的一个代码重构引入了一个
bug
,该bug
翻转了奖励的符号。翻转奖励通常会产生不连贯的文本,但同一个bug
也翻转了KL
惩罚项的符号。结果是一个对负面情绪进行优化的模型,同时仍然对自然语言进行规范化。由于我们的指令告诉
labeler
要给显式带有性sex
的文字的continuations
以很低的评价,模型很快就学会了只输出这种形式的内容。这个bug
很了不起,因为其结果不是胡言乱语,而是最大限度的毒性输出。本文作者在训练过程中睡着了,所以这个问题在训练结束后才被发现。像丰田的Andon cord
这样的机制可以防止这种情况的发生,因为它允许任何labeler
停止有问题的训练过程。丰田的安灯拉绳
Andon cord
机制:在发现质量和其他问题时,一线员工被授权通过执行AndonCord
(即,拉动手边的叫做安灯拉绳的绳子)来停止生产从而及时止损。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论