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

NGPT:在超球面上进行表示学习的归一化 Transformer

在超球面上进行表示学习的归一化 Transformer

  • 1. 研究背景
  • 2. nGPT 的核心贡献
    • 超球面上的网络参数优化
    • 作为超球面上的变度量优化器
    • 更快的收敛速度
  • 3. 从 GPT 到 nGPT 的演变
    • 标记嵌入和输出逻辑
  • 层和块
    • 自注意力块
    • MLP 块
    • 有效学习率在 ADAM 中的应用
    • 总结
  • 4. 实验结果
    • 训练加速
    • 网络参数检查
    • 消融研究
  • 5. 相关工作
  • 6. 讨论与结论

在人工智能领域,神经网络架构的创新不断推动着技术的进步。最近,一篇名为 “NGPT: NORMALIZED TRANSFORMER WITH REPRESENTATION LEARNING ON THE HYPERSPHERE” 的研究论文引起了广泛关注。作者是 Ilya Loshchilov、Cheng - Ping Hsieh、Simeng Sun 和 Boris Ginsburg,他们来自 NVIDIA。这篇论文提出了一种新颖的神经网络架构 —— 归一化 Transformer(nGPT),它在超球面上进行表示学习,展现出了令人瞩目的性能优势。

1. 研究背景

Transformer 架构是现代语言模型的基础,为了提高其训练稳定性、推理成本、上下文长度和鲁棒性等,研究人员提出了大量的修改方案。其中,应用各种归一化技术被认为是有益的,例如添加 LayerNorm 和 RMSNorm 等归一化层,以及通过权重衰减控制权重的范数。同时,也有研究表明在超球面上进行表示学习与更稳定的训练、更大的嵌入空间可分性以及在下游任务中更好的性能相关。在此基础上,本文作者提出了归一化 Transformer,旨在统一该领域的各种发现和观察结果。

2. nGPT 的核心贡献

超球面上的网络参数优化

作者提出将构成网络矩阵嵌入维度的所有向量归一化,使其位于单位范数超球面上。这样,矩阵 - 向量乘法就可以看作是表示在 [-1,1] 范围内的余弦相似度的点积,从而使权重衰减变得不必要。

作为超球面上的变度量优化器

归一化 Transformer 本身在超球面上执行多步优化(每层两步),其中注意力和 MLP 更新的每一步都由特征学习率(可学习的变度量矩阵的对角元素)控制。对于输入序列中的每个标记,归一化 Transformer 的优化路径从超球面上对应其输入嵌入向量的点开始,并移动到超球面上最能预测下一个标记嵌入向量的点。

更快的收敛速度

实验表明,归一化 Transformer 将达到相同精度所需的训练步骤数减少了 4 到 20 倍(取决于序列长度)。

3. 从 GPT 到 nGPT 的演变

标记嵌入和输出逻辑

在原始的仅解码器 Transformer 中,标记嵌入向量的范数不受约束,这可能导致不准确的相似度估计。在 nGPT 中,作者提出在训练算法的每一步之后,对存储在和中的嵌入向量进行归一化。同时,由于所有 nGPT 嵌入都是归一化的,原始公式中的逻辑值代表在 [-1,1] 范围内的点积,这限制了 softmax 生成的概率分布的置信度(温度)。因此,作者引入了一个可训练的缩放参数来调整。

层和块

  • 基线 Transformer:对隐藏状态应用层变换,包括交替的自注意力(ATTN)和多层感知器(MLP)块,并使用 RMSNorm 进行归一化。
  • 归一化 Transformer:对于超球面上的任意两点和,可以使用 SLERP 或其近似的 LERP 来计算沿着测地线的插值。作者将其改写为 nGPT 中的更新方程,其中涉及到注意力和 MLP 块的更新方程,通过可学习的参数和以及归一化函数 Norm 来控制更新过程。与基线 Transformer 不同,nGPT 在最后一层之后不需要额外的归一化。

自注意力块

  • 基线 Transformer:注意力机制是 Transformer 的关键组件,它允许每个标记关注序列中的其他标记。在基线 Transformer 中,首先使用 RMSNorm 对输入隐藏状态进行归一化,然后将其投影为查询、键和值,并应用旋转位置嵌入(RoPE)。通过计算查询和键向量的点积,缩放后应用 softmax 函数得到注意力权重,最后计算值向量的加权和。
  • 归一化 Transformer:作者提出对、、和沿着其嵌入维度进行归一化,使得与计算的点积可以解释为单位范数向量之间的余弦相似度。此外,还对和进行额外的归一化,以确保每个查询和键的点积在控制范围内。同时,调整了 softmax 缩放因子。

