当前位置: 首页 > news >正文

Transformer浅说

rag系列文章目录

文章目录

  • rag系列文章目录
  • 前言
  • 一、简介
  • 二、注意力机制
  • 三、架构优势
  • 四、模型加速
  • 总结


前言

近两年大模型爆火,大模型的背后是transformer架构,transformer成为家喻户晓的词,人人都知道它,但是想要详细讲清楚,需要专业的算法人员来讲解,网上也有很多资料,我就不班门弄斧了。作为一个经常使用大模型的人,也需要一点知识,来认识它,这样才能更好的使用它。


一、简介

Transformer 是一种基于自注意力机制(Self-Attention)的深度学习架构,由Google团队在2017年的论文《Attention Is All You Need》中提出。它彻底改变了自然语言处理(NLP)领域,并成为现代大模型(如GPT、BERT等)的核心基础。

Transformer的架构图如下所示,它主要有以下几个重要部分,分别是输入embedding、位置encoding、多头自注意力、前馈神经网络(Feed-Forward Network)、残差连接与层归一化(Add & Norm)、编码器和解码器。

图中左侧部分是编码器,输入embedding加位置encoding后,进入N层的编码器层,得到一个矩阵X(n行d列,n是输入的token数,d是向量的维度)。

图中右侧部分是解码器,它的输入包含两部分,一个是左侧编码器的输出,一个是预测值,它是不断生成的,所以图中说是shifted right不断右移。这种根据自己输出结果,然后影响到后面输出结果的机制,成为自回归。

在这里插入图片描述

二、注意力机制

Transformer的核心是自注意力机制,输入X矩阵,transformer使用三个权重矩阵将X投影为Q/K/V矩阵
在这里插入图片描述
注意力计算公式如下:
在这里插入图片描述

这个公式的含义是什么呢?举例来说,“The cat sat on the mat because it was tired.”当模型在预测 “it” 的含义时,Query 是“it”的向量。它会去匹配所有 Key(cat, sat, mat, …),结果发现 “cat” 的 Key 跟“it”的 Query最相关。所以 Attention 输出时,会给 “cat” 的 Value 更高的权重。这样模型就能理解“it”指的是“cat”,而不是“mat”。输出的值就是一个新的向量,代表“it”的上下文含义(包含了“cat”的信息)。

Attention(Q,K,V) 的实际含义是:让每个 token 在全局范围内“问一圈”,找到跟自己最相关的信息,并把这些信息汇总到自己的新表示里。也就是说,经过变换之后,每个token的向量值,携带了它相关的语义信息。
获取注意力值之后,再经过多头拼接(多头注意力机制),残差拼接,前馈网络,最终得到编码器的输出。

三、架构优势

 并行计算,transformer对位置信息进行encoding,不想RNN需要依赖前面的状态,后续计算都是矩阵运算,天然支持并行。

 长距离依赖,RNN针对长句子,容易出现梯度消失问题,而transformer距离不是问题
如下图所示,句子中间因为有一个从句,导致book和was距离很远,但是transformer注意力机制,会把两者的关系拉进。
在这里插入图片描述

四、模型加速

了解了基本原理以及处理过程,如何加速大模型呢,可以从以下几个方面:

  1. 硬件方面
    因为需要大量矩阵运算,那么就gpu上优化,比如:GPU/TPU 并行、流水线/张量并行。
  2. 算法层面
    注意力复杂度n的平方,也就是每个token都和其他的token有关系,算法方面可以稀疏注意力 (Sparse Attention), 只计算局部窗口或选定位置的注意力
  3. 模型层面
    里面有很多神经网络,可以进行结构压缩(蒸馏、剪枝、量化、MoE)
  4. 推理策略
    比如使用vllm推理时,批处理、并行解码

总结

作为一个经常使用大模型的应用开发人员而言,经常会面对的问题是如何让大模型推理更快一些,这包括首个token输出的时间以及每个token输出的平均时间。掌握一点transformer架构,可以方便于调节一些模型参数,优化大模型。

http://www.lryc.cn/news/622977.html

相关文章:

  • MySQL完整重置密码流程(针对 macOS)
  • 如何使用嵌入模型创建本地知识库Demo
  • MongoDB 聚合提速 3 招:$lookup 管道、部分索引、时间序列集合(含可复现实验与 explain 统计)
  • Tomcat类加载器原理简单介绍
  • AI热点周报(8.10~8.16):AI界“冰火两重天“,GPT-5陷入热议,DeepSeek R2模型训练受阻?
  • 服务器可以ping通,但部署的网站打不开
  • uniapp:微信小程序使用Canvas 和Canvas 2D绘制图形
  • nginx下载地址:aarch64
  • Scala面试题及详细答案100道(11-20)-- 函数式编程基础
  • 狗品种识别数据集:1k+图像,6个类别,yolo标注完整
  • linux docker neo4j 导出 (windows 导入)
  • duiLib 实现鼠标拖动状态栏时,窗口跟着拖动
  • 模型量化(Model Quantization)
  • 解决 Windows 下运行 MCP 脚本弹出 WSH 错误窗口的问题 | Windows Script Host
  • 【数据分析】比较SparCC、Pearson和Spearman相关性估计方法在合成组学数据上的表现
  • Footej Camera 2:专业级摄影体验,尽在掌中
  • 《代码重生:杨蓉与62.webp》
  • 2024-2025华为ICT大赛中国区 实践赛昇腾AI赛道(高职组)全国总决赛 理论部分真题+解析
  • 基本电子元件:金属氧化膜电阻器
  • 测试工程师的AI转型指南:从工具使用到测试策略重构
  • Vue组件基础解析
  • 机器学习--决策树
  • [Linux] RAID存储技术
  • 苍穹外卖日记
  • C:\Windows\WinSxS 目录详解
  • Python语言一键整理xhs评论 基于github的开源项目 MediaCrawler
  • MySQL 全文索引指南
  • Spring框架(AOP)
  • “openfeign“调用接口上传文件报错:Failed to deleted temporary file used for part [file]
  • 博士招生 | 香港大学 机器增强认知实验室 招收博士生/实习生/访问学生