白话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 整体架构

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

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

在这里插入图片描述

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

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

相关文章

闪电网络协议设计思想剖析

1. 引言 闪电网络可能是比特币之上部署的最受期待的技术创新。闪电网络,为由 Joseph Poon 和 Tadge Dryja 于2015年首次提出的支付层,承诺支持: 用户之间几乎无限数量的链下交易,几乎免费,同时利用比特币提供的安全性…

基于python+vue云上水果超市的设计与实现flask-django-php-nodejs

本论文的主要内容包括: 第一,研究分析当下主流的web技术,结合超市日常管理方式,进行云上水果超市的数据库设计,设计云上水果超市功能,并对每个模块进行说明。 第二,陈列说明该系统实现所采用的架…

Redis数据类型 Hash Set Zset Bitmap HyperLogLog GEO

Hash 说起Hash大家其实很容易想到java中的集合类HashMap,这里其实就是一个套娃,键值对套了一层键值对他的指令也很简单 首先是设置键值对 这里就是设置两个键值对 我们可以进行获取 使用hget获取值 或者我们使用hgetall来查询所有值 hmset/hmget是批量查找查询,和上面的操作类似…

【Unity】UI九宫格

什么是九宫格? 顾名思义,九宫格就是指UI切成9个格子,9个格子可以任意拉伸。 1、3、7、9不拉伸。 2、8水平拉伸。 4、6垂直拉伸。 5既可以水平也可以垂直拉伸。 怎么切九宫格? 选中图片,改成Sprite模式,点…

本地化语音识别、视频翻译和配音工具:赋能音频和视频内容处理

随着人工智能技术的飞速发展,语音识别、视频翻译和配音等任务已经变得更加容易和高效。然而,许多现有的工具和服务仍然依赖于互联网连接,这可能会导致延迟、隐私问题和成本问题。为了克服这些限制,我们介绍了一种本地化、离线运行…

使用 Dify 和 AWS Bedrock 玩转 Anthropic Claude 3

本篇文章,聊聊怎么比较稳定的使用 Anthropic Claude 3,以及基于目前表现非常好的模型,来做一些有趣的 AI Native 小工具。 写在前面 在实际体验了半个多月,月初上线的 Anthropic Claude Pro 后,发现 Claude 3 系列模…

LeetCode-60题:排列序列解法二(原创)

【题目描述】 给出集合 [1,2,3,...,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n 3 时, 所有排列如下:"123" 、"132" 、"213" 、"231"、"312"、…

第八篇【传奇开心果系列】Python自动化办公库技术点案例示例:深度解读使用Python库清洗处理从PDF文件提取的文本

传奇开心果博文系列 系列博文目录Python自动化办公库技术点案例示例系列 博文目录前言一、Python清洗处理文本的常见步骤二、使用Python库去除非文本元素示例代码三、使用Python库去除格式化元素的示例代码四、使用Python库去除空白字符示例代码五、使用Python库合并段落和行示…

在任何 Mac 上恢复永久删除照片的 5 种简单方法

Mac 为业余和专业摄影师提供了很多东西,从令人印象深刻的硬件到广泛的照片管理和编辑应用程序。它还提供了多种恢复丢失照片的方法,我们在本文中介绍了其中的五种方法,以帮助您避免潜在的灾难性情况。 Mac 上删除的照片去了哪里?…

高能脉冲电阻-高能陶瓷电阻

EAK无感实芯电阻器,高能电阻,高能脉冲电阻,高能陶瓷电阻 产品特性: Ⅰ100%陶瓷实芯压铸结构,由粘土、二氧华硅、瓷粉等无机材料经高温烧结而成。 Ⅱ承受高脉冲能量 ,适应高压,超高压环境,能用于1000KV以上电路瞬间功率达到3KKW以…

【阅读笔记】Kinematic On‐the‐Fly GPS Positioning Relative to a Moving Reference

Hermann B R, Evans A G, Law C S, et al. Kinematic On‐the‐Fly GPS Positioning Relative to a Moving Reference[J]. Navigation, 1995, 42(3): 487-501. 单词解释 Antenna swap:天线交换 pseudokinematic:伪运动学 ambiguity:双关、歧…

Web框架开发-django模型层(多表操作)

一、创建模型 实例: 作者模型:一个作者有姓名和年龄 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息。作者详情模型和作者模型之间是一对一的关系(one-to-one) 出版商模型:出版商有名称,所在城市以及email。 书籍模型: 书籍有书名和出版…

Python面向对象三大特征(封装、继承、多态)

面向对象编程的三大特征:封装、继承和多态。 注意:在python面向对象编程中,子类对象可以传递给父类类型 一、封装 在Python中,封装是面向对象编程中的一种重要概念,它可以帮助我们实现数据隐藏、信息保护和代码复用。…

使用jscpd对比重复代码

背景 检查项目中重复的代码,或者代码片段 jscpd 两个文件对比 Jscpd 是一个用于检测代码复制和粘贴的工具,它可以比较两个文件并报告相似性的百分比。 以下是如何使用 Jscpd 来比较两个文件的示例: 首先,确保你已经安装了 Nod…

【Flutter学习笔记】9.7 动画过渡组件

参考资料:《Flutter实战第二版》9.7 动画过渡组件 “动画过渡组件”指的是在Widget属性发生变化时会执行过渡动画的组件,其最明显的一个特征就是会在内部管理一个AnimationController。controller定义了过渡动画的时长,而animation对象的定义…

Linux学习之C/C++文件操作底层调用及原理

前言:我们都知道,我们学习的C/C是无法直接与底层硬件进行交互的,所有需要与底层硬件的交互都是通过操作系统作为中介完成的,那Linux到底是怎么做到的呢?接下来我们将揭开它神秘的面纱。 目录 一,操作系统…

全平台7合一万能DIY小程序源码系统 带完整的安装代码包以及安装搭建教程

在当下的小程序市场中,虽然已有众多开发工具和服务平台,但很多用户仍然面临着开发难度大、功能不齐全、定制性差等问题。小编给大家分享一款全平台7合一万能DIY小程序源码系统。该系统旨在解决用户在小程序开发过程中的痛点,提供一站式的小程…

WordPress Plugin NotificationX插件 SQL注入漏洞复现(CVE-2024-1698)

0x01 产品简介 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。 0x02 漏洞概述 WordPress plugin NotificationX是一个应用插件。2.8.2版本及之前 存在安全漏洞,该…

飞腾+FPGA+AI电力行业智能数据采集与分析网闸解决方案

行业痛点: 安全物联网闸在监控平台中的具体作用:35KV变电站是煤矿的动力核心,采矿人员上下井、煤炭提升输送、矿井通风等核心设备均依靠变电站提供电源。监控中心及时掌握变电站的运行状态对煤矿的安全生产非常重要。如若外部通过监控网络来控制变电站会…

Hyper Casual FX

此包包含: 五彩纸屑-2种 灰尘 - 1 种 闪光灯 - 8 种类型 闪耀 - 3 种类型 闪亮 - 1 种 水-2种 它可以在没有任何设置的情况下开箱即用 下载:​​Unity资源商店链接资源下载链接 效果图: