ChatGPT背后的核心技术报告(附下载)

news2024/12/24 0:10:58

输入几个简单的关键词,AI能帮你生成一篇短篇小说甚至是专业论文。最近大火的ChatGPT在邮件撰写、文本翻译、代码编写等任务上强大表现,让埃隆·马斯克都声称感受到了AI的“危险”。ChatGPT的计算逻辑来自于一个名为transformer的算法,它来源于2017年的一篇科研论文《Attention is all your need》。原本这篇论文是聚焦在自然语言处理领域,但由于其出色的解释性和计算性能开始广泛地使用在AI各个领域,成为最近几年最流行的AI算法模型,无论是这篇论文还是transformer模型,都是当今AI科技发展的一个缩影。以此为前提,本文分析了这篇论文的核心要点和主要创新初衷。

01 缘起   

从Transformer提出到“大规模与训练模型” GPT(Generative Pre-Training)的诞生,再到GPT2的迭代标志Open AI成为营利性公司,以及GPT3和ChatGPT的“出圈”;再看产业界,多个重要领域比如生物医疗,智能制造纷纷有以transformer落地的技术产生。在这个浪潮下,我的思考是:

一是,未来很长一段时间在智能化领域,我们都将经历“科研、算力、基础架构、工程、数据、解决方案”这个循环的快速迭代;流动性、创新性短期不会稳定下来,而是会越来越强。我们很难等到科技封装好,把这些知识全部屏蔽掉,再去打磨产品。未来在竞争中获胜的,将是很好地“解决了产品化和科研及工程创新之间平衡”的团队。我们一般理解的研发实际上是工程,但AI的实践科学属性需要团队更好的接纳这种“流动性”。因此对所有从业者或者感兴趣智能化的小伙伴了解全栈知识成了一个刚需。

二是,通过对这篇论文的探讨,可以更直观地理解:在科研端发生了什么,以什么样的速度和节奏发生;哪些是里程碑?是科学界的梅西横空出世,带我们发现真理;哪些是微创新?可能方向明确了,但还有很多空间可以拓展;哪些更像炼金术?仍然在摸索,尚需要很长一段时间,或者一直会保持这个状态。

三是,在AI领域,由于技术原因,更多的论文是开源代码的,一方面,促进了更多人参与进来改进迭代;另一方面,科研跟工程实现无缝连接,一篇论文可以拉动从核心代码到平台,到具体应用很大范围的价值扩散。一篇论文很可能就是一个领域,一条赛道,甚至直接驱动业务价值和客户价值的大幅提升。

四是, AI技术发展有很多领域(感知,认知,感知又分图像、语音、文字等,认知也可以分出很多层次)之前这些领域的算法逻辑存在很大差别,transformer的出现有一定程度上推动各个领域汇聚的迹象,介绍清楚这篇论文,对把握整体可能有些作用。另外ChatGPT属于现象级应用,大家更有直观感受,未来这类应用的体验提升和更新速度只会更快,理解了其背后的逻辑,更有助于我们把握这个趋势。

02 论文介绍   

下面步入正题,开始介绍这篇论文,会涉及一些技术细节及公式,可能还需要仔细看一下(先收藏,留出15-20分钟比较好),相信一旦看进去,你会对AI的理解加深很多。

总体把握

这篇论文的结构非常精炼,提出问题,分析问题,解决问题,给出测试数据。顶刊文章讲究言简意赅,有描述,有代码,有结果;其中最核心的是以下这张图,作者团队提出transformer的核心算法结构:

整篇文章就是围绕这张图来进行解释的,由于篇幅所限,我们聚焦在一条主线上:1.文章想解决主要问题是什么 2.如何解决的 3.从文章提出的解决方案作为一个案例来引发整体思考,因此我们将内容简化,主要关注核心部分。

这张图表达的内容如果理解了,那基本上你掌握了这篇论文85%的内容,也是最关键的部分。

