数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- 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
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
二十四 Learning to summarize from human feedback [2020]
为了在各种自然语言处理任务上实现高性能,大型语言模型预训练已经变得越来越流行。当把这些模型应用于一个特定的任务时,人们通常使用监督学习对它们进行微调,通常是最大化针对
human demonstrations
数据(即,人工标注的标签)的对数似然log likelihood
。虽然这种策略导致了性能的明显提高,但在这种微调目标(即,最大化
human-written
文本的似然)与我们所关心的目标(即,生成人类判定的高质量的输出)之间仍然存在着misalignment
。这种misalignment
有几个原因:- 最大似然
maximum likelihood
目标没有区分重要的错误(如编造事实)和不重要的错误(如从一组同义词中选择最精确的词)。 - 模型被激励
incentivized
从而将概率质量放在所有human demonstrations
上,包括那些低质量的human demonstrations
。 - 采样期间的分布漂移
distributional shift
会降低性能。
通过非均匀采样策略(如,
beam search
)通常可以大大改善质量,但这些策略会导致repetition
和其他不受欢迎的人造品artifacts
。对质量进行优化可能是克服这些问题的原则性方法。论文
《Learning to summarize from human feedback》
的目标是:推进某些目标上训练语言模型的方法,其中这些目标能够更紧密地抓住我们所关心的行为。为了在短期内实现这一目标,论文专注于抽象式abstractive
的英文文本摘要,因为它在NLP
界有着悠久的历史,而且是一项主观的任务(作者认为很难量化摘要的质量,因为没有human judgments
)。事实上,现有的评估摘要质量的自动化指标automatic metrics
(如,ROUGE
)由于与human judgments
的相关性差而受到批评。论文遵从
《Better rewards yield better summaries: Learning to summarise without references》
和《Fine-tuning language models from human preferences》
的工作,他们利用奖励学习reward learning
(《Tuning recurrent neural networks with reinforcement learning》
)从human feedback
中微调语言模型:- 首先收集
summary pair
的human preferences
数据集。 - 然后在这个
human preferences
数据集上通过监督微调学习训练一个奖励模型reward model : RM
来预测human-preferred
的摘要。 - 最后,通过强化学习
reinforcement learning: RL
训练一个策略从而最大化奖励模型的评分。该策略在每个"time step"
生成一个文本token
,并根据奖励模型给整个generated summary
的 "奖励"从而使用PPO
算法(《Proximal policy optimization algorithms》
)来更新策略。 - 然后可以使用
resulting policy
的样本来收集更多的human data
,并重复这个过程。
论文遵从
GPT-3
的工作,使用大型预训练的GPT-3
模型,参数多达6.7B
。论文的主要贡献有四个方面:
作者表明,在英语摘要方面,有
human feedback
的训练明显优于非常强大的baseline
。当在Reddit TL;DR
数据集的一个版本上应用论文的方法时(如下图所示):- 通过
human feedback
训练的策略比通过监督微调学习训练的更大的模型(下图中的supervised learning
)产生更好的摘要。 - 相比较于数据集中的原始
human demonstrations
(下图中的reference summaries
),labelers
更喜欢来自human feedback models
(即,human feedback
训练的策略)的摘要。
- 通过
论文表明:
human feedback models
(即,human feedback
训练的策略)对新领域的泛化性比监督微调模型好得多。作者在Reddit
训练的human feedback models
也在CNN/DailyMail: CNN/DM
数据集上生成了高质量的新闻文章摘要而无需任何针对新闻的微调,几乎与该数据集的reference summary
的质量相匹配。作者进行了若干检查,从而确保这些human preferences
反映了真正的质量差异:作者持续监测labelers
和researchers
之间的一致率agreement rate
,发现researcher-labeler
的一致率几乎和researcher-researcher
的一致率一样高(见论文附录C.2
),并且作者验证了模型不仅仅是在针对长度或amount of copying
等简单指标进行优化(见论文附录F
和G.7
)。论文对所提出的策略模型和奖励模型进行了广泛的经验分析。作者检查了模型大小和数据大小的影响,研究了继续优化一个给定奖励模型时的性能,并使用合成
synthetic
的和human-written
的扰动摘要来分析奖励模型性能。作者确认,所提出的奖励模型在预测human preferences
方面优于其他指标(如ROUGE
),而且优化奖励模型直接导致了比优化ROUGE
更好的摘要。论文公开发布了
human feedback
数据集,以供进一步研究。该数据集包含64832
个关于TL;DR
数据集的summary comparisons
,以及论文对TL;DR
(comparisons
和Likert score
)和CNN/DM
(Likert score
)的评估数据。
作者在论文中提出的方法,部分是出于对人工智能系统与人类希望它们做的事情之间的
misalignment
的长期关注。当misaligned summarization model
编造事实时,它们的错误是相当低风险的,而且容易被发现。然而,随着人工智能系统变得更加强大,并被赋予越来越重要的任务,它们所犯的错误可能会变得更加微妙和safety-critical
,这使得这是一个需要进一步研究的重要领域。- 最大似然
相关工作:
与我们的工作最直接相关的是以前使用
human feedback
来训练带强化学习的summarization models
的工作《Better rewards yield better summaries: Learning to summarise without references》
和《Fine-tuning language models from human preferences》
。《Better rewards yieldbetter summaries: Learning to summarise without references》
从2.5k
个human ratings
的CNN/DM
摘要数据集中学习奖励函数,并训练一个比优化ROUGE
指标更好的、用于摘要的策略。我们的工作与
《Fine-tuning language models from human preferences》
最为相似,他们也训练Transformer
模型来跨一系列任务来优化human feedback
,包括在Reddit TL;DR
和CNN/DM
数据集上的摘要。与我们不同的是,他们以
online
的方式进行训练,并发现该模型具有高度的extractive
。他们指出,他们的labelers
更喜欢抽取式摘要extractive summaries
,与researchers
的一致率很低。与他们相比,我们使用了大得多的模型、转向针对collecting human feedback
的batch setting
、确保labeler-researcher
的高度一致、并做了一些算法上的修改(如分离策略网络policy network
和价值网络value network
)。
human feedback
也被用作奖励来训练其他领域的模型,如对话、翻译、语义解析、故事生成、评论生成、以及证据抽取evidence extraction
。我们的
reward modeling
方法是在先前关于learning to rank
的工作中发展起来的,其中learning to rank
已被应用于使用显性反馈或隐性反馈(以点击数据的形式)对搜索结果进行排名。在一个相关的研究方向中,
human feedback
被用来在模拟环境中训练agents
。还有大量关于使用强化学习来优化NLP
任务的automatic metrics
的文献,例如用于摘要的ROUGE
指标、用于翻译的BLEU
指标,以及其他领域的一些指标。最后,关于修改架构和预训练程序以提高摘要性能的研究也很广泛。
24.1 模型
24.1.1 Higl-level 方法论
我们的方法类似于
《Fine-tuning language models from human preferences》
中概述的方法,适配于batch setting
。我们从一个初始策略开始(注意,一个策略意味着一个模型),该策略在目标数据集(在我们的例子中为Reddit TL;DR
摘要数据集)上进行监督学习的微调。然后,这个过程包括三个步骤,可以反复进行,如下图所示。step 1
:从现有策略中收集样本,并将comparisons
发送给人类。对于每个Reddit
帖子,我们从几个来源来采样摘要,包括当前策略、初始策略、原始的reference summary
、以及各种baseline
。我们将一个batch
的summary pair
发送给我们的human labelers
,他们的任务是选择给定Reddit
帖子的最佳摘要。注意,这里的摘要不仅来自于当前策略,还来自于初始策略、
reference
、以及baseline
。无论它们来自哪里,都是为奖励模型提供样本,而奖励模型仅仅关注:一个给定的摘要是好还是坏。step 2
:从human comparisons
中学习奖励模型。给定一个帖子和一个候选摘要,我们训练一个奖励模型来预测这个摘要是更好的摘要的log odds
(ground-truth
由我们的labelers
来提供,log odds
是分类器softmax layer
的输入)。奖励模型作为价值网络。
step 3
:针对奖励模型来优化策略。我们将奖励模型的logit output
视为奖励,我们使用强化学习(具体而言是PPO
算法)来优化这个奖励。
我们在下面的章节中对我们的程序进行了更详细的描述,包括奖励模型训练和策略训练的细节、以及我们的质量控制过程。在实践中,我们没有精确地迭代这一连串的三个步骤,而是在项目过程中更新了我们的数据收集程序和训练程序,同时积累了标签(详见论文附录
C.6
)。整体架构类似于
GAN
:- 策略函数作为生成器,用于生成摘要,使得摘要的质量尽可能高(而不是摘要的最大似然尽可能大)。
- 奖励函数作为判别器,用于判断摘要质量,从而促使策略函数不断演进。
此外,奖励函数根据收集的
human feedbacks
来独立地监督训练,而不是像GAN
中的一样进行对抗训练。
24.1.2 数据集和任务
数据集:我们使用
TL;DR
摘要数据集,其中包含了来自reddit.com
的约3M
个帖子,涉及各种主题(subreddits
),以及原发帖人写的帖子摘要。我们还对这个数据集进行了过滤(见论文的附录A
),从而确保质数据量,包括使用subreddits
的一个白名单(过滤之后,白名单的帖子数量分布如下表所示)。过滤规则:内容去重:通过检查帖子主体内容来去重。
白名单过滤:过滤掉不在我们
subreddit whitelist
中的subreddit
帖子。Edit/Update
内容过滤:过滤掉任何标题以"Edit"
或"Update"
开头的帖子。毒性内容过滤:过滤掉包含某些主题(如性图片、或自杀,这些主题是启发式方法得到)的帖子。
帖子长度过滤:过滤掉任何正文超过
512
个token
的帖子(为了适配模型的上下文长度)。此外还对解析后的
reference
摘要进行额外的过滤(我们使用reference
摘要来训练supervised baselines
):- 删除以
"Edit", "Update", "P.S."
等变体开头的摘要。 - 启发式地删除了带有一定程度脏话的摘要。
- 删除了少于
24
个token
或超过48
个token
的摘要,从而尽量减少摘要长度对质量的潜在影响。此外我们发现:短于16
个token
的摘要通常是低质量的。
- 删除以
我们最终过滤的数据集包含
123169
个帖子,我们保留了~ 5%
作为验证集。在本文的其余部分,我们把这个数据集简称为TL;DR
。如下表所示,
TL;DR dataset
中大约2/3
的帖子是由relationships
或relationship advice
组成,这是一个相当特定的领域。这引起了对于我们模型泛化性的潜在担忧,尽管模型在CNN/DM
新闻文章上的强大迁移性能表明它们并没有无脑地特定于relationship advice
。我们选择
TL;DR
数据集而不是更常用的CNN/DM
数据集,主要是因为在CNN/DM
上可以通过简单的extractive baseline
获得非常强大的性能。我们在实验中发现:- 在
CNN/DM
数据集,我们的labelers
相比reference summary
反而更喜欢lead-3 summary
。 - 而且带有
low-temperature sampling
监督微调T5
模型已经超过了reference summary
的质量,同时还大量复制了文章内容。
另一方面,在我们的
human evaluations
中,简单的extractive baseline
在TL;DR
上表现很差(如Figure 12
中的Title
和Lead-2
)。我们没有在CNN/DM
上进行训练,而是研究了我们的human feedback models
(即,human feedback
训练的策略)在被训练为summarize Reddit posts
之后,向CNN/DM
数据集的迁移性能。任务:我们把我们的
ground-truth task
定义为:根据human judgments
来产生一个模型,该模型生成长度小于48
个token
的摘要并且尽可能的好。我们判断摘要质量的标准是:摘要在多大程度上向只能阅读摘要而不能阅读帖子的读者传达了原始帖子的内容(关于标准的进一步讨论,见论文附录
C.5
)。由于我们做comparisons
的能力有限,所以我们雇用labelers
为我们做comparisons
。我们依靠详细的程序来确保comparisons
和我们在任务上的高度一致,我们将在下一节介绍。判断摘要质量标准的进一步讨论:我们为评价
Reddit
帖子的摘要、以及评价CNN/DM
的新闻文章的摘要制作了单独的说明。对于
Reddit
的指令,我们首先描述了Reddit
的一般情况,并提供了一个表格,将Reddit的特定行话翻译成普通术语。- 用于
comparing summaries
的指令:我们在Table 6
展示了给labelers
指令从而用于执行comparisons
。除了这些指令之外,我们还提供了Reddit
摘要之间的一个labeled comparison
例子,以及对摘要的朴素解释的一个例子。 - 用于沿着质量轴评估摘要的指令:我们为
labelers
提供了一套单独的详细指令,用于7-point Likert
评估。我们首先介绍了我们所考虑的4
个质量轴中的每一个,概述了连贯性coherence
、准确性accuracy
、覆盖率coverage
和总分(见Table 7
)。我们还为1
分、4
分、以及7
分及其对应的摘要提供了一个简短的评分标准,其中注释了我们自己对这些轴的质量判断(带有解释)。 - 最后,我们提供了一个
FAQ
部分,回答了这项任务的labelers
所提出的常见问题。
- 用于
对于
CNN/DM
,我们提供了同样的指令,只是我们对如何判断新闻文章增加了一些额外的说明。我们特别要求labelers
不那么强调句子的连贯性(因为reference
摘要最初是以要点的形式bullet-point form
写成的,我们不希望labelers
对此进行惩罚),也不那么强调摘要与文章的意图相匹配(这对Reddit
的摘要很重要)。
在质量控制方面,我们进行了论文附录
C.1
中描述的smaller
版本的质量控制过程:- 首先沿着每个轴,我们(指的是论文的作者)亲自给一小部分摘要人工标注,以了解混淆点
points of confusion
(指的是作者亲自下场,理解标注的难点)。 - 然后,我们写了指令文档
instructions document
提供给labelers
。 - 然后,我们让一小部分
labelers
进行任务试验,以捕捉任何bugs
或混淆点。 - 最后,我们让一大批
labelers
加入到任务中,同时我们保持回答任何问题。
24.1.3 收集 human feedback
先前的、关于从
human feedback
中微调语言模型的工作(《Fine-tuning language models from human preferences》
)报告了 "我们希望我们的模型学习的质量概念和human labelers
实际评估的质量概念之间的不匹配" ("a mismatch between the notion of quality we wanted our model to learn, and what the humans labelers actually evaluated"
),导致模型生成的摘要按照labelers
的说法是高质量的、但按照researchers
的说法是相当低的质量。与
《Fine-tuning language models from human preferences》
相比,我们实施了两个变化以提高human data
质量:- 首先,我们完全转移到
offline setting
,其中我们交替执行:发送大批量的comparison data
给我们的human labelers
、并在累积的collected data
上重新训练我们的模型。 - 其次,我们与
labelers
保持亲身接触的关系:我们为他们提供详细的指导,在共享的聊天室里回答他们的问题,并对他们的表现提供定期反馈。我们对所有labelers
进行培训,以确保他们与我们的判断高度一致,并在项目过程中不断监测labeler-researcher agreement
。详情见论文的附录C.1
和C.5
。
作为我们程序的结果,我们获得了高度的
labeler-researcher
一致性:在comparison tasks
的一个子集上,labelers
与researchers
的一致性为 $ 77\pm 2\% $ ,而researchers-researchers
之间的一致性为 $ 73\pm 4\% $ 。我们在论文附录C.2
中提供了更多关于human data
质量的分析。- 首先,我们完全转移到
24.1.4 模型
我们所有的模型都是
GPT-3
风格的Transformer decoder
。我们对具有1.3B
和6.7B
参数的模型进行human feedback
实验。预训练模型:我们从预训练的模型开始,在一个大型文本语料库中自回归地预测
next token
。我们通过数据集中的高质量摘要的样本来填充上下文从而将这些模型作为zero-shot baseline
。我们在论文附录B
中提供了关于预训练的细节,并在论文附录B.2
中提供了关于我们的zero-shot
程序。监督微调
baseline
:接下来,我们通过监督学习对这些模型进行微调,以预测我们过滤后的TL;DR
数据集的摘要(详见论文附录B
)。此外,我们使用这些监督微调模型对初始摘要进行采样从而收集
comparisons
,进而初始化我们的策略模型和奖励模型,并作为评估的baseline
。在我们最终的human evaluations
中,我们使用 $ T=0 $ 从所有模型中进行采样,因为我们发现它比更高的温度或nucleus sampling
表现更好。为了验证我们的监督微调模型确实是强有力的、针对
comparison
的baseline
,我们在CNN/DM
数据集上用6.7B
模型运行我们的监督微调程序,发现我们取得的ROUGE
分数比来自mid-2019
的SOTA
模型略好(如下图所示)。此外,我们发现:温度对
ROUGE
得分有(通常是显著的)影响,我们做了一次彻底的扫描,以验证最佳温度配置是 $ T=0 $ 。- 在
TL;DR
上,在 $ T=0 $ 时,我们发现我们的human feedback models
获得的ROUGE
分数比监督微调模型略低,这进一步表明ROUGE
与human preferences
的相关性很差。对于监督微调模型来说,降低温度比增加模型大小有更大的影响。有趣的是,在更高的温度下,我们的human feedback models
实际上超过了监督微调的同类模型。 - 在
CNN/DM
上,ROUGE
与human evaluations
相一致,即human feedback models
比我们的监督微调模型的迁移性能更好。
- 在
奖励模型:为了训练我们的奖励模型
$ r_\theta(\mathbf x,\mathbf y) $ ,我们从一个监督微调baseline
开始,如上所述,然后添加一个随机初始化的linear head
,该linear head
输出一个标量值。我们训练这个模型来预测在给定一个帖子 $ \mathbf x $ 的情况下,哪个摘要 $ \mathbf y\in \{\mathbf y_0,\mathbf y_1\} $ 由人类来判断是更好的。 如果人类喜欢的摘要是 $ \mathbf y_i $ ,则我们可以把奖励模型的损失写成:其中:
$ r_\theta(\mathbf x,\mathbf y) $ 的输出为标量, $ i\in \{0,1\} $ 。 $ \mathcal D $ 为human judgments
的数据集。
在训练结束时,我们将奖励模型的输出归一化,使我们的数据集中的
reference summaries
的平均分为零。注意,监督微调模型与奖励模型是不同的模型,虽然它们使用相同的数据集,但是它们使用不同的监督信息:
- 监督微调模型使用
reference
摘要作为监督信息。 - 奖励模型使用
human comparisons
作为监督信息。
human feedback
策略:我们想用上面训练的奖励模型来训练一个策略,该策略生成更高质量的输出(基于人类的判断)。我们主要使用强化学习来做这件事,把奖励模型的输出当作整个摘要的奖励,我们用PPO
算法(《Proximal policy optimization algorithms》
)来最大化这个奖励,其中每个time step
是一个BPE token
。我们以
Reddit TL;DR
上微调的模型来初始化我们的策略。重要的是,我们在奖励中加入了一个惩罚项,该惩罚项惩学到的强化学习策略 $ \pi_\phi^{\text{RL}} $ (参数为 $ \phi $ )和初始的监督模型 $ \pi^{\text{SFT}} $ 之间的KL
散度。完整的奖励 $ R $ 为:KL
项有两个目的:- 首先,它起到了熵的作用,鼓励策略的探索从而阻止它塌陷到单一的模式。
- 其次,它确保学到的策略不会生成这种的输出:该输出与奖励模型在训练期间所见的输出有太大的不同。
根据
InstructGPT
,PPO
的损失函数为:其中:
$ \pi_\phi^{\text{RL}} $ 为学到的RL
策略, $ \pi^\text{SFT} $ 为监督微调的模型, $ \phi $ 为策略的参数。 $ \mathcal D_{\pi_\phi^{\text{RL}}} $ 为强化学习的数据分布, $ \beta $ 为KL
系数。
对于
PPO
的价值函数value function
,我们使用一个与策略完全分离参数的Transformer
。这可以防止价值函数的更新在训练的早期部分破坏预训练的策略(消融实验的结果如下图所示)。我们将价值函数初始化为奖励模型的参数。在我们的实验中,奖励模型、策略函数、以及价值函数的规模是一样的。注意,理论上奖励模型和价值函数可以合二为一,但是论文为什么要将它们分离开来?个人猜测是因为离线数据收集的缘故:如果奖励模型和价值函数合二为一,那么当奖励模型被重新训练时,价值函数不可用(正在训练过程中)。
将二者分离分开,使得奖励模型的训练与价值函数的使用之间相互独立。一旦奖励模型训练完毕,就用它的最新权重去初始化价值函数,使得价值函数始终成为奖励模型的最新版本的
copy
。所有的模型都遵循标准的
Transformer
架构,positional embedding
维度为2048
。所有模型都是用fp16 activations
和Adam
优化器训练的。几乎所有的supervised baselines
、奖励模型、以及强化学习模型都是用fp32
权重训练的,唯一例外的是我们的TL;DR supervised baselines
是用fp16
权重训练的。所有的模型都是用与GPT-3
中相同的BPE
编码进行训练。在预训练期间,模型被训练为预测由
Commoncrawl, Webtext, book, Wikipedia
组成的大型文本语料库的next token
。- 每个模型的训练时间在
1 ~ 3
个epochs
之间,总共有200 ~ 300 B
个token
。 - 学习率遵循带有一个
short warmup
的cosine schedule
,最终学习率衰减到最大值的10%
。 batch size
在整个训练过程中逐步上升到某个最大值,其中每个输入有2048
个token
。
每个模型的超参数如下表所示。
- 每个模型的训练时间在
对于
supervised baselines
,我们从预训练的模型中初始化模型。- 我们用
cosine schedule
来衰减学习率,初始学习率从7
个值中选择(这七个值来自于log linear sweep
) 。这导致我们在TL;DR
数据集上1.3B, 3B, 6.7B, 13B
大小的模型的学习率分别为6.35e-5, 5.66e-5, 2.83e-5, 2.83e-5
,而在CNN/DM
数据集上6.7B
模型的学习率为2.38e-5
。 - 我们使用
batch size = 128
并微调一个epoch
。
- 我们用
对于奖励模型,我们初始化为
supervised baseline
,但在奖励模型的顶部有一个reward head
,其权重根据 $ \mathcal N(0,1/(d_\text{model} +1)) $ 来初始化。我们训练一个
epoch
,用cosine schedule
衰减学习率,初始学习率从7
个值中选择(这七个值来自于log linear sweep
)。我们还在
3 ~ 10
个种子之间进行sweep
,并选择在验证集表现最好的奖励模型,因为我们发现数据迭代顺序和奖励头初始化都会影响结果。对于我们的main
结果,1.3B
和6.7B
奖励模型的学习率分别为1.5e-5
和5e-6
。我们使用
batch size = 64
,并训练一个epoch
。
对于
PPO
,我们用分离的策略网络和价值网络,将我们的策略网络初始化为supervised baseline,
,将我们的价值网络初始化为奖励模型。我们为
advantage estimation
设置了 $ \gamma=1 $ 和 $ \lambda=0.95 $ ,并为每个batch
的rollouts
优化了4
个epoch
。即,外层的
batch
对应于 $ (\mathbf x,\mathbf y) $ 的pair
,内层的minibatch
对应于trajectory segment
长度 $ T $ 。我们对每个样本收集长度为 $ T $ 的轨迹,然后在这些轨迹上训练4
个epoch
。这里的rollouts
指的就是轨迹。我们使用了一个线性学习率衰减
schedule
,根据少量的实验和粗略的模型大小推断,设置1.3B
模型的初始学习率为1.5e-5
、6.7B
模型的初始学习率为7e-6
。在我们报告结果的两个
main
运行中,我们使用了0.05
的KL
系数。我们对
1.3B
模型使用batch size = 512
、对6.7B
模型使用batch size = 256
,并运行1M
个episodes
。
24.2 实验
24.2.1 从 human feedback 来总结 Reddit 帖子
用
human feedback
训练出来的策略比更大的监督模型更受欢迎。我们在
TL;DR
上评估human feedback
策略的主要结果显示在下图中。我们评估策略质量为:在数据集中,在策略生成的摘要和reference
摘要之间,人类更喜欢策略生成的摘要的占比。在这个指标上:- 我们用
human feedback
训练出来的策略明显优于我们的监督微调baseline
:我们的1.3B
的human feedback model
显著优于10
倍规模的监督微调模型(61% vs 43%
)。 - 我们的
6.7B
模型反过来又明显优于我们的1.3B
模型,这表明使用human feedback
的训练也得益于规模。 - 此外,我们的两个
human feedback model
都被人类判定为优于数据集中使用的human demonstrations
(即reference
摘要)。
- 我们用
控制摘要的长度:在判断摘要质量时,摘要长度是一个混杂因素
confounding factor
。摘要的目标长度是摘要任务的隐式部分:根据所需的简洁性conciseness
(较短的摘要)和覆盖度coverage
(较长的摘要)之间的权衡,较短或较长的摘要可能更好。由于我们的模型学会了生成较长的摘要,长度可能是我们质量改进的主要原因。我们策略产生的摘要要比
reference
摘要更长,因为我们对策略限制了生成24 ~ 48
个token
的摘要。我们发现,在控制了摘要长度之后(见论文附录
F
),我们的human feedback model
相对于reference
摘要的偏好下降了大约5%
。即便如此,我们的6.7B
模型的摘要仍然比reference
摘要在大约65%
的时间更受欢迎(如下图(b)
所示)。注意:下图
(b)
是通过一个逻辑回归模型来拟合曲线的。我们的策略是如何相对于
baseline
得到改进的?为了更好地了解我们的模型摘要与
reference
摘要、supervised baseline
的摘要相比的质量,我们进行了一项额外的分析,即human labelers
使用七个等级的Likert
从四个方面(或 "轴")评估摘要质量。Labelers
对摘要的覆盖度(原帖中的重要信息被覆盖的程度)、准确性(摘要中的statements
在多大程度上被原始帖子所述)、连贯性(摘要本身有多容易阅读)、以及整体质量进行评分。结果(如下图所示)表明:我们的
human feedback model
在质量的每个维度上都优于supervised baseline
,特别是覆盖度。尽管我们的
human labelers
对给出完美的overall
质量分有很高的要求,但来自我们6.7B PPO
模型的摘要在45%
的时间里达到了7/7
的整体质量分。相比之下,6.7B
的supervised baseline
和reference
摘要的整体质量分达到7/7
的时间分别为20%
和23%
。注:
45%
、20%
、23%
这些数据,在原始论文中并没有相应的表格给出详细说明。
24.2.2 迁移到总结新闻文章
我们的
human feedback models
(即,强化学习得到的模型)也可以在没有任何进一步训练的情况下生成优秀的CNN/DM
新闻文章的摘要(如下图所示):- 我们的
human feedback models
的表现显著优于在TL;DR
上通过监督学习所微调的模型、以及仅在预训练语料上训练的模型。 - 事实上,我们的
6.7B
的human feedback model
的表现几乎与在CNN/DM
的reference
摘要上微调的6.7B
模型一样好,尽管我们的模型所生成的摘要短得多。
由于我们迁移到
CNN/DM
的human feedback models
与在CNN/DM
上训练的模型在摘要长度分布上几乎没有重叠,前者的平均token
长度大约是后者的一半,所以它们很难直接比较。在下图(b)
中,我们显示了不同摘要长度下的平均overall score
,这表明如果我们的human feedback models
生成更长的摘要,其表现会更好。从质量上看,来自human feedback models
的CNN/DM
摘要一致地是文章的流畅和合理的表达。我们在论文的附录H
中展示了一些例子。注意:下图
(b)
是通过一个逻辑回归模型来拟合曲线的。- 我们的
24.2.3 理解奖励模型
当我们优化奖励模型时发生了什么?
奖励模型并不能完美地代表我们的
labeler preferences
,因为它只有有限的容量,而且只能看到来自相对狭窄分布(关于摘要的分布)的少量comparison data
。虽然我们可以希望我们的奖励模型能够泛化到训练期间未见过的摘要,但不清楚人们可以针对奖励模型进行多大程度的优化。为了回答这个问题,我们创建了一系列策略,这些策略采用我们奖励模型的早期版本
earlier version
(这些早期版本的奖励模型具有不同的优化强度optimization strength
),并要求labelers
将策略生成的摘要与reference
摘要进行比较。下图显示了PPO
在在一系列KL
惩罚系数(即, $ \beta $ )下的结果:根据
$ R(\mathbf x,\mathbf y) = r_\theta(\mathbf x,\mathbf y) - \beta\log \left[\frac{\pi_\phi^\text{RL}(\mathbf y\mid \mathbf x)}{\pi ^\text{SFT}(\mathbf y\mid \mathbf x)}\right] $ ,通常采用动态的 $ \beta $ 从而满足固定的KL
值。因此当 $ \beta $ 值不同时, $ \text{KL}(\pi_\phi^\text{RL},\pi^\text{SFT}) $ 也发生变化。- 在轻度优化下(即,
$ \pi_\phi^\text{RL} $ 距离 $ \pi^\text{SFT} $ 较近时),模型得到了改善(根据labelers
的评估)。 - 然而,随着我们进一步优化,最终奖励模型变得与
labelers
反相关(因为策略产生了的样本是奖励模型没有见过的,导致奖励模型误判)。尽管这显然是不可取的,但我们注意到这种过度优化over-optimization
也发生在ROUGE
中。类似的行为在机器人领域的学到的奖励函数中也被观察到。
随着
$ \pi_\phi^\text{RL} $ 距离 $ \pi^\text{SFT} $ 越来越远,奖励模型对策略 $ \pi_\phi^\text{RL} $ 生成的样本的误判越来越严重:奖励模型认为是好的样本,而labelers
标注的结果是坏的样本。- 在轻度优化下(即,
reward modeling
是如何随着模型规模和数据规模的增加而scale
的?我们进行了一次消融实验,以确定数据规模和模型大小如何影响奖励模型的性能。我们训练了
7
个奖励模型,模型规模从160M
到13B
参数,在来自我们数据集的8k
到64k
的human comparisons
上训练。我们发现:- 训练数据量增加一倍会导致奖励模型验证准确性增加约
1.1%
。 - 而模型大小增加一倍则会导致奖励模型验证准确性增加约
1.8%
。
- 训练数据量增加一倍会导致奖励模型验证准确性增加约
奖励模型学到了什么?
我们通过在几个验证集上评估我们的奖励模型来探索它。我们在论文附录
G.6
中展示了完整的结果,并在此强调了这些结果:我们发现:我们的奖励模型泛化到评估
CNN/DM
摘要(论文附录G.7
),在62.4%
和66.5%
的时间内与labeler preferences
相一致(分别对应于我们的1.3B
和6.7B
模型)。我们的6.7B
奖励模型几乎与labeler-labeler
之间的66.9%
的一致率相匹配。我们还发现,我们的奖励模型对摘要中微小的、但是语义上重要的细节很敏感。
我们构建了一个额外的验证集,让
labelers
对摘要进行最小的编辑来改进它们。我们的奖励模型倾向于经过编辑的摘要的频率(1.3B
模型为79.4%
、6.7B
模型为82.8%
),这几乎与单独的human evaluators
偏好经过编辑的摘要的频率(84.1%
)一样。此外,当比较
reference
摘要、以及参与者角色颠倒的干扰摘要时,我们的模型可靠地选择了reference
摘要(1.3B
模型为92.9%
的时间,6.7B
模型为97.2%
的时间)。然而,我们的模型偏向于较长的摘要:我们的
6.7B
模型仅在62.6%
的时间里更喜欢使摘要变短的改进编辑(与人类的76.4%
相比)。
24.2.4 分析针对摘要的自动指标
评估:我们研究了各种自动化指标作为
human preferences
的预测器的效果,并将它们与我们的奖励模型进行比较。具体而言,我们研究了
ROUGE
、摘要长度、从帖子中拷贝的数量、以及我们的基线监督模型下的log probability
。我们在论文附录G.7
中列出了这些指标之间的一致率的完整矩阵(如下图所示)。我们发现:
我们学到的奖励模型始终优于其他指标,甚至在从未训练过的
CNN/DM
数据集上也是如此。ROUGE
未能跟踪track
样本质量,而我们的模型可以改进跟踪。- 在比较我们的
supervised baseline models
的样本时,ROUGE
与labelers
的一致率为57%
。 - 而比较我们的
human feedback model
的样本,ROUGE
与labelers
的一致率下降到50%
。 - 同样地,在比较我们的
human feedback models
的样本时,ROUGE
与supervised log probability
的一致率降至50%
;而我们的奖励模型与supervised log probability
的一致率仍高于随机表现(62%
)。
- 在比较我们的
扩大监督模型的规模并不能可靠地改善奖励模型与
labelers
在supervised log probability
上的一致性。
优化:在下图中,我们展示了使用简单的优化方案对
ROUGE
进行优化并不能持续提高质量,这一点在《A deep reinforced model for abstractive summarization》
中已经被指出。与针对我们的奖励模型的优化相比,针对ROUGE
的优化达到峰值的时间更早,质量也大大降低。 $ n $ 代表迭代轮次,RM
代表奖励函数reward model
。
24.3 讨论
局限性:我们工作的一个局限性是生成最终模型所需的时间和成本。
值得注意的是,用强化学习对我们的
6.7B
模型进行微调需要大约320 GPU-days
。与之前的工作相比,我们的数据收集程序也很昂贵:训练集花费了数千
labeler hours
,并且需要大量的researcher time
来确保质量。由于这个原因,我们无法收集baseline
,如同等数量的高质量human demonstrations
的supervised baselines
。更多讨论见附录D
。我们把这种消融留给未来的工作。尽管如此,我们相信奖励模型更有可能扩展到那些提供良好
demonstrations
的技能密集型skill-intensive
的或耗时的任务。
未来的方向:
本文的方法可以应用于任何人类可以比较样本的任务,包括对话、机器翻译、问答、语音合成、以及音乐生成。我们预期这种方法对生成较长的样本特别重要,因为在这种情况下,
maximum likelihood samples
的distributional shift
和退化会产生问题。通过训练跨许多任务来预测human feedback
,也许可以提高样本效率。这些生成任务都是优化样本的最大似然。
我们对将
human feedback
扩展到人类不容易评估模型输出质量的任务中特别感兴趣。在这种情况下,识别一个机器学习系统是否align to
人类设计者的意图,这是特别具有挑战性的。一种方法是训练机器学习系统来帮助人类快速而准确地完成评估任务。除了二元比较之外,还有丰富的
human feedback
方法,可以针对训练模型来探索这些方法。例如,我们可以从labelers
那里获得高质量的demonstrations
、让labelers
编辑模型输出以使其更好、或者让labelers
提供解释从而说明他们为什么喜欢一个模型输出而不是另一个。所有这些human feedback
都可以作为一个信号来训练更有能力的奖励模型和策略。
更广泛的影响:我们在本文中探讨的技术是通用技术,可以用于各种机器学习应用,用于任何人类可以评估模型输出质量的任务。因此,其潜在的影响是相当广泛的。
我们的研究主要是出于如下的潜在的积极效果:使机器学习算法
align to
设计者的偏好。许多机器学习应用优化了简单的指标,这些指标只是设计者意图的粗略代理。这可能会导致一些问题,比如Youtube
的推荐会促进点击诱饵click-bait
。在短期内,改进直接从human preferences
中学习和优化的技术,可能会使这些应用更符合人类的福祉。然而从长远来看,随着机器学习系统的能力越来越强,要确保它们的行为安全可能会越来越困难:它们所犯的错误可能更难发现,后果也会更严重。例如,写一篇不准确的新闻摘要既容易被发现(人们只需阅读原文),后果也相当低。另一方面,模仿人类驾驶可能比优化
human preferences
更不安全(因为模仿驾驶出问题的后果相当严重)。我们相信,我们在本文中探讨的技术是一种有希望的步骤从而缓解这种强有力系统的风险,并使它们更好地align to
人类关心的东西。不幸的是,我们的技术也使恶意行为者能够更容易地训练造成社会伤害的模型。例如,人们可以利用
human feedback
来微调语言模型,使其更具说服力并操纵人类的信念、或者诱导人类对技术的依赖、或者产生大量的有毒或有害的内容从而伤害特定的个人。避免这些结果是一个重大的挑战,没有什么明显的解决方案。用
human feedback
训练的大型模型可能对许多群体产生重大影响。因此,对于我们如何定义labelers
会强化的 "好的" 模型行为,必须要谨慎。决定什么是好的摘要是相当直截了当的,但是对于具有更复杂目标的任务,不同的人可能对正确的模型行为有不同的意见,因此决定什么是好的行为将需要非常小心。在这些情况下,使用
researcher labels
作为 "黄金标准" 可能是不合适的。相反,来自受技术影响的群体的个人应该被纳入到定义 "好" 的行为的过程中,并被聘为labelers
从而加强模型中的这种行为。我们选择在
Reddit TL;DR
数据集上进行训练,因为该数据集上的摘要任务比CNN/DM
上明显更具挑战性。然而,由于该数据集由用户提交的帖子组成,且审核度极低,它们往往包含冒犯性或反映有害社会偏见的内容。这意味着我们的模型可能会产生有偏见的或令人反感的摘要,因为它们已经被训练为总结此类内容。出于这个原因,我们建议在将我们的模型部署到面向用户的应用中之前,要彻底研究其潜在的危害。最后,对于以前只能由人类完成的任务,通过提高机器学习算法执行这类任务的能力,我们正在增加许多工作被自动化的可能性,可能会导致大量的工作流失。如果没有合适的政策来缓解大规模失业的影响,这也可能导致重大的社会危害。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论