MLP 块

  • 基线 Transformer:MLP 块的输入隐藏状态首先使用 RMSNorm 进行归一化,然后通过两个单独的线性投影产生两个中间向量和,使用 SwiGLU 激活函数进行组合,最后通过一个最终的线性变换得到输出。
  • 归一化 Transformer:作者提出对矩阵和沿着嵌入维度进行归一化,使得和向量分别代表与存储在和中的向量之间的余弦相似度。为了控制它们的影响,引入了缩放因子和。

有效学习率在 ADAM 中的应用

在 nGPT 中,对于任何可训练的缩放参数向量,如,使用两个标量和来控制其有效学习率。通过调整,可以在保持全局学习率不变的情况下,控制的有效学习率。

总结

将基线 Transformer 转换为归一化 Transformer 的步骤包括:移除所有归一化层;在每次训练步骤后,对所有矩阵沿着其嵌入维度进行归一化;替换更新方程;改变注意力中的 softmax 缩放因子并对和进行重新缩放和归一化;对 MLP 块的中间状态进行重新缩放;对逻辑值进行重新缩放;移除权重衰减和学习率预热。

4. 实验结果

训练加速

作者在 OpenWebText 数据集上训练了基线 Transformer(GPT)和归一化 Transformer(nGPT),并在一组标准下游任务上对它们进行了评估。实验结果表明,在不同的上下文长度和网络大小下,nGPT 的训练速度比 GPT 快 4 到 20 倍。例如,在 4k 上下文长度下,具有 10 亿参数的 nGPT 在 20k 次迭代后达到了与 GPT 在 200k 次迭代后相同的验证损失,展示了 10 倍的迭代速度提升和使用的标记数量提升。

网络参数检查

  • 嵌入的范数分布:nGPT 保持嵌入的固定范数,而 GPT 的嵌入范数有显著变化。GPT 的输入嵌入具有较高的条件数,尤其是在 1B 模型中。嵌入之间的成对点积分布表明,即使在 nGPT 中,嵌入也不是均匀分布在超球面上,而是形成簇,这可能反映了语言数据中的自然模式。
  • 注意力和 MLP 矩阵的条件数:GPT 模型在其注意力矩阵中表现出明显更高的条件数,与 nGPT 相比,这些矩阵可能退化为低秩矩阵,潜在地降低了这些块的学习能力。
  • 特征学习率和缩放因子:注意力和 MLP 块对隐藏状态的贡献由特征学习率和控制。网络学习在和所建议的方向上只采取适度的步骤。缩放因子、和在各层之间相对稳定,它们似乎补偿了在归一化矩阵和嵌入时丢失的幅度信息。

消融研究

作者进行了大量的消融实验,结果表明,对于、、使用固定(不可学习)值,以及对于使用单个全局可学习值,只会导致准确性的轻微下降。此外,nGPT 可以在不需要对 RoPE 进行任何修改的情况下处理更长的上下文。

5. 相关工作

本文的研究与之前关于超球面表示学习的工作相关。例如,在变分自动编码器的潜在空间和用于面部验证的嵌入中,球形表示与更稳定的训练相关。同时,之前的研究也发现下游任务性能与嵌入在超球面上的对齐(紧密性)和均匀性之间存在强烈的经验相关性。作者还讨论了 nGPT 的更新与 GPT 中应用 RMSNorm 的近似关系,以及 nGPT 中 QK 归一化与之前工作的相似性。

6. 讨论与结论

这项工作建立在该领域的众多关键发现和观察结果之上,主要贡献包括对所有矩阵的嵌入维度进行归一化,以及将特征学习率从网络的其他部分解耦,使其成为可训练的参数。

通过这些创新,nGPT 作为一种变度量优化器,能够利用数据驱动的梯度信息在超球面上搜索输出解决方案。实验结果表明,nGPT 在训练速度上有显著提升,同时也为进一步探索新的算法和架构提供了基础。未来的工作可以探索将 nGPT 扩展到更大的网络规模、真实世界数据集以及更广泛的任务范围。

相关文章:

NGPT:在超球面上进行表示学习的归一化 Transformer

在超球面上进行表示学习的归一化 Transformer 1. 研究背景2. nGPT 的核心贡献超球面上的网络参数优化作为超球面上的变度量优化器更快的收敛速度 3. 从 GPT 到 nGPT 的演变标记嵌入和输出逻辑 层和块自注意力块MLP 块有效学习率在 ADAM 中的应用总结 4. 实验结果训练加速网络参…...

云原生Istio基础

一.Service Mesh 架构 Service Mesh(服务网格)是一种用于处理服务到服务通信的专用基础设施层。它的主要目的是将微服务之间复杂的通信和治理逻辑从微服务代码中分离出来,放到一个独立的层中进行管理。传统的微服务架构中&#x…...