《Attention is all your need》在编写时主要是为了考虑NLP任务,是由几个Google的科研人员一起完成的,其中一个背景是Google也在推广自己的并行计算芯片以及AI TensorFlow开发平台。平台主要功能特点是并行计算,这篇文章的算法也是在最大限度的实现并行计算。我们就以一个简单的例子来把这个算法串一遍。

核心内容

需求是我们需要训练一个模型,进行中文到英文翻译。

背景知识:这个需求要把“翻译:我爱你 to I love you”转置成一个y=f(x)问题,x代表中文,y是英文,我们要通过训练得到f(),一旦训练成功f(),就可以实现翻译。大家拼的就是谁的训练方法更准确,更高效,谁的f()更好用。

之前自然语言处理主要的算法叫RNN(循环神经网络),它主要的实现逻辑是每个“字”计算之后将结果继承给第二个字。算法的弊病是需要大量的串行计算,效率低。而且当遇到比较长的句子时,前面信息很有可能会被稀释掉,造成模型不准确,也就是对于长句子效果会衰减。这是这篇文章致力于要解决的问题,也就是说这篇文章有训练处更好的f()的方法。联想一下ChatGPT可以做论文,感受一下。

在Transformer里,作者提出了将每个字与句子中所有单词进行计算,算出这个词与每个单词的相关度,从而确定这个词在这个句子里的更准确意义。

在此处,要开始进入一些技术细节,在开始之前,我们有必要再熟悉一下机器学习领域最核心的一个概念——“向量”。在数字化时代,数学运算最小单位往往是自然数字。但在AI时代,这个最小单元变成了向量。这是数字化时代计算和智能化时代最重要的差别之一。   

举个例子,比如,在银行,判断一个人的信用额度,我们用一个向量来表示

向量是一组数据的集合,也可以想象成在一个超高维度空间里的一个点。一个具体的信用额度向量,就是在8个特征组成的高维空间的一个点。数据在高维空间将展现更多的数学性质比如线性可分,容易让我们抓住更多隐藏的规律。

向量的加减乘除是计算机在进行样本训练是最主要的计算逻辑。

Transformer模型的主要意义就是找到了一个算法,分成三步把一个词逐步定位到了一个高维空间,在这个过程中赋予这个单词比其它算法更优的信息。很多情况下这个高维空间有着不同的意义,一旦这个向量赋予的信息更准确更接近真实情况,后面的机器学习工作就很容易展开。还拿刚才信用额度向量举例子

这两个向量存在于两个不同的向量空间,主要的区别就是前者多了一个向量特征:“年薪”。可以思考一下如果判断一个人的信用额度,“年薪”是不是一个很重要的影响因子?

以上例子还是很简单的,只是增加了一个特征值,在transformer里就复杂很多,它是要把多个向量信息通过矩阵加减乘除综合计算,从而赋予一个向量新的含义。

好,理解了向量的重要性,我们看回transformer的三步走,这三步走分别是:1.编码(Embedding)2. 定位 (Positional encoding)3. 自注意力机制(Self-Attention)。

举个例子,比如,翻译句子Smart John is singing到中文。

首先,要对句子每个词进行向量化。

我们先看“John”这个词,需要先把“John”这个字母排列的表达转换成一个512维度的向量John,这样计算机可以开始认识它。说明John是在这个512维空间的一个点,这是第一步:编码(Embedding)。

再次,第二步: 定位(Positional encoding),利用以下公式(这是这篇论文的创新)

微调一个新的高维空间,生成一个新的向量。

我们不用太担心这个公式,它核心意义是:1.在这个新的向量里面每一位由原来的0和1表示,分别取代成由sin和cos表示,这个目的是可以通过sin和cos的定律,让这个新向量不仅表示John这个单词的意义,还可以表示John在Smart John is singing这个句子的位置信息。如果不理解,可以直接忽略,只要记住第二步是用来在“表达John这个词的向量”中,加入了John在句子中的位置信息。John已经不是一个孤立的词,而是一个具体句子中的一个词,虽然还不知道句子中其他词是什么含义。

