当前位置:首页 » 《我的小黑屋》 » 正文

AI大模型之ChatGPT科普(深度好文)

29 人参与  2024年04月30日 13:02  分类 : 《我的小黑屋》  评论

点击全文阅读


目录

引言

语言模型的发展历程

ChatGPT是什么?

预训练ChatGPT分几步?

第一步:如何炼成ChatGPT?

第二步:如何微调ChatGPT?

第三步:如何强化ChatGPT?

GPT背后的黑科技Transformer是什么?

Transformer在计算机视觉上CV最佳作品?

ChatGPT模型的基本原理


引言

开篇之前,先用战略思维,从第一性原理出发,分析一下大模型的发展:

第一,大模型发展的驱动力是什么?

    从AI的发展历程来看,模型和算法是其不断成长的核心驱动力。从大模型发展历程来看,人类遵循的“第一性原理”,追求的底层逻辑的本质出发,并不断进行实践。因此,ChatGPT的发展,是概率论的发展,也是贝叶斯定理的发展。只有洞悉原理,才能预见未来。

第二,语言模型是什么?

    它对语言世界的建模,通过构建词汇或短语之间的关联性,来理解和描述人类语言的本质。我们看:牛顿第二定律,F=MA,是用一种非常量化和形式化的方法来描述力的作用效果。同样地,语言模型也具有量化和形式化表示的特性。

第三,语言模型用来做什么?

    简单来说,语言模型主要做三件事。一是,判断一句话是否符合人类语言习惯。二是,预测下一个词,赋能语言应用。三是,作为打分函数对多个候选答案进行打分排序。

语言模型的发展历程

2013年,谷歌的一位工作人员做出了Word2Vec,将语言模型从符号主义推进到联结主义,正式进入深度学习时代。

2017年,颠覆性的Transformer横空出世,可利用自注意力机制解决长距离依赖问题,OpenAI随即立刻采用了Transformer,研发出初代GPT,同时谷歌也做出了双向预训练的BERT,两者开始互相竞争。一开始BERT非常流行,而GPT并不受欢迎,但是OpenAI没有放弃信念和生成式的初心。

2019年,OpenAI做出GPT-2,模型开始显现多任务的泛化能力,并于2020年做出了红极一时的GPT-3,其上下文零样本学习能力大显神通。

2021年,Open AI推出InstructGPT。

2022年底,ChatGPT诞生,成为生产力范式的颠覆性革新。

ChatGPT是什么?

GPT(Generative Pre-trained Transformer):是一种基于Transformer架构生成式预训练模型。

ChatGPT:是基于GPT-4的变种,专门用于生成对话和交互式对话。ChatGPT旨在模拟人类对话,具有更加交互式和对话式的特性。

GPT-4:是一个大型语言模型LLM(Large language model),大模型 = 海量数据 + 深度学习算法 + 超强算力。数据是训练原材料,深度学习算法是计算法则,算力是硬件计算力,大模型是预测模型。

ChatGPT,是人工智能研究实验室OpenAI研发的聊天机器人程序,通俗讲,ChatGPT是人工智能里程碑,你可以把它当做一个AI聊天软件。可能你会问,这类人工智能产品,市面上不是有吗?有是有,但是跟ChatGPT比起来,其他的产品的算力和准确率都是不值一提的。ChatGPT厉害到什么程度呢?举例:ChatGPT能把项目文件的要点总结出来,还能附上数据来源,还可以帮你制作图表,还能帮你撰写论文、设计图片、翻译、撰写代码等等。因此,ChatGPT会较快影响各行各业,一是文字类工作,这是首当其冲,特别是内容创作以及归纳性文字工作和数据录入等;二是代码开发相关工作,昨天就有个相关话题上了热搜,该话题为“ChatGPT会不会使底层程序员失业”;三则是图形生成领域,特别是平面设计工作;四是智能客服类工作。

谷歌CEO桑达尔·皮查伊宣布,谷歌对话式AI应用Bard向早期测试者开放,开放给公众使用。

“文心一言”项目,可以写文案,做文档,当客服,讲故事等。

预训练ChatGPT分几步?

需要三步完成。

第一步,无监督训练ChatGPT。成通过海量的文本,无监督预训练。得到一个能进行文本生成的基座模型。GPT使用了大量的文本数据进行训练,包括Wikipedia、Gutenberg等。 训练数据会被分成一些不同的序列(sequence),每个序列被看作是一个任务,模型需要预测序列中下一个单词的概率分布。

第二步,有监督微调ChatGPT。通过一些人类撰写的高质量对话数据,对基座模型,有监督微调(Supervised Fine-Tuning,简称SFT),得到一个微调后的模型,对微调后的模型进行测试,以评估其在特定任务上的性能。此时的模型除了续写文本之外,也会具备更好的对话能力。

