【自然语言处理六-最重要的模型-transformer-上】

自然语言处理六-最重要的模型-transformer-上

  • 什么是transformer模型
  • transformer 模型在自然语言处理领域的应用
  • transformer 架构
    • encoder
      • input处理部分(词嵌入和postional encoding)
      • attention部分
        • add
        • Norm
      • Feedforward & add && Norm
        • Feedforword,实际上就是两层全连接层,中间有激活函数等
        • add & Norm
      • 最终encoder的输出

什么是transformer模型

  • 它是编码器和解码器的架构,来处理一个序列对,这个跟seq2seq的架构是一样的。
    如果没接触过seq2seq架构,可以通俗的理解,编码器用来处理输入,解码器用来输出
  • 但与seq2seq的架构不同的是,transformer是纯基于注意力的
    之前花了几篇的篇幅讲注意力,也是在为后面讲解这个模型打基础。

transformer模型无疑是近几年最重要的模型,目前的大模型几乎都以它为基础发展,很多模型的名字都带有缩写T,正是transformer的缩写。
当然transfomer不仅仅用于自然语言处理领域,归集于自然语言处理模块下面来讲,是因为它在自然语言处理领域的应用非常广泛,下面就讲它的几种应用。

transformer 模型在自然语言处理领域的应用

编码器和解码器架构,比较擅长处理QA类的问题,但这个QA不仅仅是一个问题、一个答案的形式,许多的自然语言处理,都可以理解为QA类问题,比如:

  1. 真实的QA类问题。比如:机器人问答。
  2. 机器翻译。比如中英翻译
  3. 摘要提取。输入文章,提取摘要
  4. 情感分析。输入评价,输出正面/负面评价
    等等

下面来介绍transformer的架构,看什么样子的架构能实现上面的这些功能

transformer 架构

它出自经典论文《attention is all you need》,论文地址是: http://arxiv.org/abs/1706.03762,本文中的诸多图片都是取自该论文,下面的架构图也是出自论文

在这里插入图片描述
从上图就可以看出,transfomer的架构包括左边encoder和右边decoder,下面先来讲encoder部分

encoder

左侧的encoder部分,输入一排input vector向量,输出一排向量,忽略中间的细节来看,是如下的的架构:
在这里插入图片描述
中间encoer部分,如果是seq2seq架构,就是RNN,transformer就相对复杂一些:
下面分部分介绍encoder的各个部分:

input处理部分(词嵌入和postional encoding)

在这里插入图片描述
输入一排,经过词嵌入input Embedding,再加上位置信息,Postional Encoding (这部分可以在 位置编码有介绍),生成一排向量。
然后进入attention计算

attention部分

transformer最重要的attention部分,这部分是多头注意力。值得注意的是,这部分的输出并不会直接丢给全连接层,还需要在额外经过residual add和layer norm

add

add的操作:
执行residual 残差连接,将attention的输入加到self-attention后的输出

Norm

残差后的输出进行层归一化,层归一化的操作:
不考虑batch,将输入中同一个feature,同一个sample,不同的dimension 计算均值和标准差,然后如下计算
在这里插入图片描述
这个操作,用能听得懂的话翻译一下就是,是对每个样本里面的元素进行归一化
整个过程如下:
在这里插入图片描述
最终上述部分的输出作为全连接层的输入

Feedforward & add && Norm

上一部分的输出,输入到本部分

Feedforword,实际上就是两层全连接层,中间有激活函数等

在这里插入图片描述
当然中间的卷积,可以换成线性层Linear

经过这个全连接层的输出之后,依然要经过残差add 和层归一化norm,然后输出.

add & Norm

这部分 同attention 那一层的操作,此处不赘述

最终encoder的输出

在encoder中,上面这三个步骤是可以重复多次的,所以看到架构图中表示了*N操作。
最终的输出才是encoder的输出。

篇幅所限,下一篇文章继续 transformer的decoder部分 自然语言处理六-最重要的模型-transformer-下

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

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

相关文章

24/03/07总结