Word2Vec优化与提升技巧

随着自然语言处理领域的快速发展,Word2Vec 已成为常见的词向量生成工具。然而,单纯依赖默认设置往往不能在实际业务需求中取得最佳效果。通过调整模型的参数、优化算法以及合理处理大规模语料库,可以显著提升模型的表现和效率,适应复杂的应用场景。这篇文章将带你深入了解 …...

Java 开发——(下篇)从零开始搭建后端基础项目 Spring Boot 3 + MybatisPlus

上篇速递 - Spring Boot 3 MybatisPlus 五、静态资源访问 1. 基础配置 在 Spring Boot 中访问静态资源非常方便。Spring Boot 默认支持从以下位置加载静态资源: /META-INF/resources//resources//static//public/ 这些目录下的文件可以直接通过 URL 访问。 例…...

Redis 线程控制 问题

前言 相关系列 《Redis & 目录》《Redis & 线程控制 & 源码》《Redis & 线程控制 & 总结》《Redis & 线程控制 & 问题》 参考文献 《Redis分布式锁》 Redis如何实现分布式锁? Redis是单进程单线程的,指令执行时不会…...

005 IP地址的分类

拓扑结构如下 两台主机处于同一个网关下,通过ping命令检测,可以连通 &nbps; 拓扑结构如下 使用ping 检查两台电脑是否相通, 因为网络号不一样,表示两台电脑不在同一个网络,因此无法连通 拓扑结构如下 不在同一网络的PC要相…...

Java 并发工具(12/30)

目录 Java 并发工具 1. Executor 框架 1.1 线程池 1.2 ExecutorService 和 Future 2. 同步辅助类 2.1 CountDownLatch 2.2 Semaphore 3. 并发集合 3.1 ConcurrentHashMap 总结与后续 Java 并发工具 在多线程编程中,高效管理线程和任务至关重要。Java 提供…...

filebeat+elasticsearch+kibana日志分析

1 默认配置 1.1 filebeat filebeat-7.17.yml,从网关中下载k8s的配置,指定es和kibana的配置 通过kibana查询可以查询到日志了,但此时还不知道具体怎么用。 1.2 kibana 在Discover中创建索引格式:filebeat-*,得到如下图&#xf…...

Google Recaptcha V2 简单使用

最新的版本是v3,但是一直习惯用v2,就记录一下v2 的简单用法,以免将来忘记了 首先在这里注册你域名,如果是本机可以直接直接填 localhost 或127.0.0.1 https://www.google.com/recaptcha/about/ 这是列子 网站密钥:是…...

Rust编程中的浮点数比较

