transformer学习笔记2

标准的Encoder Only类型的Transformer架构的示意图

关于QKV矩阵

参考B站视频1(VIT)

https://www.bilibili.com/video/BV1gnWdzSEzY/?spm_id_from=333.337.search-card.all.click&vd_source=b73dd02a7fb8feec65576de4e3abaf18

patchs切块

196块patchs


Flatten展平

196个768维的向量

Linear Projection线性投射

196个N维的向量

CLS Token

197个长度D的向量

序列长度就是分了多少块patch

假设这个D还是768,最终得到197个768维的被编码的Token

Positional Encoding加入位置编码

位置编码向量








VIT改进

理解输入输出


输出取决于任务要求

参考B站视频2(VIT)

https://www.bilibili.com/video/BV1fGeAz6Eie?spm_id_from=333.788.videopod.episodes&vd_source=b73dd02a7fb8feec65576de4e3abaf18&p=6


灰色代表位置编码,直接加进去得到新的





实际在GPU运算的时候,是通过拼接而成的大矩阵做乘法,不是像上边一样一个个乘

q1和k2做点积,表示:第一个词和第二个词的相似度是多少

q1和k3做点积,表示:第一个词和第三个词的相似度是多少

q1和k4做点积,表示:第一个词和第四个词的相似度是多少

最后q1和自己也做个点积,表示和自己的相似度




拿到相似度系数之后,分别与V向量相乘,再相加

此时这个a1就表示,在第一个词的视角下,按照和它相似度大小,按权重,把每个词的词向量都加到了一块,这就把全部上下文信息都包含在第一个词中去了。

对于注意力机制来说,如果只通过一种计算方式计算一次,得到一组QKV,相关性灵活性会大大降低。

改进:

之前每个词计算一组QKV,现在在QKV基础上再经过2个权重矩阵变成2组QKV,给每个词2个学习机会,学习到不同的要计算相似度的QKV



拼接


相关推荐
chouchuang13 小时前
day-030-综合练习-笔记管理器
开发语言·笔记·python
汤姆小白14 小时前
08-应用部署
人工智能·python·机器学习·numpy·transformer
一只空白格15 小时前
Transformer架构面试题目
人工智能·深度学习·transformer
从零开始的代码生活_15 小时前
C++ list 原理与实践:双向链表、迭代器与简化实现
开发语言·c++·后端·学习·算法·链表·list
二炮手亮子16 小时前
记录AI学习之路Day13:小模型(AI生成)
学习
程序员小八77717 小时前
从 0 学习 MySQL 索引——7 大核心精讲
android·学习·mysql
渣渣灰飞17 小时前
MySQL 系统学习 第六阶段:Redis + 缓存 + 高并发设计 第六章:Redis 实现登录 Token
学习·mysql·缓存
渣渣灰飞17 小时前
MySQL 系统学习 第六阶段:Redis + 缓存 + 高并发设计 第五章:缓存穿透、缓存击穿、缓存雪崩
学习·mysql·缓存
汤姆小白17 小时前
06-LoRA参数高效微调
人工智能·python·机器学习·transformer
岑梓铭17 小时前
《考研408数据结构》第六章(6.3 图的遍历)复习笔记
数据结构·笔记·考研··拓扑排序·408