如果第一步计算机理解了什么是John,第二步计算机理解了“* John**”。

最后,第三步:自注意力机制(Self-Attention),通过一个Attention(Q,K,V)算法,再次把John放到一个新的空间信息里,我们设为

在这个新向量里,不仅包含了John的含义,John在句子中位置信息,更包含了John和句子中每个单子含义之间的关系和价值信息。我们可以理解,John作为一个词是一个泛指,但Smart John就具体了很多,singing的Smart John就又近了一步。而且Attention (Q,K,V)算法,不是对一个单词周围做计算,是让这个单词跟句子里所有单词做计算。通过计算调整这个单词在空间里的位置。

这种方法,可以在一个超长句子中发挥优势,而且最关键的是一举突破了时序序列的屏障,以前对于图像和NLP算法的划分,很大程度上是由于NLP有很明显的时序特征,即每个单词和下一个以及在下一个有比较明显的时序关系。但Transformer这种算法打破了这种束缚,它更在意一个单词跟句子中每个单词的价值权重。这是Transformer可以用到everywhere的主要原因。

计算过程

具体的计算过程,用翻译句子“我爱你”到“I love you”举例(这句更简单一些)。首先进行向量化并吸收句子位置信息,得到一个句子的初始向量组。

(由于样本每个句子长短不同,所以每个句子都会是一个512*512的矩阵,如果长度不够就用0来代替。这样在训练时,无论多长的句子,都可以用一个同样规模的矩阵来表示。当然512是超参,可以在训练前调整大小。)

接着,用每个字的初始向量分别乘以三个随机初始的矩阵WQ,Wk,Wv分别得到三个量Qx,Kx,Vx。下图以“我”举例。

然后,计算每个单词的attention数值,比如“我”字的attention值就是用“我”字的Q我分别乘以句子中其他单词的K值,两个矩阵相乘的数学含义就是衡量两个矩阵的相似度。然后通过一个SoftMax转换(大家不用担心如何计算),计算出它跟每个单词的权重,这个权重比例所有加在一起要等于1。再用每个权重乘以相对应的V值。所有乘积相加得到这个Attention值。

这个attention数值就是除了“我”字自有信息和位置信息以外,成功的得到了这个句子中每个单词的相关度信息。

大家可以发现,在所有注意力系数的计算逻辑中其实只有每个字的初始矩阵WQ,Wk,Wv是未知数(这三个矩阵是所有文字共享的)。那么我们可以把这个transformer简化成一个关于输入,输出和这个W矩阵的方程:其中X是输入文字信息,Y是翻译信息。

这里有必要再介绍一下机器学习的基础知识:Transformer算法本质上是一个前馈神经网络模型,它的计算基础逻辑,不去管复杂的隐藏层,就是假设Y=f(x)=wx,(目标还是要算出一个f())然后随机设置一个w0,开始计算这个y=w0x的成本函数,然后再把w0变成w1,计算y=w1x的成本函数,以此类推计算出无数w(不是无数,也会收敛),然后比较哪个w的成本函数最小,就是我们训练出来的f()。那么在transformer里,这三个初始矩阵就是那个w0。

再回到transformer,在计算Attention之后,每个单词根据语义关系被打入了新的高维空间这就是Self-attention(自注意力机制)。

但在transformer里,并不是代入了一个空间,而是代入了多个高维空间,叫做多头注意力机制,(文章中没有给出更清晰的理论支持,为什么是多头)。

主要原因是在训练时效果很好。这也是AI科研论文的一个特点,常常凭借非常高的科研素养和敏感性,发现一些方向,并且通过测试确实有效,但不一定可以给出很完美的理论支撑。这往往也给后续研究者一些可以进一步完善的空间。

