我自己的原文哦~ https://blog.51cto.com/whaosoft/14034001
#原来Scaling Law还能被优化
Meta这招省token又提效
2017 年,一篇《Attention Is All You Need》论文成为 AI 发展的一个重要分水岭,其中提出的 Transformer 依然是现今主流语言模型的基础范式。尤其是在基于 Transformer 的语言模型的 Scaling Law 得到实验验证后,AI 领域的发展更是进入了快车道。
现如今,这篇论文的引用量正向 19 万冲刺,而 Transformer 和注意力机制本身也已经历了很多改进和创新,比如我们前段时间报道过的「Multi-Token Attention」和「Multi-matrix Factorization Attention」等。
随着 AI 的不断发展,现如今的一个重要挑战是如何获得足够多高质量的 token。又或者,该如何更高效地利用这些 token?为此,还必须对 Transformer 进行进一步的升级改造。
近日,Meta 的一篇论文公布了他们在这方面取得的一个新进展,提出了一种旋转不变型三线性注意力机制,并证明其表示能力与 2-simplicial Transformer 相当。更重要的是,它的表现甚至足以改变 Scaling Law 中的系数。Meta 也用 Triton 实现了这种注意力机制。
该研究基于 RoPE 向三线性函数的泛化;而 2-simplicial Transformer 则源自 2019 年 Clift et al. 的研究《Logic and the 2-Simplicial Transformer》,其中将 Transformer 的点积注意力机制泛化到了三线性形式。
论文标题:Fast and Simplex: 2-Simplicial Attention in Triton
论文地址:https://arxiv.org/pdf/2507.02754.pdf
他们进一步证明,在有限的 token 预算下,2-simplicial Transformer 的扩展性优于 Transformer。
此外,他们的实验还表明,2-simplicial Transformer 相对于 Transformer 具有更有利的参数数量 scaling 指数。这表明,与 Chinchilla scaling 不同,有可能以比 2-simplicial Transformer 的参数增长更慢的速度增加 token 数量。
研究结果表明,在 token 约束下运行时,与点积注意力机制 Transformer 相比,2-simplicial Transformer 可以更有效地逼近自然语言的不可约熵。
神经 Scaling Law 概述
要理解这项研究的意义,首先需要了解一下 Scaling Law。
简单来说,就是损失 L 会随模型参数总数 N 和 token 数量 D 呈幂律衰减:
其中,第一项 E 通常被描述为不可约损失,对应于自然文本的熵。第二项描述了这样一个事实:具有 N 个参数的模型的表现达不到理想的生成过程。第三项则对应于这样一个事实:我们仅使用有限的数据样本进行训练,并且没有将模型训练到收敛。
理论上,当 N → ∞ 且 D → ∞ 时,大型语言模型应该接近底层文本分布的不可约损失 E。
对于给定的计算预算 C,其中 F LOP s (N, D) = C,可以将最佳参数数量表示为 Nopt ∝ C a,将最佳数据集大小表示为 Dopt ∝ C b。Hoffmann 等人 (2022) 的作者进行了多项实验,并将参数函数拟合到损失函数中,以估计指数 a 和 b:多种不同的方法证实,a 大约为 0.49,b 大约为 0.5。这引出了 Hoffmann 等人 (2022) 的核心论点:必须根据模型大小按比例缩放 token 数量。
对于给定的计算预算 C,其中 FLOPs (N, D) = C,可以将最佳参数数量表示为 N_opt ∝ C^a,将最佳数据集大小表示为 D_opt ∝ C^b。Hoffmann et al. (2022) 进行了多次实验,并根据损失拟合了参数函数,以估计指数 a 和 b。
结果,通过多种不同方法发现:a 约为 0.49,b 约为 0.5。
如此,便引出了 Hoffmann et al. (2022) 的一个核心论点:必须根据模型大小按比例扩展 token 数量。
但是,正如前面讨论的那样,足够高质量且足够数量的 token 是预训练扩展的新瓶颈,因此需要探索替代的训练算法和架构。另一方面,最近的研究表明,之前文献中提出的大多数建模和优化技术仅仅改变了误差(偏移了 E),并没有从根本上改变幂律中的指数。谷歌 DeepMind 的研究者 Katie Everett 对此进行过精彩的讨论:
https://x.com/_katieeverett/status/1925665335727808651
2-simplicial Transformer
2-simplicial Transformer 由 Clift et al. (2019) 提出,他们将点积注意力机制从双线性扩展为三线性形式,也就是从 1-simplex 扩展成了 2-simplex。
先来看看标准的注意力机制:
其中,每一项都是点积
。
然后,通过逐行 softmax 运算将注意力分数(logit)转换为概率权重:
注意力层的最终输出是根据这些注意力分数对这些值进行线性组合得到的
。
Clift et al. (2019) 的 2-simplicial Transformer 论文将其推广到三线性积,其中有两个额外的键和值投射矩阵 W_K′ 和 W_V′,从而得到 K′ = XW_K′ 和 V′ = XW_V′。然后,2-simplicial Transformer 的注意力 logit 由 Q、K 和 K′ 的三线性积给出,从而得到以下三阶张量:
从而注意力张量变为:
注意力运算的最终输出定义为:
其中
表示两个向量的元素级 Hadamard 积。2-simplicial Transformer 的伪代码如算法 1 所示。注意,公式 5 不包含 RoPE 等任何位置编码。
基于行列式的三线性形式
Su et al., 2024 提出 RoPE 时,是想将其作为一种用于 Transformer 语言模型的序列位置信息捕获方法。RoPE 对查询 q_i 和键 k_j 应用位置相关的旋转,使得点积 <q_i, K_j> 是相对距离 i-j 的函数。特别需要注意的是,点积对于正交变换 R 具有不变性:
这对于 RoPE 至关重要,因为对于同一位置 i 相同的查询 q_i 和键 k_i,我们期望其点积不会因基于位置的旋转而发生变化。请注意,(5) 式中定义的三线性形式并非是旋转不变,并且对 q_i 、k_i 和 k′_i 进行相同的旋转不再保留内积。因此,为了将 RoPE 泛化到 2-simplicial 注意力模型,探索其他具有旋转不变性的双线性和三线性形式至关重要。
而 Meta 的这个团队注意到,以下函数也具有旋转不变性:
可以使用带符号的行列式运算
来计算 A^(det) ∈ ℝ^n×n×n。对于任意向量 q,令 q^(l) = q = q [3 (l - 1) : 3l] 为其第 l 个大小为 3 的块。其 logit 定义为:
由于公式 8 根据 Sarrus 规则包含 2 个点积项,因此需要修改算法 1,使用 2 个 einsum 而不是第 2 行中的 1 个。最终的注意力权重 S 是通过对上述 logit 应用 softmax 函数来计算的,类似于公式 6。然后,token i 的输出是值向量的加权和,如公式 7 所示。
定理:对于任意输入大小 n 和输入范围 m = n^{O (1)},存在一个具有单个注意力头的 Transformer 架构,其 logit 计算方式如公式 (9) 所示,注意力头维度为 d = 7,使得对于所有 X ∈ [M]^N,如果
,则 Transformer 对元素 x_i 的输出为 1,否则为 0。
对该定理的证明请见原论文附录。
模型设计
由于 2-simplicial 注意力在序列长度 n 上的扩展复杂度为 O (n^3),因此将其应用于整个序列是不切实际的。该团队的做法是将其参数化为 O (n× w_1 × w_2),其中 w_1 和 w_2 定义的是序列上滑动窗口的维度。每个查询向量 Q_i 会关注 w_1 个 K 键和 w_2 个 K′ 键的局部区域,从而减轻计算负担。该团队系统地评估了 w_1 和 w_2 的各种配置,以确定计算效率和模型性能之间的最佳平衡点(见表 1)。
对于因果点积注意力机制,长度为 n 的序列的复杂度由下式给出:
其中 n 是序列长度。这涉及两次矩阵乘法:一次用于 Q@K,一次用于 P@V,每次乘法每个元素都需要两次浮点运算。因果掩码使其能够跳过 1/2 的计算。
相比之下,以 w_1 和 w_2 为参数的 2-simplicial 注意力机制的复杂度表示为:
其复杂度的增长来源是三线性 einsum 运算,与标准点积注意力机制相比,它需要进行一次额外的乘法运算。
该团队选择窗口大小为 (512, 32),以平衡延迟和质量。在此配置下,2-simplicial 注意力机制的计算复杂度与 48k 上下文长度的点积注意力机制相当。
图 2 给出了一个实现。因此,像在 Flash 注意力机制中那样平铺式查询 Q 会导致计算吞吐量较低。受 Native Sparse Attention 的启发,Meta 该团队采用的模型架构利用了较高 (64) 的分组查询注意力 (GQA) 比率。这种方法能够沿着查询头高效地平铺,确保密集计算,并消除昂贵的逐元素掩码。
该团队还引入了一系列针对 2-simplicial 注意力的核优化,这些优化基于使用在线 softmax 的 Flash Attention。详见原论文。下面来重点看看实验表现。
实验与结果
这个团队训练了一系列 MoE 模型,其参数范围从 1B 活动参数和 57B 总参数到 3.5B 活动参数和 176B 总参数。具体配置见原论文。
该团队发现,从 1B (活动)参数模型到 3.5B (活动)参数模型,负对数似然的扩展(∆)出现了下降。
此外,在小于 2B (活动)参数的模型中,使用 2-simplicial 注意力机制没有任何好处。
基于此,该团队估算了 2-simplicial 注意力机制与点积注意力机制的幂律系数有何不同。基于前述方法,其损失可以表示为:
由于训练这两个模型使用的 token 数量相同,因此可以忽略第三项,将损失简化为:
其中 β = - log E′′ - logA ,由于 E′ 较小,E′′ 是 E′ 的近似值。注意,这里使用了 log (a + b) = log (1 + a/b) + log (b) 来分离这两个项,并将 1 + a/b 项隐藏在 E′′ 中。
因此,可以根据表 2 中的损失估算两组模型的 α 和 β,其中 N 代表每个模型中的有效参数。
该团队在表 3 中估计了 Transformer 和 2-simplicial Transformer 的斜率 α 和截距 β。
可以看到,与点积注意力 Transformer 相比,2-simplicial 注意力具有更陡的斜率 α,即其 Scaling Law 的指数更高。
#Causal-Copilot
集成20+先进算法,优于GPT-4o,自主因果分析智能体来了
来自加利福尼亚大学圣迭戈分校(UC San Diego)Biwei Huang 实验室的研究团队提出了一种自主因果分析智能体 Causal-Copilot。该实验室专注于因果推理与机器学习的交叉研究,在因果发现和因果表征学习领域取得了多项重要成果。论文共同第一作者 Xinyue Wang、Kun Zhou 和 Wenyi Wu 均来自 Biwei Huang 教授实验室,他们在因果推理与大语言模型结合方面开展了这项创新性研究。同时这项研究也得到了创业公司 Abel.ai 的大力支持和协助。
一个普遍的困境
想象这样一个场景:你是一位生物学家,手握基因表达数据,直觉告诉你某些基因之间存在调控关系,但如何科学地验证这种关系?你听说过 "因果发现" 这个词,但对于具体算法如 PC、GES 就连名字都非常陌生。
或者你是一位社会学家,想要评估教育政策对学生成绩的真实影响。你知道简单对比可能受其他因素干扰,但面对双重差分、倾向得分匹配等方法及其不同假设条件,你感到无从下手。
这就是因果分析的现状:理论越来越丰富,工具越来越强大,但使用门槛却始终居高不下。
预训练模型的局限性
当前的 AI 系统,包括最先进的大语言模型,本质上都是模式识别器。它们可以发现 "A 和 B 经常一起出现",但无法理解 "A 导致了 B" 还是 "B 导致了 A",抑或是 "C 同时影响了 A 和 B"。
这种局限性在实际应用中带来严重后果。数据显示使用某款教育 App 的学生成绩更好,基于相关性的 AI 可能建议推广这款 App 来提高成绩。但因果分析可能揭示:是成绩好的学生更倾向于使用学习 App,而非 App 提高了成绩。
因果分析包含两个核心任务。因果发现 (Causal Discovery) 从数据中识别变量间的因果关系,构建因果图,帮助我们理解系统的运作机制。因果推断 (Causal Inference) 则基于这些因果关系,量化干预效应,回答 "如果我们这样做会怎样" 的问题。这两个任务相辅相成,共同构成了理解世界运行机制的完整图景。
然而,掌握这些方法需要深厚的统计学背景和丰富的实践经验。每种算法都有其适用场景和限制条件,选错方法可能导致完全错误的结论。这种专业门槛将大量需要因果分析的研究者拒之门外。
Causal-Copilot:让复杂变简单
我们提出了一个优雅的解决方案:既然因果分析的使用难点主要在于方法选择和参数调优,为什么不让 AI 来承担这部分工作?
Causal-Copilot 正是基于这一理念构建的自主因果分析智能体。这个系统的强大之处在于其前所未有的全面性 —— 集成了超过 20 种最先进的因果分析算法,真正实现了 "一站式" 因果分析。无论你的数据是表格形式还是时间序列,是线性关系还是复杂的非线性模式,是完美的实验数据还是充满噪声的观察数据,Causal-Copilot 都能自动找到合适的分析方法。
论文链接:https://arxiv.org/abs/2504.13263
开源代码:https://github.com/Lancelot39/Causal-Copilot
在线体验:https://causalcopilot.com/
统一因果发现与推断的智能系统
Causal-Copilot 的核心创新在于将因果发现和因果推断的完整流程智能化、自动化。该系统集成了 20 余种最先进的算法作为工具,覆盖了从结构学习到效应估计的全过程:
因果发现能力:
- 自动识别变量间的因果关系,构建因果图
- 可以处理线性 / 非线性、离散 / 连续、静态 / 时序、高斯 / 非高斯噪音等多种数据特性
- 处理潜在混杂、数据缺失、数据异质性等现实挑战
- 内置 CPU/GPU 算法加速实现更好解决大规模和高维应用场景
因果推断能力:
- 基于发现的因果结构,估计干预效应
- 支持平均处理效应、异质性效应、反事实推理
- 提供效应的不确定性量化和稳健性检验
Causal-Copilot 在 Online shop, Climate, Abalone 数据集上挖掘出的因果关系
模块化技术架构
Causal-Copilot 采用模块化架构设计,包含五个核心组件:
1. 用户交互模块:支持自然语言查询输入和交互式反馈例如指定偏好和约束。
2. 预处理模块:执行全面的数据准备功能,包括缺失值检测和插补、特征转换、模式提取和适用于表格和时序数据的统计信息诊断。这些诊断结果直接指导后续的算法选择。
3. 算法选择模块:根据数据特性和因果分析的专家知识和实证数据进行算法过滤和排名、结合上下文进行超参数配置、以及执行算法和处理可能的错误。
4. 后处理模块:通过 Boostrap、利用 LLM 常识推理验证因果连接的合理性,理解用户反馈来增强因果图的准确性。同时对于因果效应,进行敏感性分析和稳健性检验。
5. 报告生成模块:将分析结果编译成用户友好的可视化研究报告包含因果分析全程、LLM 对分析结果的推断和洞察。
因果发现与推断的多维度评估
我们系统性地评估了 Causal-Copilot 在不同因果发现和因果推断场景中的数据分析和算法决策能力,其中因果发现评估囊括时序和非时序数据。
我们在多维度场景中系统评估了 Causal-Copilot 的性能。在表格数据上,涵盖了基本场景、数据质量挑战(异质域、测量误差、缺失值)和复合场景(临床、金融、社交网络数据),系统在极大规模网络(高达 1000 节点)中仍保持优异表现。时间序列和因果推断评估同样证实了系统的强大适应性。在 CSuite 基准测试和真实数据集上,Causal-Copilot 显著优于以 GPT-4o 直接调用因果算法为基线的方法,以及现有的传统因果发现算法。
实际应用
用户初始请求:这是一个关于地震的时序数据集,请帮我调查其中的因果关系。
结语
通过统一因果发现和推断的全流程,Causal-Copilot 让研究者能够完整理解因果机制、做出可靠决策、加速科学发现。研究团队已将系统完全开源,提供代码、教程和在线演示平台,邀请全球研究者共同参与改进。
#RoboRefer
复杂空间指令也能秒懂?让机器人理解推理空间,开放世界也能精准行动!
本文的主要作者来自北京航空航天大学、北京大学和北京智源人工智能研究院。本文的第一作者为北京航空航天大学硕士生周恩申,主要研究方向为xx智能和多模态大模型。本文的共一作者兼项目负责人为北京智源研究院研究员迟程。本文的通讯作者为北京航空航天大学副教授盛律和北京大学计算机学院研究员、助理教授仉尚航。
机器人走出实验室、进入真实世界真正可用,远比想象中更复杂。现实环境常常杂乱无序、物体种类繁多、灵活多变,远不像实验室那样干净、单一、可控。
想象一下,你正在餐厅吃饭,身边有个服务机器人。你对它说:「把第二列最远的黄色寿司盘,放到离我最近的寿司和酱油碟之间的空位上。」(左图)又或者,你希望它「拿起最左边、饮料 logo 正对的苹果,放到最近的桌子上,并与之前的苹果排成一排、间距一致。」(右图)
这些听起来是我们日常再熟悉不过的指令,其实是一个典型空间指代(Spatial Referring)任务。简单来说,就是让机器人通过「最远」「第二列」「等间距」「正对着」这类空间关系,搞清楚要抓哪个对象、放在哪里、或者走向哪个位置。
听着简单,做起来却不容易。哪怕是目前最强大、最先进的多模态大模型,也依然难以准确理解复杂的三维场景,并根据指令动态推理出正确的交互位置。这是因为空间指代任务,背后其实包含了两个维度的挑战:
单步空间理解:机器人得先看懂世界。这要求模型能够准确识别物体的空间属性(比如位置、朝向)以及它们之间的空间关系(比如远近、方向)。这是空间指代任务的基础,大部分研究目前还停留在这一层。
多步空间推理:真正的挑战来了:面对一连串复杂的空间关系约束,机器人不仅要理解,还要逐步推理、动态判断,灵活应对各种开放世界中各种各样的空间关系组合。这种能力对于实现真正的空间指代至关重要,但目前仍然是一个被严重低估和不足探索的方向。
为了破解空间指代的难题,北京航空航天大学、北京大学与北京智源人工智能研究院联合提出了一个具备三维空间理解推理能力的多模态大模型 —— RoboRefer。这个模型不仅通过全参数微调(SFT),实现了对空间信息的精准理解,还通过强化学习微调(RFT),大幅提升了推理与泛化能力,最终实现开放世界的空间指代。
- 论文链接:https://arxiv.org/pdf/2506.04308
- 论文标题:RoboRefer: Towards Spatial Referring with Reasoning in Vision-Language Models for Robotics
- 项目主页:https://zhoues.github.io/RoboRefer
- 代码仓库:https://github.com/Zhoues/RoboRefer
- 数据链接:https://huggingface.co/datasets/JingkunAn/RefSpatial
- 评测链接:https://huggingface.co/datasets/BAAI/RefSpatial-Bench
SFT 训练下的 RoboRefer 在空间理解任务中达到了 89.6% 的平均成功率,刷新了当前最先进水平。而在研究者提出的高难度空间指代任务评测基准 RefSpatial-Bench 上,RFT 训练后的 RoboRefer 更是领先所有其他模型,比 Gemini-2.5-Pro 高出 17.4% 的平均准确率,优势显著。
更重要的是,RoboRefer 并非「纸上谈兵」。它可以灵活集成到不同类型的机器人上,比如 UR5 机械臂、G1 仿人机器人等,实现对现实世界中复杂、动态、多步骤任务的精准执行,真正让机器人「听得懂、看得清、动得准」。
RoboRefer 是什么
RoboRefer 是一个具备三维空间理解与推理能力的多模态大模型,拥有独立的图像编码器和深度图编码器,其不仅能回答各种空间感知类问答,无论是「这个物体离我有多远?」这样的定量问题,还是「哪个物体在左边?」这样的定性问题;更厉害的是,它还能基于多种空间关系(比如物体的位置和朝向),进行复杂的组合式推理,最终准确定位需要交互的位置。
比如,面对一个指令:「把这个物体放在笔筒和键盘的中间,水瓶的 logo 要正对着你。」RoboRefer 不仅能理解这句自然语言的空间逻辑,还能在真实三维场景中,找到唯一正确的位置来完成任务。
RoboRefer 的核心是什么
为什么相较于以往的方法,RoboRefer 不仅可以精确的感知空间,而且又可以根据多个空间关系组合泛化推理出交互的位置呢?其关键因素在于以下几点:
SFT 增强空间感知能力,RFT 搭配过程奖励提升泛化推理能力
当前多模态大模型在 2D 预训练阶段缺乏对空间关系的深入理解,为了提升模型的单步空间理解能力,研究人员引入了一个独立的深度编码器,使模型能够更有效地感知和利用三维信息,并通过全参数微调(SFT)进行训练。
尽管 SFT 使用了各种空间感知和推理数据,但模型更倾向于记忆答案,而不是泛化到新的空间约束条件。为了解决这一问题,研究者进一步引入了基于 GRPO 的强化学习微调。
值得一提的是,团队不仅关注结果导向的奖励(outcome-based reward),还创新性地设计了基于过程的奖励函数(process reward functions),这些函数能够感知中间推理过程的质量,从而提升模型多步空间指代任务中的推理精度。最终,模型增强了显式多步推理能力,实现了开放世界的空间指代任务。
提出 RefSpatial 数据集,教一个多模态大模型从 0 到 1 学会空间指代
为了支持前述的 SFT 和 RFT 训练,研究团队构建了一个大规模、高质量的数据集 ——RefSpatial,具有以下几个核心特点:
- 精细标注:每个物体都配有层级式描述,从「杯子」这类种类类别,到像「左数第三个杯子」「最靠近摄像头的杯子」这样的精确空间指代,确保在复杂场景中也能清晰用文字表述。
- 多维推理:数据集不仅标注了目标,还附带详细的多步推理过程(最高有 5 步),为复杂空间指代提供支持。
- 高质量筛选:数据经过严格筛选,确保标注准确、语义清晰。
- 规模庞大:共包含 250 万个样本、2000 万个问答对,数据量是同类数据集的两倍。
- 场景丰富:覆盖室内外环境,涵盖多种日常交互情境,并整合了 31 种空间关系(对比以往最多 15 种)。
- 易于扩展:支持从多种来源生成空间指代数据,包括 2D 图像、3D 视频(含边界框)和模拟资产,具备高度扩展性。
RoboRefer 到底有多厉害
单步空间理解评测
SFT 训练后的 RoboRefer 在各种空间理解任务中达到了 89.6% 的平均成功率,取得了当前最先进水平。
多步空间指代评测
RFT 训练后的 RoboRefer 在已有的机器人指代榜单上依旧超越现有方法,在研究者们提出的高难度空间指代任务评测基准 RefSpatial-Bench 上,其更是领先所有其他模型,比 Gemini-2.5-Pro 高出 17.4% 的平均准确率。
下面展示一些 RoboRefer 与其它模型输出结果的可视化样例:
仿真与真机实验
在空间操控的机械臂仿真评测中,RoboRefer 的表现远超现有的视觉 - 语言 - 动作(VLA)系统。不仅在模拟环境中成功率遥遥领先,面对开放世界中的多步推理与复杂指代任务,唯有 RoboRefer 能够完成!
,时长01:18
,时长00:59
更多的实验结果,可视化展示(包括更多的杂乱场景下的真机 Demo 视频的空间指代结果)详见论文和主页!
#一个气泡水广告,为何几十万人围观
原来整个都是Veo 3生成的
最近,一个完全由 AI 制作的广告在社交媒体上爆火,在 X 上有三十多万人观看。
这是一个叫 Too Short for Modeling 的团队发布在 LinkedIn 上的作品,不过它并不是一个商业作品,而是该团队为一直想合作的品牌制作的概念影片。
距离 Veo 3 发布已经过去一个半月了,虽然此前模型视频生成已经能达到很逼真的状态,但 Veo 3 的「音画同步」功能,引领 AI 视频创作进入了全新的声画一体化阶段。同时它也让 AI 视频生成进入了更有实践意义的阶段,极大地降低了视频创作的门槛。
我们先来看看这个广告效果怎么样。
,时长01:01
来源:https://www.linkedin.com/posts/arielyoriginal_veo3-aicreative-fakeads-activity-7346271275020902400-P9fd
人物1:下午好,小伙子。 (Good afternoon, son.)
人物2:想猜猜我为什么让你靠边停车吗? (Wanna take a guess why I pulled you over?)
人物1:哦,不是你想的那样。 (Oh, it's not what you think.)
人物1:这是“液态死亡”。是苏打山泉水。 (It's liquid death. They're sparkling mountain water.)
人物2:嗯。哇。你没开玩笑。 (Mmm. Wow. You weren't kidding.)
人物2:确实很清爽。 (That is refreshing.)
人物2:但这不是我让你靠边停车的原因。 (But it's not why I pulled you over.)
人物1:哦,天哪。 (Oh boy.)
人物1:是因为破损的尾灯吗? (Is it the busted taillight?)
人物2:不是。 (Uh-uh.)
人物1:是因为车牌吗? (Is it because of the license plate?)
人物2:不是。 (Nope.)
人物1:该死,伙计。是那个死人,对吧? (Shit, man. It's the dead guy, right?)
人物2:不,先生。 (No, sir.)
人物1:也许是人口贩卖? (Is it the human trafficking, perhaps?)
人物2:不是。 (Uh-uh.)
人物1:伙计,是卡车的事吗? (Man, is it the truck thing?)
人物2:我不这么认为。 (I don't think so.)
人物1:好吧,那到底是什么? (Well, what is it then?)
人物1:抢劫案? (The robbery?)
人物2:不。 (No.)
人物1:是保险杠贴纸? (The bumper sticker?)
人物2:不。 (No.)
人物1:是被车撞死的动物,对不对? (It's the roadkill, isn't it?)
人物2:没听说过。 (Haven't heard of it.)
人物1:是化学废料? (The chemical waste?)
人物2:不是。 (Uh-uh.)
人物1:是过山车座位吗? (Is it the roller coaster seat?)
人物1:是邪教的事吗? (Is it the cult thing?)
人物2:绝对不是。当然不。 (Absolutely not. Hell no.)
人物1:好吧,我放弃了。 (All right, I give up.)
人物1:到底是什么? (What is it?)
人物2:因为今天是你的生日。 (It's because it's your birthday.)
人物2:生日快乐,凯文。 (Happy birthday, Kevin.)
人物1:爸爸,你还记得。 (Dad, you remembered.)
人物2:祝你生日快乐,祝你生日快乐,祝你生日快乐。 (Happy birthday to you, Happy Birthday to you, Happy Birthday to you.)
视频字幕,上下滑动查看。
这个广告的笑点密集,令人捧腹。但其真正的亮点在于惊人的「角色一致性」。在一分钟内,视频流畅地切换了10个场景,每个画面的风格都保持了高度统一,核心人物和道具也完美衔接。尽管在车窗、内饰等细节上能察觉到微小的跳跃,但这丝毫未影响其出色的整体连贯性。
要知道 AI 生成视频中经常出现容貌突变、物体错乱等问题。
主创团队分享了他们保持一致性的秘诀——超精细提示 (Hyper-specific Prompting):为模型提供极其详尽、具体且包含大量上下文细节的指令或问题。
这种提示的设计目的是为了最大限度地减少模型的自由发挥空间,引导它生成高度精确、符合特定格式和要求的输出。
相关的提示词优化方法,在我们之前的文章中也提到过,读者可以参考:实测惊艳全球的 Veo3!音画同步无敌,贵是有原因的
值得一提的是,创意、策略与审美依然由人类主导。从最初的灵感、脚本,到由剪辑师完成的最终效果呈现,人的价值贯穿始终。AI 是强大的「执行者」,但遵循的是概率而非远见——至少在今天,这道边界依然清晰。
AI为何总在细节上「翻车」?
关于「角色一致性」的问题,技术层面来讲,并非模型「犯了糊涂」,而是主流视频生成模型背后的核心技术——扩散模型本身的工作原理、训练数据以及从图像到视频的技术跨越之中,主要是以下几点原因:
模型没有「理解」世界,只有「概率统计」:模型并非真正理解「人有五根手指」这类事实,而是通过学习海量数据,知道「五指的手」是最高概率的模式。当生成过程中出现随机偏差时,由于缺乏常识性规则的约束,它可能会生成一个概率上虽低但仍有可能的「六指」结果。
- 局部生成与全局和谐的矛盾:模型更擅长生成逼真的局部细节(如皮肤纹理),但对整体结构(如完整的身体解剖)的把握较弱。它可能会因为专注于让局部「看起来对」,而忽略了其在整体画面中的逻辑是否合理,导致「只见树木,不见森林」的结构性错误。
- 从图像到视频的挑战:视频的本质是连续的图像序列,而模型在生成每一帧时都可能存在微小的随机差异。这种帧与帧之间的「失忆」累积起来,就会导致角色外观、服饰或背景等元素在时间线上发生不连贯的漂移和变化,破坏了时间一致性。
- 训练数据的「不完美」:模型的知识完全来源于它所学习的训练数据。网络数据本身就包含大量错误、低质量和不合逻辑的内容。模型会将这些「坏数据」也一并学会,并在生成时复现出来,可谓「垃圾进,垃圾出」。
探索AI的创意玩法
当前,大量猎奇、同质化的 AI 视频内容,正是 AI 技术被「降维使用」的体现。真正值得我们探索的,是 AI 作为「创意催化剂」的巨大潜力。
下面这些会不会是 AI 的正确打开方式?
- 为你喜欢的电影制作一个平行宇宙。
- 让初音未来进入老头环的世界,会不会是下一个爆款游戏的灵感?
- 为公司做一个网站。
- 或者做一个超炫酷的概念影片。
你觉得 AI 还能为我们的创意带来什么惊喜?欢迎在评论区留下你的脑洞。
#MemOS
重塑AI记忆边界:MemOS开源!时序推理较OpenAI提升159%
大模型记忆管理和优化框架是当前各大厂商争相优化的热点方向,MemOS 相比现有 OpenAI 的全局记忆在大模型记忆评测集上呈现出显著的提升,平均准确性提升超过 38.97%,Tokens 的开销进一步降低 60.95%,一举登顶记忆管理的 SOTA 框架,特别是在考验框架时序建模与检索能力的时序推理任务上,提升比例更是达到了 159%,相当震撼!
图 1. MemOS 项目官网报告的性能表现
在大型语言模型(LLM)一路狂飙的这几年,参数规模和算力几乎成了 AI 能力的代名词。可当大模型逐渐走进科研、产业和生活,每个人都在问一个更深层的问题:它究竟能不能 “记住” 点什么?
从陪伴式对话、个性化推荐,到多轮任务协作,模型只靠一次推理、一次检索,远远不够。如何让 AI 拥有可管理、可迁移、可共享的长期记忆,正在成为新一代大模型应用的关键挑战。
近日,记忆张量(上海)科技有限公司联合上海交通大学、中国人民大学、同济大学、浙江大学、中国电信等多家顶尖团队发布了 MemOS(Memory Operating System),一套面向大模型的工业级记忆操作系统。它的技术路线起步于 2024 年团队推出的 Memory3(忆立方)记忆分层大模型 —— 当时首次提出了记忆分层的概念,让模型可以把部分知识 “外化” 存储,减少推理成本,也为后续的长期学习打下基础。
项目官网:https://memos.openmem.net
项目论文:https://memos.openmem.net/paper_memos_v2
代码仓库:https://github.com/MemTensor/MemOS
Discord 讨论组:https://discord.gg/Txbx3gebZR
OpenMem 社区联系邮箱:contact@openmem.net
与传统 RAG 或纯参数存储不同,MemOS 把 “记忆” 看作一种和算力同等重要的系统资源。它通过标准化的 MemCube 记忆单元,将明文、激活状态和参数记忆统一在同一个框架里进行调度、融合、归档和权限管理。简单来说,模型不再只是 “看完即忘”,而是拥有了持续进化和自我更新的能力。
在行业看来,这种面向 AI 长期记忆的操作系统思路,或许会重塑智能系统的应用边界 —— 让大模型真正从 “静态生成器”,变成可以陪伴用户长期成长的 “数字同事” 和 “数字助理”。
图 2. MemOS 项目官网 https://memos.openmem.net/
系统架构和核心创新
图 3. MemOS 框架(源自 MemOS 官网)
在技术实现层面,MemOS 借鉴了传统操作系统的分层架构设计,也融合了 Memory3(忆立方)大模型在记忆分层管理方面的核心机制。整个系统由 API 与应用接口层、记忆调度与管理层、记忆存储与基础设施层三大核心层次组成,构建了一套从用户交互到底层存储的全链路记忆管理闭环。
在 API 与应用接口层,MemOS 提供了标准化的 Memory API,开发者可以通过简单的接口实现记忆创建、删除、更新等操作,让大模型具备易于调用和扩展的持久记忆能力,支持多轮对话、长期任务和跨会话个性化等复杂应用场景。
表 1. 从计算机操作系统到记忆操作系统
在记忆调度与管理层,MemOS 提出了记忆调度(Memory Scheduling)的全新范式,支持基于上下文的 “下一场景预测”(Next-Scene Prediction),可以在模型生成时提前加载潜在需要的记忆片段,显著降低响应延迟、提升推理效率。
如图 4 所示,MemOS 通过在不同的 Round、Session 或者 Agents 流程之间,异步对应用所需的潜在记忆进行预测与推荐,实现 Next-Scene Prediction。具体地,MemOS Scheduler 通过在应用的不同位置埋触发点(Trigger),不断搜集和汇总记忆需求。触发器生产的这些记忆需求会被添加到调度器的监控队列(Monitoring Queue)中,以供调度执行器(Scheduling Executor)去消费,从而将高频、高相关的记忆提前预备到 MemCube 中合适的位置(或 KV Cache 缓存、或明文工作区记忆存储等)去,大幅加速潜在的推理时间,提升记忆召回的准确性和效率。
图 4. 记忆调度的核心思路
而在记忆存储与基础设施层,MemOS 通过标准化的 MemCube 封装,将明文记忆、激活记忆和参数记忆三种形态有机整合。它支持多种持久化存储方式,包括 Graph 数据库、向量数据库等,并具备跨模型的记忆迁移与复用能力。
整体来看,MemOS 不仅在技术框架上实现了对 AI 记忆的结构化、系统化管理,也为未来构建可共享、可迁移、可演化的 AI 记忆生态奠定了基础。
图 5. 标准化 MemCube(记忆立方体)的基础构成
应用场景
在应用层面,MemOS 的推出为大模型在未来多个关键场景中带来了全新的能力突破:
- 个性化智能体:MemOS 可以持续积累和管理用户的偏好、历史对话与行为习惯,让每一次交互都在 “记忆之上” 不断优化体验,真正实现长期陪伴和个性化服务。
- 科研与知识管理:在科研场景中,MemOS 支持将分散的项目资料、笔记、分析结果以结构化方式长期保存和动态调用,帮助研究人员打造具备深度 “记忆力” 的智能助手,提升知识管理效率和研究连续性。
- 高可靠性场景:在金融、法律等对溯源和合规要求极高的领域,MemOS 将提供记忆溯源与权限审计功能,使模型的推理结果可以精准追溯到具体知识来源,增强透明度和可信性。
- 企业级 RAG 应用:在企业级检索增强生成(RAG)场景,MemOS 能够有效解决新旧知识混用、信息冲突等问题,确保模型在多轮对话和长周期任务中依然保持稳定、一致的回答能力。
凭借对三类记忆的统一调度与封装,MemOS 不仅显著提升了模型的智能性和灵活性,也为企业构建安全、可控、持续演进的 AI 应用奠定了基础。
接下来,MemOS 团队将上线 Playground 功能,面向开发者和企业用户开放体验,直观展示在多样化任务中,记忆能力带来的性能提升和应用潜力。
图 6 . MemOS Playground 即将上线测试
开源框架
图 7. 项目开源地址:https://github.com/MemTensor/MemOS
作为一套完全开源的工业级框架,MemOS 的设计理念强调 “标准化、模块化、可组合”,面向开发者提供了清晰且易于集成的架构和工具链。
在 GitHub 公开的 Preview 版本中,MemOS 已实现包括 Memory API、核心调度模块(MemScheduler)、树 - 图状的明文记忆管理、KV Cache 激活记忆管理在内的多个关键功能,并提供了详尽的示例代码和演示脚本,帮助开发者快速上手,灵活构建具备持久记忆能力的智能应用。
图 8. pip install MemoryOS 一键安装使用
该框架遵循分层解耦的设计原则,所有核心能力均以 Python 类和 REST 接口两种形式对外开放,既可用于轻量级本地测试,也能与生产环境下的大模型(如 HuggingFace、OpenAI、Ollama 等)实现无缝集成。
未来,MemOS 将持续完善记忆生命周期管理、参数记忆插拔、跨平台记忆迁移等高级功能,并通过 MemCube 标准支持 “Memory-as-a-Service”(记忆即服务)的部署模式,帮助开发者和企业在不同场景下灵活构建具备持久记忆的 AI 系统。
MemOS-Preview 版本性能详细评估
在当前版本中,MemOS 重点评估了框架在对话类场景下的记忆抽取与检索效率,并采用行业公认的 LoCoMo(Long Conversational Memory)Benchmark 进行测评(Maharana A, Lee D H, Tulyakov S, et al. Evaluating Very Long-term Conversational Memory of LLM Agents. ACL, 2024)。
LoCoMo 评估集合由 Maharana 等人于 2024 年提出,并发表于 ACL 2024,旨在系统评估和强化 LLM 对极长对话历史的记忆能力。目前,该基准已经成为包括 Mem0、Zep 等多种记忆管理框架的标准化测评工具。
本次评估主要考察模型在以下四项任务中的表现:
- 单跳任务评估(Single Hop):测试模型在已知上下文中对单一事实的直接回忆能力。
- 多跳任务评估(Multi Hop):考察模型能否通过多轮推理整合分散信息。
- 开放问题评估(Open Domain):评估模型在非限定问题上的记忆准确性和灵活性。
- 时序推理任务(Temporal Reasoning):检验模型处理事件顺序和时间逻辑的能力。
当前 MemOS-Preview 版本在以上任务中的详细评估结果如下表 2:
表 2. LoCoMo 端到端实验性能对照表
从评估结果来看,MemOS-Preview-0630 版本相比 OpenAI 的全局记忆方案,在性能表现和 Tokens 开销方面均实现了全面提升。
与 Mem0(本次评测采用 Mem0 官方提供的 Pro 版本高性能接口)相比,MemOS 在各项核心指标上也取得了显著进步。特别是在时序推理这一对记忆系统要求最高的任务上,MemOS 相较 Mem0 和 OpenAI 均实现了超过 20% 绝对值的性能提升,最高超过 159% 的相对值的提升,进一步验证了其在复杂对话和长期推理场景中的优势。
图 9. MemOS 各项性能指标随召回 TOP-K 数量的消融实验
在记忆管理场景中,召回记忆的数量(TOP-K 值)以及对应的总 Context 长度,直接决定了框架的检索效率和推理性能。通常而言,框架效率越高,就越能够在相对较小的召回容量下取得最准确的回忆结果,从而显著降低 Tokens 的编码开销。
如图 9 所示,MemOS 在召回区间 TOP-20 左右时,仅需约 1000 个 Tokens 的上下文长度,即可在各项评估指标上取得优异表现。相比之下,对照组在达到相似准确度时,通常需要 2000–4000 Tokens 的召回区间,MemOS 在保证效果的同时大幅减少了检索所需的输入规模和推理负担。
表 3. 检索效率评估
此外,为了系统评估当前开源框架在检索时效性方面的表现,MemOS 团队针对原始 RAG 框架和现有多种记忆管理方案开展了全面的消融实验。
从表 3 中的结果可以看出,MemOS-Preview 开源版本的检索性能已接近多个主流商业化记忆管理框架的 API 接口,并在最终效果得分上实现了显著提升。值得注意的是,在部分评测任务中,MemOS 的表现甚至优于 Full-Context 方案,展现出在高效记忆管理与资源利用之间的良好平衡能力。
表 4. 记忆调度场景 KV Cache 复用的加速性能实验
同时,为了进一步评估 MemOS-Preview 版本在调度场景下的记忆缓存复用功能,作者围绕不同模型规模和输入长度,对缓存复用的性能进行了详细的消融实验。
实验设置包括:在不同输入长度的缓存上下文条件下,测量推理过程的加速比;以及在不同参数规模的模型上,评估缓存复用对性能的提升效果。
从表中结果可以看出,随着模型规模的增大和缓存上下文长度的增加,相比无缓存场景,推理加速比显著提高。在长记忆场景下,TTFT(Time To First Token)加速比超过 70%,显示出缓存复用在大规模推理任务中的明显优势。
这些实验结果表明,对于需要长期和高频访问的记忆内容,构建高效的缓存复用模块对于提升记忆解码性能和整体响应速度具有重要价值。
MemOS 的未来发展计划
图 10. MemOS 历史研发 Milestone
🌟 关键计划一:成立 OpenMem 开源社区
MemOS 团队计划发起 OpenMem 开源社区,面向全球研究机构和产业伙伴,共同打造一个开放、协作、共创的大模型记忆技术生态。该社区将重点推动记忆管理、记忆增强、记忆共享等领域的研究与应用,探索让 AI 记忆能力实现可管理、可迁移、可共享的发展路径。OpenMem 欢迎所有对 AI 模型记忆感兴趣的团队加入,共建开放记忆底座,赋能智能系统普惠未来。联系方式:contact@openmem.net
🌟 关键计划二:应用发展与联合开发计划
未来,MemOS 将与智能体(Agent)研发团队、行业业务团队和技术合作伙伴共同发起联合开发计划,推进基于记忆操作系统的多样化应用落地。相关计划将聚焦对话机器人、智能搜索、个人助理、企业知识管理等典型场景,探索长期记忆、多主体协作、个性化演进的应用模式,助力智能系统在复杂动态环境中实现持续进化和价值创造。
🌟 关键计划三:MemOS 的长期迭代与研发
在长期研发方面,MemOS 将持续推进技术演进和版本迭代,重点聚焦记忆表征与压缩、分布式记忆调度、跨模型记忆转移、可解释性与安全性保障等关键方向。未来,MemOS 还将逐步完善标准化接口、性能优化、合规治理等体系,打造面向大规模生产环境的高可用、低成本、强安全的记忆操作系统。团队计划持续深化与学术界和产业界的合作,推动 AI 从静态生成走向长期进化与持续学习的新阶段。
记忆张量简介:记忆张量(上海)科技有限公司是上海算法创新研究院孵化的新型大模型公司,由中科院院士担任首席科学顾问。公司聚焦基本原理驱动的系统性创新,以 “低成本、低幻觉、高泛化” 为核心特色,致力于探索符合中国国情的大模型发展新路径,推动 AI 应用更广泛落地。公司持续围绕大模型记忆增强与管理框架进行技术迭代,自主研发的基于记忆分层架构的 “忆 ³” 大模型已实现商业化落地,业务稳步增长,获得招商证券、中国银行、中国电信等头部国央企业认可。
#Stream-Omni
同时支持各种模态组合交互的文本-视觉-语音多模态大模型
GPT-4o式的多模态大模型(LMMs)展现出在文本、视觉和语音模态上的全能能力,其在线语音服务还能在语音交互过程中同步提供中间文本结果(即用户输入和模型响应的转录内容),为用户提供“边看边听”的灵活交互体验。因此,如何构建支持文本、视觉和语音三种模态的多模态大模型成为近期研究热点。现有的多模态大模型通常利用多个编码器提取各个模态的表示,然后将各模态表示沿序列维度拼接并输入至大语言模型基座中以生成回复。这些基于拼接的方法简化了模态集成过程,但它们在很大程度上依赖大规模数据,以数据驱动的方式学习模态对齐。此外,这种基于拼接的维度对齐方式缺乏足够的灵活性,无法像 GPT-4o 那样在语音交互过程中同时生成中间文本结果。
为应对这一挑战,中国科学院计算技术研究所自然语言处理团队提出了文本-视觉-语音多模态大模型——Stream-Omni,其能同时支持各种模态组合下的交互。通过对各模态间的关系进行更有针对性的建模,Stream-Omni实现了更加高效和灵活的文本-视觉-语音模态对齐。仅依赖包含2.3万小时语音的多模态数据,Stream-Omni即可具备文本交互、语音交互、基于视觉的语音交互等各种模态上的交互能力。与此同时,依赖于创新的语音建模方式,Stream-Omni能在语音交互过程中像GPT-4o一样同步输出中间文本转录结果,为用户提供全方位的多模态交互体验。
- 论文题目:Stream-Omni: Simultaneous Multimodal Interactions with Large Language-Vision-Speech Model
- 论文链接:https://arxiv.org/abs/2506.13642
- 开源代码:https://github.com/ictnlp/Stream-Omni
- 模型下载:https://huggingface.co/ICTNLP/stream-omni-8b
Stream-Omni的模态对齐
现有多模态大模型中的模态对齐(如左图所示):在序列维度上将三种模态的表示进行拼接,输入至大语言模型基座
为了减轻对大规模三模态数据的依赖,Stream-Omni更有针对性地建模各模态之间的关系,即语音与文本应在语义上高度一致,而视觉则在语义上对文本形成互补关系。因此,Stream-Omni对不同模态采用不同对齐方式(如右图所示):
- 视觉-文本对齐:序列维度的视觉文本拼接
- 语音-文本对齐:层级维度的语音文本映射
实现上,Stream-Omni 以大语言模型(LLM)为核心,并在其底部和顶部引入语音层,通过连接时序分类(Connectionist Temporal Classification,CTC)建模语音到文本的映射,此建模方式的优势在于:
- 支持通过语音模态进行外部交互,同时利用文本模态在内部控制生成的内容;
- 基于CTC的语音-文本映射为语音文本在表示和结构的对齐上提供更加直接的监督,因此Stream-Omni 能够在仅使用少量语音数据的情况下,将 LLM 主干的文本能力迁移至语音模态。
- 层级维度映射使得Stream-Omni 在语音交互过程中还能同步输出中间文本结果(即指令和回复的转录文本),为用户提供更全面的多模态体验。
Stream-Omni
Stream-Omni以大语言模型作为主干,逐步将视觉和语音与文本对齐,高效地构建了一个支持文本、视觉和语音的多模态大模型。在视觉-文本对齐方面,Stream-Omni采用视觉编码器和投影模块提取视觉表示,并将其与文本表示进行拼接。在语音-文本对齐方面,Stream-Omni在 LLM 主干的底部和顶部分别引入若干语音层,用于将语音映射到文本以及基于文本生成语音。
视觉模态
基于视觉模态与文本模态之间具有语义互补性,Stream-Omni 采用LLaVA架构中的序列维度拼接的方式进行视觉-文本对齐。
语音模态
(1)语音离散化:Stream-Omni采用CosyVoice Tokenizer对语音输入进行离散化,编码为若干离散的语音单元(<Audio_72>< Audio_965>…)。
(2)语音到文本映射:为了充分利用LLM的能力,Stream-Omni在LLM的底部引入语音层,用于学习语音与文本之间的映射关系,从而将 LLM 中的文本能力迁移到语音模态中。Stream-Omni利用在ASR任务上的CTC损失直接监督底部语音层语音表示,将其与文本模态对齐。
(3)文本生成:LLM基于输入的视觉表示和语音表示,生成文本回复。
(4)文本到语音生成:Stream-Omni通过顶部语音层来完成文本到语音生成。为了在生成文本的同时生成语音单元,Stream-Omni在顶部语音层中引入了alignment-based fusion模块。Alignment-based fusion沿用了StreamSpeech等实时生成研究中的同步生成策略,利用CTC对齐来指导同步生成过程。
任意模态组合下的多模态交互
Stream-Omni能够通过灵活组合视觉编码器、底部语音层、LLM、顶部语音层来实现任意模态组合下的交互。同时,由于层级维度语音文本映射,Stream-Omni能够在语音到语音生成过程中提供中间的文本结果。
实验结果
视觉理解能力
Stream-Omni和相同规模和数据量级的视觉大模型取得相当的表现。
语音交互能力
在事实性的语音交互上,Stream-Omni相比于现有方法具有优势,源于层级维度的语音文本映射将LLM的文本能力迁移到语音模态上。
基于视觉的语音交互能力
在本实例中,在指令分别通过文本和语音输入的情况下,VITA-1.5 给出了两个相互矛盾的回答:“不允许前往二楼”和“直接通往二楼”。这一在面对不同模态指令时产生的矛盾回应,源于沿序列维度拼接视觉、语音和文本表示来实现多模态对齐的方法,并未对语音与文本模态之间的语义进行严格对齐建模。相比之下,Stream-Omni 引入语音到文本的映射机制,实现了语音与文本表示之间更精确的语义对齐。因此,Stream-Omni 在不同模态下表现更加一致,无论指令是通过文本还是语音输入,都能生成相似的响应。另外,Stream-Omni还能生成高质量的语音回复,更多实例请在https://github.com/ictnlp/Stream-Omni体验。
总结
- Stream-Omni是一个GPT-4o式的文本-视觉-语音多模态大模型,能够支持多种模态组合下的多模态交互。
- Stream-Omni能够在语音交互过程中输出中间文本结果,为用户提供更全面的多模态交互体验。
- Stream-Omni关注如何构建模态对齐,语音表现力等方面的增强不是本研究的重点,因此其在拟人化、音色多样性等方面存在局限性。
#基于能量的 Transformer(Energy-Based Transformers, EBTs
新范式来了!新能量模型打破Transformer++扩展上限,训练扩展率快35%
是否可以在不依赖额外监督的前提下,仅通过无监督学习让模型学会思考? 答案有了。
在心理学领域,人类思维通常被划分为两种不同类型:系统 1(快速思维)和系统 2(慢速思维)。
当面对复杂问题如数学运算、多步骤推理等任务时,系统 2 思维(System 2 Thinking)显得至关重要。然而,当前的大语言模型可能在适合系统 1 思维的任务上表现良好,但在需要系统 2 思维能力的任务方面仍存在明显不足。
因此,很多研究者开始对系统 2 思维展开研究,这推动了 o1、R1、Grok3 和 Claude 3.7 Sonnet 等基础模型的崛起。
但据公开训练资料(特别是开源模型 R1)显示,这些模型采用的强化学习训练方法仅适用于答案可通过规则化奖励验证的领域(如数学和编程),这种局限性导致其适用范围狭窄。
另一方面与人类系统 2 思维类似的推理时计算,近期成为提升模型性能的热门方法。
然而,现有方法存在三大局限性:模态依赖性(如仅适用于文本)、问题依赖性(如局限于数学 / 编程等可验证领域),或需要额外监督训练(如验证器或可验证奖励机制)。
因此,来自弗吉尼亚大学、亚马逊 GenAI、斯坦福大学、哈佛大学的研究者探讨了这样一个问题:「能否泛化这类系统 2 思维方法,开发仅通过无监督学习就能自主思考的模型?」
答案是肯定的。
具体来说,该研究训练了一类新的能量模型 —— 基于能量的 Transformer(Energy-Based Transformers, EBTs),它可以为每一对输入和候选预测分配一个能量值(即非规范化的概率); 然后从一个随机初始化的预测开始,通过梯度下降不断优化,直到找到最低能量的预测; 这一优化过程就模拟了思考过程。与传统 Transformer 仅单次前向推理不同,EBT 允许每个预测思考多步。
这一建模方式使得系统二思维能够在无监督学习中自然涌现,从而具备跨模态、跨任务的通用性。
在离散模态(如文本)和连续模态(如图像)中,本文发现 EBT 在训练过程中比主流的 Transformer++ 方法具备更快的扩展速度 —— 在数据量、批次大小、参数规模、FLOPs 和网络深度等方面,EBT 的扩展速率最高可提升 35%。
在推理阶段,通过引入系统二思维(即增加计算量),EBT 在语言任务中的性能提升比 Transformer++ 高出 29%。
在图像去噪任务中,EBTs 也优于扩散 Transformer(Diffusion Transformers),且所需的前向传播次数更少。
此外,本文还发现,当处理分布外数据时,引入系统二思维的 EBT 带来的性能提升更为显著;即便在预训练效果相同或更差的情况下,EBT 在大多数下游任务上的表现仍优于现有模型,表明其具备更强的泛化能力。
因此,EBT 为扩展模型的学习能力与思维能力提供了一种极具前景的新范式。
论文地址:https://arxiv.org/pdf/2507.02092
论文主页:https://energy-based-transformers.github.io/
论文标题:Energy-Based Transformers are Scalable Learners and Thinkers
基于能量的 Transformers (EBT)
能量模型(EBMs,Energy-Based Models)背后的核心思想是:能量越低的配置,其概率越高、彼此之间越兼容;而能量越高的配置,其出现的可能性越低、彼此之间越不协调。
更具体地说,EBM 的目标是学习一个能量函数(即将输入映射为一个标量能量值;在本文中,能量函数就是整个神经网络本身),这个函数会为正确或理想的配置(例如真实数据点)分配较低的能量,而为错误或不理想的配置(例如噪声)分配较高的能量。
例如,如果给定的上下文是一段狗奔跑着去接飞盘的视频,那么高能量的延续可能是一段狗在啃玩具的视频,而低能量的延续则可能是狗成功接住飞盘的片段。狗接住飞盘的场景与前面的上下文更为契合,因此对应的能量更低。
在这些 EBM 中,思考过程可以通过从一个初始的(随机的)预测开始,并通过梯度下降不断最小化其能量来优化这个预测(如上图所示)来实现。
为了实现高度可扩展性,本文设计了一种结合 Transformer 架构和可扩展训练算法的特定类型的能量模型,称为 EBT。EBT 具备高效的训练性能、良好的稳定性以及并行处理能力。
可扩展的 EBM Thinking
本文发现有三种关键的能量曲面正则化技术在训练过程中至关重要,它们能够有效确保所学习到的能量曲面具有足够的平滑性与凸性,从而使模型在训练阶段具备强大的思考能力。
首先,本文发现重放缓冲区(replay buffer)有助于模拟更长的优化轨迹,使得能量 landscapes 在其最小值附近得到良好定义。
其次,一种 Langevin 动力学变体(随机噪声),被发现有助于鼓励能量 landscapes 的探索。
第三,通过随机化梯度下降步长 α 和优化步数,改变通向预测解决方案的路径,显著提高了泛化能力。
这些技术共同提高了模型的系统 2 思维能力,这一点通过表 2 中的消融实验得到了证实。
EBT 架构
Transformer 在众多领域中展现出卓越性能,其包括三大优势:高度可并行化、训练过程稳定性,以及良好的可扩展性。
而 EBM 在这三个方面一直面临挑战,因此,Transformer 架构为提升 EBM 的可扩展性提供了理想的基础。
为推动 EBM 范式的发展,本文引入了 EBT,即专为能量模型设计的 Transformer 架构实现。本文设计了两种变体:
- 一种是仅使用解码器的 EBT,受 GPT 架构启发,适用于自回归建模;
- 另一种是双向 EBT,在序列中使用双向注意力机制,支持 infilling 和掩码建模等任务。
实现细节可以参考 C.3 节。
实验及结果
本文实验关注两类核心结果:
- 首先是学习的可扩展性,即模型拟合预训练数据的速度,这也是预训练研究中的标准评估方式;
- 其次是思考的可扩展性,即随着系统 2 思维能力的增强,模型性能的变化趋势。
与模型学习速度相关的规模化趋势,通常被称为扩展律(Scaling Law),是比较难以测量的。
最近一项调查发现,观察到的扩展率取决于多种实现细节和测量维度,往往导致多个不同的结论。
因此,为了尽可能全面地确定 EBT 与 Transformer++ 的扩展方式,该研究针对六个不同测量维度 —— 包括数据、批处理大小、深度、参数、FLOPs,以及嵌入维度。
图 4:语言学习扩展性 —— 数据、批大小和深度。
该研究对比了 Transformer++ 方法与 EBT 模型在预训练阶段的可扩展性表现,考察维度包括训练数据量、批大小及模型深度。
结果表明,在上述所有维度上,EBT 的扩展能力均显著优于 Transformer++,显示出更高的数据利用效率,并表明其在泛化能力方面具有潜在优势。
此外,EBT 在模型深度上的扩展性能提升,亦为其在推理任务中的表现提供了可能性支持。
综上结果表明,若这一扩展趋势持续存在,则在基础模型所需的数据规模下,EBT 有望全面超越 Transformer++ 模型。
图 5:语言学习可扩展性 —— 参数、FLOPs 和宽度。
Transformer++ 方法与 EBT 在模型大小(参数)、计算(FLOPs)和宽度(嵌入维度)上的预训练扩展性比较。EBT 在 FLOPs 和参数扩展性上略微优于 Transformer++,成为首个在不修改分词器的情况下实现更高扩展率的方法。结果表明,随着规模的增加,EBT 在参数和 FLOPs 效率方面作为预训练范式具有很高的潜力。
在所有测量维度上,EBT 的扩展性能始终优于 Transformer++ 方法(即具有更高的扩展率),并成为首个在不更换分词器的前提下实现这一突破的模型。
这些结果表明,与 Transformer++ 方法相比,EBT 在数据效率、批大小效率、参数效率、深度效率和计算效率方面都更高。
因此,在使用规模扩大 1,000 倍的数据和参数量扩大 1,000 倍的模型训练现代基础模型的情境下,预期 EBT 的预训练性能将显著优于 Transformer++ 方法。
在已有学习结果的基础上,该研究进一步探讨了 EBT 模型在推理阶段的思考能力。研究发现,EBT 的思维能力在足够大规模的数据训练下开始显现。鉴于资源限制,该研究主要在小规模模型(但训练数据量充足)上开展相关思维能力实验。
该研究从两个维度评估模型的「思考能力」:一是延长思考时间,即增加优化步数;二是自我验证,即生成多个候选预测,并从中选择能量最小的预测结果。
在表 2 中,通过消融实验验证了该研究提出的能量 Landscape 正则化技术(Energy Landscape Regularization techniques)在 BigBench Dyck Languages 基准测试的分布外数据上提升系统 2 思维能力的有效性。
实验结果表明,当结合延长思考和自我验证机制时,应用全部正则化技术可以获得最优的系统 2 思维表现。
此外,实验还发现:步长随机化是关键因素之一 —— 若移除该机制,模型的思维能力几乎完全丧失;而关闭 Langevin 动力学则会削弱组合性能,但在无自我验证条件下反而表现更佳,体现出性能与计算资源之间的权衡关系。
表 2:系统 2 思维消融实验。
Thinking Longer 指更多优化步骤,Self-Verification 指优化多个预测并选择最佳结果。加粗部分突出显示默认系统 2 超参数,利用所有在 3.3 节中描述的能量 Landscape 正则化技术。
这种配置在 Thinking Longer 和 Self-Verification 时性能最佳。移除正则化,如 Langevin 动力学,会导致更少的能量 Landscape 探索,从而在牺牲 Self-Verification 性能的情况下提升单路径性能(Thinking Longer)。
在验证了上述能量 Landscape 正则化技术的重要性后,该研究进一步分析了 EBT 模型在思考能力方面的可扩展性。结果带来了两个主要发现:
首先,如图 6 (a) 所示,EBT 模型通过增加前向传播次数(即延长思考时间)可实现高达 29% 的性能提升,而 Transformer++ 在相同条件下的性能几乎没有任何提升。
这一现象验证了传统的前馈式 Transformer 无法根据每个预测任务动态分配额外的计算资源,因此也就无法通过「延长思考时间」来提升每个 token 的预测性能。
图 6:EBT 思维分析。
其次,如图 6 (b) 所示,EBT 的「思考能力」具有良好的可扩展性。具体而言,随着训练时间的增加,EBT 从自我验证中获得的性能提升也在持续增长:自我验证带来的增益从原先的 4%–8% 提升至 10%–14%。
这表明,若将 EBT 模型扩展到与当前主流基础模型相同的训练规模(例如 Llama3 所使用的 15 万亿 tokens,约为当前数据规模的 1000 倍),其自我验证机制所带来的性能提升将更为显著。
最后,该研究可视化了 EBT 在预测 token 时对不确定性的表达能力。结果表明:对于预测难度较低的 token(如 the 或 but),EBT 能更快地优化至较低能量;而对于预测难度较高的 token(如 fox 或 problem),其对应的能量更高,且在多个步骤中未能收敛。
这说明在预训练过程中,EBT 能够学习并捕捉 token 预测难度的不确定性,从而实现对系统 2 中方面 2 的有效建模。
图 8:文本中的不确定性学习结果。
EBT 模型在无任何显式监督的情况下,能够自动学习在不同文本 token 上的不确定性差异。例如,在图 (a) 和 (b) 中可以观察到,诸如 is、a、but 和 the 等简单 token 在推理阶段的优化过程中(即「思考」步骤)表现出较低的能量值,表明模型对此类 token 的不确定性较低。相比之下,诸如 quick、brown、research 和 problem 等难以预测的 token 在多个优化步骤中具有更高的能量,且能量难以收敛,说明模型对这些 token 的预测存在更高的不确定性。
鉴于人类的系统 2 思维与在新场景中的泛化能力密切相关,该研究设计了一组实验,旨在直接评估 EBT 模型的系统 2 思维机制对泛化能力的影响。
如图 7 所示,该研究可视化了 EBT 在多个数据集上的表现,这些数据集具有不同程度的分布外(OOD)偏移,该偏移通过下游任务困惑度与预训练困惑度的比值进行量化。
实验结果显示出明显的线性趋势:随着数据的分布偏移程度增加,思考机制带来的性能提升也越显著。因此,这一发现表明,EBT 的「思考」优势并非在所有数据上均匀表现,而是随着分布偏移程度的增强而增强,凸显了「思考」机制在跨分布泛化任务中作为关键能力的作用。
这一发现亦与心理学中的观察一致:人类在应对复杂的分布外任务时,通常依赖于更为深度和刻意的系统 2 思维过程。
图 7:OOD 思考性能。随着数据变得越来越 OOD,思考带来的性能提升更加显著,呈现大致线性的趋势。
由于已在图 4 和图 5 中验证了 EBT 模型相较于 Transformer++ 拥有更优的扩展性,因此有理由推测,EBT 在大规模训练条件下也可能在下游任务中表现更佳。
为验证这一假设,该研究对训练设置完全相同的模型进行了比较,其中 EBT 模型在预训练阶段的困惑度略高于 Transformer++。然而,如表 3 所示,尽管 EBT 的预训练困惑度稍差,但其在大多数下游任务上的困惑度更低(即性能更优),表明其具有更强的泛化能力,尤其是在应对分布外(OOD)数据方面表现更为突出。
结合此前关于学习可扩展性的优势结果,以及已有研究表明,更好的预训练表现通常会转化为更优的下游任务性能,上述实验证据共同表明,在大规模训练情境下,EBT 会全面超越 Transformer++。
表 3:语言模型任务泛化比较。
尽管在预训练阶段困惑度略高,EBTs 在下游任务上的困惑度通常低于 Transformer++。这表明 EBT 比 Transformer++ 泛化能力更强。此外,由于 EBT 在预训练阶段比 Transformer++ 扩展性更好(图 4),这些发现表明 EBT 在基础模型规模上会优于 Transformer++。
图 9 展示了嵌入维度(embedding dimension)和非嵌入参数量(non-embedding parameter count)两个维度上的扩展性结果,这两个维度表现出最为线性的扩展趋势。实验结果表明,尽管 EBT 模型在初始阶段的损失值更高,但其扩展速度比 Transformer++ 快超过 33%。这一发现表明,在基础模型规模下,EBT 会获得显著优于 Transformer++ 的性能表现。
图 9:视频学习可扩展性 —— 宽度与参数。在 Something Something V2(SSV2)数据集上达到的最小验证损失。
虽然 EBT 在较小规模时验证损失高于 Transformer++,但扩展率提高 33% ,表明在拥有数百亿参数的基础模型规模上,EBT 的表现将远优于 Transformer++。值得注意的是,相对于参数数量,嵌入维度的扩展行为更接近线性,这可能是嵌入维度成为图像表示的瓶颈所致。
为进一步验证上述观点,该研究在图 11 中可视化了 EBT 模型在预测视频帧时的能量变化结果。实验结果表明,EBT 能够有效学习并表征预测过程中的不确定性:在视频的早期帧中,由于画面中尚未出现主要物体,模型预测的能量较高(即不确定性较强);随着场景中的主要物体逐渐显现,EBT 对后续帧的预测能量显著降低,表明模型不确定性随之减少。
图 11:视频结果中的学习不确定性。与认知方面 2 一致,EBT 能够在没有监督的情况下,在连续视频帧中表达不确定性。
在视频开始时,不确定性较高(高能量),因为帧大部分是空的,场景高度不可预测。当一件蓝色服装被放置到帧中时,不确定性降低(低能量),反映了场景的可预测性增加。当蓝色服装从场景中移除时,不确定性再次增加,表明不可预测性恢复到较高水平。这种能力在没有离散化方案的传统前馈 Transformer 的连续空间中实现起来要困难得多。
表 4 展示了 EBT 与 DiT 模型在图像去噪任务中的性能对比结果。观察到,在分布内与分布外图像去噪的多个评价指标上,EBT 均优于 DiT,峰值信噪比(PSNR)最高提升可达 3.5。
表 4:图像去噪与分类对比。
在图像去噪方面,EBTs 在分布内(in-distribution)和分布外(OOD)数据上的峰值信噪比(PSNR)以及均方误差(MSE)上均显著优于 DiT ,同时使用减少 99% 的正向传递次数。
这表明 EBT 比 DiT 泛化能力更强,同时计算量更少。在图像分类方面,EBT 的表现也优于 DiT ,准确率提高了 10 倍 ,这表明 EBT 学习到的图像表征更好,比 DiT 更理解图像。
该研究还在图 12 中绘制了不同前向传播次数(即函数评估次数,Number of Function Evaluations, NFEs)下的模型性能曲线。结果表明,EBT 在使用比 DiT 少 99% 的去噪步骤的情况下,仍实现了更优的去噪效果,并且其系统 2 思维的扩展速率也明显高于 DiT。
图 12:图像去噪任务中的思考可扩展性分析。
该研究比较了 EBT 与 DiT 在图像去噪任务中,在不同前向传播次数下的表现。结果显示,EBT 仅需 DiT 所用前向传播次数的 1%,即可达到相当甚至更优的峰值信噪比(PSNR)水平。
此外,随着前向传播次数增加,EBT 在 PSNR 上的性能提升速率远高于 DiT。这一结果表明,在处理分布外(OOD)图像去噪任务时,EBT 的思考能力明显优于 DiT。
图 10:定性 OOD 图像去噪。
图 10 展示了 EBT 与 DiT 基线模型在分布外图像去噪任务中的视觉效果对比。结果进一步表明,EBT 所生成的去噪图像在视觉质量上明显优于 DiT,同时计算成本更低。
在推理阶段,EBT 模型在每使用 1 次去噪步骤的情况下,便可达到与 DiT 需执行 100 次去噪步骤相当甚至更优的效果。整体而言,EBT 所生成的去噪图像质量更高,图像更清晰,模糊程度明显低于 DiT 去噪结果。
#deepseek技术解读(3)-MoE的演进之路
0. 引言
本篇讲讲deepseek在MoE(Mixture-of-Experts)上的演进过程。DeepSeek是MoE稀疏模型的忠实玩家。主版本模型从DeepSeekMoE(V1) 到 DeepSeek V3,一直坚持走MoE的技术路线,并且持续做出一些创新。本文参考paper并结合源码阅读,理解MoE的演进过程和具体实现。
1.简述MoE的发展历程
首先我们简单回顾下MoE的发展历史,早在1991年一篇名为《Adaptive Mixtures of Local Experts 》的工作,最早提出了Mixture of Experts的原型框架,如图1,直至今日,MoE的框架依然保持这种形式。
图1、Adaptive Mixtures of Local Experts 框图
MoE(Mixture of Experts)是一种网络层结构, 网络层主要包括三部分:
- 专家网络(Expert Network):是一个前馈网络,逻辑上一个专家网络擅长处理一类专项的子任务,所有专家都接受相同的输入,来做特定计算处理,产出不同的输出
- 门控网络(Gating Network):跟专家网络接收一样的输入,负责产出专家偏好的权重。来指示对于一个输入,不同专家的重要程度。
- 选择器(selector):是一种根据专家权重来做专家选择的策略。可以选择权重最高的Top1专家或选择TopK专家来融合得到最终的结果。
随后一段时间,主要是Google在主导着MoE的发展。进入Transformer时代后,2020年Google发表了的《GShard》,也把模型训到了600B的规模。GShard刻画了在Transformer上做MoE的经典设计。主要包括Transformer MoE层设计和辅助负载均衡损失。
Transformer MoE层:MoE层替换Transformer的FFN层,计算逻辑:对于一个token 分别通过门控网络和专家网络计算门控值和专家输出,然后用门控值加权多个专家输出来产出最终结果。具体如下:
- 门控计算:
- 专家计算(专家就是FFN网络)
多专家结果加权就和得到MoE的输出
★
注:这里的专家是token级专家,而不是样本粒度,每个token都会做专家路由。此外专家是稀疏激活的,是根据门控值取topK个专家来融合计算最终的结果。GShard最多激活权重最高的2个专家。
负载均衡-辅助损失:引入负载均衡损失,目的是解决多专家token分布不均的问题。因为如果完全按门控权重选取topk专家,容易导致训练过程出现负载不均衡的问题。比如:大多数token被分配到少数几个专家,导致只有少数专家数据通信繁忙造成拥堵,从而减缓训练速度;也会导致其他专家得不到充分训练。为了解决这个问题,定义了一个辅助损失(aux_loss)来降低负载不均衡问题。
那么怎么定义负载均衡的辅助损失?
其中为公式(1)针对token s 计算的专家e的门控权重。
那么这里我们再弄清楚两个问题:
问题2:这样近似计算有什么好处?
答:因为计算引入了门控项,计算如公式(1)所示,包括的可学习参数,保证了这个一个可微的计算,可以做梯度更新。
我们用把公式(4)改造下,将平方项的一个分量替换成,如公式(6):
公式(6)就是我们经常看到的负载均衡loss形式。这里也要注意,对于专家级的负载均衡的loss是加到每个MoE层的,每层都有一个辅助损失。
上面对MoE有了基本的认识,我们接下来看看DeepSeek在MoE方面的工作。
2.DeepSeek的工作2.1. DeepSeek-moe(V1)
24年1月DeepSeek发布V1版MoE模型,作者指出当前方法存在两方面问题:
- 知识混合性:现有的MoE模型通常使用数量有限的专家(如8个或16个),由于token的知识是丰富多样的,将多样的知识分配给有限的专家,会导致特定专家的token很可能会涵盖多样化的知识,而使得专家变成一个杂糅多知识的专家,这样不能充分发挥专家的专业效果。
- 知识冗余性:分配给不同专家的token可能存在共同知识。因此,多个专家可能会在其各自的参数中学习到共享知识,从而导致专家参数存在冗余。这种问题也阻碍了现有MoE实践中专家的专业化,限制了MoE模型的理论上限性能。
针对上述问题,DeepSeek引入一种实现了专家专业化而设计的创新MoE架构。架构主要包含两方面优化:
- 细粒度专家分割(Fine-Grained Expert Segmentation):在保持参数数量不变的情况下,作者通过分割FFN中间隐藏维度来将专家分割成更细的粒度。相应地,在保持计算成本不变的情况下,可激活更多细粒度的专家,以实现激活专家组合的更高灵活性。细粒度专家分割使得多样化的知识能够被更细致地分解,并更精确地学习到不同的专家中,每个专家将保持更高的专业化水平。
- 共享专家隔离(Shared Expert Isolation):将某些专家隔离出来,作为始终激活的共享专家,旨在捕获不同上下文中的共同知识。通过将共同知识压缩到这些共享专家中,可以减轻其他路由专家之间的冗余,这可以提高参数效率,确保每个路由专家专注于不同方面而保持专业化。
如下图2所示。(b)是在(a)基础上,通过将隐层切分更细粒度,而形成细粒度专家,(c)又在(b)基础上隔离出来共享专家。DeepSeekMoE模型的演进过程,一直延续这两个创新的设置。
图2、DeepSeekMoE架构
DeepSeekMoE架构的公式形式:
图3、DeepSeekMoE计算公式
除了在模型架构上的改进,随着DeepSeek从V1 到 V3的演进,在负载均衡上,做了较多工作。首先看看 V1的负载均衡的优化,主要在计算负载均衡上做了优化,包括两个负载均衡的设置:
1.专家级负载loss(Expert-Level Balance Loss)
loss计算如下所示
图4、Expert-Level Balance Loss 计算
我们仔细看下如上公式,针对上述公式(13)的的计算,稍微有些不好理解。如果参照第一节公式(6),计算应该如下:
公式(13)相比公式(15),分子多乘了个路由专家数(),分母上多除了个激活路由专家数(K')。
我们看看为什么要乘以并除以个?
其实这里是为了保持计算损失的恒定,不随专家数量的变化而变化。怎么理解呢?
★
解释这么多,那么我们为什么要保持Loss的计算不随专家的数量变化?这里我理解有两个好处
第一:超参的调整简单。超参是平衡主loss和辅助loss的超参,既不能太大,也不能太小。太大会干扰主loss的收敛效果,太小会达不到负载平衡的目标。所以如果辅助loss随专家数变化,那么调整超参会较复杂
第二:做专家数对比消融实验时,如果loss不受专家数设置影响,那么loss收敛的绝对值是有可比性的。尤其在做细粒度专家效果对比时,不同实验的绝对loss值是有参考意义的,一组实验的loss的绝对值低,能说明效果是更好的。
2.设备级负载loss(Device-Level Balance Loss)
将专家分成 组 ,,每组专家放在一个设备上,为了保证设备间的计算负载均衡, 引入设备级负载loss。设备级负载loss 比专家级粒度更大,相当于在多组专家间做负载均衡,主要用来平衡不同设备的计算负载。如下图公式所示
图5、Device-Level Balance Loss 计算
V1版MoE的升级基本就描述完了。这里还有个问题:在公式中T表示要处理的总token量,在实际模型训练中,模型是按Batch接受输入的,那这个T总token量,到底是个什么口径? 是实际样本总token量,还是随着Batch累加的量,亦或是每个Batch为一组的即时token量。
我们来看看V1的源码,从源码中看,是以每个Batch为一组token计算负载loss的,T就是一个Batch的总token量。核心代码
class MoEGate(nn.Module):def forward(self, hidden_states):bsz, seq_len, h = hidden_states.shape ############################# 这里的hidden_states就是公式里的T,是一个Batch数据的全部token做计算,每个Batch会重新计算############################hidden_states = hidden_states.view(-1, h)logits = F.linear(hidden_states, self.weight, None)scores_for_aux = logits.softmax(dim=-1)topk_weight, topk_idx = torch.topk(scores_for_aux, k=self.top_k, dim=-1, sorted=False)topk_idx_for_aux_loss = topk_idx.view(bsz, -1)mask_ce = F.one_hot(topk_idx_for_aux_loss.view(-1), num_classes=self.n_routed_experts)ce = mask_ce.float().mean(0)############################# 计算Pi,fi 和 aux_loss。这里的计算并没有跨Batch累积,每个Batch单独计算############################ Pi = scores_for_aux.mean(0)fi = ce * self.n_routed_expertsaux_loss = (Pi * fi).sum() * self.alpha
2.2. DeepSeek V2 MoE升级
DeepSeek V2 相对于V1版,对MoE模块主要在负载均衡上做了三方面升级
1.设备受限的专家路由机制(Device-Limited Routing)
随着LLM的size越来越大,对MoE模型的训练,一般要采用专家并行(expert parallelism)来分布式加载模型,也就是对于网络的一个MoE层的多个专家,分配到多个设备上,来并行训练。由于DeepSeek的MoE是做了细粒度专家的设计,通常专家会很多(V2模型的路由专家数有160个,激活专家6个)。我们知道在MoE层多专家的输入是一样的,由当前层的Self-Attention输出的隐层激活值作为MoE层的输入。如果被激活的专家分布在多个机器上,那么要把输入传输到多机器,势必会带来成倍的通讯成本。
为了解决这个问题,DeepSeekV2 引入了设备受限的专家路由机制。具体说就是保证每个token的激活专家,最多分布到M个设备上(M小于),这样来控制通信成本。具体做法分2步:
- 对于每个token,首先选择门控分数(图3的公式11计算的)最高的专家所在的M个设备,
- 然后把M个设备上的所有专家作为备选集合,选择个专家
DeepSeek实际验证出,当M>=3的时候,这种受限的选的操作,与不受限的全局选的操作,模型效果上是大致相当的。所以在V2模型上,DeepSeek选择的=6,M=3。
2. 增加通信负载均衡loss(Communication Balance Loss )
通过上面设备受限的路由机制可以减轻从输入侧将数据分发到多设备,减少多扇出的通讯量。但是在设备接收侧可能还是会出现集中几个设备的专家被激活的问题,导致通信拥堵的问题。所以V2版模型,相对于V1版增加了个通信负载均衡的loss
图6 、通信复杂均衡loss 公式
★
设备受限的专家路由机制和通信负载均衡loss,都是为了解决通信负载平衡的方法。不同的是:设备受限的专家路由机制是在通信分发端确保分发的一个上限;而通信负载均衡loss是在通信接收端确保接收的平衡,鼓励每个设备接收等量的token。所以通过这两种方法,可以确保设备输入、输出的通信负载均衡。
3. 设备级Token丢弃策略(Token-Dropping Strategy)
虽然多个负载均衡的loss(包括专家,设备,通信)能引导模型做通信和计算的平衡,但并不能严格做到负载均衡。为了进一步做计算的负载均衡。引入了设备级的Token丢弃策略。具体做法:
- 首先对于一个Batch输入token,算出每个设备的平均接收的token量,也就是设备的容量C
- 对于每个设备实际分配的token量,按照路由打分(图3的公式11计算的)降序排列
- 如果则将超过容量C的尾部token丢弃掉,不进行专家网络计算。
★
注:这里的丢弃Token,只是在单MoE层对token不做计算,但这个token会通过残差继续传入上层Transformer网络,参与计算。所以被丢弃的Token依然是有hidden_state表征的,只是这个表征不是专家输出+残差merge的结果,而是只有残差部分的结果。而且多层Transformer MoE的专家是不耦合的,在某些层可能丢弃,在另外一些层参与专家计算。
作者为了保持推理和训练的一致性,在训练阶段也保持有10%的样本是不做Token丢弃的,来保证在推理阶段不做token丢弃的效果。
2.3. DeepSeek V3 MoE升级
首先在基本的MoE框架上,延续了细粒度专家(finer-grained experts)和 共享专家(Shared Expert Isolation)的设计。在门控网络和负载均衡方面都做了些改进。具体如下:
1.MoE门控计算Softmax->Sigmoid
V3版MoE的计算框架如图7所示,相对于前两版的计算框架,主要是将门控网络从Softmax 升级到了 Sigmoid。
图7. DeepSeek V3 MoE网络层计算框架
从实现门控的效果上看,Softmax和Sigmoid都能做实现筛选TopK的功能,也能做概率分布的归一化处理。
但V3版的MoE为什么要做从Softmax -> Sigmoid的升级?
要解释这个问题,我们看看V3版相对于V2版的专家设置发生了哪些变化。
★
V2版:路由专家数: 160, 激活专家数: 6个, 模型总参数67B,激活参数21B
V3版:路由专家数: 256, 激活专家数: 8个, 模型总参数671B,激活参数37B
这里我个人理解:V3相对于V2的路由专家数增加了近100个,我们考虑在计算一个较大维度的softmax操作,softmax要在内部对所有维度的值做归一化处理,维度越大,会趋向于计算出的每个维度的值会越小,因为所有维度加和要等于1,所以维度越大,每个维度值理论上分配的值就越小。这样在选取个最大值时,对更小的小数位会敏感,会有数据区分度不高的问题,维度越大,问题越严重。而选择Sigmoid函数,它是对每个专家分别计算一个[0,1]的打分,它并是不随专家维度变化而变化,理论上计算的打分值域更宽,区分度更高。所以V3版在配置更多路由专家的情况下,采用了值域更宽的Sigmoid的函数计算专家激活权重。
2.无辅助损失负载均衡(Auxiliary-Loss-Free Load Balancing)
DeepSeek在V1,V2版MoE模型中,增加了专家级,设备级和设备通信级等平衡负载辅助loss。这些辅助loss只是为了做计算、通讯的负载均衡,对模型的效果调优并没有帮助。甚至这些辅助loss增加过多,loss太大会对主模型造成影响,导致主模型的效果有损。为了减轻多辅助负载均衡的loss对主模型的影响,在V3版把多辅助loss都精简掉了,通过引入一个可动态调节的bias来做到负载均衡。
★
这里论文中有些描述是比较含糊的,比如用什么方式检测专家过载或负载不足的,是用专家的平均分配的token数作为参考吗。我本来想通过看V3的源码理解下细节(Model源码),但没有找到... ,只看到对于每个专家的设置成了一个可学习的参数。这个跟论文中描述的增加和减少固定的量也不一样。可能是我没找对位置,这块后面会再搜集些信息,理解下具体实现。
3. sequence粒度的负均衡损失(Complementary Sequence-Wise Auxiliary Loss)
DeepSeek V3也增加了一个sequence粒度的负载均衡损失,来平衡单个sequence的token分配给每个专家。如下图公式所示
图8、Sequence-Wise Auxiliary Loss计算
相对于V1版的专家级辅助损失(Expert-Level Balance Loss)其实就是作用粒度不一样,Sequence-Wise的粒度是单条样本粒度的token做计算。Expert-Level Balance是一个Batch的多Sequence的token做计算。公式的计算形式并没有什么差异。
最后DeepSeekV3也强调通过上面的负载均衡的策略,能达到一个非常好的平衡效果,所以在V3版并没有Token被Drop掉。
3. 总结
我们再来回顾下DeepSeek在MoE方面创新和演进过程
- V1版为了兼顾对通用知识和细粒度领域知识的建模,引入了共享专家(Shared Expert)和细粒度专家(Fine-Grained Expert)。同时为了平衡各个专家的计算负载,引入了专家级负载loss (Expert-Level Balance Loss)和 设备级负载loss(Device-Level Balance Loss)。
- V2版主要在通信负载上做了些优化,通过引入设备受限的专家路由机制和通信负载均衡loss确保设备输入、输出的通信负载均衡。
- V3版考虑负载loss对主模型的优化会有影响,将辅助负载loss做了精简,通过在门控权重增加一个可调的bias来解决通信和计算的负载。也引入了一个更细粒度的sequence负载均衡loss。同时考虑随着路由专家增到256个,在门控权重计算上选择了值域更宽、打分差异更显著的sigmoid函数替换了原来的softmax函数。
整体演进过程,如下图所示:
DeepSeek MoE演进