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

nlp第十节——LLM相关

一、模型蒸馏技术

在这里插入图片描述
本质上是从一个大模型蒸馏出小模型,从小模型训练出来的概率分布(如自回归模型预测下一个字的概率分布)分别与大模型预测的概率分布和ground label求loss。与大模型预测的概率分布用KL散度求loss,与ground label用交叉熵求分布。
KL散度:
在这里插入图片描述

二、SFT(有监督微调)

给模型的输入通常是问答对的形式,答就是对模型输出的监督,所以是一个有监督模型。在预训练阶段通常是对无标注数据进行自监督训练,可以减少很多人工标注的成本。相比较自回归预测下一个字的模型,SFT的区别在于,输入是问答对的方式,且输入与输出间有sep分隔,输出结果仍然按照预测下一个字的概率分布的形式,但是我们需要的结果是从sep开始的,而且loss只从预测出的sep后的第一个字开始计算,直到预测到终止符结束(使用掩码注意力机制进行训练,这是它与预训练在训练方式上的差距)
在这里插入图片描述

三、LLM的一些模型结构变化

multi-head共享:
在这里插入图片描述
第一个就是我们常见的multi-head机制,然后演化成了第三种multi-query,这种机制在计算k,v的时候不用768×768的矩阵,而是768×64的矩阵,再把L×64的矩阵与多个queries矩阵相乘,再拼接在一起,这种方式的目的是减少参数,加速训练。最后演化成了现在常用的第二种grouped-query,这种机制在计算k,v的时候不用768×768的矩阵,而是768×256的矩阵,然后分成四块,再将queries分组,分别相乘。
attention结构:
在这里插入图片描述
左边是传统的transformer block,右边进行了一些改动,将self-attention和feedfarward层并行计算,而不是左边的串行计算。
归一化层位置的选择:
在这里插入图片描述
归一化的方式:
在这里插入图片描述

激活函数:
在这里插入图片描述
swish函数相当于sigmoid(x)×x,有门的机制,对x的内容进行有效提取。
RoPE:
由于transformer在进行运算时,基本上都是线性层,改变两个字的顺序只会改变矩阵中行的位置,没有明显的位置信息,所以提出了位置编码。同时为了能让预测序列比训练序列长的时候仍有好的表现,也就是有比较好的长度外推性,提出了相对位置编码(bert里的position embedding是绝对位置编码,限制了预测的输出的长度)
换一种思维,我们本质上是想保留语序信息,所以我们可以在attention机制的部分保留每个字两两之间的语序信息,也就是保留第m个字和第n个字(m-n)的信息。所以提出了RoPE。它是在q和k矩阵相乘之前分别作用在q,k矩阵上的。
在这里插入图片描述
MOE架构:
在这里插入图片描述
在过线性层时,设置多个线性层,在进入feedforward前先做一个分类任务,经过router选择,一部分选择过线性层A,一部分选择过线性层B,然后按概率加权求和。

四、LLAMA2结构

在这里插入图片描述
在每一个block里,用pre-LN的方式先进行RMSnorm,接着过attention的掩码注意力机制层,q,k首先分别进行相对位置编码(RoPE),然后再相乘归一化后与v相乘,接着过一层线性层,过一层残差链接来到前馈网络,首先依然是RMSnorm,接着过线性层和激活函数再过一层线性层和残差链接。


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

相关文章:

  • Spring Boot整合达梦数据库的适配改造(国产中间件)
  • MAC 本地搭建部署 dify(含 github访问超时+Docker镜像源拉取超时解决方案)
  • OpenCV计算摄影学(10)将一组不同曝光的图像合并成一张高动态范围(HDR)图像的实现类cv::MergeDebevec
  • 《Canvas修仙传·第四重天元婴境(上集)》 ——WebGL虚空造物与Three.js破碎虚空之法
  • HTML5教程 - 3 开发环境
  • 【分享】网间数据摆渡系统,如何打破传输瓶颈,实现安全流转?
  • 基础的排序算法下(交换排序和归并排序)
  • 香橙派Zero3变身移动IDE:CasaOS环境安装Code Server远程编程实战
  • 线性规划问题解的相关问题
  • Pytorch xpu环境配置 Pytorch使用Intel集成显卡
  • 基于Arcgis的python脚本实现相邻矢量面的高度字段取平均值
  • 【开源项目-AI研发】ai-engineer-toolkit
  • Windows 图形显示驱动开发-WDDM 3.2-GPU-P 设备上的实时迁移(一)
  • 物联网系统搭建
  • Tomcat-web服务器介绍以及安装部署
  • 国产编辑器EverEdit - 快速给字符串、表达式加引号、括号的方法
  • Spring的下载与配置
  • 微软平台下 C 语言:编程世界的闪耀基石
  • 从DNS到TCP:DNS解析流程和浏览器输入域名访问流程
  • 软件工程---软件测试