第三步,强化学习训练ChatGPT。用问题和多个对应回答的数据,让数据标注师对回答进行质量排序,然后基于这些数据训练出一个能对回答进行评分预测的奖励模型(Reward modeling,简称RM)。接下来,让第二步得到的模型对问题生成回答,用奖励模型给回答进行评分,利用评分作为反馈进行强化学习训练

下面,详细阐述每一步的知识细节。

第一步:如何炼成ChatGPT?

炼成,就是如何训练成的俗称。在第一步的预训练中,首先需要海量文本作为原料,让模型从中学习。比如GPT3这个基座模型的训练数据有多个互联网文本语料库,附带书籍、新闻文章、科学论文、维基百科、社交媒体帖子等等,训练数据的整体规模是3000亿的token。

补充说明:什么是token?它一般指的是大语言模型的一个基本文本单位,像短的英文单词,可能一个词是一个token,而长的词可能被分为多个token。而中文的话,所占的token数量会相对更多,有些字要用一个甚至更多token表示。

当有了大量可用于训练的文本后,要采用无监督学习的方式。训练模型,和无监督学习相对的是监督学习模型,会接受有标签的训练数据,标签就是期望的输出值,所以每个训练数据点都既包括输入特征,也包括期望输出值。而无监督学习则是让模型在没有标签的数据上进行训练,所以模型要自己找出数据中的结构和模式。以GPT3为例,训练过程中,它会利用海量文本自行学习人类语言的语法、语义,然后再表达结构和模式。那具体来说,模型会先看到一部分文本,基于上下文尝试预测下一个token,然后通过比较正确答案和他的预测,模型会更新权重,从而逐渐能根据上文来生成合理的下文,并且随着见过的文本越来越多,它生存的能力也会越来越好。

预训练的结果是得到一个基座模型。基座模型并不等同于ChatGPT背后的对话模型,因为此时模型有预测下一个token的能力,会根据上文补充文本,但并不擅长对话。你给他一个问题,他可能模仿上文帮你继续生成更多的问题,但不回答你的问题。

预训练并不是一个容易的过程,也是步骤里最耗时费力烧钱的。虽然官方还没有公布准确数据,但大体估计他经过了数月的训练,用了成千上百个V100的GPU,烧了几百万美元。

第二步:如何微调ChatGPT?

不擅长对话,怎么办?为了解决这点,我们需要进行第二步,对基座模型进行微调。微调就是在已有模型上做进一步的训练,会改变模型的内部参数,让模型更加适应特定任务。换句话说,为了训练出一个擅长对话的AI助手,需要给基座模型看更多的对话数据。但微调的成本相比预训练低很多,因为需要的训练数据规模更小,训练时长更短。在这个阶段里,模型不需要从海量文本学习了,而是从一些人类学的专业且高质量的对话里学习。这相当于既给了模型问题,又给了模型我们人类的回答,属于监督学习,所以这一过程被叫做监督微调Supervised Fine-Tuning,简称SFT,完成后会得到一个SFT模型,它比基座模型更加擅长对问题做出回答。

第一方法:小样本提示工程,目标是:如何提供和AI的沟通效率和质量。好处:不需要准备大量标注数据,不需要训练模型。

提示,就是我们给AI聊天助手输入的问题或指令,AI会根据提示内容给予回应。在进入提示工程之前,我们先要了解ChatGPT助手存在的局限性。他们背后的大语言模型,是用海量文本训练出来的,因此擅长模仿人类语言表达,也从那些内容里学到了不少知识。他们的回应都是根据提示以及前面已生成的内容,通过持续预测下一个token的概率来实现的。但同时,对于他们不了解的业务领域,他们并不知道自己缺乏业务知识,加上生成过程中也没有反思能力,所以,我会经常看到充满着自信的所答非所问。

为了调教AI,给出想要的回答,第一个办法是用小样本提示。我们很多时候都是直接丢问题或指令给AI,这种属于零样本提示就是没有给AI任何示范,不一定和我们想要的效果相符。但如果我们让AI回答前给他几个对话作为示例,用样本对他进行引导,AI模型就会利用上下文学习能力,一方面记忆那些内容作为知识,另一方面像示范那样模仿着自己回应。有了小样本提示后,再问AI类似的问题,他就能给出和提示师范相似的回答了。小样本提示的另一个好处是,由于AI回应的内容风格会大概率遵循我们给的示范。我们也就不用多费口舌给AI从前面的示范回答里领悟。但是,小样本提示有时也起不到很大的作用。比如AI非常不擅长做数学相关问题,即使我们用样本示范一些正确的结果,到他做的时候依然事倍功半,这是因为它没有思维的过程。

