Transformer 架构解释

一、说明

        变形金刚是机器学习的一个新发展,最近引起了很大的轰动。他们非常善于跟踪上下文,这就是为什么他们写的文本有意义。在本章中,我们将介绍它们的体系结构以及它们的工作原理。

@amanatulla1606

        Transformer 模型是机器学习中最令人兴奋的新发展之一。它们在论文《注意力就是你所需要的一切》中进行了介绍。变形金刚可以用来写故事、散文、诗歌、回答问题、在语言之间翻译、与人类聊天,它们甚至可以通过人类很难的考试!但它们是什么?您会很高兴地知道,Transformer 模型的架构并不那么复杂,它只是一些非常有用的组件的串联,每个组件都有自己的功能。在本章中,您将学习所有这些组件。

        简而言之,变压器是做什么的?想象一下,您正在手机上写一条短信。在每个单词之后,您可能会收到三个建议给您的单词。例如,如果您键入“您好,好吗”,手机可能会建议将“您”或“您的”等词作为下一个字词。当然,如果你继续在手机中选择建议的单词,你很快就会发现这些单词形成的信息没有意义。如果你看每组 3 或 4 个连续的单词,它可能是有道理的,但这些单词并不与任何有意义的东西联系起来。这是因为手机中使用的模型并不包含消息的整体上下文,它只是预测哪个词更有可能在最后几个词之后出现。另一方面,变形金刚会跟踪所写内容的上下文,这就是为什么他们编写的文本有意义的原因。

        手机可以建议在短信中使用的下一个单词,但无法生成连贯的文本。

手机可以建议在短信中使用的下一个单词,但无法生成连贯的文本。

        老实说,当我第一次发现变形金刚一次构建一个单词的文本时,我简直不敢相信。首先,这不是人类造句和思考的方式。我们首先形成一个基本的想法,然后开始提炼它并添加文字。这也不是 ML 模型做其他事情的方式。例如,映像不是以这种方式构建的。大多数基于神经网络的图形模型形成图像的粗略版本,然后慢慢细化或添加细节,直到完美为止。那么,为什么 transformer 模型要逐字构建文本呢?一个答案是,因为这真的很有效。更令人满意的是,由于变形金刚非常善于跟踪上下文,因此他们选择的下一个词正是它继续推进一个想法所需要的。

        变压器是如何训练的?事实上,互联网上有大量数据,所有数据。因此,当你在变压器中输入“你好,好吗”这句话时,它就知道,根据互联网上的所有文字,最好的下一个词是“你”。如果你给它一个更复杂的命令,比如说,“写一个故事”,它可能会发现下一个要用的词是“一次”。然后它将这个单词添加到命令中,并找出一个好的下一个单词是“upon”,依此类推。一字一句地,它会一直持续下去,直到它写出一个故事。

命令:写一个故事。
响应:一次

下一个命令:写一个故事。一次
响应:在

下一个命令:写一个故事。Once Upon
回应:a

下一个命令:写一个故事。从前的回应
时间

下一个命令:写一个故事。曾几何时
回应:有

        现在我们知道了变压器的作用,让我们来看看它们的架构。如果你看过变压器模型的架构,你可能会像我第一次看到它时一样惊叹不已,它看起来很复杂!但是,当您将其分解为最重要的部分时,它并没有那么糟糕。变压器有4个主要部分:

  • 代币化
  • 嵌入
  • 位置编码
  • 变压器块(其中几个)
  • Softmax的

        第四个是变压器块,是最复杂的。其中许多可以连接起来,每个都包含两个主要部分:注意力和前馈分量。

转换器模型的架构

二、标牌化

        标牌化是最基本的步骤。它由一个大型标记数据集组成,包括所有单词、标点符号等。标记化步骤获取每个单词、前缀、后缀和标点符号,并将它们发送到库中的已知标记。

三、嵌入

        一旦输入被标记化,就该把单词变成数字了。为此,我们使用嵌入。在上一章中,您了解了文本嵌入如何将每段文本发送到数字向量(列表)。如果两段文本相似,则其对应向量中的数字彼此相似(分量,即同一位置的每对数字相似)。否则,如果两条文本不同,则其对应向量中的数字不同。

通常,嵌入将每个单词(标记)发送到一长串数字。

