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

了解大语言模型的基本原理(一)——Transformer工作原理

为什么选择Transformer?

RNN:无法并行计算,不擅长处理长序列

LSTM:依然存在这两个问题

Transformer:可以并行计算,并且能学习输入序列里所有词的相关性和上下文关系

Tranformer优点:

1、注意力机制:使每个词都能注意到输入序列里的所有其他词,给每个词一个不一样的注意力权重(权重是通过大量训练不断优化得到的)

2、位置编码:将位置编码向量和输入的每个词的向量相加,就能够使每个词都具备位置信息,这样做可以将一段文字同时输入到模型中,模型既可以理解每个词的意义及每个词和其他词之间的关系,也可以知道每个词在句子中的位置,从而理解不同词之间的顺序关系。

Transformer工作原理

1、token化

输入的文本首先会被token化,token可以理解为文本的一个基本单位。每个token被一个整数数字tokenID表示(因为计算机无法储存文字,任何字符最终都需要通过数字表示)。

2、向量嵌入

将tokenID映射到高维空间用向量表示,能够捕捉到更深层次的语义信息。用向量表示方便在数学层面计算每个向量之间的距离,从而捕捉不同词在语义和语法方面的相似性。

将词向量与位置向量相加输入到模型中

3、编码器

由于经过了自注意力模块,所有每个词向量的输出结果向量不仅包含这个词本身的信息,还融合了上下文中的相关信息。所以编码器的输出结果里,表示各个词的向量,会根据上下文信息进行调整,同一个词,根据上下文会有不同的抽象表示。

多头自注意力(多个头可以并行运算):有多个自注意力模块,每个头都有自己的注意力权重,用来关注文本里不同特征或方面。(和卷积中的多个卷积核相似)

4、解码器

通过编码器,我们有了输入序列里各个token的抽象表示。这时,我们不仅将编码器的输出输入到解码器中,还要将之前已经生成的文本也输入到解码器中,来保持输出文本的连贯性和上下文相关性。

带掩码的多头自注意力

解码器的自注意力模块和编码器不太一样。当编码器处理各个词的时候,会关注输入序列里所有其他词,而解码器中,自注意力模块只会关注当前词和它前面的其他词。这样做是保证解码器生成文本时遵循正确的时间顺序,在预测下一个词时,只使用前面的词作为上下文,不能偷看后面的文本。

解码器会捕捉编码器的输出和解码器已经生成的输出之间的对应关系,从而将原始输入序列的信息融合到输出序列的生成过程当中。

线性层和softmax层,将解码器输出的表示,转换为词汇表的概率分布,也就是生成的下一个token的概率

Transformer变种

1、仅编码器

2、仅解码器

3、编码器-解码器


http://www.kler.cn/a/539575.html

相关文章:

  • 十二、Docker Compose 部署 SpringCloudAlibaba 微服务
  • 详解SQLAlchemy的函数relationship
  • Arbess基础教程-创建流水线
  • 我用AI做数据分析之数据清洗
  • 【R语言】plyr包和dplyr包
  • Kafka 入门与实战
  • 动手学深度学习 -- 3.6 数学推演
  • 【C++学习篇】C++11第二期学习
  • Palatir和它的AIP
  • Redis 事务和 “锁机制”——> 并发秒杀处理的详细说明
  • 2025新鲜出炉--前端面试题(一)
  • Transformer基础 多头自注意力机制
  • SQL自学,mysql从入门到精通 --- 第 6 天,sql中的子句使用
  • 开源+降本浅析及Deepseek模型在countdown游戏上的初探
  • 蓝桥杯C语言组:图论问题
  • 大数据项目4:基于spark的智慧交通项目设计与实现
  • 传统营销架构在当下如何进行优化转型?
  • 程序猿成长之路之数据挖掘篇——决策树分类算法(2)——构建决策树
  • transformers学习笔记——初级篇
  • Spring Boot 对接深度求索接口实现知识问答功能
  • 第433场周赛:变长子数组求和、最多 K 个元素的子序列的最值之和、粉刷房子 Ⅳ、最多 K 个元素的子数组的最值之和
  • elasticsearch实战应用从入门到高效使用java集成es快速上手
  • 【漫话机器学习系列】085.自助采样法(Bootstrap Sampling)
  • selenium4.0 入门案例
  • Web开发概念解析
  • 云开发 AI 实战—基于腾讯云开发 Copilot快速开发陕西家乡小程序实战