缘由:在看Rust编写的代码,发现了一行浮点数等于比较的代码,于是编辑如下内容。 在Rust中,进行浮点数比较时需要特别小心,因为浮点数由于精度限制无法精确表示小数,可能会导致直接比较(如 &…...

java访问华为网管软件iMaster NCE的北向接口

最近做的一个项目,需要读取华为一个叫iMaster NCE的网管软件的北向接口。这个iMaster NCE(以下简称NCE)用于管理项目的整个网络,尤其是光网络。业主要求我们访问该软件提供的对外接口,读取一些网络信息,比如…...

UV紫外相机

在产业设备领域,运用相机进行检测的需求很大,应用也很多样,对于图像传感器性能的期望逐年提升。在这样的背景下,可拍摄紫外线(UV:Ultra Violet)图像的相机拥有越来越广泛的应用场景。将UV照明和…...

第十八届联合国世界旅游组织/亚太旅游协会旅游趋势与展望大会在广西桂林开幕

10月19日,第十八届联合国世界旅游组织/亚太旅游协会旅游趋势与展望大会(以下简称“大会”)在广西桂林开幕,来自美国、英国、德国、俄罗斯、柬埔寨等25个国家约120名政府官员、专家学者和旅游业界精英齐聚一堂,围绕“亚洲及太平洋地区旅游业&a…...

Effective Java(第三版) _ 创建和销毁对象

一、前言 《Effective Java》 这本书,在刚从事 Java 开发的时候就被老师推荐阅读过,当时囫囵吞枣的看了一部分,不是特别的理解,也就搁置了,现在已经更新到第三版了,简单翻阅了一下,发现有些条例…...

你的EA无法运行的几种常见原因

大多数情况下,EA正常运行是指其能够自动开仓交易,毕竟EA的主要目的是根据某种策略自动进行交易。如果从网上下载或其他途径获得的EA在开始时能够正常交易,但在修改参数后却不再交易,可能的问题是什么呢?下面列举了一些…...

通过自定义指令实现图片懒加载

前提:使用到了VueUse插件。 先创建自定义插件文件夹 // 定义懒加载插件 import { useIntersectionObserver } from vueuse/core // 这个是VueUse里的一个方法export const lazyPlugin {install(app) {// 懒加载指令逻辑 定义全局指令app.directive(img-lazy, {mo…...

QT项目-仿QQ聊天(带宠物系统)

目录 一,项目介绍 二,开发环境 三,涉及技术 四,项目效果示例图 1,登录界面 2,主界面 3,聊天界面 4,功能界面 5,宠物界面 一,项目介绍 这是一个基于u…...

前端算法题:3216. 交换后字典序最小的字符串(力扣每日一题)

今日题目为:3216. 交换后字典序最小的字符串 题目详情: 给你一个仅由数字组成的字符串 s,在最多交换一次 相邻 且具有相同 奇偶性 的数字后,返回可以得到的字典序最小的字符串。 如果两个数字都是奇数或都是偶数,则…...

29.1 时序监控和日志监控的对比,分析日志监控的核心诉求

本节重点介绍 : 监控系统分类时序监控和日志监控的对比轻量日志监控系统的诉求 监控系统分类 监控系统按照原理和作用大致可以分为三类 日志类(Log)调用链类(Tracing)度量类(Metrics) 日志类&#xff08…...

git仓库分支

操作 切换分支 git checkout 1.2.5 git checkout 1.3.0 使用命令切换分支之后,代码内容加载过后也是切换好的...

多模态机器学习在精准健康中的应用--九五小庞

这篇综述文章探讨了将多模态数据融合应用于医疗诊断和预后预测的最新研究进展。 本文作者们确定了三个主要的研究问题:多模态数据融合在健康领域的文献特征是什么?用于分析多模态健康数据的不同分析技术、方法和策略是什么?不同类型的异构数…...

提升网站速度与性能优化的有效策略与实践

内容概要 在数字化快速发展的今天,网站速度与性能优化显得尤为重要,它直接影响用户的浏览体验。用户在访问网站时,往往希望能够迅速获取信息,若加载时间过长,轻易可能导致他们转向其他更为流畅的网站。因此&#xff0…...

MySQL索引从基础到原理,看这一篇就够了

https://developer.aliyun.com/article/841106 https://zhuanlan.zhihu.com/p/29118331 索引创建使用总结 因为索引对于改善查询性能的作用是巨大的,所以我们的目标是尽量使用索引。 1. 索引的创建 • 1、在用于 where 判断 order 排序和 join 的(on)字段上创…...

普通高考预报名上传蓝底证件照手机自拍方法详解

普通高考预报名过程中,上传一张合规的蓝底证件照是必不可少的一步。本文将详细介绍如何使用手机自拍并使用工具来制作符合要求的蓝底证件照。注意,目前仅有广东等个别省份允许特定类型考生使用自拍照上传(例如普高预报名阶段、学考报名&#…...

Webserver(2.3)exec函数族

目录 exec函数族介绍execl函数execlp函数 exec函数族介绍 c语言中没有重载,因为不允许同名函数 一系列功能相似的函数称为函数族 exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容。 程序在运行的时候,fork一…...

LeetCode Hot100 - 子串篇

前言 挑战一个月刷完力扣的hot100,记录一下每题的思路~ 这次是子串相关的题目 (1)560. 和为 K 的子数组 ①暴力枚举,使用一个变量sum记录以l开头r结尾的情况 class Solution {public int subarraySum(int[] nums, int k) {int r…...

【Android】Convenient ADB Commands

Install adb install -r <path>Uninstall adb uninstall <pkg>Start adb shell am start -n <pkg>/.SplashActivityStop adb shell am force-stop <pkg>Reset adb shell pm clear <pkg>Reboot adb rebootShutdown adb reboot -p...

elementUI 时间控件控制时间选择

选择时间大于当前月或小于2024年一月禁止选择 <el-form-item label"成交月份:" label-width"105px" ><div class"block"><el-date-pickerv-model"formData.deal_month"type"month":picker-options"pick…...

什么是x86架构,什么是arm架构

什么是 x86 架构&#xff1f; x86 架构是一种经典的指令集架构&#xff08;ISA&#xff09;&#xff0c;最早由英特尔在 1978 年推出&#xff0c;主要用于 PC、服务器等领域。 它是一种复杂指令集计算&#xff08;CISC&#xff09;架构&#xff0c;支持大量的复杂指令和操作&…...

c语言水仙花,超简单讲解

效果 3或者大于3位数 每一位的位数次方相加等于 自身 例如 153 13 53 33 结果为112527 153 1634&#xff1a; 计算过程&#xff1a; 14643444112968125616341^4 6^4 3^4 4^4 1 1296 81 256 16341464344411296812561634 过程 求得单独将所有位数的正数拎出来…...