四、位置编码

        一旦我们有了与句子中每个标记对应的向量,下一步就是将所有这些转换为一个向量进行处理。将一堆向量转换为一个向量的最常见方法是按组件添加它们。这意味着,我们分别添加每个坐标。例如,如果向量(长度为 2)为 [1,2] 和 [3,4],则它们对应的总和为 [1+3, 2+4],等于 [4, 6]。这可行,但有一个小警告。加法是可交换的,这意味着如果以不同的顺序将相同的数字相加,则会得到相同的结果。在这种情况下,句子“我不难过,我很开心”和句子“我不开心,我很伤心”将产生相同的向量,因为它们具有相同的单词,只是顺序不同。这不好。因此,我们必须想出一些方法,为这两个句子提供不同的向量。有几种方法有效,我们将采用其中一种:位置编码。位置编码包括将一系列预定义的向量添加到单词的嵌入向量中。这确保了我们为每个句子获得一个唯一的向量,并且具有不同顺序的相同单词的句子将被分配不同的向量。在下面的示例中,与单词“Write”、“a”、“story”和“.”对应的向量成为带有有关其位置信息的修改向量,标记为“Write (1)”、“a (2)”、“story (3)”和“。(4)".

位置编码为每个单词添加一个位置向量,以便跟踪单词的位置。

五、变压器块

        让我们回顾一下到目前为止的情况。单词进入并转换为标记(标记化),标记化的单词被转换为数字(嵌入),然后考虑顺序(位置编码)。这为我们提供了输入到模型的每个令牌的向量。现在,下一步是预测这句话中的下一个单词。这是通过一个非常大的神经网络完成的,该神经网络精确地按照该目标进行训练,以预测句子中的下一个单词。

        我们可以训练这样一个庞大的网络,但我们可以通过添加一个关键步骤来极大地改善它:注意力组件。在开创性的论文《注意力就是你所需要的一切》中介绍,它是变压器模型的关键成分之一,也是它们工作得如此之好的原因之一。注意在上一节中已经解释过,但现在,把它想象成一种为文本中的每个单词添加上下文的方法。

        注意分量被添加到前馈网络的每个块上。因此,如果你想象一个大型前馈神经网络,其目标是预测下一个单词,由几个较小的神经网络块组成,那么每个块都会添加一个注意力分量。变压器的每个组件,称为变压器块,然后由两个主要组件组成:

  • 注意力组件。
  • 前馈组件。

变压器是许多变压器块的串联。其中每一个都由一个注意力组件和一个前馈组件(神经网络)组成。

六、注意力

        下一步是注意力。正如你所了解的,注意力机制处理了一个非常重要的问题:上下文问题。有时,如您所知,同一个词可以具有不同的含义。这往往会混淆语言模型,因为嵌入只是将单词发送到向量,而不知道它们使用的单词定义。

        注意力是一种非常有用的技术,可以帮助语言模型理解上下文。为了理解注意力是如何运作的,请考虑以下两句话:

  • 第 1 句:河岸。
  • 第 2 句:银行里的钱。

        正如你所看到的,“银行”这个词出现在两者中,但有不同的定义。在第 1 句中,我们指的是河边的土地,在第二句中,我们指的是持有金钱的机构。计算机对此一无所知,因此我们需要以某种方式将这些知识注入其中。什么可以帮助我们?好吧,似乎句子中的其他词可以拯救我们。对于第一句话,“the”和“of”这两个词对我们没有好处。但是“河流”这个词让我们知道我们谈论的是河边的土地。同样,在第 2 句中,“货币”一词有助于我们理解“银行”一词现在指的是持有货币的机构。

注意力有助于根据句子(或文本)中的其他单词为每个单词提供上下文。

        简而言之,注意力的作用是将句子(或文本片段)中的单词移近单词嵌入。这样,“银行里的钱”这句话中的“银行”一词将更接近“钱”一词。同样,在“河岸”这句话中,“河岸”一词将移近“河”一词。这样,两个句子中每个句子中经过修改的单词“bank”将携带相邻单词的一些信息,从而为其添加上下文。

        变压器模型中使用的注意力步骤实际上要强大得多,它被称为多头注意力。在多头注意力中,使用几种不同的嵌入来修改向量并为其添加上下文。多头注意力帮助语言模型在处理和生成文本时达到更高的效率水平。

