ChatGPT是一种自然语言处理模型,ChatGPT全称Chat Generative Pre-trained Transformer,由OpenAI开发。它使用了基于Transformer的神经网络架构,可以理解和生成自然语言文本。ChatGPT是当前最强大和最先进的预训练语言模型之一,可以生成具有逻辑和语法正确性的连贯文本。它在自然语言处理的各个领域,例如对话生成、文本分类、摘要生成和机器翻译等方面都取得了非常优秀的成绩。ChatGPT的成功表明,预训练语言模型已经成为自然语言处理领域的主流技术之一
ChatGPT从领域上是属于自然语言处理(Natural Language Processing),简称NLP
NLP的主要目标是使计算机能够理解、分析、操作人类语言,从而实现更加智能化的自然语言交互
自然语言处理技术的发展历程经历了从规则到统计再到深度学习的三个阶段:
自然语言处理开始时是利用传统的技术来解决问题,例如基于规则的方法、词典匹配等。但是这些传统方法需要大量手工编写规则和模式来处理自然语言,难以适应自然语言的多样性和复杂性。相比之下,人工智能技术具有自主学习和适应数据的能力,能够更加灵活和高效地处理自然语言。因此,在解决自然语言处理问题时,人工智能技术已经成为主流和先进的方法。
NLP的复杂性体现在以下几个方面:
NLP主要内容包括以下:
其中ChatGPT在语言理解、机器翻译、文本分类、信息抽取、文本生成方面表现相当优秀
目前NLP的主流解决技术方案是人工智能,人工智能的技术要素包括数据、算法、算力、模型。他们的关系为通过数据、算法、算力求模型,通俗地理解为如同人类一样用数据找到规律。人工智能区别于传统编程开发,传统编程开发是用已知规律求数据
ChatGPT是一个模型,是通过数据、算法、算力求得的一个模型,其中数据、算法、算力具体内容为:
其原理主要包括以下几个方面:
ChatGPT模型的主要训练流程可以概括为以下几个步骤:
首先以监督学习方式训练能够写答案的生成模型,然后利用人工排序训练奖励模型,用于对生成模型的输出打分, 最后用奖励模型预测结果且通过 PPO 算法优化 SFT 模型得PPO-ptx模型
阶段1:利用人类的标注数据(demonstration data)去对 GPT3 进行监督训练。
1)先设计了一个prompt dataset,里面有大量提示样本,给出了各种各样的任务描述;
2)其次,标注团队对 prompt dataset 进行标注(本质就是人工回答问题);
3)用标注后的数据集微调 GPT3(可允许过拟合),微调后模型称为 SFT 模型(Supervised fine-tuning,SFT),具备了最基本的文本生成能力。
阶段2:通过 RLHF 思路训练奖励模型 RM
1)微调后的 SFT 模型去回答 prompt dataset 问题,通过收集 4 个不同 SFT 输出而获取 4 个回答;
2)接着人工对 SFT 模型生成的 4 个回答的好坏进行标注且排序;
3)排序结果用来训练奖励模型RM (Reward Model),即学习排序结果从而理解人类的偏好。
阶段3:通过训练好的 RM 模型预测结果且通过 PPO 算法优化 SFT 模型的策略。
1)让 SFT 模型去回答 prompt dataset 问题,得到策略的输出,即生成的回答;
2)此时不再让人工评估好坏,而是让阶段 2 RM 模型去给 SFT 模型的预测结果进行打分排序;
3)使用 PPO 算法对 SFT 模型进行反馈更新,更新后的模型称为 PPO-ptx。
其中重要的一个原因是预训练,相当于人类的通识教育
预训练的文本数据集包括维基百科、书籍、期刊、Reddit链接、Common Crawl和其他数据集,
主要语言为英文,中文只有5%,ChatGPT-3预训练数据量达45TB,参数量1750亿,对应成本也非常高,GPT-3 训练一次的费用是 460 万美元,总训练成本达 1200 万美元
注:参数量指的是模型中需要学习的可调整参数的数量,也就是神经网络中各层之间的连接权重和偏置项的数量之和。在深度学习中,参数量通常是衡量模型规模和容量的重要指标,一般来说参数量越多,模型的表达能力也就越强
官网例子
https://platform.openai.com/examples
官网提供了多种编程语言的SDK接入
https://platform.openai.com/docs/libraries
作为一种大规模预训练语言模型,ChatGPT的训练需要依赖大量的无监督文本数据。在模型预训练完成后,如果要将其应用于某个具体任务,比如问答系统、机器翻译等,通常需要用到一些有标注的数据集进行微调。这些标注数据可以通过人工标注获得,也可以通过其他方法生成,如利用规则、自动标注等。因此,ChatGPT在预训练阶段不需要人工标注,但在应用阶段需要借助标注数据进行微调和优化。
训练一个大型的语言模型像ChatGPT需要大量的计算资源和时间。但是一旦训练完成,部署和使用的成本就相对较低了。部署方面,可以选择在云端或者本地部署,云端部署可以更加灵活和便捷,而本地部署则可以提高一定的安全性和隐私性。
在使用过程中,ChatGPT仍然需要一定的计算资源来运行和生成文本,特别是当输入的序列长度和生成文本的长度增加时,所需的计算资源也会相应增加。此外,如果要对ChatGPT进行微调,需要准备大量的数据和进行反复的实验,这也需要一定的成本。
ChatGPT 的研究预览是免费的。
ChatGPT 是基于 GPT-3.5 进行微调的语言模型,其目的是生成文本。通过使用强化学习与人类反馈(RLHF)的方法,ChatGPT 被优化为对话模型。该方法利用人类演示和偏好比较来指导模型朝着所需的行为方向发展。
这些模型是在大量来自人类撰写的互联网数据上进行训练的,包括对话,因此它提供的回复可能听起来像人类一样。重要的是要记住,这是系统设计的直接结果(即最大化输出与模型训练数据集之间的相似性),这样的输出有时可能是不准确的、不真实的,或者具有误导性。
ChatGPT 未连接到互联网,偶尔可能会产生错误的答案。它对于2021年之后的世界和事件的了解有限,并且有时可能会提供有害的指令或有偏见的内容。
我们建议检查模型的响应是否准确。如果您发现回答不正确,请使用“反对”按钮提供反馈。
作为我们致力于安全和负责任的人工智能的一部分,我们会审核对话,以改善我们的系统,并确保内容符合我们的政策和安全要求。
是的。我们的人工智能培训师可能会审核您的对话,以改善我们的系统。
是的,请按照数据删除流程操作。
不可以,我们无法从您的历史记录中删除特定的提示。请不要在对话中分享任何敏感信息。
我可以查看我的对话记录吗?我如何保存我进行过的对话?
是的,您现在可以查看并继续您过去的对话。
翻译自官方常见问题
https://help.openai.com/en/articles/6783457-chatgpt-general-faq
https://openai.com/blog/chatgpt
为什么ChatGPT仿如十万个为什么回答机?
https://www.zhihu.com/question/570431477
https://mdnice.com/writing/367eff477f6644a5b4c50301a443018e
ChatGPT是怎样被训练出来的?
https://www.bilibili.com/video/BV1e24y1s7k8/?spm_id_from=333.788&vd_source=c90e27f6e0935bab786c15cc6e330f63
https://mp.weixin.qq.com/s?__biz=MzI4MDYzNzg4Mw==&mid=2247554744&idx=2&sn=3b93ca4720cd86fb13978d40a2c691c6&chksm=ebb72e6cdcc0a77a56a7ab0e1b315baf7801e418af0d1f88c0446dd25e93c8b50a6cdc471cb0&scene=27
https://zhuanlan.zhihu.com/p/609795142