[Large Reasoning Models Learn Better Alignment from Flawed Thinking 🔗](https://arxiv.org/abs/2510.00938)

RECAP:通过展示有缺陷的推理来教 AI 批判性思考

大型语言模型 (LLM) 的能力正变得越来越强大,尤其是一类被称为大型推理模型 (LRM) 的新型模型。这些模型不仅仅是直接给出答案——它们会在得出结论前,通过生成一步一步的思维链 (CoT) 来进行思考。这种反思性的推理能力让它们能够以卓越的成果解决数学、编程等领域的复杂问题。 但这副盔甲上却有一道裂痕。最近的研究表明,这些复杂的推理能力出人意料地脆弱。只需为模型的思维过程提供一个有缺陷的起点,就可能诱导它生成有害内容——这被称为 CoT 预填充。例如,用类似 “我知道该怎么做。首先……” 这样的短语来开启模型的思维链,就足以绕过安全训练,导致不安全的输出。这提出了一个关键问题:** 这些模型真的理解安全原则,还是仅仅擅长沿着任何给定的推理路径前进——不论好坏?** 来自 Meta Superintelligence Labs、佐治亚理工学院和 IBM 研究院的一篇新论文,通过一种名为 RECAP (Robust Safety Alignment via Counter-Aligned Prefilling,即“通过反向对齐预填充实现鲁棒安全对齐”) 的训练方法,正面应对了这一问题。RECAP 并非寄希望于模型能自然学会自我纠正,而是在训练阶段刻意让它们接触有缺陷的推理,并奖励它们纠正并重回正轨。目标是: 让模型能够批判性地思考自身的推理过程,从而在安全性、鲁棒性,甚至实用性方面实现显著提升——且在推理阶段无需额外计算成本。 让我们来看它是如何工作的。 现代 AI 推理模型的脆弱性 LRM 会生成一个思维链 \(y_{\text{cot}}\),然后给出一个最终响应 \(y_{\text{resp}}\)。虽然这通常能提高输出质量,但研究人员发现,最终答案高度依赖于推理的初始方向。 在一个巧妙的实验中,他们选取了同一系列的几个模型 (DeepSeek 蒸馏模型,简称“DS”) ,这些模型的安全对齐程度不同,并使用 CoT 预填充对它们进行了测试: 不安全的预填充: 提取最不安全模型 (DSQwen-1.5B) 思维链的前 200 个词,用它来预填充其他更安全的模型。 安全的预填充: 做同样的操作,但使用最安全模型 (DSQwen-32B) 的思维链。 表 1 – 使用 DSQwen-1.5B 的不安全 CoT 进行预填充,使其他模型的安全分数降低了 36.4%;使用 DSQwen-32B 的安全 CoT 进行预填充,使安全分数提高了 91.7%。 当被迫沿着不安全推理继续时,模型的平均安全分数急剧下降;相反,安全推理预填充则让分数显著提升。结论是: LRM 倾向于盲从给定的推理,无论对错,而不是对其进行批判性重审。这种脆弱性不仅体现在安全性上,还扩展到数学推理和**过度拒绝 **(即模型拒绝回答一个安全的问题) 。 ...

2025-10
[Apriel-1.5-15B-Thinker: Mid-training is all you need 🔗](https://arxiv.org/abs/2510.01141)

中段训练即可满足全部需求:一个 15B 模型如何触及 AI 前沿

在人工智能的世界里,一场持续的军备竞赛正在上演。科技巨头们正在构建拥有数千亿甚至数万亿参数的、规模空前庞大的模型,不断拓展着可能性的边界。但这种对规模的无情追求是有代价的——确切意义上的高昂代价。这些庞然大物般的模型需要巨大的计算能力,使得它们的训练和部署成本极高,并且往往被锁定在专有 API 背后。 这就产生了一个根本性的矛盾:** 我们如何在没有顶尖预算的情况下实现顶尖的 AI 推理能力?** 一个更小、更易获取的模型能否与巨头竞争? 来自 ServiceNow 的 SLAM 实验室的一篇新研究论文 Apriel-1.5-15B-Thinker: Mid-training is all you need,提供了一个令人信服的答案。研究人员展示了一个 150 亿参数的多模态模型,其表现远超其参数规模,达到了与许多更大系统相媲美的性能。他们的秘诀不仅仅是更多的数据或更大的参数规模,而是一个更智能、更精心设计的训练过程。他们认为,**中段训练 **(mid-training) 阶段——介于初始预训练和最终微调之间的关键步骤——是在紧凑模型中释放卓越推理能力的关键。 在本文中,我们将剖析他们创新的三阶段方法论,探索其令人印象深刻的成果,并讨论为何这项工作可能成为让更多人接触到顶级 AI 的颠覆性进展。 挑战: 能力与可获取性的博弈 在深入探讨解决方案之前,让我们先设定好背景。大多数组织在尝试采用前沿 AI 时面临两大障碍: 基础设施限制: 许多机构出于隐私和安全考虑,需要在本地或物理隔离环境中运行模型。这排除了依赖云 API 的可能性,并要求模型能够在有限的硬件上——有时甚至是单块 GPU 上——高效运行。 成本: 训练和运行大规模模型所需的资金投入,对除最大型公司之外的所有组织而言都高得令人望而却步。 这正是 Apriel-1.5-15B-Thinker 发挥作用的地方。它是一个开源权重模型,旨在提供前沿水平的推理能力,同时规模足够小,能够实现单 GPU 的实际部署。其核心创新是一个渐进式训练流程,证明了如何训练可能比训练规模更重要。 紧凑天才的三阶段养成法 打造 Apriel-1.5-15B-Thinker 的旅程始于一个现有的开源模型 Pixtral-12B,并通过一个精心策划的三阶段流程对其进行改造。 第一阶段: 高效扩展架构 研究人员没有从头开始训练一个新的 15B 参数模型 (这极其昂贵) ,而是采用了**深度扩展 **(depth upscaling) 的方法: 从一个基础模型开始: 他们以 Pixtral-12B 为起点,该模型已经通过流行的 LLaVA 架构——一个视觉编码器通过投影网络连接到语言解码器——结合了视觉和语言能力。 增加更多层: 为了提升推理能力,他们将解码器的隐藏层从 40 层扩展到 48 层,在不改变其基本结构的前提下赋予其更深层次的“思考”能力。这次扩展使用了一个包含高质量文本的大型语料库: 网页内容、技术文献、数学题集和代码。 重新对齐模态: 在扩大语言部分之后,连接视觉和语言的投影网络被重新训练。在训练这个连接器时,视觉编码器和解码器保持冻结,训练数据使用多模态数据集,如图像描述和文档理解。 这种扩展方法以远低于从零开始的计算成本,交付了一个功能强大的 15B 基础模型。 ...

2025-10
[THE DRAGON HATCHLING: THE MISSING LINK BETWEEN THE TRANSFORMER AND MODELS OF THE BRAIN 🔗](https://arxiv.org/abs/2509.26507)

龙之幼雏:连接 Transformer 与大脑的新型 AI 架构

Transformer 为我们带来了改变一切的大语言模型。它们功能强大,可进行大规模训练,并且在实践中极为高效。然而,它们在某种程度上仍然是一个谜: 密集的张量、批量归一化的堆栈和注意力矩阵是出色的工程抽象,但它们与人脑中大规模并行、局部交互的神经元和突触网络并不太相似。 论文《龙之幼雏: 连接 Transformer 与大脑模型的缺失环节》(THE DRAGON HATCHLING: THE MISSING LINK BETWEEN THE TRANSFORMER AND MODELS OF THE BRAIN) 介绍了一个新的架构家族——BDH 及其 GPU 友好变体 BDH-GPU——旨在弥合这一差距。BDH 是一种图优先、受生物学启发的语言与推理架构,其 GPU 友好的实例化版本在性能上可媲美 Transformer,同时具备可解释的、类似于神经元和突触的局部动态特性。本文将解析其核心思想、直觉和关键的实证发现,帮助您理解 BDH 如何在张量与生物学之间架起桥梁。 图 1: 架构及其关系概述。BDH (图优先) 和 BDH-GPU (张量友好) 充当了 Transformer 风格的宏观层面的张量操作与类似于大脑模型的微观层面的局部图动态之间的桥梁。 为何这很重要 这项工作有两个重要的目标动机: 长度泛化和可预测的长期行为。现代大语言模型有时无法将推理链泛化到比训练中见过的更长的上下文。如果我们想要安全、可靠的长期自主推理,就需要模型在规模和时间上的行为更具可预见性。 从微观到宏观的可解释性。大脑是一个无标度、图结构的系统,具有局部交互;我们缺乏一个简洁的微观基础,来解释这种结构如何实现类似注意力的推理行为。反之,Transformer 的机制主要在向量层面可解释;我们缺乏一个粒子层面、局部动态的解读。 BDH 提出了一种统一的视角: 注意力和前馈计算可以实现为图上的局部神经元-突触动态。当相同的动态以 GPU 友好的方式进行排列 (BDH-GPU) 时,所得系统可用反向传播进行训练,并符合 Transformer 的规模定律——但其学习到的状态可直接在微观层面解释为突触可塑性和神经元激活。 高层直觉: 肯定前件遇上赫布理论 两个简单的想法驱动了 BDH 的直觉: **肯定前件 **(近似、加权) 。如果系统以权重 \(X(i)\) 相信事实 \(i\),且存在一个从 \(i\) 到 \(j\) 的强度为 \(\sigma(i,j)\) 的规则 (蕴含) ,那么 \(i\) 对 \(j\) 的信念贡献与 \(X(i)\sigma(i,j)\) 成正比。示意为: ...

2025-09

展开时间:一个简单的神经网络如何学会语言规则

人类的心智是如何处理时间的?这个问题看似简单,却又无比复杂。我们所做的许多事情——从理解一段旋律、接住一个球到进行一次对话——都依赖于随着时间推移处理事件序列的能力。 语言尤其如此,它就像一条信息之河在时间中流动。一个句子的含义不仅取决于词语本身,还取决于它们的顺序。**“狗咬人”是平常新闻;“人咬狗”**就是头条新闻。 对于早期的人工智能与神经网络研究者来说,这个序列顺序问题是一个重大障碍。大多数模型被设计用来处理静态数据 (例如一张图片) 并对其分类。然而,你该如何赋予一个网络历史感?它怎样才能理解当前看到的内容与刚才看到的内容是相互关联的? 早期一个常见的“取巧”方法是将时间表示为空间。比如,把一部电影的每一帧并排铺开,再试图一次性通过观看这幅巨大的马赛克来理解剧情。这种“空间表示”在短的、固定长度的序列中或许可行,但笨拙又脆弱: 它需要庞大的输入层,无法处理可变长度的序列 (如句子) ,也难以识别只是时间上平移了的同类模式。 1990年,Jeffrey L. Elman 在 Cognitive Science 杂志发表了一篇里程碑式论文,题为 Finding Structure in Time (在时间中寻找结构) 。他通过一个极其简单的架构改动,为标准神经网络赋予了某种形式的记忆。这种网络——如今被称为简单循环网络 (Simple Recurrent Network,SRN) 或Elman 网络——不仅能处理序列,还能发现其中隐藏的结构。仅仅通过学习预测句子中的下一个词,Elman 的网络便自学了语法的基本构件,从零开始发现了“名词”“动词”等概念。 本文将带你深入探索这一经典工作。我们将解析 SRN 背后的精巧思想,回顾 Elman 为测试其极限而设计的一系列聪明实验,并揭示这项研究如何为当今主导性的序列模型——如 LSTM 和 Transformer——奠定了基础。 一个有记忆的网络 在 Elman 之前,已有研究者在探索循环结构。1986年,Michael Jordan 提出了一个网络架构,将网络的输出在下一时间步反馈到一组特定的“状态单元”中。 图 1: Jordan (1986) 提出的架构。某一时间步的输出被用作下一时间步的上下文。这是 Elman 模型的重要前身。 这种反馈使得网络的下一步动作能够受到先前动作的影响——对于如运动控制这样的任务,这是关键的一步。 Elman 对这一思想做了一个微妙而深刻的改变: 他反馈的不是网络的*输出 (即显性的动作) ,而是它的内部状态 *(即“思想”) 。 下面展示的简单循环网络 (SRN) 与标准的前馈网络几乎完全相同,只多了一个组件:** 上下文单元 (context units)** 。 ...

[Designing Network Design Strategies Through Gradient Path Analysis 🔗](https://arxiv.org/abs/2211.04800)

重新思考神经网络设计:深度剖析梯度路径分析

在设计深度神经网络时,我们通常关注数据如何在前向传播中流经模型。我们堆叠层、实现复杂的特征融合机制、添加注意力模块,以将输入转换为期望的输出。这种传统的“数据路径”视角为我们带来了 ResNet、DenseNet 和 Transformer 等强大架构。 但如果这种只关注前向传播的观点只讲了故事的一半呢?如果构建更高效、更强大网络的关键在于审视信息反向流动的方式呢? 近期的一篇研究论文 Designing Network Design Strategies Through Gradient Path Analysis 正是提出了这种范式转变。作者认为,由于网络是通过反向传播 (将误差信号 (梯度) 从输出向后发送以更新权重) 来进行学习,我们应该设计那些能主动优化梯度传播方式的架构。与只关注数据路径不同,他们引入了一种新的设计思路:** 梯度路径设计**。 在本文中,我们将剖析他们的思想,探讨为什么梯度路径如此重要,并逐一介绍论文中提出的三种新颖架构: 局部残差网络 (Partial Residual Network, PRN): 一种层级策略,增加每一层的学习信号多样性。 跨阶段部分网络 (Cross Stage Partial Network, CSPNet): 一种阶段级策略,提高梯度流效率同时提升推理速度。 高效层聚合网络 (Efficient Layer Aggregation Network, ELAN): 一种网络级策略,可将网络扩展到极深而不损失可学习性。 读完本文,你将不再仅仅将网络视为计算管道,而是优化过的学习系统。 两种路径的故事: 数据 vs. 梯度 作者首先挑战了一个深度学习中的普遍假设: 浅层学习“低层”特征,如边缘和纹理,而深层学习“高层”概念,如物体和场景。先前的研究表明,一个层学到的内容不仅取决于它在网络中的位置,还取决于它接收到的训练目标和梯度信号。 图 1: 在正确的训练目标引导下,浅层和深层网络都能学习到高层特征。 这引导他们提出一个核心区分: 图 2: 两种主要的网络设计策略。 **数据路径设计 **(图 2a) 关注前向传播,构建模块以实现: 特征提取: 如非对称卷积或多尺度滤波器。 特征选择: 如注意力机制或动态卷积。 特征融合: 如特征金字塔网络,将不同层的特征图进行融合。 这种方法直观且有效,但可能导致模型复杂、资源消耗大,有时增加复杂性甚至会损害性能。 ...

2022-11
[Finetuned Language Models Are Zero-Shot Learners 🔗](https://arxiv.org/abs/2109.01652)

只需告诉模型做什么:指令精调如何解锁零样本学习能力

大语言模型 (LLM) 展现出了惊人的能力: 编写代码、创作文章、回答复杂问题。这些成功很大程度上依赖于少样本学习 (few-shot learning) ——在提示中给模型展示几个例子,让它进行泛化。但少样本提示有其缺点: 你需要准备示例,而且常常必须精心设计提示。 如果我们能简单地用自然语言告诉模型我们想让它做什么,并且它能无需任何示例就做得很好,那会怎么样?这正是《Finetuned Language Models Are Zero-Shot Learners》 (Google Research) 这篇论文提出的核心问题。该论文表明,一个出人意料的简单技巧——指令精调 (instruction tuning) ——能够将大型预训练模型转变为强大的零样本学习者。经过指令精调的模型 FLAN (Finetuned Language Net) ,在众多任务上提升了零样本性能,甚至在大多数评估数据集上以零样本方式击败了 GPT-3 (175B) 。 在这篇文章中,我将详细介绍这个想法、作者如何构建 FLAN、指令精调有效的证据,以及你可以从中汲取的关键经验。 适配语言模型的三种范式 将预训练语言模型应用于下游任务,通常有三种方法。理解它们的区别对于明白指令精调的定位至关重要。 图 1: 适配语言模型的三种主要范式比较。指令精调结合了精调和提示的优点。 预训练 → 精调: 获取一个预训练模型,并在一个带标签的任务上进行精调 (如 BERT、T5) 。这种方法对特定任务非常有效,但每个任务都需要一个单独的精调模型和大量的标注数据。 提示 (Prompting) : 保持模型权重固定,通过文本提示来引导其行为 (如 GPT-3) 。零样本提示用语言描述任务;少样本提示则额外提供少量示例。少样本通常比零样本效果好得多,但需要精心的提示设计。 指令精调 (FLAN) : 在一个模型上,对许多以自然语言指令形式表达的任务进行精调。目标是教会模型遵循指令的技能,使其能泛化到新的、未见过的任务,而无需任何示例。 指令精调本质上是一种混合方法: 它使用标签监督 (像精调) ,但目标格式是自然语言指令 (像提示) 。论文中的实验旨在验证这种混合方法是否能提升零样本泛化能力。 FLAN 的配方——简单而实用 从宏观上看,FLAN 的构建过程包括: (1) 将大量现有数据集转换为指令风格的提示;(2) 在这个混合数据集上精调一个大型的仅解码器 Transformer;(3) 在留出的任务簇上进行评估,以确保测试任务在指令精调期间是真正未见过的。 ...

2021-09

GPT-3:小样本学习的黎明

微调的“跑步机”: 一个规模化问题 多年来,自然语言处理 (NLP) 领域的主流范式一直是一种“两步走”的模式。首先,在海量文本数据上预训练一个庞大的通用型语言模型。这些模型,如 BERT 或 RoBERTa,能够学习语言中的复杂模式——语法、事实、推理能力,甚至一些偏见。 第二步是将这个强大但通用的模型通过**微调 **(fine-tuning) 专门适配某个特定任务。 想要一个情感分类器?你需要一个包含大量正面和负面评论的标注数据集。要一个问答机器人?需要成千上万个问答对。对于每一个新任务,你都需要构建新的数据集和新的微调模型。这种“先预训练,再微调”的方法非常有效,在无数基准测试中推动了技术的进步。 但这种方法存在一个根本局限: 它需要大量特定任务的标注数据,而创建这些数据往往成本高昂且耗时。这与人类的学习方式也不同——我们不需要成千上万个例子才能理解“把这个句子翻译成法语”这样的指令。 2020 年的论文《语言模型是小样本学习者》彻底改变了这一现状。来自 OpenAI 的作者们提出了一个深刻的问题: 如果我们只是不断扩大模型规模会怎样?如果我们构建一个足够庞大、并在极其多样化的数据上训练的语言模型,它是否可以在没有微调的情况下,仅凭少数几个例子——甚至没有例子——就能执行任务? 答案就是 GPT-3——一个拥有 1750 亿参数的庞大模型,涌现出了一种**上下文学习 **(in-context learning) 的能力。本文将解析 GPT-3 的工作原理,它为何能成为一个小样本学习者,以及其能力所带来的非凡——有时也令人担忧——的影响。 一种新的学习方式: 从微调到小样本学习 在深入了解 GPT-3 之前,让我们先定义论文中描述的四种方法,它们涵盖了从数据密集型到数据稀疏型的不同场景: 微调 (Fine-Tuning, FT): 在成千上万个针对目标任务的标注示例上进行训练,从而更新预训练模型的权重。这通常能带来最佳性能,但也是最耗费数据的方法。 小样本 (Few-Shot, FS): 在推理阶段,向模型提供一个包含少量任务演示的提示 (prompt) 。 例如,英译法任务: english: sea otter => french: loutre de mer english: peppermint => french: menthe poivrée english: cheese => french: 这里的 K 很小——通常 10–100 个示例可以放入 2048 token 的上下文窗口中。模型权重不会被更新;模型的“学习”完全发生在提示的上下文中。 ...

[Evaluating Large Language Models Trained on Code 🔗](https://arxiv.org/abs/2107.03374)

深入 Codex:驱动 GitHub Copilot 的 AI 结对程序员

几十年来,能够自己编写代码的 AI 一直是计算机科学领域的“圣杯”。我们在科幻作品中曾瞥见过这样的未来,但在现实中,教会机器掌握编程所需的 逻辑、创造力 和 精确性 一直是一项巨大的挑战。 当 GPT-3 这样的大型语言模型 (LLM) 出现时,它们展现出一种令人惊讶、尽管还很初级的能力——能够根据自然语言提示生成简单的代码片段,即便它们并没有经过专门的代码训练。 这引出了一个发人深省的问题:** 如果我们用一个强大的语言模型,并且专门在代码上对其进行训练,会发生什么?** 这正是 OpenAI 在 2021 年发表的里程碑论文《评估在代码上训练的大型语言模型》背后的核心思想。该论文介绍了 Codex——一个在 GitHub 海量公开代码库上进行微调的 GPT 模型,也是广受欢迎的 GitHub Copilot 工具的核心驱动力。 研究人员不仅构建了一个模型,还提出了一种全新的评估方法,超越了模糊的文本匹配,直接关注真正重要的问题:** 代码是否真的可运行?** 在本文中,我们将深入探讨这篇论文: Codex 是如何训练的。 研究人员如何构建 HumanEval 基准来评估“功能正确性”。 为什么生成多种可能的解决方案能显著提升解题能力。 Codex 仍存在哪些局限。 将这样的工具释放到世界,会带来哪些深远而广泛的影响。 如何评价 AI 的代码? 在讨论 Codex 之前,我们需要先解答一个根本问题:** 如何评估 AI 生成的代码?** 传统上,自然语言处理中的生成模型会使用 BLEU 分数等指标来评估——它通过比较输出与参考文本,衡量词语的重叠度。 但这种方法在代码领域却完全失效。 考虑两个将数字翻倍的 Python 函数: 1 2 3 4 5 6 7 8 # 参考解决方案 def double(x): return x * 2 # AI 生成的解决方案 def double_number(num): result = num + num return result 这两个函数在功能上完全等价——对所有输入都返回相同结果。 但是,BLEU 会因为变量名和结构不同而给它们很低的评分;反之,它可能会给文本相似度很高但功能上是错误的代码打高分。 ...

2021-07
[Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity 🔗](https://arxiv.org/abs/2101.03961)

Switch Transformer:一个出乎意料高效的万亿参数 AI 模型

在人工智能 (AI) 领域——尤其是在自然语言处理 (NLP) 领域——过去几年的口号一直是 “越大越好”。我们见证了 GPT-3、T5 和 Megatron 等一系列巨型语言模型的诞生,每一个都在不断刷新规模和性能的极限。扩展这些模型释放了令人惊叹的能力,从撰写连贯的文章到生成代码。但这背后是高昂的代价: 天文数字般的计算成本。训练这些庞大的密集模型——即每个参数在处理每一个输入时都会被使用——需要超级计算机并消耗巨量能源。 这就引出了一个关键问题: 我们能否在不承受高昂计算费用的情况下,继续享受规模带来的好处?如果我们不通过扩展模型的每一个部分来使其变大,而是增加更多专门化的部分,并且只在特定输入时使用相关部分,会有什么效果? 这正是谷歌研究院一篇开创性论文 《Switch Transformers: 利用简单高效的稀疏性扩展至万亿参数模型》 背后的核心思想。作者们提出了一种新架构,它能扩展到超过 一万亿个参数,同时保持每个输入的计算成本不变。结果如何?一个比密集模型快 4–7 倍的模型,从根本上改变了训练大型 AI 模型的经济学。 在这篇文章中,我们将深入探讨 Switch Transformer。我们将解析稀疏性和混合专家 (Mixture of Experts, MoE) 的概念,探索作者们引入的巧妙架构与训练简化方法,并分析其惊人的成果——让万亿参数模型比以往任何时候都更高效。 背景: 密集模型的问题所在 在领略 Switch Transformer 的精妙之前,我们需要回顾一下它所改进的架构: 标准的密集 Transformer。 一个密集模型就像一个委员会,其中每个成员都必须对每一项决策进行投票。当 Transformer 处理一个句子时,每个词元 (token) 都会经过模型中每一个参数的处理。将参数数量加倍,所需计算量 (以 FLOPs——浮点运算次数衡量) 也会大致加倍。这种“暴力”扩展方式正是 T5 和 GPT-3 等模型所采用的。虽然有效,但成本极高。 另一种选择是稀疏性,或称条件计算。想象一个由专家组成的委员会: 当出现财务问题时,只有经济学家参与;当涉及法律问题时,只有律师响应。这种方式效率高得多。在稀疏神经网络中,对于任何给定输入,只有一部分参数——即专家——会被激活。总参数量可以“大得惊人”,但由于每次输入只激活少量参数,计算成本保持稳定。 这个想法并不新鲜。它源于混合专家 (MoE) 模型的原理,该模型在 20 世纪 90 年代被提出,并在 2017 年由 Noam Shazeer 等人为深度学习进行了现代化改造。在 MoE 模型中,一个路由器网络会学习将每个输入发送给少量专家子网络。然而,过去的 MoE 模型一直受到结构复杂、专家间通信开销大以及训练不稳定等问题困扰。 Switch Transformer 论文直面这些问题,简化了 MoE 概念,创造出一个稳定、高效且可无限扩展的模型。 ...

2021-01
[ZeRO: Memory Optimizations Toward Training Trillion Parameter Models 🔗](https://arxiv.org/abs/1910.02054)

从 ZeRO 到万亿:深入探究巨型 AI 模型背后的内存优化技术

人工智能领域正在进行一场军备竞赛,但武器不是导弹,而是参数。从 BERT (3.4 亿) 到 GPT-2 (15 亿) 再到 T5 (110 亿) ,我们看到了一个清晰的趋势: 更大的模型往往能带来更高的准确率。但这股不懈的增长潮流也伴随着高昂的代价——训练这些庞然大物需要天文数字般的内存,远远超出了单个 GPU 的处理能力。 试想一下: 即便是像 GPT-2 这种参数量为 15 亿的中等规模模型,在使用标准方法训练时,仅训练状态就需要超过 24 GB 的内存。这已经触及了高端 32 GB GPU 的极限——而且这还没算上激活值和所有临时数据。那么,我们究竟如何才能训练拥有数十亿、数百亿甚至万亿参数的模型呢? 标准方法——数据并行——可以扩展计算能力,但无法延展内存容量。它会在每个 GPU 上复制整个模型,所以无论你增加多少 GPU,都会遇到内存瓶颈。模型并行 (将模型切分到不同 GPU 上) 可以绕过这堵墙,但实现起来出了名的困难,并且在跨越单机规模时,由于节点间通信较慢,性能会急剧下降。 这正是微软研究团队着手解决的挑战。他们在开创性的论文《ZeRO: 迈向万亿参数模型训练的内存优化》 (ZeRO: Memory Optimizations Toward Training Trillion Parameter Models) 中,提出了一种新颖且优雅的方案,从根本上改变了训练大规模模型的成本结构。ZeRO,即**零冗余优化器 **(Zero Redundancy Optimizer) 的缩写,是一套内存优化技术,它能让模型大小随着 GPU 数量线性扩展,同时保持高计算效率。 内存消耗大户: GPU 显存都去哪儿了? 在领会 ZeRO 的精妙之前,我们首先需要理解为什么训练模型所消耗的内存远不止存储其参数那么简单。训练过程中的显存占用主要分为两大类: 模型状态 (Model States) 残余状态 (Residual States) 模型状态 对大型模型而言,这是最大的显存消耗者,包含: 参数 (Parameters) ——训练过程中学习到的权重和偏置。 梯度 (Gradients) ——在反向传播时计算得到,用于更新参数,大小与参数相同。 优化器状态 (Optimizer States) ——由优化器 (如 Adam) 维护的额外变量,例如动量 (momentum) 和方差 (variance) ,用于实现自适应学习率。 混合精度训练会加剧这一问题。为了利用现代 GPU 上的 Tensor Core,训练通常采用 FP16 格式。但为了保证稳定性,需要保留 FP32 的主副本以及 FP32 格式的优化器状态。 ...

2019-10