七、Softmax 层

        现在您知道转换器是由许多层转换器块组成的,每层都包含一个注意力层和一个前馈层,您可以将其视为一个大型神经网络,用于预测句子中的下一个单词。转换器输出所有单词的分数,其中最高分数分配给句子中最有可能下一个单词的单词。

        转换器的最后一步是 softmax 层,它将这些分数转换为概率(加到 1),其中最高分数对应于最高概率。然后,我们可以从这些概率中抽取下一个单词的样本。在下面的示例中,转换器为“Once”提供了 0.5 的最高概率,为“Somewhere”和“There”提供了 0.3 和 0.2 的概率。采样后,选择单词“once”,这就是转换器的输出。

softmax 层将分数转换为概率,这些分数用于选择文本中的下一个单词。

        现在怎么办?好吧,我们重复这一步。我们现在输入文本“写一个故事。一旦“进入模型,最有可能的是,输出将是”upon”。一遍又一遍地重复这一步,变形金刚最终会写出一个故事,比如“从前,有一个......”。

八、培训后

        既然您知道了变压器的工作原理,我们还有一些工作要做。想象一下:你问变压器“阿尔及利亚的首都是哪里?我们希望它回答“阿尔及尔”,然后继续前进。但是,变压器是在整个互联网上训练的。互联网是一个很大的地方,它不一定是最好的问答库。例如,许多页面都会有一长串没有答案的问题。在这种情况下,“阿尔及利亚的首都是什么?”之后的下一句话可能是另一个问题,例如“阿尔及利亚的人口是多少?”或“布基纳法索的首都是什么?”。转换器不是思考他们反应的人,它只是模仿它在互联网上看到的内容(或提供的任何数据集)。那么我们如何让变压器回答问题呢?

        答案是培训后。就像你教一个人做某些任务一样,你可以得到一个转换器来执行任务。一旦一个转换器在整个互联网上被训练,那么它就会在一个大型数据集上再次被训练,该数据集对应于许多问题及其各自的答案。变形金刚(和人类一样)对他们所学到的最后一件事有偏见,因此后期培训已被证明是帮助变形金刚成功完成他们被要求完成的任务的非常有用的一步。

        后期培训还有助于完成许多其他任务。例如,人们可以用大量的对话数据集对一个转换器进行后期训练,以帮助它作为一个聊天机器人表现良好,或者帮助我们写故事、诗歌甚至代码。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器学习期末复习

