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

目录

训练ChatGPT分几步?

如何炼成ChatGPT?

如何微调ChatGPT?

如何强化ChatGPT?

如何调教ChatGPT?

AI思维链是什么?

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

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


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

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

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

训练ChatGPT分几步?

需要三步完成。

第一步,通过海量的文本进行无监督学习 。得到一个能进行文本生成的基座模型

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

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

如何炼成ChatGPT?

在第一步的预训练中,首先需要海量文本作为原料,让模型从中学习。比如GPT3这个基座模型的训练数据有多个互联网文本语料库,附带书籍、新闻文章、科学论文、维基百科、社交媒体帖子等等,训练数据的整体规模是3000亿的token(补充说明:什么是token?它一般指的是大语言模型的一个基本文本单位,像短的英文单词,可能一个词是一个token,而长的词可能被分为多个token。而中文的话,所占的token数量会相对更多,有些字要用一个甚至更多token表示。)

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

预训练并不是一个容易的过程,也是这四个步骤里最耗时费力烧钱的。以这为例,虽然官方还没有公布准确数据,但大体估计他经过了数月的训练,用了成千上百个V100的GPU,烧了几百万美元。预训练的结果是得到一个基座模型。基座模型并不等同于ChatGPT背后的对话模型,因为此时模型有预测下一个token的能力,会根据上文补充文本,但并不擅长对话。你给他一个问题,他可能模仿上文帮你继续生成更多的问题,但不回答你的问题。

如何微调ChatGPT?

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

模型微调的方法通常包括以下步骤:

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

需要注意的是,在进行模型微调时,需要确保模型的输入和输出格式与预训练模型保持一致,以便能够正确地加载预训练模型的参数和权重。此外,在训练过程中,还需要合理地设置超参数,如学习率、批量大小、迭代次数等,以获得最佳的性能。

如何强化ChatGPT?

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

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

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

如何调教ChatGPT?

提升工程,目标是:如何提供和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思维链将原始数据转化为有价值的洞察和决策,从而在各个行业中发挥其强大的作用。它不仅是技术操作的序列,更是一种跨学科融合的思维方式,它要求我们不仅要理解数据和算法,还要理解这些技术如何服务于实际问题的解决。

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

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

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

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

相关推荐
深圳南柯电子9 分钟前
深圳南柯电子|电子设备EMC测试整改:常见问题与解决方案
人工智能
Kai HVZ10 分钟前
《OpenCV计算机视觉》--介绍及基础操作
人工智能·opencv·计算机视觉
biter008814 分钟前
opencv(15) OpenCV背景减除器(Background Subtractors)学习
人工智能·opencv·学习
吃个糖糖21 分钟前
35 Opencv 亚像素角点检测
人工智能·opencv·计算机视觉
qq_5290252939 分钟前
Torch.gather
python·深度学习·机器学习
数据小爬虫@39 分钟前
如何高效利用Python爬虫按关键字搜索苏宁商品
开发语言·爬虫·python
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
IT古董1 小时前
【漫话机器学习系列】017.大O算法(Big-O Notation)
人工智能·机器学习
凯哥是个大帅比1 小时前
人工智能ACA(五)--深度学习基础
人工智能·深度学习
終不似少年遊*1 小时前
pyecharts
python·信息可视化·数据分析·学习笔记·pyecharts·使用技巧