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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/304212.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】STL--vector

目录 vector的使用 vector的定义 vector iterator的使用 vector空间增长问题 vector增删查改 vector深度剖析及模拟实现 vector核心接口模拟实现 使用memcpy拷贝问题 迭代器失效问题 vector的使用 vector的定义 C中,vector是一个模版,第一个参…

【Qt踩坑】ARM 编译Qt5.14.2源码-QtWebEngine

1.下载源码 下载网站:Index of /new_archive/qt/5.14/5.14.2/single 2.QWebEngine相关依赖 sudo apt-get install flex libicu-dev libxslt-dev sudo apt-get install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev sudo apt-get …

Netty实现udp服务器

1、TCP与UDP通信协议 网络传输层协议有两种,一种是TCP,另外一种是UDP。 TCP是一种面向连接的协议,提供可靠的数据传输。TCP通过三次握手建立连接,并通过确认和重传机制,保证数据的完整性和可靠性。TCP适用于对数据准…

OpenHarmony南向开发实例:【智能可燃气体检测系统】

样例简介 本项目是基于BearPi套件开发的智能可燃气体检测Demo,该系统内主要由小熊派单板套件和和MQ5可燃气体检测传感器组成。 智能可燃气体检测系统可以通过云和手机建立连接,可以在手机上控制感应的阈值,传感器感知到的可燃气体浓度超过阈…

美国B2985A是德科技高阻表

181/2461/8938产品概述: 特点: 0.01 fA最小测量分辨率10便士?1000 V电源下的最大电阻测量每秒20,000次读数分辨率为6.5位数的测量范围图形查看模式(仪表、图表、直方图和滚动视图)易于使用的自动导航功能可选择最佳范…

系统更新Javahome之后,eclipse ide没有同步更新的解决方案

1、确认eclipse idea当前使用jdk 路径 : 2、确认Ide路径为旧的之后,去到eclipse的应用启动路径,编辑【eclipse.ini】, 在【-vmargs】之前设置vm路径(换行为必须的): -vm C:\Program Files\Java\jdk1.8.0_1…

解决在嵌入式系统开发编译时遇到的“no definition for ‘xxx‘在xxx.o文件中”BUG

提示:本文章是自己折腾嵌入式系统开发过程学习记录 解决在嵌入式系统开发编译时遇到的“no definition for xxx在xxx.o文件中”BUG BUG描述一、编译开发环境开发语言和库 二、问题分析知识点说明函数声明:函数定义: 三、解决方案1. 检查函数声…

BP实战之猫狗分类数据集

目录 补充知识 python类里面的魔法方法 transforms.Resize() python里面的OS库 BP实战之猫狗分类数据集 猫狗数据集 注意事项 使用类创建自己的猫狗分类数据集 代码 实例化对象尝试 代码 结果 利用DataLoader加载数据集 BP神经网络的搭建以及对象的使用 运行结果…

HTTP与HTTPS:深度解析两种网络协议的工作原理、安全机制、性能影响与现代Web应用中的重要角色

HTTP (HyperText Transfer Protocol) 和 HTTPS (Hypertext Transfer Protocol Secure) 是互联网通信中不可或缺的两种协议,它们共同支撑了全球范围内的Web内容传输与交互。本文将深度解析HTTP与HTTPS的工作原理、安全机制、性能影响,并探讨它们在现代Web…

小程序项目思路分享爬虫

小程序项目思路分享爬虫 具体需求: 有这几个就行,门店名称门店地址门店类型,再加上省、市、县/区门店名称:storeName 门店地址:storeAddress 程序运行: honor_spider获取经纬度信息。 经纬度——>详…

SpringCloudAlibaba-整合sleuth和zipkin(六)

目录地址&#xff1a; SpringCloudAlibaba整合-CSDN博客 一、整合sleuth 1.引入依赖 在需要追踪的微服务中引入依赖&#xff0c;user、order、product <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter…

java-数组转换为List集合

方法一&#xff1a;使用 Arrays.asList() 方法 Arrays.asList() 方法可以将数组转换为一个固定大小的List。 import java.util.Arrays; import java.util.List; import java.util.ArrayList; public class ArrayToListExample { public static void main(String[] args…

AI大模型引领未来智慧科研暨ChatGPT自然科学高级应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

数据结构——线性表(链式存储结构)

语言&#xff1a;C语言软件&#xff1a;Visual Studio 2022笔记书籍&#xff1a;数据结构——用C语言描述如有错误&#xff0c;感谢指正。若有侵权请联系博主 一、线性表的逻辑结构 线性表是n个类型相同的数据元素的有限序列&#xff0c;对n>0&#xff0c;除第一元素无直接…

数据仓库与数据挖掘(第三版)陈文伟思维导图1-5章作业

第一章 概述 8.基于数据仓库的决策支持系统与传统决策支持系统有哪些区别&#xff1f; 决策支持系统经历了4个阶段。 1.基本决策支持系统 是在运筹学单模型辅助决策的基础上发展起来的&#xff0c;以模型库系统为核心&#xff0c;以多模型和数据库的组合形成方案辅助决策。 它…

021——搭建TCP网络通信环境(c服务器python客户端)

目录 前言 服务器程序 服务器程序验证过程 客户端程序 前言 驱动开发暂时告一段落了。后面在研究一下OLED和GPS的驱动开发&#xff0c;并且优化前面已经移植过来的这些驱动&#xff0c;我的理念是在封装个逻辑处理层来处理这些驱动程序。server直接操作逻辑处理层的程序。 …

labview技术交流-如何判断一个数是否为质数

问题起源 如何判断一个数是否为质数&#xff0c;其实并不难&#xff0c;只要你知道质数的定义&#xff0c;按照它的定义去编写代码就可以了。但是没有思路的人可能就会一直找不到方向&#xff0c;所以我就简单介绍一下。 还有我想吐槽的点&#xff0c;labview本来就是很小众的语…

外包干了15天,技术倒退明显

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01; 而我已经在一个企业干了四年的功能…

uniapp小程序中使用video视频播放卡顿

问题:在使用uniapp小程序的video视频播放,视频已经在播放了,但是进度条没走,还是卡顿的状态(测试ios能正常使用,安卓手机会出现此问题) 在网上找了很多方法,最多的说是用:custom-cache"false",试了并没有效果,看来和我问题不一样,后来用了个简单粗暴的方法,发现是有效…