事实证明,如何提升Attention(Q,K,V)效率是transformer领域迭代最快的部分。之后的Bert算法提出预训练机制成为了主流,后面会做进一步介绍。

当然,事后我们可以理解是把这个句子中的逻辑关系放到不同的高维空间去训练,目的就是希望抓取更多的信息,这一部分可以更加深刻理解科研人员对空间的应用。

除了以上内容,还有一些技术点比如Mask机制、layer norm、神经网络激函数饱和区控制等,由于篇幅关系以及属于技术细节就不一一介绍了。

如果大家理解了多头自注意力机制,基本已经85%掌握了这篇论文的重要内容,也对还在快速扩展影响力的transformer模型有了一个比较直观的认识。

03 启发收获   

从理论科研进步的角度看

一、Transformer打破了时序计算的逻辑,开始快速出圈,多个AI原本比较独立的领域开始在技术上融合。再往里看,Transformer能打破时序很重要一点是并行计算的算力模式给更复杂的计算带来了性价比上的可能性。算力的进一步提高,必将在AI各细分领域带来融合,更基础设施级别的模型,算法仍将不断推出。AI领域在图像,NLP;感知认知领域的专业分工也会慢慢变模糊。

二、AI科研确实具有一些实验性质。除了核心思想,确实还有很多技术点的解决方向已经明确,但还有很大的提升空间,可以预见围绕transformer周边的微创新会持续加速繁荣。

三、《Attention is all your need》在业内大名鼎鼎,但你要是细看,会发现很多内容也是拿来主义,比如最重要的Attention(Q,K,V)中Query,Key,Value是互联网推荐系统的标配方法论;整个Transformer算法也是一个大的神经网络,算法是在前人基础上一步一步迭代发展,只是这个迭代速度明显在加快。 

从理论、算法、架构、工程的角度看

四、AI算法科研领域正经历算法、开源代码、工程、算力的增长飞轮。

下图是顶级刊物上的学术论文中,开放源代码的论文比例,这个数据在这几年以更快的速度在增长。科研过程与工程过程产生越来越大的交集。开源社区和开源文化本身也在推动算法和工程的快速发展。

更多人参与,更多领域的人参与进来,进入门槛随着算力成本、AI基础架构和代码、知识分享的开源逐渐降低,科研与工程的边界也变得模糊,这个就像足球运动的规律,除了足球人口增多,天才球员梅西出现的概率也会增大。

从数据和后续发展的角度看

五、ChatGPT的成功同大量的数据训练功不可没,但除了简单对话互动或者翻译,大篇幅回答甚至论文级别的答案还是极其缺乏样本数据(算法训练需要的样本数据需要清晰度X和Y)。而且Transformer的算法相比其他算法需要更大的数据量,原因在于它需要起始阶段随机产生三个矩阵,一步一步进行优化。除了Transformer以外,另一个技术Bert也是技术发展非常重要的现象级算法。其核心是一个简化的Transformer,Bert不去做从A翻译到B,它随机遮住X里面的一些单词或句子让算法优化对遮住部分的预测。这种思路使得Bert成为了Transformer预训练最好的搭档。

如果通过Bert进行预训练,相当于给矩阵加入了先验知识(之前训练逻辑没有给机器任何提示,规则后者基础知识),提高了正式训练时初始矩阵的准确度,极大地提升了之后transformer的计算效率和对数据量的要求。在现实中,举例来说,如果我想训练国家图书馆图书,之前需要每本书的信息和对这本书的解释,或者中文书对应的英文书。但现在我们可以大量只是训练内容,不需要打标签,之后只需要通过transformer对样本数据进行微调。这就给ChatGPT很大的进步空间,而且可以预见,更多这类大模型会雨后春笋一般快速出现。

