白话transformer(四):整体架构介绍

transformer现在是最主流的深度学习框架,尤其是大模型的流程让transformer的作用更加凸显,他可以对话、分类、生成文本等功能,那么他到底是如何工作的呢。

B站视频

1、背景知识铺垫

1.1、生成式模型

相信大家在使用手机聊天的输入法时,都会注意到,当你输入文字后,会有很多的选项,那么这些选项是如何而来的呢?

在这里插入图片描述

2、N_gram

在这里插入图片描述
当我们输入最近______时,手机一般会给出很多的提示,这些提示我们可以发现都是和相关的词组,这些可以选择的词组是如何来的呢?

比如我们使用一个数据集来训练一个模型,那么模型就会将数据集里面涉及到的怎后面所有的情况列举在这里,并按照出现的频率进行排序,让我们进行好选择,这种方法被称为1-Gram,就是根据前面一个词来选择后面生成的词。

再来看看3-Gram,就是根据前面的三个词来预测下一个词,这时就在在数据集中找到最近怎三个子同时出现的词组后面出现的说有的字出现的情况,我们可以看到,出现的字的数量少了很多
在这里插入图片描述

如果根据前面所选的字的数量越多,那么参考的信息就越多,其实我们预测准确性聚会越高,但是,也有可能无法给出预测,这就是N-gram方法。

当然这种方法因为是靠统计方法,很容易出现过拟合;其次,对于一些低频词汇无法进行预测,所以在真正的大型语言处理中不会使用N-gram。

1.2、神经网络

在这里插入图片描述

在transformer中,其实是使用神经网络来进行预测的,当然关于神经网络的概念不是本次要讲的重点,所以不会详细阐述,如果想了解可以参考我的其他文章。

这里做一个简单的介绍:

在这里插入图片描述

神经网络会根据大脑神经元的传递方式进行模拟,我们看上图。输入时我们所有的词,编码后向后传递,经过神经元后进行传播和更新权重;而输出呢,当输出的选择时两个标签时就是二分类问题,比如情感分类、垃圾邮件识别等;如果是多个值就是多分类;当然如果输出的选择时全部的词组时那么就是文本生成模型。

我想这一点对于学习transformer的人来说应该比较容易理解。

2、整体流程

我们按照transformer原文的整体架构来简单的进行梳理
在这里插入图片描述

2.1 tokenization

在自然语言处理(NLP)中,tokenization是将文本分解为更小的单元的过程,这些单元通常被称为tokens。我们更加容易理解的表示就是分词。
在这里插入图片描述

英文一般按照空格进行切分,是比较容易的;而中文就比较麻烦了,需要建立分词辞典根据词典中出现的特有名词等进行切分,当然对于python来说有现成的开源分词工具,如Jieba、spacy等等;还有就是停用词,有些词语没有实际的意义我们可以直接过滤掉来减轻我们模型的压力以及减少不必要的混淆。。。。

2.2 embedding

我们在前面的文章中介绍了很多关于embedding的知识,这里就不再赘述。
在这里插入图片描述
总之embedding就是建立自然语言和计算机识别语言的桥梁,主要目的就是相似性高的词会给予更加相近的向量。

这里要多说一句的就是,embedding是如何创建的?

在这里插入图片描述

我们的大脑在看见不同的事物的时候,会根据事物的各种特征进行分类,比如我们看见苹果和草莓时,认为他们都是水果,在大脑里面就会有一个位置给他们进行编码,会将他们放在一起,距离比较近的位置,而当出现一个其他的类别,比如建筑物,那么大脑会根据他的类别,将其放在另外一个地方,当然我们这里指的是相对位置。

在这里插入图片描述

其实是经网络的构建是一致的,也会给他创建一个位置,让相似的在一起

2.3 位置编码

我们知道RNN和LSTM是一种循环的序列模型,本身训练的过程中就会有位置的训练;但是我们看到transformer中,到现在为止我们没有讲到与序列或者排序相关的内容。

我们知道在自然语言中,字词的顺序是会影响语义的,比如:

  • 我爱你
  • 你爱我

同样的三个字,顺序不一样,表达的不是一个概念,所以我们必须要考虑这一点
在这里插入图片描述

