菜鸡的LLM algorithm学习笔记(I)-transformer篇

Transformer

结构分为几个部分embedding,encoder,decoder以及output

 1.embedding block

  作为对于模型输入的处理,首先将模型的输入进行向量化;

  如输入为“我想要吃一个苹果。”-->X: [[0,0,0,1,2,222,....], [2,2,3,4,5,...], [3,4,5,6,....], []....];

  接着经过positional encoder,因为 Transformer 没有循环结构(不像 RNN 有序列依赖),所以必须用位置编码(Positional Encoding)添加顺序信息;

  公式一般如下:

    PE(pos,2i)=sin(pos/100002i/d)  /  PE(pos,2i+1)=cos(pos/100002i/d)

  将得到的PE和X直接相加得到能够送入encoder的带有位置信息的X;

2.encoder

  2.1MHA多头注意力机制

    在这里我们设置是三个可训练矩阵Wk,Wv,Wq,通过这三个矩阵分别将embedding block得到的X映射成K,Q,V三个向量。

    接着利用下面公式:

    

    将当前需要处理的一个向量X 映射成了包含向量表内所有相关信息加权的新向量Z;

    处理逻辑大概是,首先将每个query向量和key向量求点积,得到一个数值相似度(cosine similarity)也叫得分表,并除以sqrt(dk)[key的维度]使得梯度稳                   定;随即将这个最终稳定的得分softmax归一化,计算出每个向量对于其他某一个向量的影响权重,最后利用这个权重分别与每个向量的value加权求和得             到最终的Z;

    eg.  "我吃苹果" 当处理"我"时,K*Q我,K*Q吃,K*QK*Q果 分别得到一个分数,再将分数归一化处理会得到0.82,0.11,0.01,0.06的权重。

      接着有Z=0.82*V我+0.11*V吃+0.01苹+0.06*V果,Z为最终带有加权所有信息的向量。

    而此处还有个问题就是为什么叫多头,多头则是将好几个上述的注意力模块。并行的处理得到z1,z2,z3...在用cat拼接后得得到一个大Z,并将Z重新通过

   W矩阵压缩回原有维度,这是为了能让每一个头关注到不同的重点,比如有的关注词性有的关注频度..

  2.2.add&norm

    ADD是残差处理,原理是将 Z = X + Z;防止梯度爆炸和信息丢失;

    norm是归一化让数值稳定更好收敛;

  2.3.FFN

    线性变换+relu+线性变换回原维度;使得模型增加非线性能力,能学习到更多特征。

     H=max(0,XW+b);   Y=HW'+b'

  而模型加了两个ADD&NORM大概目的在于:

    

3.decoder

  这里是一个自回归模型,将自己模型的输出作为下一步的输入的一部分。而decoder其中也有MHA并且是两个MHA,区别在于decoder的输入Y经过的第一个         MHA的是加mask以防止模型提前知道答案再回答问题。

  如X="我吃苹果",当encoder给decoder部分的输出是"吃"的Z向量时,decoder此时只能够知道它此前的已经输出过的信息为"I"而后续的"eat apple"是模型不应         该知道的所以需要一个mask给这部分内容消掉。

  而第二个MHA则是调用masked-MHA得到的Q向量以及encoder得到的KV,来实现将X的信息等待decoder来选择以调整关注点。

4.LinearLayer

   最简单的将decoder的预测全连接再softmax计算概率;得到下一个token的概率分布;得到最终的概率分布后利用其他手段 如temperature采样或者干脆贪心选择概率最高的得到文本类型的输出。

 

    

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025低空经济写入政府工作报告:万亿蓝海如何重塑未来城市?

2025年政府工作报告首次将“低空经济”列为重点发展领域,标志着这一新兴产业正式上升为国家战略。从2021年首次写入《国家综合立体交通网规划纲要》,到2024年定位为“新增长引擎”,再到2025年全国超30个省份将其列入发展规划,低空经济正以“政策+技术+资本”三重驱动,开启…

AI大模型:重塑交通执法的“智慧之眼”

交通执法,曾是城市治理中最依赖人力的领域之一。而随着AI大模型技术的突破,一场“从人力到算力”的变革正在发生:青岛交警的“智法”系统每天自动筛查上万条违法线索,深圳交警的AI预审平台将废片率降低40%,成都的非机动车劝导系统斩获全国技术革新一等奖……这些场景背后,…

实现Vehicle类的不同版本理解封装

实现Vehicle类的不同版本理解封装 版本一没有数据隐藏的类创建一个Vehicle 类实现上面的 UML 类图。含有两个 public 属性:属性 解释load 车辆当前载货量maxLoad 车辆最大载货量含有一个公有的构造函数用于初始化最大载货量属性 maxLoamaxLoad。含有两个公有的函数:权限 数据…

KUKA库卡KR210机械手控制柜维修全攻略

在现代工业生产中,库卡机器人因其出色的性能和稳定性,已成为许多企业的首选。然而,即使是精密的设备,也难免会遇到KUKA机械手KR210故障。控制柜是机器人的“大脑”,负责接收和执行各种指令,控制机器人的运动、姿态和操作。 KUKA机械臂KR210控制器故障诊断 1. 电源故障:检…

ciscn暨长城杯 广东赛区 ISW阶段应急响应

ciscn暨长城杯 广东赛区 ISW阶段应急响应 题目介绍 小路是一名网络安全网管,据反映发现公司主机上有异常外联信息,据回忆前段时间执行过某些更新脚本(已删除),现在需要协助小路同学进行网络安全应急响应分析,查找木马,进一步分析,寻找攻击源头,获取攻击者主机权限获取…

初识Open3D

Step01初识Open3d 程序代码: import open3d as o3d #导入Open3d库 def main():#定义主函数box = o3d.geometry.TriangleMesh.create_box(width=3.0, height=2.0, depth=1.0)#创建一个长方体对象box.compute_vertex_normals() #计算法向量vis = o3d.visualization.Visualizer(…

20222223 实验一《Python程序设计》实验报告

20222223 2024-2025-2 《Python程序设计》实验一报告课程:《Python程序设计》 班级: 2222 姓名: 李東霖 学号: 20222223 实验教师:王志强 实验日期:2025年3月12日 必修/选修: 公选课一、实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能;(编写书中的程序…

交换节点 - 环

树上交换节点给定一棵树,每个节点有一个权值。现在每次可以交换任意两个节点的权值,请问最少多少次交换可以使得每个节点的权值等于它的编号? 保证给出的权值是一个排列,也就是说保证一定有解。时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M输入描…

Arduino雷达使用Android移动应用程序

该系统可以检测障碍物并收集距离和角度信息,并且可以通过移动应用程序通过蓝牙进行控制。 Arduino雷达使用Android移动应用程序本项目是一个由超声波传感器和伺服电机驱动的雷达系统。该系统可以检测障碍物并收集距离和角度信息,并且可以通过移动应用程序通过蓝牙进行控制。该…

使用cursor打造智能客服demo

cursor AI它真的是非常强大。 今天讲下如何使用它,搭配deepseek api接口,来生成一个智能客服系统。这是最终的效果。首先cursor需要登录后才能使用。登录之后有两周的免费试用期。我们在窗口的右侧填写智能客服的需求。帮我实现一个网页智能客服。详细要求如下: 1.生成一个h…

【蓝牙小程序】小程序使用echart图表报错:setOption of undefined

转载自:https://developers.weixin.qq.com/community/develop/doc/0004ac054ccec0f26df7baa8756800问题:小程序使用echart图表报错 Cannot read property setOption of undefined;at api request success callback function TypeError: Cannot read property setOption of un…