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

【自然语言处理】Transformer中的一种线性特征

相关博客
【自然语言处理】【大模型】语言模型物理学 第3.3部分:知识容量Scaling Laws
【自然语言处理】Transformer中的一种线性特征
【自然语言处理】【大模型】DeepSeek-V2论文解析
【自然语言处理】【大模型】BitNet:用1-bit Transformer训练LLM
【自然语言处理】BitNet b1.58:1bit LLM时代
【自然语言处理】【长文本处理】RMT:能处理长度超过一百万token的Transformer
【自然语言处理】【大模型】MPT模型结构源码解析(单机版)
【自然语言处理】【大模型】ChatGLM-6B模型结构代码解析(单机版)
【自然语言处理】【大模型】BLOOM模型结构源码解析(单机版)

论文名称:Your Transformer is Secretly Linear

论文地址:https://arxiv.org/pdf/2405.12250

一、简介

  • 本文揭示了transformer decoder独有的一种线性特征。分析相邻层的embedding变换,发现其具有接近完美的线性关系。
  • 由于transformer层输出的范数一直很小,当移除残差链接时,线性度下降。
  • 实验显示,当移除特别接近于线性的模块或者使用线性近似这些模块,对loss或者模型表现几乎没有影响。
  • 通过在预训练中引入基于cosine相似度的正则化项来降低层的线性度,改善了模型在TinyStories和SuperGLUE上的效果。

二、线性评分

在这里插入图片描述

​ 将Procrustes相似度推广到任意线性变换,从而实现了一种评估两组向量线性依赖程度的度量指标。

​ 令 X , Y ∈ R n × d X,Y\in\mathbb{R}^{n\times d} X,YRn×d表示embedding集合。为了计算线性评分,先计算规范化矩阵 X ~ = X / ∥ X ∥ 2 , Y ~ = Y / ∥ Y ∥ 2 \tilde{X}=X/\parallel X\parallel_2,\tilde{Y}=Y/\parallel Y\parallel_2 X~=X/X2,Y~=Y/Y2。那么线性评分为
linearity_score = 1 − min ⁡ A ∈ R d × d ∥ X ~ A − Y ~ ∥ 2 2 \text{linearity\_score}=1-\min_{A\in R^{d\times d}}\parallel\tilde{X}A-\tilde{Y}\parallel_2^2 \\ linearity_score=1ARd×dminX~AY~22
这个形式与Procrustes相似度几乎一致。仅有的差别是在考虑最小化时考虑所有线性变换,而不仅仅是正交变换,从而找出最优映射的均分误差。

​ 这种方式在评估embedding线性度方面更具鲁棒性。不同于 L 2 L_2 L2范数,其缺少尺度不变性,Procrustes normalization能够提供一个介于[0,1]的有界度量指标。令人惊讶的是,所有测试的transformer decoders的线性分数都接近于1,也就表明embedding的变换高度地线性(如上图1左所示)。

​ 通过将每层的embedding值减去前一层embedding来评估main stream的线性度(即是否使用残差链接的embedding),发现线性程度显著下降。此外,每个块对于范数的贡献较低会导致相邻层的embedding的cos相似度接近。

​ 从另一个角度来看,看似线性块的组合可能导致非线性的结果。之前的一些研究也表明,应用了注意力头的transformer可以跨神经网络组件编码复杂特征。这也表明线性变换的累计影响可能会编码复杂的非线性表示。

三、预训练和微调中的线性动态

在这里插入图片描述

​ 进一步探索在预训练和微调过程中的线性度动态。

​ 如上图2所示,随着模型预训练的进行,main stream的线性度逐步下降。这种现象在所有测试的模型中都存在,这表明其是transformer-decoder学习动态的一个基础性质。

​ 跨各种任务的微调阶段与预训练阶段相反,所有模型在微调过程中的线性度会增加。这个发现表明,任务相关的微调倾向于强化transformer模型中的线性特征。

四、使用正则化预训练改善线性度

​ 为了理解transformer模型中线性度的影响,使用尺寸大小为150M和650M的Mistral架构进行预训练实验。这些模型在精心挑选的干净数据集上预训练,包括TinyStories和Tiny-textbooks。

​ 引入特定的loss项来调整transformer层之间embedding的关系:

  • MSE正则化项
    对连续层之间的embedding使用MSE正则化项,最小化这些embedding的距离,促进层间一致性。
    L MSE = λ ∑ ( ∥ emb i − emb i − 1 ∥ 2 ) L_{\text{MSE}}=\lambda\sum(\parallel\text{emb}_i-\text{emb}_{i-1} \parallel^2) \\ LMSE=λ(embiembi12)

  • Cosine相似度正则化项
    使用cosine相似度正则化项将相邻层的embedding角度差异降低至0。
    L cosine = λ ∑ ( 1 − cos ⁡ ( emb i , emb i − 1 ) ) L_{\text{cosine}}=\lambda\sum(1-\cos(\text{emb}_i,\text{emb}_{i-1})) \\ Lcosine=λ(1cos(embi,embi1))

​ 使用基于cosine的方法能够实现最好的结果,能够使得cosine相似度接近于1。该方法在增强模型效果方面很有前景。通过GPT-4在TinyStories、线性探针技术和SuperGLUE基准上评估方法有效性。结果如下表2和下表3所示。
在这里插入图片描述
在这里插入图片描述

​ 此外,如下图4所示,使用这种正则化项进行预训练后,线性评分更低。

在这里插入图片描述

相关文章:

  • 异常处理实践
  • DBus 在Qt和C++中的使用Demo
  • [Cesium学习]
  • react高阶组件——withRouter
  • FFMPEG学习笔记(一): 提取视频的纯音频及无声视频
  • chatgpt之api的调用问题
  • 【redis】set和zset常用命令
  • JavaScript 贪心算法(Greedy Algo)
  • 数据库索引的理解
  • Windows系统电脑本地部署AI音乐创作工具并实现无公网IP远程使用
  • Python实用代码片段分享(三)
  • Python3 函数参数
  • tongweb7049m1升级到tongweb7049m3,启动 报错:realm can not be null(by jjz+yjm+lqw)
  • 开窗函数!
  • Android实现无线连接ADB调试
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【面试系列】之二:关于js原型
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Java 网络编程(2):UDP 的使用
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Java精华积累:初学者都应该搞懂的问题
  • JWT究竟是什么呢?
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Markdown 语法简单说明
  • Spring-boot 启动时碰到的错误
  • use Google search engine
  • Wamp集成环境 添加PHP的新版本
  • Windows Containers 大冒险: 容器网络
  • Zepto.js源码学习之二
  • 一个SAP顾问在美国的这些年
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (windows2012共享文件夹和防火墙设置
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (生成器)yield与(迭代器)generator
  • (四)linux文件内容查看
  • (一)VirtualBox安装增强功能
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • .bashrc在哪里,alias妙用
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .Net6 Api Swagger配置
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET处理HTTP请求
  • @Autowired和@Resource装配