esayx: 贪吃蛇: #include "iostream" #include "cmath" #include "conio.h" #include "easyx.h" #include "time.h" #define NODE_WIDTH 40 using namespace std; typedef struct {int x;int y; }node; enum direction /…

Python笔记|基础算数运算+数字类型(1)

重新整理记录一下python的基础知识 基础运算符 、-、*、/ ;括号 ()用来分组。 >>>2 2 4 >>>50 - 5*6 20 >>>(50 - 5*6) / 4 5.0 >>>8 / 5 1.6向下取整除法:向下舍入到最接近的整数的数学除法。运算符是 //。比如1…

力扣面试经典150 —— 6-10题

力扣面试经典150题在 VScode 中安装 LeetCode 插件即可使用 VScode 刷题,安装 Debug LeetCode 插件可以免费 debug本文使用 python 语言解题,文中 “数组” 通常指 python 列表;文中 “指针” 通常指 python 列表索引 文章目录 6. [中等] 轮转…

谷歌浏览器打包扩展插件,提示清单文件缺失或不可读取

今天想把谷歌浏览器的扩展打包一下,放到我虚拟机的谷歌浏览器,但是一直打包不成功。 问题 打包扩展程序错误 提示‘清单文件缺失或不可读取’ 原因 路径没有选择正确! 解决办法 1.首先找到google浏览器的安装路径。在谷歌浏览器地址栏输…

穷人想赚钱该怎么选打工VS创业?2024年如何把握新机遇?

在贫穷的困境中,打工与创业似乎成为了两条截然不同的道路,摆在每一个渴望改变命运的人面前。然而,这并非简单的选择题,而是一场关于勇气、智慧与机遇的较量。打工,对于许多人来说,是稳定且相对安全的收入来…

XSS靶场-DOM型初级关卡

一、环境 XSS靶场 二、闯关 1、第一关 先看源码 使用DOM型&#xff0c;获取h2标签&#xff0c;使用innerHTML将内容插入到h2中 我们直接插入<script>标签试一下 明显插入到h2标签中了&#xff0c;为什么不显示呢&#xff1f;看一下官方文档 尽管插入进去了&#xff0…

Java后端八股笔记

Java后端八股笔记 Redis八股 上两种都有可能导致脏数据 所以使用两次删除缓存的技术&#xff0c;延时是因为数据库有主从问题需要更新&#xff0c;无法达到完全的强一致性&#xff0c;只能达到控制一致性。 一般放入缓存中的数据都是读多写少的数据 业务逻辑代码&#x1f44…

双碳目标下DNDC模型建模方法及在土壤碳储量、温室气体排放、农田减排、土地变化、气候变化中的技术应用

原文链接&#xff1a;双碳目标下DNDC模型建模方法及在土壤碳储量、温室气体排放、农田减排、土地变化、气候变化中的技术应用https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&tempkeyMTI2MF9DVWNrMFpvV1d3RGxBZUE2QXJBRnI1NEJkcVhzRFZwakRqYXhhVFQzQnh1MVhJcy1laWh6Nmd4R…

[密码学]入门篇——加密方式

一、概述 加密方法主要分为两大类&#xff1a; 单钥加密&#xff08;private key cryptography&#xff09;&#xff1a;加密和解密过程都用同一套密码双钥加密&#xff08;public key cryptography&#xff09;&#xff1a;加密和解密过程用的是两套密码 历史上&#xff0c…

Redis与 Memcache区别

Redis与 Memcache区别 1 , Redis 和 Memcache 都是将数据存放在内存中&#xff0c;都是内存数据库。不过 Memcache 还可用于缓存 其他东西&#xff0c;例如图片、视频等等。 2 , Memcache 仅支持key-value结构的数据类型&#xff0c;Redis不仅仅支持简单的key-value类型的数据&…

vue2 element 实现表格点击详情,返回时保留查询参数