首先我们看一下论文中进行位置编码的位置,他是在做完embedding后,创建位置编码与原始的embedding进行相加,然后再去进行attention。

在这里插入图片描述

也就是说我们给予所有的词一个初始的位置编码,让位置编码直接加到原始的embedding上去,让模型不断的去学习和修改每个字词的方向

在这里插入图片描述
在不断的调整中,让模型学习到顺序,让后理解他们相互之间的关联(相互作用力)进行修改其embedding。

具体的编码方式我们单独出一篇文章来讲

2.4 注意力机制

关于注意力机制可以参考之前的文章
在这里插入图片描述

2.5 Soft Max

Soft Max我们在前面也讲过了,只是这里讲的是在输出结果前,前馈神经网络输出时要进行一个Soft Max,讲要生成的所有的词预测一个概率,将概率最大的进行输出。
在这里插入图片描述

2.6 整体架构

这里我们不在罗列原始论文的架构图,我们根据前面讲的内容,自己画一个架构图来方便理解

在这里插入图片描述
可视化一下,这样理解起来就简单多了

在这里插入图片描述

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

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

相关文章

【C++】string类模拟实现

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. 构造函数和析构函数3. 遍历3.1 下标[]3.2 迭代器 4. Modifiers4.1 push_back和append4.2 4.3 insert4.4 erase4.5 swap 5.Capacity5.1 resize5.2 clear 6. 深浅拷贝6.1 浅拷贝(值拷贝&#xff0…

wy的leetcode刷题记录_Day92

wy的leetcode刷题记录_Day92 声明 本文章的所有题目信息都来源于leetcode 如有侵权请联系我删掉! 时间:2024-3-22 前言 目录 wy的leetcode刷题记录_Day92声明前言2617. 网格图中最少访问的格子数题目介绍思路代码收获 695. 岛屿的最大面积题目介绍思路代码收获 2…

适合新生儿的奶瓶有哪些?五款高分新生儿奶瓶分享!

每一个有新生儿的家庭都一定会挑选奶瓶,但是因为市面有太多品牌和款式,让大家难以挑选,更为重要的是还有可能会不小心选到劣质的产品,不仅奶嘴的仿真度差、易胀气,还可能高温消毒后散发有害物质!那么新生儿…

仿muduo库实现one thread one loop式并发服务器

文章目录 一、项目简介 二、项目整体认识 2、1 HTTP服务器 2、2 Reactor模型 三、预备知识 3、1 C11 中的 bind 3、2 简单的秒级定时任务实现 3、3 正则库的简单使用 3、4 通用类型any类型的实现 四、服务器功能模块划分与实现 4、1 Buffer模块 4、2 Socket模块 4、3 Channel模…

算法系列--递归(2)

💕"什么样的灵魂就要什么样的养料,越悲怆的时候我越想嬉皮。"💕 作者:Mylvzi 文章主要内容:算法系列–递归(2) 前言:今天带来的是算法系列--递归(2)的讲解,包含六个和二叉树相关的题目哦 1.计算布尔⼆叉树的…

就业班 第二阶段 2401--3.21 day3 备份

一、逻辑备份 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。 本质:导出的是SQL语句文件 优点:不论是什么存储引擎,都可以用mysqldump备成SQL语句 缺点:速度较慢&…

005——串口移植(基于鸿蒙liteos-a)

目录 一、 Liteos-a中串口的使用 1.1 内核里打印 1.2 APP控制台 ​编辑 1.2.1 /dev/console 1.2.2 /dev/serial 1.2.3 /dev/uartddev-0 1. 总体介绍 2. device_t 3. drvier_t 4. uartdev_fops 1.2.4 uart_ops 二、 鸿蒙串口内部的一些机制(流水账&…

docker学习笔记 三-----docker安装部署

我使用的部署环境是centos 7.9 1、安装依赖工具 yum install -y yum-utils device-mapper-persistent-data lvm2 安装完成如下图 2、添加docker的软件信息源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo url地址为如…

QGraphicsView的使用,view坐标,scene坐标,item坐标

Graphics View绘图构架 QGraphicsScene(场景):可以管理多个图形项QGraphicsItem(图形项):也就是图元,支持鼠标事件响应。QGraphicsView(视图):关联场景可以让…

canvas跟随鼠标移动画带透明度的线

提示&#xff1a;canvas画线 文章目录 前言一、带透明度的线二、试错&#xff0c;只有lineTo的时候画&#xff0c;只有最后地方是透明度的三、试错&#xff0c;只存上一次的点&#xff0c;线会出现断裂的情况总结 前言 一、带透明度的线 test.html <!DOCTYPE html> &l…

Linux:执行命令的命令eval与Bash解析命令的方式

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 eval命令用于接收参数&#xff0c;并将这些参数作为一行命令执行&#xff0c;这也许会使人困惑&#xff0c;为什么我不能直接执行命令而需要使用eval命令间接执行呢&…

MySQL数据库事务介绍

前言 在MySQL数据库中&#xff0c;事务&#xff08;Transaction&#xff09;是指一组SQL语句的执行序列&#xff0c;这些SQL语句要么全部执行成功&#xff0c;要么全部执行失败&#xff0c;保证数据库的一致性和完整性&#xff1b;用于操作量大、复杂度高的数据。 目录 一、…

Python之Web开发中级教程----Django站点管理

Python之Web开发中级教程----Django站点管理 网站的开发分为两部分&#xff1a;内容发布和公共访问 内容发布是由网站的管理员负责查看、添加、修改、删除数据 Django能够根据定义的模型类自动地生成管理模块 使用Django的管理模块, 需要按照如下步骤操作 : 1.管理界面本地…

Deep Graph Representation Learning and Optimization for Influence Maximization

Abstract 影响力最大化&#xff08;IM&#xff09;被表述为从社交网络中选择一组初始用户&#xff0c;以最大化受影响用户的预期数量。研究人员在设计各种传统方法方面取得了巨大进展&#xff0c;其理论设计和性能增益已接近极限。在过去的几年里&#xff0c;基于学习的IM方法的…

企业如何利用数字工厂管理系统打造自动化产线

随着信息技术的飞速发展&#xff0c;数字化转型已成为企业提升生产效率、降低成本、优化管理的重要手段。数字工厂管理系统作为数字化转型的核心组成部分&#xff0c;其在打造自动化产线方面的作用日益凸显。本文将探讨企业如何利用数字工厂管理系统打造自动化产线&#xff0c;…

【QED】斐波那契游戏

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 总结 题目 题目链接&#x1f517; 斐波那契数列指的是这样一个数列&#xff1a;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8&#xff0c;13&#xff0c;21&#xff0c;34&#xff0c;55&#x…

边缘自动隐藏窗体,透明度切换,同步父窗体标签切换winform

一、实现功能 默认的标签栏(superTabControl) 可以设置隐藏,即可实现全屏最大化。通过列表切换打开的标签页。用于定制B/S模式系统显示更个性,自定义样式,简介 安全 兼容性好。 二、主要代码 private void Time_Tick(object sender, EventArgs e) {获取主屏

亚马逊AWS展示高效纠错的全新量子比特!

亚马逊网络服务公司&#xff08;AWS&#xff09;在量子计算的纠错技术领域取得了显著成就&#xff0c;极大地简化了量子系统的复杂性和资源需求。他们的研究人员通过采用“双轨擦除”量子比特&#xff08;dual-rail erasure qubit&#xff09;技术&#xff0c;有效地克服了量子…

推荐一种Bean注入方式——开发经验

我们都知道三种Bean注入的方式分别是属性注入&#xff0c;setter方法注入&#xff0c;构造器注入。这三种Bean注入的方式各有优缺点&#xff0c;但是相对来说更推荐使用构造器注入的方式。 1、构造器注入的优缺点 优点&#xff1a; 1、可以注入不可变对象 因为构造方法注入是…

算法-图的强连通分量,图的最小生成树

1.图的强连通分量 (1). 定义 图的强连通分量是图论中的一个重要概念&#xff0c;主要在有向图中进行讨论。具体来说&#xff0c;如果在一个有向图G中&#xff0c;任意两个顶点vi和vj&#xff08;其中vi大于vj&#xff09;之间都存在一条从vi到vj的有向路径&#xff0c;同时也存…