因此,提示工程是一个动态且迭代的过程,它要求我们不断地测试、评估和调整提示,以达到最佳的交互效果。有效的提示工程不仅能提高AI模型解决问题的能力,还能增强其生成内容的相关性和准确性。实践中,建议采用以下策略:

明确并细化目标:清晰定义你想要AI完成的具体任务。
分步指导:对复杂问题,提供分步骤的指导,帮助AI更好地理解和解决问题。
提供背景信息:在需要的情况下,为AI提供足够的背景信息,帮助其更准确地理解上下文。
迭代优化:根据AI的响应不断调整提示,找到最有效的表述方式。
通过这些方法,我们可以有效地利用提示工程,提升生成式AI在各种任务中的表现,无论是解决数学问题、创作内容,还是开发新的AI驱动产品。

具体操作:可以查看《百度智能云千帆大模型平台》,不用写代码就可以完成小样本提示工程。

第二种方法,微调大模型,能深入解决个性化任务。

加载预训练模型:首先,需要从预训练模型中加载所需的参数和权重。
数据准备:针对新的任务和数据,需要进行数据预处理和标注,以生成适用于微调的输入数据。
调整层:在模型的输入和输出层之间添加一个新的调整层,以适应新的任务和数据。这个调整层可以是一个简单的全连接层,也可以是一个卷积层或池化层。
训练:使用新的任务和数据对模型进行训练,通过反向传播算法更新模型的参数。在训练过程中,通常会采用较小的学习率和优化器,以避免过拟合和损失收敛。
评估:在训练完成后,需要对模型进行评估,以了解其在新任务和数据上的性能。评估通常包括计算模型的准确率、精度、召回率等指标。
需要注意的是,在进行模型微调时,需要确保模型的输入和输出格式与预训练模型保持一致,以便能够正确地加载预训练模型的参数和权重。此外,在训练过程中,还需要合理地设置超参数,如学习率、批量大小、迭代次数等,以获得最佳的性能。

具体操作:可以查看《百度智能云千帆大模型平台》,不用写代码就可以完成模型微调。

第三种方法,AI思维链,提升大模型进行复杂推理的能力。

思维链,是谷歌在2022年一篇论文里提出的,作者发现思维链可以显著提升大模型进行复杂推理的能力,特别是在算术常识和符号推理等任务上。运用思维链的方法是我们给AI的小样本,提示里不仅包含正确的结果,也展示中间的推理步骤,那AI在生成回答时,也会模仿着去生成一些中间步骤,把过程进行分解。这样做的好处是步子小点,容易接近目标,就像被老师点名回答问题时,站起来瞬间就给出正确答案的难度系数很高。但如果说多说些废话,把思考步骤也讲出来,一方面可以拖时间,有更多思考机会,另一方面也有助于我们分步骤想,更有机会得到正确答案。思维链也可以用在数学计算之外的很多方面,借助思维链,AI可以在每一步里把注意力集中在当前思考步骤上,减少上下文的过多干扰,因此针对复杂的任务,有更大概率得到准确的结果。在思维链的相关论文里,作者还提到,即使我们不用小样的提示,只是在问题后面加一句let's think step by step,让我们来分步骤思考,也能提升AI得到正确答案的概率。这是一种成本非常低的方法,用思维链还需要我们想样本示范,而这种方法只需要加上简单一句话,AI就会自行推理。一次,AI思维链,是理解和实现人工智能技术的基石。它不仅仅是一系列技术步骤的组合,更是一种全面的思考模式,涵盖了从数据获取到最终决策输出的整个过程。

增强AI的可解释性:通过可视化AI的决策过程,思维链提示可以帮助我们更好地理解AI是如何做出决策的。这有助于我们评估AI的可靠性,并在必要时对其进行调整。
检测和纠正AI偏见:通过揭示AI在做出决策时所依赖的逻辑路径,思维链提示可以帮助我们发现潜在的偏见,并采取适当的措施来纠正它们。
提高AI决策的透明度和公正性:通过使AI的决策过程更加透明,思维链提示可以增加人们对AI系统的信任。这有助于提高AI在各个领域的广泛应用和接受度。

具体来说,AI思维链可以被细分为以下几个核心部分:

数据获取与处理:这是AI思维链的起点。有效的AI系统依赖于大量的高质量数据。在这一阶段,关键在于如何收集、清洗和整理数据,以确保数据的准确性和代表性。

算法设计:算法是AI的心脏。在这一环节中,选择和设计合适的算法对于解决特定问题至关重要。算法设计不仅要考虑问题的性质,还要考虑可用数据的特点和预期结果的需求。

模型训练:有了合适的数据和算法后,接下来就是训练模型。这一过程涉及调整算法参数,使模型能够准确地从数据中学习并做出预测。

