这一章节供给了对生成式人工智能(AI)的快速介绍,重点放在了留意力机制上,这是转换器架构的要害组成部分。您还将了解一些在AI范畴具有影响力的公司。 本章的榜首部分向您介绍了生成式AI,包含其最重要的特征和技能。您还将了解对话式AI与生成式AI之间的区别。 本章的第二部分以扼要介绍几家在人工智能和自然言语处理(NLP)范畴做出重大奉献的公司开端。假如您方案从事NLP范畴的职业,您将对这些公司十分了解。 本章的第三部分介绍了LLM(大型言语模型)的概念,这对本书中的所有章节都是相关的。 本章的第四部分介绍了留意力的概念,留意力是一种强壮的机制,用于生成包含语句中单词的上下文特定信息的词嵌入。向量的内积概念是留意力的首要原理,也是word2vec和支撑向量机(即所谓的“核技巧”)的根底。
什么是生成式人工智能?
生成式人工智能指的是一类人工智能模型和技能的子集,旨在生成与给定输入数据集的性质相似的新数据样本。其方针是发生原始练习会集不存在但在语境上连接、相关,并符合相同风格或结构的内容或数据。 生成式人工智能在发明和立异方面独具优势,与仅仅进行剖析或分类的办法不同。这一范畴的进展现已带来了在构思范畴和实践运用中的突破,使其成为人工智能研讨和开发的前沿范畴。
生成式人工智能的要害特征
以下是生成式人工智能的最重要特征列表,每一项后面都附有扼要描绘:
• 数据生成
• 组成
• 学习散布
数据生成指的是能够创立新的数据点,这些数据点不归于练习数据,但与之相似。这能够包含文本、图画、音乐、视频或任何其他方法的数据。
组成意味着生成式模型能够混合各种输入,以生成包含每个输入特征的输出,例如合并两幅图画的风格。
学习散布意味着生成式人工智能模型的方针是学习练习数据的概率散布,以便它们能够从该散布生成新的样本。
生成式人工智能中的盛行技能
生成对立网络(GANs)包含两个网络,一个生成器和一个判别器,它们一起进行练习。生成器企图生成假造数据,而判别器企图区分实在数据和假造数据。跟着时刻的推移,生成器在生成传神数据方面变得愈加优异。
变分自编码器(VAEs)是概率模型,它们学会对数据进行编码和解码,以便能够运用编码表明来生成新的数据样本。
循环神经网络(RNNs)首要用于序列生成,比方文本或音乐。
生成式人工智能的一起之处
发明与分类:虽然大多数传统人工智能模型的方针是将输入数据分类到预定义的类别中,生成模型的方针是创立新的数据。
无监督学习:许多生成模型,特别是GANs和VAEs,以非监督方法操作,意味着它们在练习中不需求符号的数据。
多样化的输出:生成模型能够依据学到的散布发生各种各样的输出,使其十分适用于艺术生成和风格转移等使命。
应战:生成式人工智能面临一起的应战,比方GANs中的形式溃散或确保生成内容的连接性等。
生成式人工智能运用触及很多范畴,以下是其间一些:
• 艺术和音乐创作
• 数据增强
• 风格转移
• 文本生成
• 图画组成
• 药物发现
艺术和音乐创作包含生成绘画、音乐或其他方法的艺术。数据增强触及为练习模型创立额定的数据,尤其是当原始数据集有限时。风格转移是将一幅图画的风格运用到另一幅图画的内容上。文本生成触及创立连接且语境相关的文本。图画组成触及生成传神的图画、人脸,乃至为视频游戏创立场景。药物发现触及为新型潜在药物生成分子结构。
对话式人工智能与生成式人工智能的区别
对话式人工智能和生成式人工智能都是人工智能更广泛范畴中突出的子范畴。但是,这两个子范畴在它们的首要方针、运用的技能和运用方面存在不同的重视点。有关更多信息,请参考以下网址:medium.com/@social_651…
这两个子范畴之间的首要差异包含以下几点:
• 首要方针
• 运用范畴
• 运用的技能
• 练习与交互
• 评价
• 数据需求
首要方针
对话式人工智能的首要方针是促进机器与人类之间相似人类对话的交互。这包含聊天机器人、虚拟助手以及其他与用户进行对话的体系。
生成式人工智能的首要方针是发明新的内容或数据,这些内容在练习会集并不存在,但在结构和风格上相似。这能够包含从生成图画、音乐和文本到更杂乱的使命,比方视频组成。
运用范畴
对话式人工智能的常见运用包含客户支撑聊天机器人、语音操作的虚拟助手(如Siri或Alexa)以及交互式语音应答(IVR)体系。
生成式人工智能有许多运用,例如用于创作艺术或音乐、生成传神的视频游戏环境、组成语音,以及发生传神的图画或深度假造。
运用的技能
对话式人工智能一般依赖自然言语处理(NLP)技能来了解和生成人类言语。这包含意图辨认、实体提取和对话办理。
生成式人工智能一般运用生成对立网络(GANs)、变分自编码器(VAEs)和其他生成模型来发生新的内容,例如ChatGPT和GPT-4。
练习与交互
虽然练习能够是监督式、半监督式或无监督式的,但对话式人工智能的首要交互形式是经过来回的对话或交流。
生成式人工智能的练习进程,特别是关于像GANs这样的模型,触及迭代进程,模型经过企图诈骗鉴别器,使其信任生成的数据是实在的,从而学习生成数据的进程。
评价
对话式人工智能的评价目标一般围绕着了解和呼应准确性、用户满意度以及生成呼应的流畅性展开。
关于像GANs这样的生成式人工智能模型,评价目标或许具有应战性,或许需求运用定量目标和人工判断的结合来评价生成内容的质量。
数据需求
关于对话式人工智能,一般需求对话数据,其间包含人与人之间或人与机器人之间的对话。关于AI应该生成的内容(如图画、文本和音乐)的这种类型的大型数据集是必要的。
虽然对话式人工智能和生成式人工智能都触及生成输出,但它们的首要方针、运用和办法或许存在明显差异。对话式人工智能旨在与用户进行互动式通讯,而生成式人工智能则专注于生成新的、原创的内容。
DALL-E是生成式人工智能的一部分吗?
DALL-E以及相似的从文本生成图画的东西确实是生成式人工智能的比如。现实上,DALL-E是图画组成范畴中最突出的生成式人工智能的比如之一。
以下是DALL-E的生成特征列表,以及每个项目的扼要描绘:
• 图画生成
• 学习散布
• 立异组合
• 广泛运用
• 转换器架构
图画生成是DALL-E的一个要害特征,它旨在依据文本描绘生成图画。给定一个像“一只双头火烈鸟”这样的提示,DALL-E能够生成与描绘相匹配的新颖图画,即使这样的图画在其练习数据中并不存在。
学习散布:与其他生成模型相同,DALL-E学习其练习数据的概率散布。当它生成图画时,它从这个学到的散布中抽样,以发生在其练习根底上合理的视觉效果。
立异组合:DALL-E能够生成代表新颖或抽象概念的图画,展现了它以立异的方法组合和重新组合学到元素的才能。
除了图画组成,DALL-E在艺术生成、风格混合以及创立具有特定属性或主题的图画等范畴供给了广泛的运用支撑,突显了它作为生成东西的多功用性。DALL-E运用了变种的转换器架构,相似于GPT-3等模型,但经过调整以习惯图画生成使命。
其他依据输入数据(无论是文本、另一张图画仍是其他方法的数据)生成图形、艺术或任何方法的视觉内容,并能够生成其练习数据中未明确存在的输出的东西也被视为生成式人工智能。它们展现了AI模型不只能够剖析和分类,还能够发明和立异的才能。
ChatGPT-3和GPT-4都归于生成式人工智能吗?
ChatGPT-3和GPT-4都是大型言语模型(LLMs),是生成式人工智能的典型比如。它们归于一类被称为“变压器”(transformer)的模型,这些模型在处理文本相关使命等数据序列方面表现得特别超卓。
以下列表供给了这些LLMs被视为生成式的原因,以及每一项的扼要描绘:
• 文本生成
• 学习散布
• 广泛运用
• 无监督学习
文本生成:这些模型能够依据给定提示生成连接、语境相关且一般十分杂乱的文本序列。它们生成的呼应在练习数据中并不存在,但是依据它们在练习期间学到的形式和结构进行构建。
学习散布:GPT-3、GPT-4和相似的模型学习它们练习数据的概率散布。在生成文本时,它们实践上是从这个学到的散布中抽样,以发生依据它们的练习或许性的序列。
广泛运用:除了仅限于文本聊天或对话,这些模型还能够用于各种生成式使命,如写故事、生成代码、创作诗篇以及以特定风格或模仿某些作者的方法创立内容,展现了它们的生成才能。
无监督学习:虽然它们能够运用特定数据集进行微调,但像GPT-3这样的模型首要是以无监督方法在很多文本上进行练习的,学会在不需求每个或许呼应的明确符号数据的情况下生成内容。
ChatGPT-3、GPT-4以及OpenAI的相似模型实质上是自然言语处理和生成范畴中生成式人工智能的典型比如。
接下来的几个部分扼要介绍了在人工智能范畴中具有强壮存在的一些公司。
DEEPMIND
DeepMind在人工智能范畴取得了明显的奉献,包含创立了各种人工智能体系。DeepMind成立于2010年,于2014年成为Google的子公司。其主页是deepmind.com/。
DeepMind创立了280GB的言语模型Gopher,明显优于其竞赛对手,包含GPT-3、J1-Jumbo和MT-NLG。DeepMind还开发了AlphaFold,在30分钟内解决了一个研讨人员苦苦探究了十年的蛋白质折叠使命。DeepMind于2021年7月免费供给了AlphaFold给所有人运用。DeepMind在AI游戏体系的开发方面取得了明显的成果,其间一些将在下一部分评论。
DeepMind和游戏
DeepMind是AI体系AlphaStar(在《星际争霸》中进行游戏)和AlphaGo(在围棋中打败了最优异的人类选手)背面的推动力。这些游戏供给了“完全信息”,而具有“不完全信息”的游戏(如扑克)对机器学习(ML)模型提出了应战。
AlphaGo Zero(AlphaGo的继任者)经过自我对弈在更短的时刻内以及更少的核算资源中掌握了这个游戏。AlphaGo Zero表现超卓,以100比0战胜了AlphaGo。另一个强壮的体系是AlphaZero,它也运用了自我对弈技能来玩围棋、国际象棋和将棋;该体系取得了SOTA(“State Of The Art”)的功用成果。
相比之下,运用树查找的ML模型十分适用于具有完全信息的游戏。相反,具有不完全信息的游戏(如扑克)触及躲藏的信息,能够运用这些信息来制定对立对手战略的对立战略。特别是,AlphaStar能够与《星际争霸II》最优异的玩家对战,并成为榜首个在“不完全信息环境中需求战略才能”的游戏中取得SOTA成果的AI。
游戏玩家
在谷歌的DeepMind团队规划的通用PoG(Player of Games)算法依据以下技能:
• CFR(counterfactual regret minimization,反现实惋惜最小化)
• CVPN(counterfactual value-and-policy network,反现实值和战略网络)
• GT-CFR(growing tree CFR,增加树CFR)
• CVPN
反现实值和战略网络(CVPN)是一个神经网络,用于核算游戏中每个状态信仰的反现实。这关于在任何给定时刻评价游戏的不同变体至关重要。
增加树CFR(GT-CFR)是CFR的一种变体,它经过优化,适用于随时刻增加的游戏树。GT-CFR依据两个基本阶段,详情可在以下链接中找到更多信息:
OPENAI
OpenAI是一家在人工智能范畴取得重大奉献的研讨公司,其间包含DALL-E和ChatGPT。其官方网站是openai.com/api/。
OpenAI由埃隆马斯克(Elon Musk)和萨姆奥尔特曼(Sam Altman)等人在旧金山创立,其声称的方针之一是开发造福人类的人工智能。考虑到微软对该安排的巨额出资和深厚合作关系,OpenAI或许被视为微软的一部分。OpenAI是LLMs GPT-x系列和ChatGPT的创立者,后者于2022年11月30日发布。
OpenAI经过API以每字计费的方法商业化推出了GPT-3(详见第7章)。GPT-3于2020年7月宣布,并经过测验版方案供给。然后,在2021年11月,OpenAI向所有人开放了GPT-3。有关更多详细信息,请参阅在线链接:openai.com/blog/api-no…
此外,OpenAI开发了DALL-E,它能够从文本生成图画。开端,OpenAI不允许用户上传包含传神面孔的图画。后来,OpenAI改变了政策,允许用户将面孔上传到其在线体系中(有关更多详细信息,请查阅OpenAI网站)。趁便说一下,扩散模型(见第10章)现已逾越了DALL-E的基准。
OpenAI发布了Embeddings的公共测验版,这是一种适用于各种机器学习使命的数据格式,具体描绘请参阅在线链接:beta.openai.com/docs/guides…
OpenAI是Codex的创立者,该体系供给了一组在自然言语处理(NLP)上进行练习的模型。Codex的首次发布是在私家测验版中进行的,更多信息请参阅在线链接:beta.openai.com/docs/engine…
OpenAI供给了四个统称为“Instruct Models”的模型,支撑GPT-3生成自然言语的才能。这些模型将于2024年头被弃用,并被GPT-3、ChatGPT和GPT-4的更新版本代替,详见第7章。
假如您想了解OpenAI供给的功用和服务的更多信息,请拜访以下链接:platform.openai.com/overview。
COHERE
Cohere是一家初创公司,是OpenAI的竞赛对手;其官方网站是cohere.ai/。
Cohere开发先进的自然言语处理(NLP)技能,可在多个职业商业化运用。Cohere专注于履行文本剖析的模型,而不是用于文本生成的模型(例如依据GPT的模型)。Cohere的开创团队令人形象深入:首席履行官Aidan Gomez是变压器架构的一起发明人之一,首席技能官Nick Frosst是Geoff Hinton的学徒。
HUGGING FACE
Hugging Face是一个盛行的依据社区的开源自然言语处理(NLP)技能库房;其官方网站是github.com/huggingface…
与OpenAI或Cohere不同,Hugging Face不构建自己的NLP模型。相反,Hugging Face是一个渠道,办理着很多的开源NLP模型,客户能够对其进行微调,然后部署这些微调的模型。现实上,Hugging Face已成为人们协作开发NLP模型的出色地点,有时被描绘为“面向机器学习和NLP的GitHub”。
Hugging Face的库
Hugging Face供给三个重要的库:datasets、tokenizers和transformers(在第3章中评论)。Accelerate库支撑PyTorch模型。datasets库供给了各种用于NLP的库。tokenizers库使您能够将文本数据转换为数字值。或许最令人形象深入的库是transformers库,它供给了一个巨大的预练习依据BERT的模型集合(在第5章中评论),用于履行各种NLP使命。GitHub存储库坐落github.com/huggingface…
Hugging Face模型中心
Hugging Face供给了一个模型中心,其间包含很多可在线拜访的模型。此外,该网站支撑对其模型进行在线测验,包含以下使命: • 运用BERT进行屏蔽词完成 • 运用Electra进行命名实体辨认 • 运用RoBERTa进行自然言语推断 • 运用DistilBERT进行问答 • 运用BART进行摘要 • 运用GPT-2进行文本生成 • 运用T5进行翻译 请拜访以下链接以检查“write with transformer”文本生成功用:transformer.huggingface.co。
在随后的章节中,您将看到Python代码示例,演示怎么列出所有可用的Hugging Face数据集以及怎么加载特定数据集。
AI21
AI21是一家经过API供给专有大型言语模型以支撑客户运用的公司。AI21现在的SOTA模型被称为Jurassic-1(巨细大致与GPT-3相同),AI21还在Jurassic-1和其他模型的根底上创立了自己的运用程序。AI21现在的运用套件触及能够增强阅览和写作的东西。
Primer是这个范畴的一家较早的竞赛对手,成立于变压器技能发明两年前。该公司首要为政府和国防客户供给服务。
INFLECTIONAI
在人工智能范畴中的一家较新公司是InflectionAI,其令人形象深入的开创团队包含:
- 雷德霍夫曼(LinkedIn开创人)
- DeepMind联合开创人穆斯塔法苏莱曼
- DeepMind研讨员卡伦西蒙扬
InflectionAI致力于一项具有应战性的使命:使人类能够以与人类彼此交流的方法与核算机进行交互。
ANTHROPIC
Anthropic是由OpenAI的前员工于2021年创立的,其官方网站是www.anthropic.com/。
Anthropic得到了来自多家公司的重要财政支撑,包含Google和Salesforce。到本书印刷时,Anthropic发布了Claude 2,作为ChatGPT的竞赛对手。预计Anthropic将在2023年第四季度供给其API。
Claude 2能够总结多达75,000字的依据文本的内容,而ChatGPT现在的约束是3,000字。此外,Claude 2在法学院入学考试的某些部分获得了76.5%的分数,并在Python编码测验中获得了71%的分数。相比之下,Claude 2在向用户供给“干净”回答方面也比ChatGPT更高效。
这结束了关于在人工智能范畴做出重要奉献的AI公司的章节。下一部分供给了对大型言语模型的高级介绍。
什么是LLMS?
大型言语模型(LLMs)依据变压器(transformer)架构。有许多不同规划的LLMs,其间许多比依据BERT的模型更大(在第5章和第6章中评论)。因而,本节对LLM范畴进行了十分扼要的概述。
LLMs以其巨大的规划而出名,一般至少包含100亿个参数(BERT仅有“仅有” 15亿个参数)。此外,它们在练习进程中触及十分巨大的数据集,或许需求数周的练习时刻,本钱达数百万美元。不幸的是,这伴跟着环境本钱。依据以下文章,练习GPT-3的碳足迹可与轿车往复月球一次相媲美: www.theregister.com/2020/11/04/…
除了BERT和BERT宗族之外,或许引起巨大重视的最闻名的LLM之一是GPT-3。GPT-3由1750亿参数组成,简直比BERT大120倍。但是,还有更大的模型:Switch运用了5400亿参数,DAO运用了超过1.2万亿参数。更近期(2022年11月),ChatGPT在大众中引起了颤动(两个月内有1亿注册用户),这在第9章中有所评论。
模型巨细与练习集巨细
虽然纯粹的巨细或许是最重要的要素,但练习数据集的巨细更为重要。这个说法与Kaplan及其团队研讨的练习集巨细与模型巨细的成果相悖。 (这是一个重要观点,将在第9章中更详细地评论。)让咱们扼要看一下一些现已开发的LLM。
DeepMind的Chinchilla LLM由700亿参数组成,能够胜过GPT-3、Jurassic-1(1780亿)和Megatron-Turing(5300亿),因为它的练习数据集比其他LLM的练习数据集大五倍。
虽然LLMs的表现令人形象深入,人们对GPT-4的高度希望(于2023年3月14日发布)也很高,但LLMs并不具备像人类那样了解言语的才能。一个实体能够做出相似于人类的智能挑选,并不意味着该实体真实了解这些挑选的原因与人类相同。
LLMs是否了解言语?
作为一个想入非非且部分相关的类比,考虑以下触及两位国际象棋大师、一个自傲的人和一位12岁男孩的故事,它们在20世纪初乘坐横渡大西洋的船上。
当船离目的地还有几个小时时,自傲的人打赌说,在两小时内,他能够练习这个小男孩下棋,使比赛成果要么平局,要么小男孩获胜。但是,国际象棋大师和男孩被要求在一个像衣帽间相同的隐蔽区域下棋,三名参与者不能以任何方法与对方交流。
国际象棋大师接受了应战,希望他们将运用他们的丰富常识压倒年青的对手。但是,跟着比赛的进行,国际象棋大师们对男孩的棋步的速度和杂乱性感到震惊。他们的信心很快被关心所取代,然后是失望。最终,一位国际象棋大师提出平局,另一位国际象棋大师认输。
诈骗十分简略:每当一个国际象棋大师走一步时,男孩就会对另一个国际象棋大师走相同的一步,这实践上意味着国际象棋大师们在互相竞赛。幸运的是,自傲的人成功地在船抵达目的地之前搜集了奖励和男孩,然后在国际象棋大师意识到他们被诈骗之前就下船了。
前述故事的关键是,男孩下了极具智慧的棋步,但不必定了解背面的逻辑。因而,假如一个人不了解某个行动背面的逻辑,这表明LLM更不或许具有相似于人类的对其建议原因的了解水平。
关于LLMs的留意事项
虽然LLMs能够取得令人形象深入的成果,请记住以下几点:
- 较小的模型在某些使命中或许胜过较大的模型。
- 模型会生成错误的成果(“错觉”)。
- 一些模型处理长文档,而另一些更适合进行对话。
- 向量数据库的日益重要性。
- 大多数模型未在最新的数据集上进行练习(只能到某个时刻点)。 例如,ChatGPT是在2021年9月之前的数据上进行练习的。两个变得越来越重要的特性是:
- 坚持以前对话的历史记录的才能。
- 能够即时在互联网上查找信息。
此外,值得比较开源模型和闭源模型的特性。现实上,听说Yann LeCunn曾表明“开源最终将赢得AI竞赛”。
丢失函数
深度学习模型包含依据变压器架构的模型。这类模型依赖于丢失函数进行练习。具体而言,丢失函数是一个可微函数,用于确定给定模型的猜测引起的差错。
在模型的每个反向传达(称为“反向差错传达”或“反传”)进程中,丢失函数核算模型参数的梯度(即偏导数的矢量),以更新参数的权重,以提高模型的准确性。
在练习进程中,关于模型准确性的数字序列并不总是一组单调递增的数字:有些迭代比它们的直接前身表现得更差,有时底子没有改善。
什么是AI DRIFT?
术语“AI漂移”指的是LLMs对输入做出意外呼应的情形。AI漂移或许与“错觉”不同:前者触及惯例或共同呈现的意外行为,而后者或许是随机发生的,但不必定具有共同的形式。实践上,当你调用Completion.create()
办法(请拜见第8章中的Python示例)并将温度参数设置为大于1.0的值时,乃至能够“诱导”相似于错觉的行为。
AI漂移的一个潜在原因或许是改善LLMs的一个方面的意外成果,这或许会在LLMs的其他方面导致功用下降。
漂移的另一个潜在原因触及模型漂移,当生产数据与练习数据有实质性差异时或许发生。在这种情况下,要监控生产数据和练习数据以及猜测。
AI漂移的后果或许是明显的。例如,你的决议计划进程简略遭到AI漂移的影响,这或许导致依据不正确假定形成的决议计划。这反过来或许导致猜测和建议质量下降,一起对客户满意度发生晦气影响。
Optional: 机器学习与漂移
在机器学习术语中,”漂移”指的是一段时刻内散布发生的任何改变。模型漂移指的是模型猜测准确性的改变,而数据漂移指的是搜集的数据类型的改变(留意,数据漂移也被称为输入漂移、特征漂移或协变量漂移)。 影响数据价值的几个要素包含准确性、相关性和年龄。例如,出售手机的实体店更有或许出售较新的手机型号而不是旧型号。在某些情况下,数据漂移是在一段时刻内发生的,而在其他情况下,它是因为运用程序中特征相关的更改导致的数据不再相关。在特定数据会集或许有多个要素会影响数据漂移。 处理数据漂移的两种技能是范畴分类器和黑盒漂移检测器,两者都在以下链接中进行了评论:blog.dataiku.com/towards-rel…
除了前述类型的漂移之外,数据会集还或许发生其他类型的改变: • 概念漂移 • 协变量漂移 • 范畴漂移 • 先验概率漂移 • 虚伪相关性漂移 • 子群漂移 • 时刻漂移 有关数据集改变的更多信息,请参阅 arxiv.org/abs/1912.08…。履行在线查找以查找关于上述列表中项目的更多信息。最终,以下列表包含供给漂移检测的依据Python的开源东西的网站:
• alibi-detect(github.com/SeldonIO/al…
• evidently(github.com/evidentlyai…
• Torchdrift(torchdrift.org/)
考虑到上述主题,让咱们将焦点转移到重视的概念,这是下一节的主题。有关此主题的更多见解,请阅览以下文章:sebastianraschka.com/blog/2023/s…
什么是留意力机制?
留意力是变压器架构中的一种机制,经过该机制为语料库中的单词确定上下文词嵌入。与word2vec或gloVe不同,留意力机制在为给定语句中的给定单词创立单词嵌入的进程中考虑了语句中的所有单词。例如,考虑以下语句列表:
我去了银行。
我坐在河堤上。
这条路将向右转弯。
正如你所看到的,“银行”一词在这三个语句中具有不同的意义(两次作为名词,一次作为动词)。变压器架构中的留意力机制生成一个不同的上下文向量(即,一个带有浮点数的一维向量)。因而,不同语句中相同的单词将在每个语句中具有不同的单词嵌入。风趣的是,留意力机制在变压器架构之前就存在:在后者中运用留意力机制是留意力机制崭露头角的当地。
相比之下,word2vec算法(由Google于2013年开发)为单词“bank”(以及语句中的任何其他单词)创立一个单一的单词嵌入(向量)。这并不是对word2vec的批判,它在创立时是自然言语处理中的一项重要突破。
留意力的起源
在留意力机制被规划之前,盛行的架构依据其他深度学习架构,如RNN、LSTM或双向LSTM。现实上,留意力机制开端是与RNN或LSTM结合运用的。但是,Google团队进行了一些关于完全依赖于留意力机制和变压器架构的模型的机器翻译使命的试验,发现这些模型在功用上超过了包含CNN、RNN或LSTM的模型。这个成果导致了“留意力就是你需求的全部”这个表达,恰好是有关变压器架构的里程碑论文的标题。
风趣的是,去除RNN带来了两个额定的好处。首要,因为无法并行化的次序核算,RNN相对较慢。其次,RNN遭到了梯度消失问题的困扰。因而,去除RNN消除了这两个缺点。
在高度简化的术语中,变压器包含一个编码器和一个解码器,每个都包含一堆履行与留意相关操作的留意力层,这些将在第4章中学习。
自留意力
自留意力能够并行化,以便独立进行核算。因而,自留意力的完成触及O(N**2)时刻和内存的杂乱性。Google研讨人员规划了一种算法,明显减少了内存杂乱性至O(log N)。
虽然规范的自留意力完成具有时刻和内存杂乱性,但Google研讨人员的最新作业表明,经过简略地重新排列操作,内存杂乱功能够减少。
假如你了解RNN和LSTM,你知道这两种架构都是次序处理符号的,而且它们能够盯梢符号在输入序列中呈现的次序。相比之下,变压器架构能够以并行化的方法处理语句中的单词,而且不维护单词在输入序列中呈现的次序。变压器架构运用一种称为位置编码的机制(在第3章中评论)来盯梢输入序列中单词的次序。
GAtt(Ghost Attention)
GAtt是用于微调Meta的LLM LlaMa 2 Chat的算法(在第9章中评论)。GAtt的开发是为了解决ChatGPT在长时刻对话进程中“遗忘”指令的问题。有关GAtt的更多信息能够在线获取。
留意力类型和算法
除了分层留意力外,还有其他类型的留意力机制,其间三种是:
- 自留意力
- 大局/软
- 本地/硬 自留意力企图确定语句中的单词怎么彼此彼此相关。多头留意力运用多个自留意力块而不只仅是一个自留意力块。但是,每个头处理嵌入向量的不同部分。除了前述的留意力机制外,还有几种可用的留意力算法:
- 加法
- 依据内容
- 点积
- 一般
- 依据位置
- 缩放点积 <= 变压器运用此算法 留意力机制的公式分为两类:触及向量的点积的公式(有时带有缩放因子),以及将softmax()函数或tanh()函数运用于矩阵和向量的乘积的公式。
变压器架构运用缩放的点积机制来核算留意力。有几种可用的留意力类型,下面的文章包含了20多种留意力类型的列表。
留意力的好处在于核算触及单词向量对之间的内积的并行化,而RNN和LSTM触及次序核算而不是并行化。 留意:变压器架构运用缩放的点积机制来核算留意力。
GPT-2与BERT中的留意力
LLM在其自留意力机制方面或许有所不同。例如,GPT-2解码器组件(在第7章中评论)中的自留意力与BERT编码器组件(在第5章中评论)中的自留意力不同。有关这些不同留意力机制的更多细节,请阅览Jay Allamar的Illustrated GPT-2帖子,能够在线拜访。
核算留意力:高层次视图
核算依据留意力的数值触及多个进程。为了便于了解这个进程,让咱们回顾神经网络中的前向传达进程。
神经网络中的前向传达进程能够帮助咱们了解变压器架构中留意力机制中矩阵 Q、K 和 V 的作用。回想一下神经网络由输入层、一个或多个躲藏层和输出层组成。在神经网络中,关于任何相邻层的一对,相邻层之间的参数(即边际)的权重由矩阵 W 表明。当然,矩阵 W 的内容关于神经网络中不同相邻层的不同对是不同的。
前向传达从输入层开端,并按以下进程进行,直抵达到输出层:
- 输入层是一个向量 v1。
- v2 = 矩阵 W 乘以向量 v1。
- v3 = 运用于 v2 的激活函数。
- 重复进程 2、3 和 4。
矩阵 W 能够用小的随机值初始化(或者能够运用 He 算法),这些值在反向差错传达期间进行更新(在前向传达完成后进行)。因而,在神经网络的练习进程中,矩阵 W 中的值在调整中。
变压器的矩阵 Q、K 和 V
考虑这三个矩阵的一种方法是它们在经过查找引擎进行互联网查找时的作用。典型的用例触及以下进程:
- 指定查找字符串(查询)
- 从查找引擎回来的选项中挑选一个(要害字)
- 检查所选选项的内容(值)
虽然在进行查找时或许不考虑中间进程,但重要的是将查找看作前述列表中的三个进程。让咱们将查询、要害字和值视为欧几里得平面上的向量(只是为了简略起见)。
当检查回来的查询字符串的成果时,您将看到多个链接的列表(以及包含多个链接的许多其他页面)。将每个链接视为具有在欧几里得平面上的相应向量的要害字。在概念上,您挑选的链接对应于与查询向量最挨近的向量。此外,挑选(即点击)该链接会导致查找引擎检索该链接的值(要害字),即相关链接的内容。
总结一下,将输入字符串(查询)与一组向量(要害字)中最挨近的向量(要害字)匹配,以检索与所选向量(要害字)相相关的内容(值)。
核算留意力的进程
虽然核算留意力矩阵的进程与前面评论的触及神经网络的矩阵 W 核算的进程不同,但与矩阵 W 的对应物触及三个矩阵 Q、K 和 V,每个矩阵都是随机初始化的。核算留意力矩阵的进程如下:
- 对输入语句进行分词。
- 为每个符号生成一个嵌入向量。
- 从嵌入向量创立矩阵 X。
- 初始化三个矩阵:Q、K 和 V。
- 核算 Q*Kt 的成对值。
- 除以标量 dk2 = sqrt(要害字向量的维度)。
- 对 Q*Kt/dk2 运用 softmax() 函数。
- 核算留意力矩阵 Z。
描绘核算留意力矩阵进程的另一种(更简略)方法,包含矩阵的维度,如下所示: ���/��/��=�/�/�XWq/Wk/Wv=Q/K/V 4�512∗512�64=4�644×512∗512×64=4×64
- ���QKT 4�64∗64�4=4�44×64∗64×4=4×4
- ���/��QKT/dk 4�44×4
- softmax[���/��][QKT/dk] 4�44×4
- softmax[���/��]�[QKT/dk]V 4�4∗4�64=4�644×4∗4×64=4×64
下一部分包含履行前述列表中每个进程的示例。