六、由于transformer是更高级的神经网络深度学习算法,对数据量有很高要求,这也催生了从小数据如何快速产生大数据的算法,比如GAN对抗网络等。这是AIGC领域的核心技术。解决数据量不足问题,除了更高效率抽象小数据的信息,也多了把小数据补足成大数据的方法,而且这些方法在快速成熟。

七、我们发现在机器学习算法中有大量的超级参数,比如在transformer里多头机制需要几头N,文字变成向量是512还是更多,学习速率等都需要在训练之前提前设置。由于训练时间长,参数复杂,要想遍历更优秀的计算效果需要非常长的摸索时间。这就催生出AutoML,拿Transformer举例,就要很多个路线进行自动化机器学习;比如贝叶斯计算(找到更优参数配置概率);强化学习思路(贪婪算法在环境不明朗情况下迅速逼近最优);另外还有寻求全新训练网络的方法(transformer,RNN,MLP等联合使用排列组合)等。

科研发展强调参数化,工业发展强调自动化,这两者看似统一,但在现实实操过程中往往是相当痛苦矛盾的。这也是开篇说的产品化和科研流动性相平衡的一个重要领域。

下载原文ChatGPT背后的核心技术报告

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

穿透技术及Apache教学

首先在这里因为很多人没学过内网穿透以及虚拟ip,因此给大家出一套小白网络隧道教学(Sunny-Ngrok)如下: Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器 进入文档第一步:注册账号,并登录进入 第二步&a…

Eye of the Temple:在4平米玩出大空间VR效果的秘诀

卧室只有4平米,能在VR中模拟森林等大空间场景吗?仅依靠视觉也许可以,但显然你很难走到森林尽头。不过,通过重定向等视觉欺骗,也许你可以通过在房间内“绕圈”,来模拟在虚拟空间中无尽行走的效果。比如热门大…

企业工程管理系统源码之提高工程项目管理软件的效率

高效的工程项目管理软件不仅能够提高效率还应可以帮你节省成本提升利润 在工程行业中,管理不畅以及不良的项目执行,往往会导致项目延期、成本上升、回款拖后,最终导致项目整体盈利下降。企企管理云业财一体化的项目管理系统,确保…

全景 I 0基础学习VR全景制作,第25章热点功能-接入无为

本期为大家带来蛙色VR平台,热点功能—接入类型为:无功能操作。 功能位置示意 热点,指在全景作品中添加各种类型图标的按钮,引导用户通过按钮产生更多的交互,增加用户的多元化体验。 热点接入类型为:无&…

【安全知识】——LInux的shell反弹姿势合集(更新中)

作者名:白昼安全 主页面链接: 主页传送门 座右铭: 不要让时代的悲哀成为你的悲哀专研方向: web安全,后渗透技术每日鸡汤: 宇宙有宇宙的规律,我也有我的坚持 当我们拿到一台LINUX主机的权限时&am…

java版企业工程项目管理系统源码+spring cloud 系统管理+java 系统设置+二次开发

工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…

线下沙龙丨瑞云“遇·建”-上海站建筑可视化技术沙龙活动圆满落幕!

艺术挑战技术,技术启发艺术,视觉行业的技术日新月异,实时渲染、云制作/云协作以及AIGC等创新技术,不仅能够帮助视觉行业同仁落实愿景,也实现了更加精简的工作流程。 2023年4月26日,深圳市瑞云科技股份有限公…

ChatGPT对健康医疗意味着什么?

ChatGPT可能是有史以来增长最快的消费者互联网应用程序。OpenAI开发的人工智能聊天机器人于11月推出,仅两个月就达到了1亿用户。它空前的流行可归因于其令人印象深刻的功能。 ChatGPT可以做什么,为什么如此受欢迎? 人工智能曾经是科幻小说中…

ControlNet: 控制扩散模型的魔法

出品人:Towhee 技术团队 作者:王翔宇 从去年以来 AIGC 的技术不断冲击人们的想象力,针对图片的扩散模型(midjourney 和 stable diffusion)已经可以在给于 prompt 下生成非常吸引人的图像,但是如果希望以别…

