1.自然语言处理发展的7个阶段
序号 | 阶段 | 时间 | 贡献 | 代表人物 |
1 | 起源期 | 1913-1956 | 思考使用图灵算法计量模型来描述自然语言,描述词语及词语之间的关系。这一阶段停留在理论层面做探索 | 图灵、马尔可夫、香农 |
2 | 基于规则的形式语言理论期 | 1957-1970 | 形式语言理论的提出,开启了学术界对自然语言结构的研究、建模和解析,从而为基于结构与规则的文本识别、生成和翻译开辟了一条康庄大道 | 诺姆·乔姆斯基、冯志伟 |
3 | 基于规则、概率模型和预料库的融合期 | 1971-1995 | 隐马尔可夫模型的诞生属于一个里程碑式的重大进展,大大推进了自然语言处理的发展进程。 | |
4 | 浅层机器学习期 | 1996-2005 | 朴素贝叶斯模型等模型弥补传统融合模型方法的不足,展现一定的学习和推理能力,这有助于提高自然语言的综合能力,比如优化文本分类、消除奇艺、增强语义分析、强化情感分析 | |
5 | 深度学习期 | 2006-2017 | 神经网络语言模型能够挖掘到更多隐含信息,多层神经网络能够有效地实现特征工程的自动化,通过逐层初始化的预训练方式解决多层神经网络训练的难题。另一进展是词向量技术和表征方法的提出,提高了文本识别的准确度和精度 | |
6 | 预训练语言模型期 | 2018-2021 | 预驯良模型大大降低了自然语言处理的门槛,让创业公司能轻轻松松的在预训练语言模型的基础上进行优化,并在各个垂直领域的应用中获得良好的效果 | |
7 | 大模型期 | 2022- | 大模型表现出优异的自然语言生成和推理性能 |
2.从BERT模型到ChatGPT
2.1BERT模型说明
BERT模型由谷歌于2018年发布,其主要创新点在于提出了预训练的思想,并且使用Transformer的编码器作为模型的基础架构。BERT模型能够解决的实际问题如:语法错误判别、情感分析、语义相近、语义相近评分、问题对语义相近、句子对关系判断、问答、实体识别问题、阅读理解、完形填空。
2.2BERT模型诞生之后行业持续摸索
BERT模型诞生后,由于优秀的性能和开源的特性,其很快应用到各行各业和各类自然语言处理任务中,比如智能客服、语音质检、对话机器人和搜索引擎等,产生了巨大的商业价值。
此时,GPT技术选型嗨处于非主流状态,另外当时行业攻坚克服的方向主要放在自然语言处理上,而非自然语言生成上。
2.3ChatGPT的诞生
与BERT模型相比,ChatGPT在文本生成方面的效果提高十分明显。两者的差异在于BERT模型重点关注的是自然语言处理任务,而ChatGPT重点突破的是自然语言生成任务。
2.3.1InstructGPT模型的构建流程
InstructGPT模型是ChatGPT的孪生兄弟,该模型的构建分为以下3个步骤:
(1)微调GPT-3.0
按照要求收集并标注演示数据,为监督学习做准备。
1)构建Prompt数据集:比如“向小孩解释登月”、“讲讲白雪公主的故事”等
2)对数据集进行标注:主要通过人工进行标注,比如“登月就是去月球”
3)使用标注数据集微调GPT-3:使用监督学习策略对模型进行微调,获得新的模型参数
(2)训练奖励模型
收集训练奖励模型(Reward Model,RM)所需要的比较数据集。标注数据知识对于给定输入用户更偏好哪个输出,依据此进行奖惩,从而训练RM来更好的按照人类偏好进行模型输出。
1)模型预测:用微调过的GPT-3对采样的任务进行预测
2)数据标注,获得比较数据集:对模型预测数据结果按照从好到坏的规则进行标注,获得比较数据集
3)得到RM:用比较数据集作为输入数据训练,得到RM
(3)使用ppo算法更新模型参数
通过强化学习手段,使用PPO算法优化RM,使用RM的输出作为标量奖励,同时使用PPO算法对监督政策进行微调以优化RM。
1)使用PPO算法预测结果:通过强化学习手段,使用PPO算法优化GPT-3并构建新的生成函数,然后输入采样的Prompt数据集,获得模型输出
2)使用RM打分:使用第二步训练好的RM给模型输出进行打分,获得Reward(奖励)打分数据
3)更新模型参数:根据Reward打分数据来更新模型参数
模型构建的第二步和第三步可以循环操作,只需要收集关于当前最佳策略的更多比较数据集,用于训练心得RM,然后使用PPO算法训练新的策略
从以上的InstructGPT的构建流程和方法介绍中可以看到,InstructGPT的构建流程相对简单,并没有涉及特别复杂的方法论和技术,也没有涉及很多原创的理论,更多的是站在巨人肩膀上的工程实践方面的创新
2.3.2ChatGPT和InstructGPT的差异
通过对话形式,ChatGPT能够回答问题、承认错误、对模糊的需求进行询问、质疑不正确的前提和拒绝不适当的请求等。ChatGPT是InstructGPT的兄弟模型,被训练为在提示中遵循指令并输出反馈结果。
模型 | InstructGPT | ChatGPT |
底座模型 | GPT-3.0 | GPT-3.5 |
数据集 | 指令数据集 | 人工交互标注数据+指令数据集,最后转化为对话数据集 |
应用场景 | 更适合指令型文本生成任务 | 更适合对话型文本生成任务 |
推理能力 | 中 | 较强 |
代码生成能力 | 弱 | 较强 |
泛化能力 | 中等 | 较强 |