金融工程专题 证券分析师肖承志 资格编号:S0120521080003 邮箱:xiaocz@tebon.com.cn 研究助理 相关研究 1.《ChatGPT能够预测股票价格的走势吗?收益可预测性和大型语言模型 ——德邦金工文献精译第十期》 2023.04.22 2.《只有艰难时期的赢家能重复成功:对冲基金在不同市场条件下的业绩持续性——德邦金工文献精译第九期》2023.03.31 3.《训练语言模型以遵循带有人类反馈的指令——德邦金工文献精译第八期》2023.03.17 4.《股价是否充分反映了业绩中应计和现金流部分所蕴含的未来盈利信息?——德邦金工文献精译第七期》2022.07.13 证券研究报告|金融工程专题 深度报告 2023年06月29日 了解GPT:训练篇 ——德邦金工文献精译第十一期 投资要点: 姓名 资格编号:S11305XXXXXX 邮箱:xxxxx@tebon.com.cn 2023年5月23日,微软盛大主办了"Build2023"开发者大会。OpenAI的创始人AndrejKarpathy在此次大会中发表了一场关键专题演讲,题为“StateofGPT”,为大众深入解读了GPT模型的最新状况与未来方向。 演讲总结了训练GPT的4个重要步骤:预训练、监督微调、奖励建模和强化学习。 预训练是GPT助手训练的关键步骤,占据了整个训练过程的绝大部分时间和计算资源。在预训练阶段,模型会利用数千个GPU在数月的时间里对海量的互联网数据集进行处理,从而学习一种强大的通用表示。这是一种无监督的学习过程,目标 是学习预测给定上下文后的下一个单词。 监督微调是微调阶段的一部分,帮助模型更好地适应特定的任务或应用。监督微调的过程中会使用人工提供的对话样本来进行,例如在一个问答系统中,我们可能会提供一些特定的问题和正确答案组合,通过这些样本使模型适应问答任务。这阶段 使用的数据集相对较小,但其质量更高,因此需要专业知识和经验来选择合适的微调数据以及适当地调整参数。 奖励建模对模型生成的不同输出进行人工排序,然后将这些排序结果作为奖励函数,引导模型优化其输出。这是一个使用人工智能进行排序和策略调整的过程,通过奖励函数可以实现对模型的微调和优化。 基于人类反馈的强化学习(RLHF)是一种特殊的训练方法,它在人工评估中的表 5《. 资产配置:管理风格和绩效衡量— 现往往优于其他方法。在强化学习阶段,模型会根据评估员的反馈调整自己的行 —德邦金工文献精译第六期》 2022.07.11 6《.规模很重要,如果控制了绩差股— —德邦金工文献精译第五期》 2022.05.28 7.《中国股市的规模和价值因子模型 ——德邦金工文献精译第四期》 2022.04.22 8.《机器学习驱动下的金融对不确定性的吸收和加剧——德邦金工文献精译第三期》2022.02.11 9.《不可知的基本面分析是可行的— —德邦金工文献精译第二期》 2022.01.14 10.《机器学习因子:在线性因子模型中捕获非线性——德邦金工文献精译第一期》2021.09.17 为,以获得更大的奖励和尽量避免惩罚。模型会根据这样的迭代过程逐渐学习到将 奖励最大化的行为。 RLHF并不总是在所有任务均表现得更好。RLHF的主要思想是利用人类对模型已生成结果的评估,来反馈并优化模型的生成策略,从而提高生成结果的质量。然而,OpenAI发现,RLHF并不总是在所有任务中表现得更好。在处理需要大量探索和 富有创造力的任务时,原有的基础模型更具有优势。 风险提示:数据不完备和滥用风险,信息安全风险,算法伦理风险 请务必阅读正文之后的信息披露和法律声明 内容目录 1.微软开发者大会专题演讲:StateofGPT4 2.GPT助手训练流程4 2.1.预训练6 2.1.1.数据收集6 2.1.2.标记化7 2.1.3.预训练7 2.2.监督微调9 2.2.1.在小型监督数据集上微调模型9 2.2.2.微调阶段10 2.3.奖励建模10 2.4.强化学习12 2.4.1.强化学习过程12 2.4.2.RLHF优点13 3.总结14 4.参考文献14 5.风险提示15 信息披露16 图表目录 图1:OpenAI创始人AndrejKarpthy在微软开发者大会演讲4 图2:AndrejKarpathy”StateofGPT”的PPT封面4 图3:GPT助手训练流程5 图4:训练InstructGPT(GPT-3.5)的三个步骤:监督式微调(SFT),奖励模型(RM)训练,以及基于这个奖励模型进行的近端策略优化(PPO)强化学习5 图5:MetaLLaMa模型的训练语料库6 图6:标记化,将原始文本翻译成整数序列6 图7:预训练输入数据格式7 图8:预测序列中的下一个标记(红色单元格)8 图9:模型输出随迭代次数变得更加有逻辑8 图10:目前已发布的预训练模型(论文)9 图11:目前已发布的(开源和不开源)预训练模型9 图12:使用预训练模型在下游数据集微调模型9 图13:监督微调数据格式10 图14:对模型生成的不同输出进行人工排名11 图15:奖励模型训练例子11 图16:强化学习例子12 图17:人工评估GPT3、监督微调和引入强化学习机制的各模型13 图18:评估一个结果的优劣通常比创造要容易得多13 图19:基础模型比RLHF的输出有更多的“熵”14 图20:LLMs排名:前三均为RLHF模型14 表1:GPT助手训练流程4 1.微软开发者大会专题演讲:StateofGPT 2023年5月23日,微软盛大主办了"Build2023"开发者大会。OpenAI的创始人AndrejKarpathy在此次大会中发表了一场关于生成式语言大模型的专题演讲,题为“StateofGPT”,为大众深入解读了GPT模型的最新状况与未来方向。 图1:OpenAI创始人AndrejKarpthy在微软开发者大会演讲图2:AndrejKarpathy”StateofGPT”的PPT封面 资料来源:AndrejKarpathy”StateofGPT”,德邦研究所资料来源:AndrejKarpathy”StateofGPT”,德邦研究所 这场精彩的讲演主要涵盖了两大主题,一是训练GPT助手的方式和方法,二是GPT助手的有效应用途径。本文将重点关注与讲解演讲的第一部分——GPT助手的训练。 2.GPT助手训练流程 2023年5月23日,微软发布会展示的GPT助手训练流程图,分为预训练、监督微调、奖励模型和强化学习四个步骤,如图3: 预训练阶段是计算工作主要发生的地方,约占所有计算时间的99%。这个阶段我们会在超级计算机中、使用数千个GPU、经历数月的训练,来处理海量的互联网数据集。另外三个阶段则属于微调阶段,使用少量GPU、经历数天的训练。如表1: 表1:GPT助手训练流程 预训练 Transformer语言模型在大量的未标注文本数据上进行无监督学习,以了解语言的这个阶段通常需要大量的计算资源(数千个 基本结构和模式GPU)和长时间的训练(数月) 监督微调在预训练的基础上,模型在特定任务的标注数据上进行监督学习,以掌握特定任务使用少量GPU、经历数天的训练的知识和技能 奖励建模 通过一个额外的模型对Transformer模型的输出进行评分,如基于特定指标或错误使用少量GPU、经历数天的训练 次数 强化学习根据奖励建模得到的评分,通过强化学习来调整Transformer模型的参数,以提高使用少量GPU、经历数天的训练其性能 资料来源:AndrejKarpathy”StateofGPT”,德邦研究所 图3:GPT助手训练流程 资料来源:AndrejKarpathy”StateofGPT”,德邦研究所 图4是2022年3月4日OpenAI在Arxiv预发表论文“Traininglanguagemodelstofollowinstructionswithhumanfeedback”中展示的训练InstructGPT (GPT-3.5)的流程图,展示了更多训练过程设计的细节,具体细节请参阅《训练语言模型以遵循带有人类反馈的指令——德邦金工文献精译第八期》: 图4:训练InstructGPT(GPT-3.5)的三个步骤:监督式微调(SFT),奖励模型(RM)训练,以及基于这个奖励模型进行的近端策略优化(PPO)强化学习 资料来源:”Traininglanguagemodelstofollowinstructionswithhumanfeedback”,德邦研究所 其中,训练InstructGPT模型的步骤如下: 1)收集演示数据,训练监督策略。使用标注员团队提供的演示数据、使用监督学习方法对预训练GPT-3模型进行微调。该论文使用监督学习对标签机演示中的GPT-3进行了微调,训练了16个周期,使用余弦学习率衰减,残差dropout为0.2。 2)收集比较数据,训练奖励模型。给定“提示”,让模型产生多个输出,标注人员对其好坏进行排序(论文方法是对同一个问题的4到9个答案人为进行排序),训练一个奖励模型来预测人类的偏好; 3)使用PPO算法根据奖励模型优化策略。用奖励模型的输出作为标量奖励,使用强化学习PPO算法来进一步微调第一步的监督模型。第二步和第三步可以连续迭代:更新后的策略可以训练出新的奖励模型,转而又优化新的策略。 2.1.预训练 预训练阶段的目标是让模型学习成为一种语言模型。任务目标明确,即在给定一部分文本序列后,预测文本序列中的下一个单词。在预训练之前,需要进行数据收集和标记化。数据收集是从不同的来源获取大量的数据,标记化 (Tokenization)是将词语片段和整数之间进行无损转换。预训练阶段耗时最长、耗费最大,GPT的大语言模型在预训练阶段阶段需要数月时间和数千个GPU。 2.1.1.数据收集 以Meta开源的LLaMa模型为例,预训练使用的语料库有1.4TB,涉及网络爬取数据(CommonCrawl、C4)、GitHub、维基百科、书籍、Arxiv论文等,其中维基百科和书籍因数据质量更高,平均训练轮数最多,如图5: 图5:MetaLLaMa模型的训练语料库图6:标记化,将原始文本翻译成整数序列 资料来源:AndrejKarpathy”StateofGPT”,德邦研究所资料来源:AndrejKarpathy”StateofGPT”,德邦研究所 2.1.2.标记化 标记化是一种将网络原始文本转换成整数序列的技术。如图6所示,标记化的主要目的就是将这些原始的文本数据转化成一种可以供大型语言模型处理的整数序列,通常通过字节编码等手段实现这一过程,将小块的文本迭代合并,并进行标记。 2.1.3.预训练 预训练环节需要将数据分批输入到Transformer神经网络中,每一个训练批次都被打包成了一个B×T的数组,其中B代表批次的大小,即每个批次中包含的独立样本的数量,T则代表最大上下文长度,即Transformer可以接收的最大标记数量。 图7:预训练输入数据格式 资料来源:AndrejKarpathy”StateofGPT”,德邦研究所 预训练任务的关键就是预测序列中的下一个标记,在模型输入截止到随机高亮的绿色单元格时,模型需要查看序列前面的所有标记(黄色单元格)作为上下文,然后预测序列中的下一个标记(红色单元格),如图8: 图8:预测序列中的下一个标记(红色单元格) 资料来源:AndrejKarpathy”StateofGPT”,德邦研究所 如图8,“513”是下一个标记,我们将其作为监督信息来更新Transformer的权重。这意味着增加“513”标记对应原始词在预测下一个词的概率中的权重。 经过一个月的预训练后,基础模型能够掌握非常强大的通用表示,我们可以将它们有效地微调,使其适用于任何下游任务,如图12。 多轮训练后,模型的输出也会随训练迭代次数而变得更加有逻辑,如图9: 图9