网络安全论坛哪里找?

下面给大家介绍一些比较常见的国内安全论坛: 1、黑客基地:http://www.hackbase.com/ 黑基网(WWW.HACKBASE.NET)成立于2003年,由IT精英和白帽黑客共同发起创立,致力于打造高端IT与网络安全的技术交流平台&…

数据结构及算法应用

第十四章、数据结构及算法应用 1、分治法 对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决;否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地…

janus videoroom 对接freeswitch conference 篇1

janus videoroom 实时性非常好, freeswitch conference的功能也很多 ,有没办法集成到一块呢 让很多sip 视频终端也能显示到videoroom 里面, 实现方式要不两种 1.改源码实现 (本文忽略 难度高) 2.找一个videoroom管…

什么是JS事件流

什么是JS事件流? 一&#xff1a;事件冒泡 <!DOCTYPE html> <html lang"en"> <head><title>事件冒泡例子</title> </head> <body><div id"box">点击我</div> </body> </html>上述的代…

需求管理(三)需求过程

一、需求规格说明 1.1需求规格说明概述 需求获取的目标是得到用户的需求——收集需求信息 需求分析的目标是更深刻的理解用户的需求——界定能够让用户满意的解决方案和准则 需求规格说明的目标是定义用户的需求——准确描述其需求和解决方案 需求规格说明文档的撰写流程如下图…

DHCP+链路聚合+NAT+ACL小型实验

实验要求: 1.按照拓扑图上标识规划网络。 2.使用0SPF协议进程100实现ISP互通。 3.私网内PC属于VLAN1O, FTP Server属于VLAN2O,网关分 别为所连接的接入交换机&#xff0c;其中PC要求通过DHCP动态获取 4:私网内部所有交换机都为三层交换机&#xff0c;请合理规划VLAN&#…

关于对tinymce富文本编辑器使用的心得

本文分为一下几个功能&#xff1a; tinymce初始化的一些配置在工具栏和文本中间插入特定的标题和摘要自定义工具栏按钮&#xff0c;实现特定功能上传图片时去掉网络上传功能粘贴过来的图片实现默认上传给图片添加水印功能实现一键排版 一、tinymce初始化的一些配置 1、首先需要…

机械大专生能学会云计算吗,完全零基础的

机械大专生能学会云计算吗&#xff0c;完全零基础的 正常来说&#xff0c;大专及以上学历都能学会云计算&#xff0c;但是会和满足就业需求是两回事哈。如果你想通过学习就业&#xff0c;就需要根据当下相关岗位的普遍技术需求以及其他方面的要求&#xff0c;来针对性的学习和提…

契约锁连续入选金融信创生态实验室「金融信创优秀解决方案」

近日&#xff0c;中国人民银行直属机构--金融信创生态实验室正式公布《金融信创优秀解决方案&#xff08;第二期&#xff09;》评选结果&#xff0c;契约锁「印章管控方案」成功入选&#xff0c;并被收录在“一般业务类-产业机构”名录&#xff0c;为金融机构的印章管控及电子签…

一个简单的运筹优化生产问题求解过程

运筹相关的一个简单的生产问题 题目来自于清华大学出版的《运筹学》第四版。 一、问题描述 二、图解法 三、单纯形法 第一次迭代&#xff1a; 第二次迭代&#xff1a; 第三次迭代&#xff1a; 下面描述一下第三次迭代的详细过程&#xff1a; 从表达式&#xff08;2-18&#…

一文理解Kafka

概述 Kafka是一个基于Zookeeper的分布式消息中间件&#xff0c;支持消息分区&#xff0c;提供发布和订阅功能。使用Scala编写&#xff0c;主要特点是可水平扩展&#xff0c;高吞吐率以及高并发。 常见的使用场景&#xff1a; 企业级别活动数据和运营数据的消息传递&am…