先直观一点&#xff0c;上图 列表共5条数据&#xff0c;准备输入Author过滤条件进行查询 进入查看详情页&#xff0c;就随便搞了个按钮&#xff0c;将就看吧 点击返回后 一开始准备用vuex做这个功能&#xff0c;后来放弃了&#xff0c;想到直接用路由去做可能也不错。有时间…

如何获取国外信用卡?需要国外银行卡支付怎么解决?如何订阅国外产品?

当国内的用户想要使用国外的产品时&#xff0c;很多产品是需要订阅付费的。其中有些产品还没有引入国内&#xff0c;只能用国外的信用卡支付&#xff0c;对于在国内的朋友&#xff0c;如何获取一张国外的信用卡呢&#xff1f; 这里推荐一个平台&#xff1a;wildCard waildCard…

基于SpringBoot的在线拍卖系统

目录 1、 前言介绍 2、主要技术 3、系统流程和逻辑 4、系统结构设计 5、数据库设计表 6、运行截图(部分) 6.1管理员功能模块 6.2用户功能模块 6.3前台首页功能模块 7、源码获取 基于SpringBoot的在线拍卖系统录像 1、 前言介绍 随着社会的发展&#xff0c;社会的各行…

力扣大厂热门面试算法题 6-8

6. Z 字形变换&#xff0c;7. 整数反转&#xff0c;8. 字符串转换整数 (atoi)&#xff0c;每题做详细思路梳理&#xff0c;配套Python&Java双语代码&#xff0c; 2024.03.08 可通过leetcode所有测试用例。 目录 6. Z 字形变换 解题思路 边界条件 完整代码 Python Ja…

【手游联运平台搭建】游戏平台的作用

随着科技的不断发展&#xff0c;游戏行业也在不断壮大&#xff0c;而游戏平台作为连接玩家与游戏的桥梁&#xff0c;发挥着越来越重要的作用。游戏平台不仅为玩家提供了便捷的游戏体验&#xff0c;还为游戏开发者提供了广阔的市场和推广渠道。本文将从多个方面探讨游戏平台的作…

AWTK-MVVM 文件模型

AWTK-MVVM 文件模型 名称&#xff1a;file 功能&#xff1a;用于读写文件内容&#xff0c;浏览&#xff08;打开/保存&#xff09;文件。 内置属性 属性类型说明filenamestring文件名contentstring文件内容sizenumber文件大小auto_loadboolean是否自动加载文件内容is_dirtyb…

QT:用opencv的KNN识别图片中的LED数字(一)

前言 一款功能测试的软件demo,使用了QT作为界面,主要使用了opencv的KNN识别,使用gstreamer作为管道,用来打开图片。后期会写一篇打开摄像头实时识别的文章。 (正在写,未完成,稍候) 效果一预览: 效果二预览: 效果三预览: 正在写。。。 设计思路 1. 软件UI设…

关于阿里云服务器地域的选择方法,看这一篇就够了

阿里云服务器地域和可用区怎么选择&#xff1f;地域是指云服务器所在物理数据中心的位置&#xff0c;地域选择就近选择&#xff0c;访客距离地域所在城市越近网络延迟越低&#xff0c;速度就越快&#xff1b;可用区是指同一个地域下&#xff0c;网络和电力相互独立的区域&#…

亚洲股市下一步的关键:中国看财报、日本看汇率、韩国看治理、印度看基建

汇丰认为财报将是驱动中国股市走势的关键因素。目前市场预计2024年中国企业每股收益将增长16%。 日本央行转向、A股业绩复苏、印度基建、韩国市场改革......最近这段时间&#xff0c;亚洲各大市场涌现出了不同的交易主题。 汇丰银行指出&#xff0c;中国受到本土企业盈利能力…

直播美颜SDK开发:如何应对不同场景下的挑战?

直播美颜SDK的开发&#xff0c;便是为了满足这一需求&#xff0c;但面对不同场景下的挑战&#xff0c;开发者们需要克服各种技术难题&#xff0c;以确保美颜效果的稳定和自然。 首先&#xff0c;我们需要了解直播美颜SDK在不同场景下可能面临的挑战。这些挑战主要包括&#xff…