Adaptive LLM Transformer²

ops/2025/2/4 14:53:05/

看到了一个不错的论文https://arxiv.org/pdf/2501.06252


TRANSFORMER-SQUARED: SELF-ADAPTIVE LLMS 挺有意思的,是一家日本AI公司SakanaAI的论文(我以前写过他们的不训练提升模型的能力的文章,感兴趣可以去翻)它家有Lion Jones坐镇,也是attention is all you need的作者之一,这篇论文的继承了他们家的传统,重视算法(没什么卡,2024年中旬好像才有了第一台自己的8卡H100),脑洞比较大。

主要说用新的微调SVF方法来解决传统的SFT,尤其是基于Lora的问题,传统SFT包括lora的主要问题是,分不清下游任务,而且灌注知识的时候对原始权重也有影响,好不容易灌进去新的东西,对别的任务类型也会有影响。

于是论文用了SVD的方法,Singular Value Decomposition) 将一个矩阵分解形成3个矩阵的点乘的积W = UΣV^⊺。

图片

就是把W分解了,分解成一个U一个V一个Σ,其中 U ∈ R^(m×r) 和 V ∈ R^(n×r) 是半正交矩阵,(U和W你就可以理解为Lora里的低秩分解)Σ ∈ R^(r×r) 是一个对角矩阵,其对角线上的元素是 W 的奇异值,奇异值 σᵢ 表示对应的奇异向量对(uᵢ, vᵢ)对输出的贡献程度。

这么做的目的是干啥呢?是为了后面的SVF奇异值微调 (Singular Value Fine-tuning)做准备

图片

SVF 不是直接修改权重矩阵 W,而是学习一个向量 z ∈ R^r,然后通过修改 W 的奇异值来修改 W 的行为


 

对于每个权重矩阵 W,SVF 学习一个向量 z,该向量独立地修改 W 的每个奇异分量,产生一个新的权重矩阵 W' = UΣ'V^⊺,其中 Σ' = Σ ⊗ diag(z),diag(z) 是一个对角矩阵,其对角线上的元素为 z 的元素

这种方法通过缩放奇异值,而不是直接操作权重矩阵,来对权重矩阵 W 进行精细的控制,SVF 可以使用强化学习 (RL) 进行训练,直接针对任务性能进行优化,无需依赖大型的带有“解释性文本”的数据集


 

说人话就是把W权重给劈开了,更细化了,比如W权重矩阵里面可能有管数学的,管语文的,管历史的

在训练的时候SVF 学习一组z向量,每个下游任务对应一个z向量,然后通过z不就是能算出来Σ吗,Σ是相当于一个信号放大器,比如要训语文的时候z就是[0,1,0.7], 训练数学的时候就是[1,0.5,0]这种的, SVF利用RL在预定义的下游任务集上学习这些z。

学习到的z向量使Transformer^2能够适应各种新的下游任务,同时仅引入最少量的附加参数,就学z就够了。

训练完了就到了推理了,推理的时候先通过prompt之类分析你到底是啥任务,比如历史,就给历史的z,然后拿z+原来的基础网路就能推理了

想法还是挺天才的,效果也是不错,模型参数越大,效果越好

图片


http://www.ppmy.cn/ops/155590.html

相关文章

前端开发之jsencrypt加密解密的使用方法和使用示例

目录 RSA密钥生成选项简介 jsencrypt 使用教程 一、安装 jsencrypt 二、使用 jsencrypt 进行加密和解密 1. 创建密钥对 2. 加密数据 3. 解密数据 三、实际应用示例 加密数据并存储到 localStorage 中: 从 localStorage 中读取加密数据并解密: …

Rust `struct`和 `enum`番外《哪吒、白蛇传?》

第一章:混天绫引发的血案——没有 struct 的江湖有多乱 天庭码农哪吒最近很头疼。 他写了个程序管理法宝库,结果代码乱成一锅粥: // 哪吒的早期代码:法宝属性分散传递 fn print_treasure(name: String, power_level: u32, is_…

【Jax和Flax介绍】

Jax 的概述 背景:由Google开发的开源机器学习库,结合了NumPy、Autograd和XLA,旨在提供一个高效且灵活的机器学习研究平台。核心功能: 自动微分:通过Autograd实现自动求导,简化了梯度计算。GPU加速&#xf…

使用大语言模型在表格化网络安全数据中进行高效异常检测

论文链接 Efficient anomaly detection in tabular cybersecurity data using large language models 论文主要内容 这篇论文介绍了一种基于大语言模型(LLMs)的创新方法,用于表格网络安全数据中的异常检测,称为“基于引导式提示…

【C++】线程池实现

目录 一、线程池简介线程池的核心组件实现步骤 二、C11实现线程池源码 三、线程池源码解析1. 成员变量2. 构造函数2.1 线程初始化2.2 工作线程逻辑 3. 任务提交(enqueue方法)3.1 方法签名3.2 任务封装3.3 任务入队 4. 析构函数4.1 停机控制 5. 关键技术点解析5.1 完美转发实现5…

线性调整器——耗能型调整器

线性调整器又称线性电压调节器,以下是关于它的介绍: 基本工作原理 线性调整器的基本电路如图1.1(a)所示,晶体管Q1(工作于线性状态,或非开关状态)构成一个连接直流源V和输出端V。的可调电气电阻,直流源V由60Hz隔离变压器(电气隔离和整流&#…

蓝桥杯嵌入式uart,iic,adc_scan模版

本次用到的是ttl电平 1.波特率配置 2.中断使能 为什么会乱码 //uartmy_main.h #include "my_main.h" uint8_t led_sta0x10; char text[30]; char uart_tx[50]; char uart_rx[50];extern struct Bkeys bkey[]; char passwd[3]{1,2,3}; void LED_Disp(uint8_t dsLED)…

deepseek-r1模型本地win10部署

转载自大佬:高效快速教你deepseek如何进行本地部署并且可视化对话 deepseek 如果安装遇到这个问题 Error: Post “http://127.0.0.1:11434/api/show”: read tcp 127. 用管理员cmd打开 接着再去切换盘符d: cd 文件夹 重新下载模型:ollama run deepseek…