GPT前言
说明
ChatGPT这项技术的历史可以追溯到2018年,当时由Facebook实验室的团队开发出该技术,以开发聊天机器人为目的。随后,ChatGPT在2019年由来自谷歌的DeepMind团队在国际会议ICLR上发表了论文,其中提出了ChatGPT的技术框架,以及用以构建聊天机器人的应用技术和模型。
ChatGPT的前身版本有:
- GPT 1.0:2018年由Facebook实验室开发,是ChatGPT技术的第一个版本,它可以帮助开发人员在真实环境中构建聊天机器人,简单说就是全局生成式预训练,但是相对于bert预训练难度太大,而且所有的下游任务都要替换预训练模型。
- GPT 2.0:2019年,由谷歌DeepMind团队在ICLR会议上发表了论文,提出了ChatGPT的技术框架,以及用以构建聊天机器人的应用技术和模型,是ChatGPT的第二个版本。它相对于GPT-1,添加了一个zero-shot,在预测模型里加入相应提示,使得下游任务变得统一可控,但是模型结构变得更负责,数据也更丰富了。
- GPT 2.2:2020年7月,ChatGPT官方发布了2.2版本,添加了基于深度学习的自然语言处理技术,以及有效的图形规划技术,可以构建出更高效的聊天机器人应用程序。它提供了一个用于快速构建聊天机器人的开源框架,支持Python和JavaScript两种语言,添加了基于深度学习的自然语言处理技术,以及有效的图形规划技术,可以构建出更高效的聊天机器人应用程序。此时模型采用one-shot方式进行训练。
- 2020年,谷歌又发布了一个新的模型------GPT-3,它是一种更加强大和有效率的模型,它使用类似于ChatGPT的技术,并加入了更多先进的技术,以构建更复杂的聊天机器人应用程序。此时模型积累更大,但是相对于gpt-2,加上了一些提示,或者一些例子帮助,此时是few-shot。batch-size达到了3.2m
到目前为止,ChatGPT已经广泛应用于各种领域,比如教育、商业、健康等,可以帮助开发者构建自然语言处理
结构介绍
ChatGPT(Chat Graphical Planning Tool)是一种用于设计和开发现代聊天机器人的AI技术。它是一个开源的自然语言处理框架,可以帮助开发人员在真实环境中构建聊天机器人。ChatGPT包括组件,这些组件可以让开发人员创建自然语言处理系统,此外还可以实现智能行为和多伦智能的用户交互。ChatGPT的实现方式是将机器学习,自然语言处理,图形规划等技术结合在一起,创建出一个全方位的聊天机器人框架。
论文:
GPT论文:Language Models are Few-Shot Learners Language Models are Few-Shot Learners.
InstructGPT论文:Training language models to follow instructions with human feedback Training language models to follow instructions with human feedback.
ChatGPT的模型结构主要包括以下组件:
-
语句表示层:用于将输入的文本转换为句子的表示形式,以便获得可理解的信息。
-
意图检测层:在该层,模型将尝试从语句表示中提取意图,以便根据用户的意图做出相应的动作。
-
图形规划层:用于根据模型检测的意图来构建聊天流程图,以便获得最优的对话结果。
-
行为实现层:用于实现由图形规划层生成的行为,以及处理和响应用户输入。
-
学习层:用于学习用户行为和反馈,以改进模型的性能,从而使模型的功能更加完善。
具体训练过程如下:
1. 训练监督策略模型
GPT 3.5本身很难理解人类不同类型指令中蕴含的不同意图,也很难判断生成内容是否是高质量的结果。为了让GPT 3.5初步具备理解指令的意图,首先会在数据集中随机抽取问题,由人类标注人员,给出高质量答案,然后用这些人工标注好的数据来微调 GPT-3.5模型(获得SFT模型, Supervised Fine-Tuning)。此时的SFT模型在遵循指令/对话方面已经优于 GPT-3,但不一定符合人类偏好。
2. 训练奖励模型(Reward Mode,RM)
这个阶段的主要是通过人工标注训练数据(约33K个数据),来训练回报模型。在数据集中随机抽取问题,使用第一阶段生成的模型,对于每个问题,生成多个不同的回答。人类标注者对这些结果综合考虑给出排名顺序。这一过程类似于教练或老师辅导。接下来,使用这个排序结果数据来训练奖励模型。对多个排序结果,两两组合,形成多个训练数据对。RM模型接受一个输入,给出评价回答质量的分数。这样,对于一对训练数据,调节参数使得高质量回答的打分比低质量的打分要高。
3. 采用PPO(Proximal Policy Optimization,近端策略优化)强化学习来优化策略。
PPO的核心思路在于将Policy Gradient中On-policy的训练过程转化为Off-policy,即将在线学习转化为离线学习,这个转化过程被称之为Importance Sampling。这一阶段利用第二阶段训练好的奖励模型,靠奖励打分来更新预训练模型参数。在数据集中随机抽取问题,使用PPO模型生成回答,并用上一阶段训练好的RM模型给出质量分数。把回报分数依次传递,由此产生策略梯度,通过强化学习的方式以更新PPO模型参数。如果我们不断重复第二和第三阶段,通过迭代,会训练出更高质量的ChatGPT模型。
优势及缺点
ChatGPT的发展趋势以及将来的应用前景都非常令人兴奋。ChatGPT的未来发展可以期望更多的AI技术来处理和分析聊天机器人数据,比如语音识别、机器翻译等,以便更好地与用户交互。此外,ChatGPT也可以用于开发具有自我学习功能的聊天机器人,可以自动学习、记忆和模仿不同场景下的用户行为,以及拓展不同场景下的对话范围。随着云计算技术的发展与人工智能技术的突破,对ChatGPT的研究和使用也将越来越多,未来将为人工智能领域带来有趣的应用。
但是,只要用户输入问题,ChatGPT 就能给予回答,是否意味着我们不用再拿关键词去喂 Google或百度,就能立即获得想要的答案呢?尽管ChatGPT表现出出色的上下文对话能力甚至编程能力,完成了大众对人机对话机器人(ChatBot)从"人工智障"到"有趣"的印象改观,我们也要看到,ChatGPT技术仍然有一些局限性,还在不断的进步。
1)ChatGPT在其未经大量语料训练的领域缺乏"人类常识"和引申能力,甚至会一本正经的"胡说八道"。ChatGPT在很多领域可以"创造答案",但当用户寻求正确答案时,ChatGPT也有可能给出有误导的回答。例如让ChatGPT做一道小学应用题,尽管它可以写出一长串计算过程,但最后答案却是错误的。
2)ChatGPT无法处理复杂冗长或者特别专业的语言结构。对于来自金融、自然科学或医学等非常专业领域的问题,如果没有进行足够的语料"喂食",ChatGPT可能无法生成适当的回答。
3)ChatGPT需要非常大量的算力(芯片)来支持其训练和部署。抛开需要大量语料数据训练模型不说,在目前,ChatGPT在应用时仍然需要大算力的服务器支持,而这些服务器的成本是普通用户无法承受的,即便数十亿个参数的模型也需要惊人数量的计算资源才能运行和训练。,如果面向真实搜索引擎的数以亿记的用户请求,如采取目前通行的免费策略,任何企业都难以承受这一成本。因此对于普通大众来说,还需等待更轻量型的模型或更高性价比的算力平台。
4)ChatGPT还没法在线的把新知识纳入其中,而出现一些新知识就去重新预训练GPT模型也是不现实的,无论是训练时间或训练成本,都是普通训练者难以接受的。如果对于新知识采取在线训练的模式,看上去可行且语料成本相对较低,但是很容易由于新数据的引入而导致对原有知识的灾难性遗忘的问题。
5)ChatGPT仍然是黑盒模型。目前还未能对ChatGPT的内在算法逻辑进行分解,因此并不能保证ChatGPT不会产生攻击甚至伤害用户的表述。
类GPT模型产品
-
GPT-2(Generative Pre-trained Transformer 2):由OpenAI开发,是一种强大的自然语言处理模型,可生成高质量的文本,包括对话、文章和新闻等。
-
GPT-3(Generative Pre-trained Transformer 3):也是由OpenAI开发的模型,是GPT-2的升级版,拥有更多的参数和更强大的语言生成能力。GPT-3可以生成更自然、更流畅的文本,包括对话、文章、代码等。
-
XLNet:由谷歌开发,是一种自然语言处理模型,使用了自回归和自编码两种技术,可以处理不同长度的输入序列,并且在一些任务上表现良好。
-
BERT(Bidirectional Encoder Representations from Transformers):也是由谷歌开发的模型,使用双向Transformer编码器,能够在许多自然语言处理任务中取得很好的效果。
-
T5(Text-to-Text Transfer Transformer):由谷歌Brain团队开发,是一种万能的文本生成模型,可以完成多种自然语言处理任务,包括翻译、摘要、问答等。
-
OpenAI:ChatGPT模型是由OpenAI开发的,该公司已经将该模型应用于自己的产品和服务中,包括AI写作助手GPT-3。
-
Microsoft:微软使用了一个名为DialoGPT的ChatGPT模型来开发其AI聊天机器人。
-
Facebook:Facebook使用了名为Blender的ChatGPT模型来提高其Messenger和Portal的聊天机器人的能力。
- 源码及语料:git clone git://git.blender.org/blender.git ||
https://github.com/blender/blender
- 源码及语料:git clone git://git.blender.org/blender.git ||
-
Google:谷歌正在开发自己的ChatGPT模型,并将其应用于其智能助手Google Assistant中。
-
Alibaba:阿里巴巴使用自己的ChatGPT模型,名为PAI-DA,来改善其自然语言处理应用程序的能力。
- 源码及语料:
- Tencent:腾讯使用自己的ChatGPT模型,名为PLATO,来提升其聊天机器人的能力,并将其应用于其智能客服和智能客户服务平台。
-
WeChat:微信是腾讯开发的一款聊天应用程序,它使用了自然语言处理和聊天机器人技术来提供自动回复和智能客服功能。
-
Amazon:亚马逊使用名为Amazon Lex的聊天机器人服务,该服务可以自动识别自然语言并自动回复问题,同时还可以与Alexa智能助手集成。
-
IBM:IBM开发了自己的ChatGPT模型,名为Project Debater,该模型可以自动识别和分析大量文本信息,并生成可信的自然语言回答。
-
Salesforce:Salesforce是一家销售自动化和客户关系管理软件公司,他们使用名为Einstein的聊天机器人服务来提高客户服务的效率,并改善用户体验。
- 源码及语料:https://github.com/salesforce/cove
- 数据集
- 分类:
- 问题分类
- 蕴含分类
- 问答
- 百度文心模型:
- OpenAssistant:是一个不断开发的开源人工智能代理能够实现基本的对话和互动与越来越多的任务自动化
- 源码及语料:https://github.com/openassistant/oa-core/tree/next
ChatGPT 的模型相似的技术也有 Google DialogFlow 和 IBM Watson Assistant,它们都是基于自然语言处理的聊天机器人框架,可以帮助开发者快速搭建聊天机器人。和ChatGPT一样,Google Dialogflow 和 IBM Watson Assistant 也包含组件,允许开发者通过自然语言处理系统来实现智能行为和多轮对话交互。此外,它们也都有学习组件,以便根据用户的反馈和行为来改进模型的性能。
相似产品还有Microsoft Bot Framework、Amazon Lex、Rasa NLU、Gupshup、Santa AI Bot Builder等等。这些产品均使用自然语言处理技术来帮助开发人员快速构建聊天机器人,并且也都具有学习模块,可以从用户交互中学习行为和反馈,从而改进模型的性能。
上述这些模型都是基于Transformer架构的,使用预训练技术进行训练,并在自然语言处理任务中表现出色。
参考文章
- GPT论文:https://arxiv.org/pdf/2005.14165.pdf
- GPT结构:https://mp.weixin.qq.com/s?__biz=MzU2NTcxODIyMg==\&mid=2247507286\&idx=1\&sn=b7141f5817b86c363638c9c5b52d5824\&chksm=fcb5e0f7cbc269e164547becbfd1c86654815e698d46309e8d7761ff00086d3813580dd3ccfa\&mpshare=1\&scene=24\&srcid=0213j8KFZUPImp0ftYvi1ZWc\&sharer_sharetime=1676262790635\&sharer_shareid=8d16eb5213019b5d4600c882e10dd275#rd
- 文本任务模型:https://baijiahao.baidu.com/s?id=1730861595934353908\&wfr=spider\&for=pc
- salesforce:
https://einstein.ai/static/images/layouts/research/cove/McCann2017LearnedIT.pdf - blender:
https://docs.blender.org/manual/zh-hans/dev/index.html - textToText:https://arxiv.org/pdf/1910.10683.pdf