机器学习 选择题名词解释:简答题计算题一、线性回归二、决策树三、贝叶斯 选择题 机器学习利用经验 ,须对以下()进行分析 A 天气 B 数据 C 生活 D 语言 归纳偏好值指机器学习算法在学习的过程中,对以下(&a…

酷开系统小酷少儿重磅升级!陪伴孩子美好童年!

孩子的成长总是匆匆太匆匆,父母们应该放慢脚步,感悟童心。用心灵和智慧陪伴孩子,在孩子的心中没有什么比幸福的家庭更重要,没有什么比父母的陪伴更美好!酷开系统少儿频道全面升级!让酷开系统小酷少儿陪伴成…

设计模式篇章(1)——理论基础

设计模式:在软件开发中会面临许多不断重复发生的问题,这些问题可能是代码冗余、反复修改旧代码、重写以前的代码、在旧代码上不断堆新的代码(俗称屎山)等难以扩展、不好维护的问题。因此1990年有四位大佬(GoF组合&…

ant design pro 5 企业级后台前端框架自定义根路径设置,解决public文件夹下资源在打包部署后出现找不到的问题

关于ant design pro v5的开箱使用方法见:开箱即用的企业级数据和业务管理中后台前端框架Ant Design Pro 5的开箱使用和偏好配置-CSDN博客 在开发过程中为了方便我们可能会将部分静态资源如logo等放入public文件夹,但在设置站点根路径后,publi…

5.云原生安全之ingress配置域名TLS证书

文章目录 cloudflare配置使用cloudflare托管域名获取cloudflare API Token在cloudflare中配置SSL/TLS kubesphere使用cert-manager申请cloudflare证书安装证书管理器创建Secret资源创建cluster-issuer.yaml创建cert.yaml申请证书已经查看申请状态 部署harbor并配置ingress使用证…

iec61850规约原理和工作原理

规约下载 https://products.iec.ch/view/search/all 规约整体介绍 ** IEC104和IEC61850的区别 ** modbus和IEC61850有什么区别 IEC61850简要介绍 变电站通信体系IEC61850将变电站通信体系分为3层站控层、间隔层、过程层。 IEC61850标准的服务实现主要分为三个部分&#xff…

运输层

title: 运输层 date: 2023-12-24 14:17:55 tags: 知识总结 categories: 计算机网络 运输层和网络层的联系和区别 物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信,但实际上,在计…

奋楫扬帆,奔赴新程 | 2023 年图扑大事记回顾,与您携手共迎 2024

2023.01 工信部公示了 2022 年度智能制造示范工厂揭榜单位和优秀场景名单。图扑软件和上海洲邦合作建设的宁波甬友数字孪生工厂被评为优秀场景,全国共有 369 个智能制造典型场景入选。 2023.01 在第十一届中国创新创业大赛全国赛(新一代信息技术&#…

idea 弹框提示:Server‘s certificate is not trusted 解决办法

如图所示: 引起这个的根本原因:是因为你破解了idea,在本地hosts配置了映射,然后idea检测出来弹出警告 服务器证书不可用。所以在弹出这个框。 解决方法: 打开idea--->File-->Settings-->Tools-->点击Server Certifi…

anaconda navigator卡在loading user解决办法

01问题 打开anaconda navigator特别慢,卡在loading user 02查找原因 (1)关闭anaconda的所有进程 (2)打开anaconda prompt,输入anaconda-Navigator回车,即可通过报错查看原因。 QMimeDatabase: Error loading internal MIME data

jdk和IDEA教育版下载和安装详解

前言 研究生专业是通信系统,为了寻找实习于是在研二时期学习java。但是在学习java的过程中没有进行系统总结,很多知识点或者一些细节已经忘记。由于工作找的是某行软件中心的软件开发。准备在毕业前对java知识进行系统性学习。本专栏将从零基础开始,从最简单的jdk和IDEA下载…

python入门第一讲:认识python

目录 什么是计算机 什么是编程 编程语言有哪些 python是咋来的 python能干啥 python的优缺点 什么是计算机 什么叫计算机,当你把问这个问题问家里的老人的时候,他们很可能指着计算器告诉你说,这个就是计算机,这个很明显&am…

一文上手ThreadLocal使用和原理

什么是ThreadLocal?它有什么用? 当我们某个类需要被多线程共享的时候,我们就可以使用ThreadLocal关键字,ThreadLocal可以为每个线程创建这个变量的副本并存到每个线程的存储空间中(关于这个存储空间后文会展开讲述),从而确保共享…

输出回文数-第11届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第23讲。 输出回文数&#…

数据分析概述

数据分析概述 在当今数字化的时代,数据已经成为我们周围不可忽视的存在。从商业领域到医疗行业,从科学研究到政府治理,数据的涌现为我们提供了前所未有的信息资源。然而,要从这个庞大的信息海洋中获取有意义的见解并做出明智的决策…

OpenCV-14图片的四则运算和图片的融合

一、图片的四则运算 1. 加法运算 通过使用API add来执行图像的加法运算 cv2.add(src1, src2)需要再其中传入两张图片。 图片就是矩阵,图片的加法运算就是矩阵的加法运算。 因此加法运算中要求两张图的shape必须是相同的。 首…

2023我的编程之旅-地质人的山和水

引言 大家好,我是搞地质的。外行人有的说我们游山玩水,有的说我们灰头土脸,也有的说我们不是科学。 而我说,这是一门穷极一生青春,值得奉献的行业。这是一门贴近民生,又拥抱自然的学科。他的真理性在于探…

excel 插件:Rainbow Analyst Crack

一个插件中包含四种 EXCEL 审核工具检测并修复隐藏的电子表格错误 不要满足于更少,四种领先的电子表格审计工具合二为一 Rainbow Analyst(因其对颜色编码的独特强大使用而得名)结合了世界级电子表格审核功能的多个领域: Excel™ …

【Spring实战】14 Web表单校验

文章目录 1. 依赖2. 实体类3. 控制器4. 页面5. 启动6. 验证1)访问页面2)后台校验 7. 优点8. 代码详细总结 在 Web 应用中,表单是用户与后端交互的主要界面之一。为了确保数据的有效性和一致性,我们经常需要对提交的表单数据进行验…

一文教会git如何配置多SSH Key(Github+Gitlab)

一文教会git如何配置多SSH Key(GithubGitlab) 对于工作了的伙伴来说,大家经常会配置多个SSH Key: SSH拉取的仓库不会反复的要求输入github用户名密码来验证自己的身份需要将公司的Gitlab和个人的Github区分开 我这里以Mac电脑为例…