优化与测试:模型训练完成后,并不意味着AI思维链的结束。接下来需要对模型进行优化和测试,以确保其在实际应用中的稳定性和准确性。

部署与应用:最后一步是将训练好的模型部署到实际应用中。这可能涉及到将模型集成到现有的技术系统中,或者根据模型输出进行决策制定。

通过这些步骤,AI思维链将原始数据转化为有价值的洞察和决策,从而在各个行业中发挥其强大的作用。它不仅是技术操作的序列,更是一种跨学科融合的思维方式,它要求我们不仅要理解数据和算法,还要理解这些技术如何服务于实际问题的解决。

第三步:如何强化ChatGPT?

回答不准确,怎么办?为了让模型的实力继续被提升,还可以进行第三步,让SFT模型进行强化学习。模型在环境里采取行动获得结果反馈,从反馈里学习,从而能在给定情况下采取最佳行动来最大化奖励或最小化损失。举例:训小狗,随着和训犬师的互动,小狗会发现某些动作能获得零食,某些动作没有零食,某些动作甚至会遭受惩罚。通过观察动作和奖惩之间的联系,小狗的行为会逐渐接近训犬时的期望。要让ChatGPT的模型当一个乐于助人的AI助手,也是一样的道理。

我们可以让ChatGPT问题做出回答,然后让人类评估员去给回答打分。打分主要是基于三原则,Helpful即有用,Honest即真实,Harmless即无害。如果打分高的话,模型能学习后要再接再厉,如果打分低的话,就学习后要予以改正。但是,靠人类给回答,一个个打分,成本极高,效率极低,那为何不训练出另一个模型,让模型给模型打分?所以,在这一步骤里需要训练一个奖励模型,它是从回答以及回答对应的评分里学习的。得到评分数据的方式,是让微调后的GPT模型,也就是SFT模型,对每个问题生成多个回答,然后让人类标注员对回答质量进行排序。虽然还是免不了要借助标注员的劳动,但一旦有了足够的排序数据,就可以把数据用在训练奖励模型上,让奖励模型学习预测回答的评分。奖励模型训练出来后就可以用在强化学习上了。强化学习力ChatGPT模型的最初参数来自之前得到的SFT模型,但会随着训练被更新,奖励模型的参数则不再会被更新,他的任务就是对模型生成的内容打分。那经过一轮又一轮迭代后,模型会不断优化策略,回答的质量会进一步提升,强大的ChatGPT就在不断学习中炼成了。2022年11月,ChatGPT对外发布,至此引爆生成式AI元年。

举例:Teacher Model就是奖励模型,通过前面的学习已经学到,如果答案是一个问句,它不是一个好的答案,给予低分。这个Teacher Model输出的高分就是强化学习的奖励Reward,强化学习通过调整参数,得到最大的Reward。

GPT背后的黑科技Transformer是什么?

请参考博客:AI大模型原理科普(深度好文)-CSDN博客

Transformer在计算机视觉上CV最佳作品?

AI大模型之Swin Transformer 最强CV图解(深度好文)_swin transformer nlp-CSDN博客

ChatGPT模型的基本原理

ChatGPT就是GPT-4的变种,我们了解GPT原理就可以,GPT的实现原理是什么?一句话概括,GPT(Generative Pre-trained Transformer)是一种基于Transformer架构的生成式预训练模型。具体如下:

Transformer架构: GPT基于Transformer模型,该模型是由Vaswani等人于2017年提出的一种深度学习架构。Transformer主要包含了注意力机制(Attention Mechanism),使得模型能够更好地处理序列数据,同时也降低了序列处理任务的计算复杂度。

预训练: GPT是一种预训练模型,它首先在大规模的文本语料库上进行预训练。在预训练阶段,模型学会了理解文本中的语法、语义和上下文信息,而不需要任务特定的标签。这使得GPT能够捕捉到丰富的语言知识和模式。

自回归生成: GPT是一个自回归模型,它能够生成序列。在预训练期间,模型被训练为根据给定的上下文生成下一个词。这种自回归的训练方式使得模型能够理解并学到长期依赖关系。

多层堆叠: GPT通常由多个Transformer层堆叠而成,每一层包含多头自注意力机制和前馈神经网络。多层结构允许模型对输入进行多层次的表示学习,从而更好地捕捉复杂的语义和文本结构。

位置嵌入: 为了使模型能够处理序列数据,GPT引入了位置嵌入(Positional Embeddings),以区分不同位置的词在序列中的位置。

微调与下游任务: 在预训练完成后,可以对GPT模型进行微调以适应特定的下游任务,例如文本生成、问答、语言翻译等。微调时,可以使用有标签的数据来调整模型的参数。


点击全文阅读


本文链接:http://zhangshiyu.com/post/102349.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1