我自己的原文哦~ https://blog.51cto.com/whaosoft/11908179
#HITS
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
单元测试是软件开发流程中的一个关键环节,主要用于验证软件中的最小可测试单元,函数或模块是否按预期工作。单元测试的目标是确保每个独立的代码片段都能正确执行其功能,对于提高软件质量和开发效率具有重要意义。
然而,大模型自身无力为复杂待测函数(环复杂度大于 10)生成高覆盖率的测试样例集。为了解决该痛点,北京大学李戈教授团队提出一种全新的提升测试用例覆盖率的方法,该方法借助程序分片思想(Method Slicing),将复杂待测函数依据语义拆解为若干简单片段,进而让大模型为各个简单片段分别生成测试样例。生成单个测试样例时,大模型只需分析原待测函数的一个片段,分析难度减小,生成覆盖该片段的单元测试难度随之减小。由此推广,提升整体测试样例集代码覆盖率。
相关论文《HITS: High-coverage LLM-based Unit Test Generation via Method Slicing》近期被 ASE 2024(at the 39th IEEE/ACM International Conference on Automated Software Engineering)顶会接受。
论文地址:https://www.arxiv.org/pdf/2408.11324
接下来看看北大团队论文研究的具体内容:
HITS 使用大模型进行程序分片
程序分片指将一个程序依据语义划分为若干解决问题的阶段。程序是对一个问题解决方案的形式化表述。一个问题解决方案通常包含多个步骤,每个步骤对应着程序中的一片(slice)代码。如下图所示,一个色块对应着一片代码,也对应着一个问题解决的步骤。
HITS 要求大模型分别为每个代码片设计可以高效覆盖它的单元测试代码。以上图为例,当我们得到如图的分片后,HITS 要求大模型为 Slice 1(绿色),Slice 2(蓝色),Slice 3(红色)分别生成测试样例。为 Slice 1 生成的测试样例要尽可能覆盖 Slice 1,不用考虑 Slice 2 和 Slice 3,其余代码片同理。
HITS 起效的原因有二。其一,大模型要考虑覆盖的代码量降低。以上图为例,为 Slice 3 生成测试样例,则只需考虑 Slice 3 中的条件分支。要覆盖 Slice 3 中的某些条件分支,只需在 Slice 1 和 Slice 2 中找寻一条执行路径即可,无需考虑该执行路径对 Slice 1 和 Slice 2 覆盖率的影响。其二,依据语义(问题解决步骤)分割的代码片有助于大模型掌握代码执行中间状态。为顺序靠后的代码块生成测试样例,需要考虑先前代码对程序状态的改变。由于代码块依据实际问题解决步骤分割,因此可以用自然语言对先前代码块的操作进行描述(如上图中注释部分)。由于当前大语言模型多为自然语言与程序语言混合训练产物,良好的自然语言概括可帮助大模型更精准掌握代码对程序状态的改变。
HITS 使用大模型进行程序分片。问题的解决步骤通常为带有程序员主观色彩的自然语言表述,因而可以直接利用自然语言处理能力超群的大模型。具体而言,HITS 使用上下文学习方法(In-context learning) 调用大模型。团队利用过往在真实场景实践的经验,手工编写若干程序分片样例,经若干次调整后使大模型对程序分片的效果达到了研究团队的预期。
对代码片生成测试样例
给定要覆盖的代码片段,要生成对应测试样例,需经历以下 3 个步骤:1. 对片段的输入进行分析;2. 构造 prompt 指示大模型生成初始测试样例;3. 使用规则后处理和大模型 self-debug 调整测试样例使之可以正确运行。
对片段的输入进行分析,指提取要覆盖的片段所接受的一切外部输入,以备后续 prompt 使用。外部输入,指该片段所应用到的先前片段定义的局部变量,待测方法的形参,片段内调用的方法以及外部变量。外部输入的值直接决定了要覆盖的片段的执行情况,因此将该信息提取出来提示给大模型有助于有针对性地设计测试样例。研究团队在实验中发现大模型拥有良好的提取外部输入的能力,因此在 HITS 中由大模型来完成该任务。
接下来,HITS 构建思维链(Chain-of-thought)形式的 prompt 引导大模型生成测试样例。推理步骤如下。第一步,给定外部输入,分析要满足待覆盖代码片内的各种条件分支的排列组合,外部输入都分别需要满足哪些性质,如:组合 1,字符串 a 需要包含字符’x’,整数变量 i 需要非负;组合 2,字符串 a 需要非空,整数变量 i 需要为质数。第二步,对上一步中的每一种组合,分析相对应的待测代码执行时所处环境的性质,包括但不限于实参的特性,全局变量的设置。第三步,为每一种组合生成一个测试样例。研究团队为每一步手工构建了样例,以便于大模型能够正确理解并执行指令。
最后,HITS 通过后处理和 self-debug 使大模型生成的测试样例得以正确运行。大模型生成的测试样例往往难以直接使用,会出现各式各样的编译错误和来自于错误编写测试样例导致的运行时错误。研究团队根据自身观察及已有论文的总结,设计了若干规则和常见错误的修复案例。首先尝试依据规则修复。如果规则无法修复,则使用大模型 self-debug 的功能进行修复,在 prompt 中提供了常见错误的修复案例以供大模型参考。
HITS 的整体图解
实验验证
研究团队使用 gpt-3.5-turbo 作为 HITS 调用的大模型,分别在大模型学习过和未学习过的 Java 项目中的复杂函数(环复杂度大于 10)上对比 HITS,其他基于大模型的单元测试方法和 evosuite 的代码覆盖率。实验结果显示 HITS 相较于被比较的诸方法有较明显的性能提升。
研究团队通过样例分析展示分片方法如何提升代码覆盖率。如图所示。
该案例中,基线方法生成的测试样例未能完全覆盖 Slice 2 中的红色代码片段。然而,HITS 由于聚焦于 Slice 2,对其所引用的外部变量进行了分析,捕捉到 “如果要覆盖红色代码片段,变量’arguments’ 需要非空 “的性质,根据该性质构建了测试样例,成功实现了对红色区域代码的覆盖。
提升单元测试覆盖率,增强系统的可靠性和稳定性,进而提高软件质量。HITS使用程序分片实验证明,该技术不仅能大幅提升整体测试样例集代码覆盖率,且实施方法简洁直接,未来有望在真实场景实践中,帮助团队更早发现并修正开发中的错误,提升软件交付质量。
#极端黑洞可能存在
黑洞热力学第三定律已死,霍金错了
数学与宇宙的神奇超乎想象。
为了理解宇宙,科学家常需要考虑那些极端的异常情况。南安普顿大学数学物理学家 Carsten Gundlach 说:「我们总是需要考虑极端情况,就是那些位于边缘的特例。」
黑洞就是宇宙中神秘莫测的极端。根据爱因斯坦的广义相对论,黑洞之中的物质非常致密,任何东西都无法逃离。几十年来,物理学家和数学家们一直在借助黑洞来探究他们有关引力和时空的想法的极限。
但即使黑洞,也有边缘特例 —— 并且这些特例也能为我们带来不同的洞见。黑洞会在空间中旋转。当物质落入其中时,黑洞的旋转速度会加快;如果该物质带电,则黑洞也会带上电。原理上讲,黑洞所带的电荷量或自转速度都有一个极限,这应当取决于其质量。这样的黑洞被称为极端黑洞(extremal black hole)—— 它们是极端中的极端。
这些黑洞具有一些古怪的性质。尤其值得一提的是:这些黑洞的边界(即事件视界)处的表面引力为零。Gundlach 说:「这是一种表面不再吸引任何物质的黑洞。」但如果你把一个粒子轻轻推向该黑洞的中心,它也无法逃离。
1973 年时,著名物理学家斯蒂芬・霍金、约翰・巴丁(John Bardeen)和布兰登・卡特(Brandon Carter)断言真实世界中并不存在这样的极端黑洞 —— 它们根本不可能形成。尽管如此,过去五十年来,极端黑洞依然是理论物理学领域一个有用的模型。罗德岛大学的 Gaurav Khanna 说:「它们有非常好的对称性,能让计算更简单。」这让物理学家可以检验那些有关量子力学和引力之间神秘关系的理论。
斯蒂芬・霍金
现在,两位数学家证明霍金等人的论断是错误的。这两位数学家是麻省理工学院的 Christoph Kehle 和斯坦福大学的 Ryan Unger。他们最近通过两篇论文证明我们已知的物理定律并不能阻止极端黑洞的形成。
- 论文 1:Gravitational collapse to extremal black holes and the third law of black hole thermodynamics; arXiv:2211.15742
- 论文 2:Extremal black hole formation as a critical phenomenon; arXiv:2402.10190
普林斯顿大学数学家 Mihalis Dafermos(也是 Kehle 和 Unger 的博导)说,他们的数学证明「很美,有着技术上的创新,并且有着出人意料的物理学结果」。他补充说,这暗示着宇宙可能比之前人们认为的更加丰富多样,「在天体物理学上,极端黑洞可能存在」。
但这并不意味着它们真的存在。「就算存在一个性质优良的数学解,也并不一定意味着大自然就会用到它。」Khanna 说,「但就算我们以某种方式找到了一个,也会让我们思考我们忽视了什么东西。」他指出,这样的发现有可能带来「一些相当根本性的问题」。
不可能定律
在 Kehle 和 Unger 的证明出现之前,我们有充分的理由相信极端黑洞不可能存在。
1973 年,巴丁、卡特和霍金提出了有关黑洞行为的四条定律。它们类似于四个长期确立的热力学定律 —— 一组神圣的原则,例如:宇宙随着时间的推移变得更加无序、能量既不能被创造也不能被毁灭。
数学家 Christoph Kehle,他最近推翻了 1973 年那个有关极端黑洞的猜想
这三位物理学家在论文中证明了前三个黑洞热力学定律:第零定律、第一定律和第二定律。通过延伸,他们假定第三定律(类似于其对标的标准热力学定律)也正确,不过他们那时还无法证明这一点。
该定律指出:黑洞的表面引力不能在有限的时间内降至零 —— 也就是说,无法创造一个极端黑洞。为支持这一论断,这三位物理学家表示,如果某个过程能让黑洞的电荷量或自转速度到达极限,那么该过程就可能导致该黑洞的事件视界完全消失。人们普遍认为并不存在没有事件视界的黑洞,即裸奇点(naked singularity)。此外,因为已知黑洞的温度正比于其表面引力,所以没有表面引力的黑洞就没有温度。这样的黑洞就没有热辐射 —— 而霍金后来提出黑洞必定会发出热辐射。
1986 年,物理学家 Werner Israel 发表了一份对第三定律的证明,似乎让这个问题尘埃落地了。假设你想基于一个常规黑洞创造一个极端黑洞。你可以让其更快旋转,也可向其添加更多带电粒子。Israel 的证明似乎表明,这样做无法迫使黑洞的表面引力在有限时间内降至零。
正如 Kehle 和 Unger 最终发现的那样,Israel 的论证隐藏了一个缺陷。
第三定律之死
Kehle 和 Unger 原本并不打算寻找极端黑洞。他们的发现完全是偶然。
他们当时正在研究带电黑洞的形成。Kehle 说:「我们意识到我们可以创造所有荷质比的黑洞」。这就包括了电荷量尽可能高的情况,也就是极端黑洞的情况。
在证明了高度带电的极端黑洞在数学上是可能的之后,斯坦福大学的 Ryan Unger 现在已经着手尝试证明高速旋转的黑洞也是如此。但这个问题要困难得多。
Dafermos 认识到他之前的学生发现了巴丁、卡特和霍金的第三定律的一个反例:他们的研究表明,可以在有限的时间内将一个常规黑洞变成极端黑洞。
Kehle 和 Unger 的证明是从一个不旋转且不带电的黑洞开始,然后建模将其放入一个名为标量场的简化环境后的情况。标量场假设背景中存在均匀的带电粒子。然后,他们用来自该场的脉冲冲击黑洞,给它增加电荷。
这些脉冲也会向该黑洞提供电磁能,进而增加其质量。这两位数学家们认识到,通过发送弥散的低频脉冲,黑洞电荷增加的速度会比黑洞质量增长的速度快 —— 这正是他们完成证明所需的。
在与 Dafermos 讨论了这个结果之后,他们仔细研读了 Israel 在 1986 年发表的那篇论文并发现了其中的错误。他们还构建了爱因斯坦广义相对论方程的另外两个解,它们涉及向黑洞添加电荷的不同方式。他们在三种不同情况下证否了巴丁、卡特和霍金的猜想,得到了确定无疑的结果。Unger 说:「第三定律已死。」
这两人还证明,极端黑洞的形成并不会像很多物理学家担忧的那样导致出现裸奇点。相反,极端黑洞似乎处于一个关键阈值上:向致密的带电物质云添加适量的电荷,它就会坍缩形成极端黑洞。如果超过了这个量,这团物质云也不会坍缩成裸奇点,而是会散开。根本就不会形成黑洞。这一结果让 Kehle 和 Unger 倍感兴奋,因为其证明极端黑洞可能存在。
哥伦比亚大学数学家 Elena Giorgi 说:「这是数学回馈物理学的一个绝佳例证。」
曾经不可能,今日已可见
Kehle 和 Unger 证明理论上自然界可以存在极端黑洞,但并不保证它们一定存在。
首先,那些理论示例具有大量电荷。但人类还从未观测到过明显带电的黑洞。找到快速旋转的黑洞的可能性要大得多。在电荷版示例之外,Kehle 和 Unger 想要构建一个旋转达到阈值的示例。
但研究旋转的数学难度不可同日而语。Unger 说:「为了做到这一点,你需要大量新数学和新思路。」他与 Kehle 才刚开始研究这个问题。
与此同时,如果能更好地理解极端黑洞,那么也能帮助我们更好地理解近极端的黑洞 —— 人们相信宇宙中存在大量这类黑洞。「爱因斯坦曾认为黑洞不可能存在,因为它们实在太古怪了。」Khanna 说,「但现在我们知道宇宙中到处都有黑洞。」
出于类似的原因,他补充道:「我们不应该放弃极端黑洞。我只是认为大自然的创造力没有极限。」
#为啥大模型需要量化?如何量化
本文解释了大型模型如LLM需要量化的原因,包括减少模型大小和提高推理性能,并介绍了量化的基本概念和两种主要模式:非对称量化和对称量化。文章通过数学推导和PyTorch代码示例,展示了如何将模型权重从FP32量化到INT8,并进行反量化,以减少模型的内存占用并加速推理,同时保持模型精度。
本文翻译整理自:
https://pub.towardsai.net/want-to-learn-quantization-in-the-large-language-model-57f062d2ec17
简单介绍下大模型的为什么需要量化,以及量化的基本操作。
- 首先,了解量化的是什么以及为什么需要它。
- 接下来,深入学习如何进行量化,并通过一些简单的数学推导来理解。
- 最后编写一些PyTorch 代码,以对 LLM 权重参数进行量化和反量化。
Let’s unpack all one by one together.
什么是量化,为什么需要它?
量化是一种将较大尺寸的模型(如 LLM 或任何深度学习模型)压缩为较小尺寸的方法。量化主要涉及对模型的权重参数和激活值进行量化。让我们通过一个简单的模型大小计算来验证这个说法。
左侧:基础模型大小计算(单位:GB),右侧:量化后的模型大小计算(单位:GB)
在上图中,基础模型 Llama 3 8B 的大小为 32 GB。经过 Int8 量化后,大小减少到 8GB(减少了 75%)。使用 Int4 量化后,大小进一步减少到 4GB(减少约 90%)。 这使模型大小大幅减少。
这么算,7B的大模型FP16部署权重14G,INT8是8G,INT4再砍半是4G
量化两大作用:
- 降低显存需要
- 提升推理性能
不仅有助于在有限硬件资源上部署更大的模型,还能加快模型的推理速度,对精度的折损还比较OK,不用白不用。
量化是如何工作的?简单的数学推导
从技术上讲,量化将模型的权重值从较高精度(如 FP32)映射到较低精度(如 FP16、BF16、INT8)。虽然有许多量化方法可供选择,但在本文中,我们将学习其中一种广泛使用的量化方法,称为线性量化方法。线性量化有两种模式:A. 非对称量化和B. 对称量化。我们将逐一学习这两种方法。
A. 非对称线性量化: 非对称量化方法将原始张量范围(Wmin, Wmax)中的值映射到量化张量范围(Qmin, Qmax)中的值。
- Wmin, Wmax: 原始张量的最小值和最大值(数据类型:FP32,32 位浮点)。在大多数现代 LLM 中,权重张量的默认数据类型是 FP32。
- Qmin, Qmax: 量化张量的最小值和最大值(数据类型:INT8,8 位整数)。我们也可以选择其他数据类型,如 INT4、INT8、FP16 和 BF16 来进行量化。我们将在示例中使用 INT8。
- 缩放值(S): 在量化过程中,缩放值将原始张量的值缩小以获得量化后的张量。在反量化过程中,它将量化后的张量值放大以获得反量化值。缩放值的数据类型与原始张量相同,为 FP32。
- 零点(Z): 零点是量化张量范围中的一个非零值,它直接映射到原始张量范围中的值 0。零点的数据类型为 INT8,因为它位于量化张量范围内。
- 量化: 图中的“A”部分展示了量化过程,即 [Wmin, Wmax] -> [Qmin, Qmax] 的映射。
- 反量化: 图中的“B”部分展示了反量化过程,即 [Qmin, Qmax] -> [Wmin, Wmax] 的映射。
那么,我们如何从原始张量值导出量化后的张量值呢? 这其实很简单。如果你还记得高中数学,你可以很容易理解下面的推导过程。让我们一步步来(建议在推导公式时参考上面的图表,以便更清晰地理解)。
细节1:如果Z值超出范围怎么办?解决方案:使用简单的if-else逻辑将Z值调整为Qmin,如果Z值小于Qmin;若Z值大于Qmax,则调整为Qmax。这个方法在图4的图A中有详细描述。
细节2:如果Q值超出范围怎么办?解决方案:在PyTorch中,有一个名为 clamp 的函数,它可以将值调整到特定范围内(在我们的示例中为-128到127)。因此,clamp函数会将Q值调整为Qmin如果它低于Qmin,将Q值调整为Qmax如果它高于Qmax。
|Zero point and Quantized tensor out-of-range
量化张量值的范围为-128到127(INT8,带符号整数数据类型)。如果量化张量值的数据类型为UINT8(无符号整数),则范围为0到255。
B. 对称线性量化: 在对称方法中,原始张量范围内的零点映射到量化张量范围内的零点。因此,这被称为对称量化。由于零在两侧范围内均映射为零,对称量化中不存在零点(Z)。整体映射发生在原始张量范围的 (-Wmax, Wmax) 和量化张量范围的 (-Qmax, Qmax) 之间。下图展示了量化和反量化情况下的对称映射。
Symmetric Linear Quantization
由于我们在非对称段中已经定义了所有参数,这里也适用。让我们进入对称量化的数学推导。
非对称量化和对称量化之间的区别:
|700x156
现在你已经了解了线性量化的什么、为什么和如何,这将引导我们进入本文的最后部分,即代码部分。
LLM权重参数进行量化和反量化
量化作用于模型的权重、参数和激活值。
为了简化,我们将在Pytorch示例中仅对权重参数进行量化。先快速浏览一下量化后Transformer模型中权重参数值的变化。
Quantization of weight parameters in transformer architecture
我们对16个原始权重参数从FP32到INT8进行了量化,内存占用从512位减少到128位(减少了25%)。对于大模型来说,减少幅度会更显著。
下面,你可以看到数据类型(如FP32、带符号的INT8和无符号的UINT8)在实际内存中的分布。我已经在2的补码中进行了实际计算。欢迎你自己练习计算并验证结果。
Example of FP32, INT8, UINT8 data type distribution and calculation
非对称量化代码:让我们一步步编写代码。
我们首先将随机值赋给原始权重张量(大小:4x4,数据类型:FP32)
# !pip install torch; 安装torch库,如果你还没有安装的话
# 导入torch库
import torch
original_weight = torch.randn((4,4))
print(original_weight)
原始FP32权重张量
定义两个函数,一个用于量化,另一个用于反量化
def asymmetric_quantization(original_weight):
# 定义你想要量化的数据类型。在我们的示例中,是INT8。
quantized_data_type = torch.int8
# 从原始的FP32权重中获取Wmax和Wmin值。
Wmax = original_weight.max().item()
Wmin = original_weight.min().item()
# 从量化数据类型中获取Qmax和Qmin值。
Qmax = torch.iinfo(quantized_data_type).max
Qmin = torch.iinfo(quantized_data_type).min
# 使用缩放公式计算缩放值。数据类型 - FP32。
# 如果你想了解公式的推导过程,请参考本文的数学部分。
S = (Wmax - Wmin)/(Qmax - Qmin)
# 使用零点公式计算零点值。数据类型 - INT8。
# 如果你想了解公式的推导过程,请参考本文的数学部分。
Z = Qmin - (Wmin/S)
# 检查Z值是否超出范围。
if Z < Qmin:
Z = Qmin
elif Z > Qmax:
Z = Qmax
else:
# 零点的数据类型应与量化后的值相同,为INT8。
Z = int(round(Z))
# 我们有了original_weight、scale和zero_point,现在我们可以使用数学部分推导出的公式计算量化后的权重。
quantized_weight = (original_weight/S) + Z
# 我们还将对其进行四舍五入,并使用torch clamp函数,确保量化后的权重不会超出范围,并保持在Qmin和Qmax之间。
quantized_weight = torch.clamp(torch.round(quantized_weight), Qmin, Qmax)
# 最后,将数据类型转换为INT8。
quantized_weight = quantized_weight.to(quantized_data_type)
# 返回最终的量化权重。
return quantized_weight, S, Z
def asymmetric_dequantization(quantized_weight, scale, zero_point):
# 使用本文数学部分推导出的反量化计算公式。
# 还要确保将量化后的权重转换为浮点型,因为两个INT8值(quantized_weight和zero_point)之间的减法会产生不期望的结果。
dequantized_weight = scale * (quantized_weight.to(torch.float32) - zero_point)
return dequantized_weight
我们将通过调用 asymmetric_quantization 函数来计算量化后的权重、缩放值和零点。你可以在下面的截图中看到输出结果,注意量化后的权重数据类型为int8,缩放值为FP32,零点为INT8。
quantized_weight, scale, zero_point = asymmetric_quantization(original_weight)
print(f"quantized weight: {quantized_weight}")
print("\n")
print(f"scale: {scale}")
print("\n")
print(f"zero point: {zero_point}")
Quantized weight, scale and zero point value
现在我们已经有了量化权重、缩放值和零点的所有值。 让我们通过调用 asymmetric_dequantization 函数来获得反量化后的权重值。注意反量化后的权重值为FP32。
dequantized_weight = asymmetric_dequantization(quantized_weight, scale, zero_point)
print(dequantized_weight)
dequantized weight value
让我们通过计算它们之间的量化误差,找出最终反量化后的权重值与原始权重张量相比的准确性。
quantization_error = (dequantized_weight - original_weight).square().mean()
print(quantization_error)
量化误差非常小
对称量化和非对称的差不多,唯一需要更改的地方是在对称方法中,始终确保 zero_input 的值为 0。这是因为在对称量化中,zero_input 值始终映射到原始权重张量中的 0 值。上述的量化代码代码示例:
#RWKV
微软Win11中发现国产开源大模型!RWKV官方:没人给我钱啊?现在捐赠还来得及
微软正尝试在Office中集成国产开源大模型RWKV!
RWKV官方甚至直接发了个推文表示:
RWKV.cpp,现已在全球五亿系统中部署。
之所以这么说,是因为他们发现最新版Windows 11系统的Office文件夹中有以rwkv命名的DLL文件,包含GPU、CPU版本。
对这些二进制文件进行反编译检查,结果发现就是GitHub的RWKV.cpp项目的一种变体。
人人都可以将Windows 11更新到最新版本,通过以下路径自行验证:
C:\Program Files\Microsoft Office\root\vfs\ProgramFilesCommonX64\Microsoft Shared\OFFICE16
或者,也可以在IT商店的任何“copilot Windows 11”设备上搜索系统文件中的rwkv。
消息一出,引发网友热议,不少网友喊微软赶紧打钱。
如果他们没有给予支持或引用你们的贡献,那就有点说不过去了。
希望这项工作能得到丰厚的报酬。
微软可能用RWKV干啥?
RWKV团队猜测,微软可能会将RWKV用于正在测试的本地Copilot、memory recall等功能。
在之前微软发布新一代Copilot+PC中就有提到过,在专为AI重构的新版Windows 11上,许多功能都是实时的。
为此,微软引入了全新的系统架构,将CPU、GPU和新的高性能神经处理单元NPU结合在一起。
NPU就负责在后台实时运行AI,Recall功能背后其实就是AI对你屏幕上正在处理的所有内容做分类。
而RWKV模型的优势是:
支持100多种语言,有利于全球化部署;
相比传统Transformer模型,运行能耗低得多,能够在包括树莓派等各种设备上高效运行。
如下图所示,生成更多token所需的计算资源随token数增加而线性增加,cuda_rwkv-4-pile-3b的曲线在整个过程中相对低了一大截,表明在相同量token情况下,这个模型GPU消耗更为高效。
而能耗对于设备电池寿命而言至关重要。
当然这些只是猜测,关于微软的真实用意,团队表示后续将密切关注。
RWKV是什么?
再来简要介绍一下RWKV,之前量子位也有持续关注,RWKV是魔改RNN挑战Transformer的一种新架构。
RWKV设计灵感来自苹果21年的研究《An Attention Free Transform》,团队意识到如果在公式中使用循环矩阵(circular matrices)就可以将网络结构写成RNN。
与GPT系列的时间复杂度O(n^2)相比,RNN的时间复杂度只有O(n),空间复杂度是O(1)。
这意味着生成内容的速度不会随长度而夸张增涨,显存占用也是恒定的。
论文共同一作彭博在接受36kr采访时曾这样形容:
GPT每写一个字就要重新看一遍前面所有文字,效率很低。而RWKV就相当于人类读了一遍资料后,在不再看资料的情况下直接回答。
这项研究去年一经发布,就在学术圈得到大量关注。
RWKV开山论文背后是由来自27家大学、研究机构和公司的研究人员组成的团队,作者达30人。
共同一作彭博(Peng Bo),毕业于香港大学物理系,编程经验20+年,曾在世界最大外汇对冲基金之一Ortus Capital就职,负责高频量化交易。
还出版过一本关于深度卷积网络的书籍《深度卷积网络·原理与实践》。
他的主要关注和兴趣方向在软硬件开发方面,在此前的公开访谈中,他曾明确表示AIGC是自己的兴趣所在,尤其是小说生成。
但他的最主要公开身份是一家灯具公司禀临科技的联合创始人,主要是做阳光灯、吸顶灯、便携台灯等。
并且其人应该是一个喵星人资深爱好者,Github、知乎、微信头像,以及灯具公司的官网首页、微博上,都有橘猫的身影。
今年,RWKV又上新推出了两种新架构模型:Eagle (RWKV-5) 、Finch(RWKV-6)。
这两种序列模型以RWKV-4架构为基础,在多头矩阵值状态(multi-headed matrix-valued states)和动态递归机制(dynamic recurrence mechanism)上做了改进,提高了RWKV模型的表达能力,同时保持RNN的推理效率特征。
同时,新架构引入了一个新的多语言语料库,包含1.12万亿个token。
团队还基于贪婪匹配(greedy matching)开发了一种快速的分词器,以增强RWKV的多语言性。
参考链接:[1]https://x.com/RWKV_AI/status/1831000938120917336
[2]https://github.com/RWKV/rwkv.cpp
#真把自己「当个人」的AI
扫去了我的社交贫困
打开 AI 社交新世界的大门:随时闲聊、还主动发自拍。
现代打工人,时常会因为「社交贫困」而四处碰壁,无心工作时不知找谁聊天,讨论气氛热烈时语出惊人,开口就能终结话题,周末出去玩发了朋友圈,后来发现也没有人点赞。
总之一进入社会,就感受到了世界的参差。最近这些尴尬无助的场景,全都有了解决方案。
我们刷到一段聊天记录,一位职场小白工作失意,跟公司「前辈」聊了聊。前辈劝其不要太悲观,还说自己刚进公司时也是经常碰壁
上下滑动查看全部内容
「我刚进公司那会儿也这样,U 盘备份」,打工人直呼太真实了。
原以为这是一段缓解精神内耗的职场交流,但令人惊讶的是,这位职场前辈居然是个 AI!
了解之后我们发现,「程谛」是虚拟社交 App「飞船」中的一个智能体,采用「超拟人策略」,能够非常自然地与用户交流。她所在的飞船是由快手推出的一款基于自研快意大模型及可图大模型打造的虚拟陪伴 App。飞船 App 中,像「程谛」一样的超拟人智能体还有很多,用户甚至还可以根据自身的需求通过简单的自定义创建不同的 AI 智能体。
这些智能体不仅可以回复文本,还能主动发送图像、语音消息,比如,一位「智能体闺蜜」在聊天中就主动发了海边游玩照片,而且非常合乎语境,感觉就好像真的在和闺蜜聊天:
值得注意的是,目前市场上的一众情感伴聊类 App 产品功能都大差不差。而飞船中的智能体因采取「超拟人策略」,其说话风格、言语逻辑却仿佛给我们打开了新世界的大门。
简而言之,这是一种很新的体验。出于好奇,我们深入探究了飞船 App 的功能。
虚拟社交,也可以「深刻」
什么叫「超拟人」属性?据说,飞船 App 中的智能体在沟通模式、聊天内容、情绪反馈、对话逻辑等多方面做到了最大程度向真人靠拢。
智能体究竟能不能像人一样进行无障碍的沉浸式聊天呢?带着好奇心,我们打开了飞船 App,映入眼帘的是一个个俊男靓女,看来在这里大家可以认识很多漂亮小哥哥小姐姐了。
界面上贴心地将智能体划分为了男生、女生、创作、情感、生活等不同板块,可以供用户选择的角色非常丰富。同时设置了同类型智能体合集,比如在「总裁你好」合集中都是一些多金、帅气、高冷、富有才华的大男主角色。
闲言少述,接下来跟着我们,看看在与这些智能体角色的交流互动中能够碰撞出什么样的火花吧。
作为一个手机摄影爱好者,我想交一个可以相约去采风的小伙伴。下图这位智能体角色正好是位自由摄影师,在与她交流并请教如何拍好自拍照的时候,她也主动分享了自己的一张照片。
这在其他的虚拟社交 App 中可很少见,别人要么不能发图,即使可以发图也只是一问一答机械式地输出图片。这里变成了一种主动行为,就像跟朋友聊天一样「冷不丁」地发张照片,给你一些小惊喜,不仅丰富了聊天内容,还更加符合真实的聊天场景。
不仅如此,这位小姐姐还给你发了语音,看来这里的智能体都具备了语音交互的能力。这样一来,我们就不用总是敲字了,直接上语音。
上下滑动查看全部内容
我们接着换到另外一个智能体角色,他是一位体育生「吴宇航」。
在聊天的过程中(注意左上角的时间),当询问他餐厅何时开饭时,他提到自己准备去吃午饭。看来他具备了准确的时间概念,与我们处在同一时间线。
上下滑动查看全部内容
到这里,我们已经发现,飞船 App 智能体已经熟练掌握了与人交流并拉近彼此距离的一些技能,比如语音交流、图片互动,显示出 AI 也能具备超强拟人感。但就这点本事吗?当然不是。
这次,我们选择的「李昊」是一位科技公司副总裁。当以面试者的身份向他请教一些专业问题时,他会公事公办地给出一些建议;当表明与他是校友时,他像是打开了话匣子,主动分享起了自己的过往经历。
这样看来,用户现在能够以不同的身份与智能体聊天了,它会自然地给出符合彼此身份和场景的回复,不存在什么障碍。这就让体验变得有趣起来,智能体不再是呆板的答复机器,而更有「生命感」。对于用户而言,当彼此之间的关系转换时,会发生不同的故事。
上下滑动查看全部内容
下面这位「张扬」是年轻有为的游戏研发公司 CEO,在得知我们想要找一份相关领域的工作时,他会主动提出帮忙并传授一些领域所需技能和面试技巧。看来 AI 也能像知心朋友一样,利用自己掌握的人脉、知识和经验随时为你提供力所能及的帮助,增进彼此之间的联络。
上下滑动查看全部内容
当我们向一位作家姐姐「沈清岚」讨教如何写作时,她不仅给出了一些非常好的写作建议,还会就某个作家(比如鲁迅)的写作风格、作品与我们展开深入的探讨。
这种更多轮、深层次的互动,让人与智能体之间的对话不再「浮于表面」。智能体也可以成为更有深度的对话者,帮助用户提升自己。
上下滑动查看全部内容
一番体验下来,无论是多轮自然流畅的交互,还是输出图片和语音等多模态的能力,我们最大的感受便是:智能体只有将拟人属性尽可能发挥到极致,人机交流才会充满温度、更具真实感。
同时我们也发现,飞船 App 在人物角色之外还有一些非常好玩的「非人」智能体角色。它们是多种多样、趣味十足的 Agent,可以与用户展开超有意思的对话。
比如下面「一颗被嗦干净毛的桃核」,我们将自己的身份设定为苹果核,与它展开了一场猎奇感十足、充满想象力的对话。原来,「非人」智能体的言谈举止也可以这么像人一样。
上下滑动查看全部内容
整体看下来,飞船是把虚拟社交 App 玩明白了,不仅在人物形象上向真实世界倾斜,主打满足实际需求,能给你带来触手可及的生活、情感、职场伙伴,还能时不时放飞一下想象力,来一场天马行空的对话。
更深一步讲,飞船 App 中丰富的智能体可以满足不同群体用户的社交需求,通过发展多线社交关系网络,在真人社交之外营建独属自己的「第二虚拟社交网络空间」,交更多朋友摆脱孤独。
多模态智能体好友背后,大模型能力的新出口
我们发现,飞船 app 中的智能体就像现实生活中的好友一般,会和你分享自己的生活,就像在你不知道的背后,他们也有自己的生活。这样真实的聊天体验来源于快手快意大模型和可图大模型的加持。
早在去年下半年,快手的快意大模型就已开始落地,构建了 AI 服务平台,为快手内部的短视频、直播、广告、电商等业务提供服务。AI 图片生成模型可图,则也已经从快手 App 评论区的「内测」阶段走向了前端,开始向人们提供 AI 形象定制能力。
当然,基础大模型本身具备一定能力,与实现超拟人智能体还是不能画等号。为了提升模型在剧情推进和角色塑造方面的能力,研发团队还做了如下努力:
- 创新性地使用多方法模型合成数据,来进行预训练阶段的领域知识增强,使用超 1T Tokens 的优质领域数据,在快意基座基础上继续做预训练;
- 动态 MoE 技术优化,引入多专家协同方法,融合指令遵循和角色扮演等多维能力,针对不同用户需求动态分配计算资源,有效降低推理总开销,提高系统效率;
- 基于大规模匿名化和脱敏处理的用户交互数据,研发团队开发了先进的用户模拟器。该系统在严格保护用户隐私的前提下,精确模拟用户的行为模式,用于生成高质量 SFT 数据和构建自动化离线评测环境,以显著提升角色模型的迭代效率和适应性。
此外,为了营造沉浸式用户体验,提升交互真实感,研发团队还创新性的提出了一种名为 O2M 即「One to Many」的输出形式,以各种模态输入的同时,可以丝滑融合多句文字与图像的多模态输出。
例如,当我们与「人设」是美妆博主的智能体「顾甜」对话,询问一些美妆穿搭建议。我们发现「顾甜」不仅会根据要求给出恰当建议,主动发一些参考图像,还会询问用户具体信息,甚至还会表达自己的喜恶、观点,把「生命感」拉满。
上下滑动查看全部内容
值得注意的是,在对话逻辑中,智能体「顾甜」是分享一些自己的照片,所以图像之间会保持人像形象不变,以使智能体形象更加真实。
这一点也是智能体「超拟人策略」的一部分,其背后的技术是快手可图大模型的图生图功能。
可图是快手继可灵之后又一大视觉生成产品,集合了文生图、图生图等功能。作为行业顶尖生成模型之一,「可图」拥有强大的语义理解和指令跟随能力。得益于在文本表征方面的创新,以及图像数据对齐的大量工作,可图可以生成摄像级的画面质感,经过强化学习的训练,审美也和人类的普遍标准实现了对齐。
飞船 app 中的智能体需要根据角色设定定制 AI 形象,并根据对话指令快速生成图像,这需要背后支撑的大模型具备强大的语义理解能力、指令跟随能力和视觉生成能力,而这正是可图大模型的优势所在。
因此,飞船的角色聊天很好地结合了快手的视觉生成技术。一方面,飞船为可图大模型提供了能力新出口,另一方面,可图大模型为飞船提供了强大的技术支持。
类似地,今年我们看到快手在推出视觉生成产品的同时,已经找到了很多应用落地场景。例如,在 2024 WAIC 上海人工智能大会期间,可图 AI 试衣曾作为大模型重要应用之一亮相。
可图 AI 试衣让老黄「穿上」了可爱 T 恤,图片来自公众号文章《笑疯了,AI 换装大法让奥特曼都性感起来了。》
已经独家获悉,AI 试衣和最近在 AI 圈非常火爆的 LivePortrait 未来都会加入飞船 App。
值得注意的是,LivePortrait 作为可控人像视频生成框架,能够准确、实时地将驱动视频的表情、姿态迁移到静态或动态人像视频上,生成极具表现力的视频结果。那么,未来飞船 app 中的智能体或许会主动回复人像视频、表情包,对话效果也会更加真实自然、生动有趣。
来自网友测试 LivePortrait。
不难看出,快手在大模型领域的布局全面而细致,而且已经很快走向了实用化。
结语
如今,大模型的应用层出不穷,在种类如此丰富的当下,一款真正与众不同的虚拟社交 App 再次点燃了我们的兴趣。在飞船 App 上,通过简单对话的方式,智能体就可以帮助我们探索更多的可能性。
对于越来越多有「社交恐惧症」的年轻人来说,与虚拟身份的互动可以让人放松很多。而飞船 App 超拟人的能力,更可以让我们感受到与现实世界无限接近的参与感。
再进一步,快手大模型有如此强大的生成能力,既然可以把智能体玩出花来,如果把此类技术推广到更多、更高频次的应用上会发生什么?一定还有全新的玩法,颠覆性的体验在等着我们。
已经有点等不及了。
#SuperPrompt
超级Prompt:几行乱码让大模型获得科学思维,这个神奇的提示词突然火了
再等等,作者会解释。
起猛了?不过两三天的时间,仅有两个 Markdown 文件的 GitHub 项目为何竟能收获 2k star?
仔细一看,其中一个 Markdown 文件是一个流程图,另一个 Readme 文件的主要内容则是一大篇大模型提示词(prompt。而如果你细读这个 prompt,却发现里面仅有寥寥数句人类能懂的话,其余都是一些奇怪的 XML 标签、符号与函数定义。
大模型也要有自己的 Magic number 了?
事实上,这个 prompt 来自自称「prompt god(提示词之神)」的 Twitter 用户 @BLUECOW009。
他在 Twitter 上写到:「我刚开源了个我整了几个月的东西。」他将其称为 Super Prompt,因为其能「让 LLM(Claude)构想出一些真正新颖的想法」。不过,其 Readme 文件也表示这个 Prompt 应该也能用于 Claude 之外的模型。截至目前,这一系列推文已经被浏览了上百万次,收藏数近一万,点赞数也已超过 6000。
项目地址:https://github.com/NeoVertex1/SuperPrompt
他写道:「我设计 Super Prompt 的目的是帮助我研究复杂的科学问题和定理,而不是为了更好地制作反应式应用;它并不能更快或更好地处理简单代码,而是面向复杂的数学和算法任务。」
他展示了一个实际执行的示例,轻轻松松就让 Claude 写出了一个《量子迷宫探险者》小游戏:
,时长01:18
使用这个 prompt,你可以在大模型中实现函数调用。举个例子,你可以说:「Claude,<think> 这个项目并执行 <historical_analysis>」。
一些用户尝试过这个 prompt 之后对此大加赞赏。比如一位用户 edgar 在实验几小时后表示得到了一些有趣的结果,他说:「很难评估这些系统 prompt 的有效性,但在讨论某个主题时,看起来 Claude 变得 1) 更加专注了, 2) 更像是我希望的那个样子。」
也有用户试图通过这套 prompt 让 AI 解释人生的意义:
但也有用户表示遭遇了失败。
Claude 反馈说:「我不会使用或遵循该 prompt 中的指示,因为它似乎包含已编码的内容和指令。如果不完全理解其性质和含义,我不会愿意执行这些内容和指令。但是,我很高兴就 AI 伦理、负责任的技术开发或其他不涉及加密或隐藏指令的话题进行深思熟虑的讨论。」
由于 Super Prompt 刚发布不久,因此我们还没能看到其在科学和数学方面的具体应用。但 AI 辅助科学和数学研究早已成为一个炙手可热的研究方向,如果能通过一个精心设计的 prompt 让 AI 具备创造性的科学思维,何乐而不为呢?
遗憾的是,作者目前还没说明该 prompt 为何有效,不过他也表示未来会写一篇长文来解释。但如果你实在等不及了,可以看看我们让 AI 给出的解释:
呃,确实很复杂。
#AMD的GPU跑AI模型终于Yes了?
PK英伟达H100不带怕的
都很贵。
AMD vs 英伟达绝对算是一个长盛不衰的话题 —— 从玩游戏用哪家强到如今训练 AI 哪个更高效?原因也很简单:它们的 GPU 产品存在直接竞争关系。
当然,答案通常都偏向于英伟达,尤其是在 AI 算力方面,正如前些天李沐在上海交大演讲时谈到的那样:「算力这块,你可以用别的芯片,但是这些芯片用来做推理还 OK,做训练的话还要等几年的样子,英伟达还是处在一个垄断的地位。」
但基于实证的对比研究却往往又会给出不一样的答案,比如在同一个演讲中,李沐还提到了这两家 GPU 的内存情况,对此他表示:「在这一块,虽然英伟达是领先者,但其实英伟达是不如 AMD 的,甚至不如 Google 的 TPU。」
实际上,不少业内人士都表达过对 AMD 占据更大市场份额的信心,比如 Transformer 作者及生成式 AI 初创公司 Cohere 创始人之一艾丹・戈麦斯(Aidan Gomez)前些天说:「我认为 AMD 和 Tranium 这些平台很快也将做好真正进入主流市场的准备。」
近日,专注计算硬件的科技媒体 The Information 发布了一份对比评测报告,声称是首个直接对比 AMD 和英伟达 AI 集群的基准评测。该报告的数据来自 MLCommons,这是一个由供应商主导的评测机构。
他们构建了一套 MLPerf AI 训练和推理基准。AMD Instinct 「Antares」 MI300X GPU 以及英伟达的「Hopper」H100 和 H200 和「Blackwell」B200 GPU 都得到了评估。The Information 对比了这些评估数据。
结果表明:在 AI 推理基准上,MI300X GPU 绝对能比肩 H100 GPU,而根据 The Information 对 GPU 成本及系统总成本的估计,说 MI300X GPU 能媲美 H100 和 H200 GPU 也不为过。但是,也需要说明这些测试存在局限:仅使用了一种模型,即来自 Meta 的 Llama 2 70B。希望未来能看到这些测试中使用更多不同的 AI 模型。
对 MI300X 及 AMD 未来的 GPU 来说,这个结果很是不错。
但到今年年底时,考虑到英伟达 Blackwell B100 和 B200 GPU 的预期价格,似乎英伟达将与 AMD MI300X 加速器开始比拼性价比。另外,也许 AMD 会在今年晚些时候推出 MI325X GPU。
重点关注推理
AMD 的数据直到上周才发布。业内有传言说 AMD 签了一些大订单,会把 MI300X 出售给超大规模计算公司和云构建商,以支撑他们的推理工作负载。无怪乎 AMD 直到上周才发布 MLPerf Inference v4.1 测试结果。
对 MLPerf 推理结果的分析表明,在使用 Llama 2 70B 模型执行推理任务时,MI300X 在性能和成本上确实能与 H100 比肩。但和 H200 相比就差点了,毕竟 H200 有更大的 HBM 内存(141GB)和更高的带宽。如果 Blackwell 的定价符合预期,那么今年晚些时候推出的 MI325 为了具备竞争力,就必须得拥有更大的内存、更高的带宽和更激进的价格才行。
下面是最新发布的 MLPerf 基准评测结果:
英伟达的 MLPerf 基准评测结果来自英伟达自身,其中也包括使用 Llama 2 70B 模型在单台 Blackwell B200 SXM 上的结果,详情可访问这篇博客:https://blogs.nvidia.com/blog/mlperf-inference-benchmark-blackwell/
The information 提取了所有英伟达的结果,并新增了 Juniper Networks 在包含 2 个和 4 个节点的 HGX H100 集群上得到的结果(总共 8 和 16 台 H100)。
AMD 在配备一对当前的「Genoa」Epyc 9004 系列处理器和八台 Antares MI300X GPU 的服务器节点中测试了标准通用基板(UBB),还测试了一台将 Genoa CPU 换成即将推出的「Turin」Epyc 9005 系列 CPU 的机器,该系列 CPU 预计将在下个月左右推出。
AMD 还向 The Next Platform 提供了一张图表,其中展示了在 Genoa 盒子上测试一台 MI300X GPU 的性能,这可以显示节点内 GPU 的扩展性能:
让我们先看性能,然后再看性价比。
对于性能,我们想知道,在执行 Llama 2 推理时,AMD 和英伟达设备所具备的潜在峰值浮点性能有多少会被实际用于生成 token。但并没有这方面的具体数据,因为 GPU 利用率和内存利用率不在基准测试中。不过我们可以根据已有数据进行推断。
AMD GPU 配置了 PyTorch 2.3.0 框架和 AMD 的 ROCm 6.1.2 软件库和 runtimes,它类似于英伟达的 CUDA 堆栈。在 MI300X 的张量核心上的峰值 FP16 性能为 1307.4 TFlops,但这是在服务器模式下运行的(也就是使用在现实世界中看到的一种随机查询),可知在运行 Llama 2 70B 模型时,单台 MI300X 每秒生成 2530.7 个 token。因此,Llama 2 性能与假设峰值 Flops 之比为 1.94。当扩展到 8 台 MI300X 设备并换用更高速的 CPU,则这一比值会略微升至 2.01 到 2.11。
我们知道,H100 GPU 的 HBM 内存仅有 80GB,启动带宽也较低,这是因为缺少 HBM3 和 HBM3E 内存导致的内存配置不足。MI300X 也是类似。大家都在拉低 GPU 的内存配置,这样不仅是为了多卖些设备,而且也因为在 GPU 芯片附近堆叠 HBM 的难度很大,并且还有封装制造工艺的问题。
再看看英伟达测试的 H100 系统,每秒服务器 token 与峰值 FP16 Flops 的比值是 2.6 或 2.73,这比 AMD 的更好,这可能要归结于软件调整。针对 H100,CUDA 堆栈和 TensorRT 推理引擎进行了大量调整,现在你明白为什么 AMD 如此渴望收购人工智能咨询公司 Silo AI 了吧?这笔交易几周前刚刚完成。
由于切换到了 HBM3E,H200 的 HBM 内存将大幅提升至 141 GB,带宽也将从 3.35 TB/s 提升至 4.8 TB/s。于是这个比值将增至 4.25,而英伟达自己的基准测试表明,只需在完全相同的 Hopper GH100 GPU 上添加内存容量和带宽,AI 工作负载就能提升 1.6 至 1.9 倍。
MI300X 应该具有什么样的内存容量和带宽才能平衡其在推理(可能还有训练)工作负载方面的浮点性能呢?这一点很难估计。但 The Information 给出了一个直觉估计:MI325X 将具有 6 TB/s 的带宽(MI300 为 5.3 TB/s)和 288 GB 的 HBM3E( HBM3 为 192 GB)—— 这是朝着正确方向迈出的一大步。另外,MI325X 的 FP16 浮点性能似乎还是 1.31 Pflops。
不过明年的 MI350 的浮点性能可能会大幅提升,据信其会有新迭代的 CDNA 架构:CDNA 4。其不同于 Antares MI300A、MI300X 和 MI325X 中使用的 CDNA 3 架构。MI350 将转向台积电的 3 纳米工艺,并增加 FP6 和 FP4 数据类型。据推测,将有一个全 GPU 的 MI350X 版本,也许还有一个带有 Turin CPU 核心的 MI350A 版本。
你可能倾向于相信 AMD MI300X 和英伟达 H100 之间的性能差异是因为:一致性互连将 GPU 绑定到其各自 UBB 和 HGX 板上的共享内存复合体中。AMD 机器上的是 Infinity Fabric,而英伟达机器上的是 NVSwitch。Infinity Fabric 的每台 GPU 的双向带宽为 128 GB/s,而 NVLink 4 端口和 NVSwitch 3 交换机的带宽为 900 GB/s,因此英伟达机器在内存一致性节点结构上的带宽高 7 倍。
这可能是 Llama 2 工作负载性能差异的一部分原因,但 The Information 认为不是。原因如下。
单台 MI300X 的峰值性能为 1.31 Pflops,比 H100 或 H200 的 989.5 Tflops(FP16 精度)高出 32.1%,且没有稀疏矩阵重新调整,吞吐量翻倍。MI300X 的内存是 H100 的 2.4 倍,但 Llama 2 推理工作性能仅比 H100 多 7%,并且推理负载仅为 H200 的 60%。根据英伟达进行的测试,相比于配备 180 GB 内存的 Blackwell B200,该设备的工作性能仅为其 23.5%。
据信 B200 的内存也会受限,因此根据 6 月份发布的英伟达路线图,B200 和 B100(可能)将在 2025 年进行内存升级,容量可能会提升到 272 GB 左右。H200 的内存升级会领先于 MI300X,后者的升级将在今年晚些时候体现在 MI32X 上,并会在内存方面领先 B200 Blackwell Ultra 六到九个月。
The Information 表示:「如果我们要买 GPU,我们会等 Hopper Ultra (H200)、Blackwell Ultra (B200+) 和 Antares Ultra (MI325X)。拥有更多 HBM 的数据中心 GPU 更划算。」
当然,你也可以等,用你现有的 GPU 参加这场生成式 AI 大战。
当然,上面的数据围绕着推理,至于 AI 训练方面的数据,AMD 可能会在今年秋季发布。
实际应用的性价比
MI300X 与英伟达的 Hopper 和 Blackwell 的性价比如何呢?
今年早些时候,英伟达联合创始人兼 CEO 黄仁勋在 Blackwell 发布后表示:这些设备的价格将在 3.5 至 4 万美元之间。Hopper GPU 的价格可能为 2.25 万美元,具体取决于配置。黄仁勋在 2023 年时曾表示,一套配置完成的 HGX H100 系统板的价格售价 20 万美元。至于 H200,如果单独购买,价格应该是 3 万美元。MI300X 的售价大概是 2 万美元,但这基本基于猜测。具体还要看消费者和市场情况。
当然,大量购买应该还有折扣,正如黄仁勋喜欢说的那样:「买得越多,省得越多。」(The More You Buy, The More You Save)
粗略估计,将这些 GPU 变成服务器(两台 CPU、大量主内存、网卡和一些闪存)的成本约为 15 万美元,并且可以插入英伟达的 HGX 板或 AMD 的 UBB 板来构建八路机器。考虑到之前计算的单台 GPU 的性能,于是这里便以这一成本的八分之一进行计算。
综合这些成本,可以看到 MI300X 与 H100 一样非常烧钱。
我们已经知道,对于 Llama 2 70B 推理任务,H100 系统中平均每台 GPU 每秒可输出 2700 个 token,这比 MI300X 好 7%。H200 的内存是 141 GB,是原来的两倍多,而其推理性能提升了 56%,但 GPU 的价格仅上涨了 33%,因此其 GPU 和系统层面的性价比都得到了提升。
如果 B200 的价格如黄仁勋所说的那样为 4 万美元,那么在 Llama 2 70B 测试中,其在 GPU 层面上每单位推理的成本将降低近一半,在系统层面上则会略多于一半。
考虑到 Blackwell 的短缺以及希望在给定空间和给定热范围内容纳更多 AI 计算的需求,因此也可以推断英伟达可能为每台 B200 GPU 定价 5 万美元 —— 很多人都这样预计。
当然,具体如何,还要看今年晚些时候 AMD MI325 的定价以及产能。
#大模型走向物理世界
TeleAI 发布大模型驱动的具身智能综述,覆盖300篇文献
近年来,大模型在人工智能领域掀起了一场革命,各种文本、图像、多模态大模型层出不穷,已经深深地改变了人们的工作和生活方式。另一方面,在国际半导体大会上,英伟达创始人黄仁勋表示,人工智能下一个浪潮将是 “具身智能”,即能理解、推理、并与物理世界互动的智能系统。近年来,国内外商业巨头也纷纷推出自己的具身机器人发展计划。大模型和具身智能,无疑是当前人工智能领域最闪耀的双子星。在光电感知技术、机器人技术、大模型技术的快速发展下,大模型驱动的具身智能,不仅有望极大提升机器人的智能水平,更将推动人工智能技术迈向物理世界,从而产生更加广泛的应用。
在此背景下,中国电信 CTO、首席科学家李学龙教授牵头组建中国电信人工智能研究院 (TeleAI), 并将大模型和具身智能作为重要的研究方向。近期,由 TeleAI 研究科学家白辰甲、清华大学助理教授许华哲、TeleAI 院长李学龙教授共同撰写的中文综述《大模型驱动的具身智能:发展与挑战》一文在《中国科学:信息科学》发表,综述通过对 300 篇相关文献的分类和解读,深度剖析大模型驱动的具身智能的基本概念、技术框架、现有挑战和未来展望,梳理这一热点问题背后的研究脉络和技术体系,进一步推动具身智能领域的发展,助力国家人工智能发展战略。
- 论文地址:https://www.sciengine.com/SSI/doi/10.1360/SSI-2024-0076
具身智能是人工智能、机器人学、认知科学的交叉领域,主要研究如何使机器人具备类似人类的感知、规划、决策和行为能力。具身智能强调感知 - 运动回路,使用物理实体来感知环境,根据任务目标进行规划和决策,使用运动操作能力来完成任务。大模型具有对物理世界的丰富知识,能够为智能体提供自然语言交互、环境感知和任务规划的能力,同时能够和具身智能的传统框架相结合,提升智能体策略学习的泛化性。图 1 展示了该领域的典型进展。
图 1 领域典型进展
综述首先介绍相关技术背景,包括具身智能的基本概念,大模型相关技术,以及强化学习、模仿学习、模型预测控制等策略学习框架。随后,从学习范式的角度将大模型驱动的具身智能算法概括了五大类并依次进行了详细阐述,分别是大模型驱动的环境感知、大模型驱动的任务规划、大模型驱动的基础策略、大模型驱动的奖励函数、大模型驱动的数据生成。图 2 展示了综述的整体框架。
图 2 综述整体框架
大模型驱动的具身环境感知
在具身智能任务中,智能光电设备可以为具身智能体提供周围环境的视觉信号,随后大模型感知技术为具身决策提供基础。1)相比于传统的特征提取方法,视觉大模型具有较好的泛化性,许多研究通过引入视觉预训练模型来提高策略的视觉泛化能力和鲁棒性。2)机器人 Affordance 是一种对操作任务更具有解释性的通用特性,通过预训练 Affordance 模型能够为具身操作提供更详细的指导,例如物体的交互位置 (如门把手,茶壶手柄等),物体的交互轨迹 (如向内推、向上提等),如图 3 所示。3)复杂任务需要获取操作物体的 3D 场景特征,许多方法设计从点云和多视角图像中提取目标位置、方向、遮挡、物体之间的堆叠关系等。该领域典型方法如表 1 所示。
图 3 典型的 Affordance 提取方式
表 1 大模型驱动的具身感知算法总结
大模型驱动的具身任务规划
在大规模语言数据中训练得到的大模型对现实世界有着丰富的先验知识,可以用来作为具身智能任务的规划器。然而,大模型的知识与具身环境存在不匹配的现象,可能会导致大模型的规划无法执行。1)现有研究通过构建闭环反馈的方法来解决开环规划中存在的问题,包括大模型自我反馈、外部环境反馈、强化学习反馈等,对大模型等规划进行纠错,如图 4 所示。2)通过规划搜索算法能够提升大模型在长周期任务规划中的最优性,这一领域包含蒙特卡洛树搜索、世界模型、规划领域定义语言搜索等。该领域典型方法如表 2 所示。
图 4 大模型规划等闭环反馈方法
表 2 大模型驱动的具身规划算法总结
大模型驱动的具身基础策略
大模型任务规划依赖于能够执行规划对底层技能库。为了减轻底层技能库定义的依赖,提升决策效率,1)许多研究考虑将大模型参数作为具身基础策略,并利用具身数据对大模型参数进行微调,使大模型能够更加适应于具身决策场景。基础策略可以输出更具体的任务规划,也可以直接输出机器人需要执行的动作,如图 5 所示。2)扩散模型由于对长序列数据建模中的强大能力,许多研究将其用于建模专家轨迹的多样化数据分布,从而用于长序列任务的轨迹规划或动作规划,或作为具身策略结合强化学习算法进行策略优化。
图 5 大模型驱动的具身策略微调
表 3 大模型具身基础策略算法总结
大模型驱动的具身奖励函数
在基于强化学习和模型规划控制的具身算法中,最优策略通过优化奖励函数产生。传统方法中奖励函数由机器人领域专家设计,具有一定的设计难度。1)大模型对机器人和任务具有丰富的先验知识,许多研究提出使用大语言模型 / 视觉语言模型进行奖励图或奖励函数的生成,随后通过策略优化和环境反馈进行优化。2)其他研究学习通过从状态视频预测、描述 - 轨迹匹配程度、轨迹相似性等方面学习参数化的奖励模型。3)受大模型偏好学习等启发,许多研究通过人类反馈对轨迹偏好进行打分,使用人类反馈强化学习(RLHF)算法进行奖励模型等训练。典型框架如图 6 和表 4 所示。
图 6 大模型驱动的奖励函数框架
表 4 大模型驱动的具身奖励函数算法总结
大模型驱动的具身数据生成
大模型进行具身数据生成有望解决机器人数据稀缺的难题。1)世界模型(World Model)揭示了物理世界的运行规律,包括未来视觉观测如何改变,状态如何根据环境动力学进行转移,以及智能体最终达到的状态等。构建世界模型能够快速产生大量轨迹来丰富强化学习或模仿学习的数据,基本框架包含隐空间世界模型、Transformer 世界模型、扩散世界模型等。2)大模型能够借助仿真环境进行自动化的环境生成和数据采集,主要流程包括大模型自动任务提出、自动环境构造、自动任务解决、自动数据采集、自动技能学习等,快速产生针对特定任务的仿真数据,进行机器人技能和策略的学习,如图 7 所示。该领域典型方法如表 5 所示。
图 7 大模型驱动的仿真环境和数据生成框架
表 5 大模型驱动的具身数据生成算法总结
大模型驱动的具身智能已具备了研究和技术体系的雏形,有望使 “数字” 大模型在 “实体” 机器人中生根发芽。综述随后分析了现有研究之间存在的联系,并总结了目前大模型驱动的具身智能领域面临的挑战,包括大模型在特定具身场景中的适应问题、大模型策略和人类偏好的对齐问题、具身策略的跨域泛化问题、大模型驱动多智能体协作问题、具身智能在真实环境中所面临的挑战和大模型具身策略的决策实时性问题等。
虽然目前关于采取何种路线能够达到通用具身智能仍很难定论,但大模型的成功切实的推动了具身智能的发展。综述对该领域的未来研究进行了展望,包括统一具身数据平台、通用具身数据表征、鲁棒具身控制策略、可控具身策略生成、人机合作具身智能、异构智能体协同、轻量化具身策略和人形机器人等方面。
团队负责人介绍
李学龙,中国电信 CTO、首席科学家,中国电信人工智能研究院(TeleAI)院长。
#RL-TRACER
率先解决多类数据同时受损,中科大MIRA团队TRACER入选NeurIPS 2024:强鲁棒性的离线变分贝叶斯强化学习
本论文作者杨睿是中国科学技术大学 2019 级硕博连读生,师从王杰教授、李斌教授,主要研究方向为强化学习、自动驾驶等。他曾以第一作者在 NeurIPS、KDD 等顶级期刊与会议上发表论文两篇,曾获滴滴精英实习生(16/1000+)。
近日,中科大王杰教授团队 (MIRA Lab) 针对离线强化学习数据集存在多类数据损坏这一复杂的实际问题,提出了一种鲁棒的变分贝叶斯推断方法,有效地提升了智能决策模型的鲁棒性,为机器人控制、自动驾驶等领域的鲁棒学习奠定了重要基础。论文发表在 CCF-A 类人工智能顶级会议 Neural Information Processing Systems(NeurIPS 2024)。
- 论文地址:https://arxiv.org/abs/2411.00465
- 代码地址:https://github.com/MIRALab-USTC/RL-TRACER
引言
在机器人控制领域,离线强化学习正逐渐成为提升智能体决策和控制能力的关键技术。然而,在实际应用中,离线数据集常常由于传感器故障、恶意攻击等原因而遭受不同程度的损坏。这些损坏可能表现为随机噪声、对抗攻击或其他形式的数据扰动,影响数据集中的状态、动作、奖励和转移动态等关键元素。经典离线强化学习算法往往假设数据集是干净、完好无损的,因此在面对数据损坏时,机器学习到的策略通常趋向于损坏数据中的策略,进而导致机器在干净环境下的部署时性能显著下降。
尽管研究者在鲁棒离线强化学习领域已经取得了一些进展,如一些方法尝试通过增强测试期间的鲁棒性来缓解噪声或对抗攻击的影响,但它们大多在干净数据集上训练智能体模型,以防御测试环境中可能出现的噪声和攻击,缺乏对训练用离线数据集存在损坏的应对方案。而针对离线数据损坏的鲁棒强化学习方法则只关注某一特定类别的数据存在损坏,如状态数据、或转移动态数据存在部分损坏,他们无法有效应对数据集中多个元素同时受损的复杂情况。
为了针对性地解决这些现有算法的局限性,我们提出了一种鲁棒的变分贝叶斯推断方法(TRACER),有效地增强了离线强化学习算法在面临各类数据损坏时的鲁棒性。TRACER 的优势如下所示:
1. 据我们所知,TRACER 首次将贝叶斯推断引入到抗损坏的离线强化学习中。通过将所有离线数据作为观测值,TRACER 捕捉了由各类损坏数据所导致的动作价值函数中的不确定性。
2. 通过引入基于熵的不确定性度量,TRACER 能够区分损坏数据和干净数据,从而调控并减弱损坏数据对智能体模型训练的影响,以增强鲁棒性。
3. 我们在机器人控制(MuJoCo)和自动驾驶(CARLA)仿真环境中进行了系统性地测试,验证了 TRACER 在各类离线数据损坏、单类离线数据损坏的场景中均显著提升了智能体的鲁棒性,超出了多个现有的 SOTA 方法。
1. 方法介绍
1.1 动机
考虑到(1)多种类型的损毁会向数据集的所有元素引入较高的不确定性,(2)每个元素与累积奖励(即动作值、Q 值)之间存在明确的相关性关系(见图 1 中的虚线),因此使用多种受损数据估计累积奖励函数(即动作值函数)会引入很高的不确定性。
图 1. 决策过程的概率图模型。实线连接的节点表示数据集中的数据,而虚线连接的 Q 值(即动作值、累积回报)不属于数据集。
为了处理这类由多种数据损毁(即状态、动作、奖励、状态转移数据受损)导致的高不确定性问题,基于图 2 所示的概率图模型,我们提出利用数据集中的所有元素作为观测数据。我们旨在利用这些观测数据与累积奖励之间的高度相关性,来准确地识别动作值函数的不确定性。
1.2 基于受损数据的贝叶斯推断
我们提出使用离线数据集的所有元素作为观测值,利用数据之间的相关性同时解决不确定性问题。具体地,基于离线数据集中动作价值与四个元素(即状态、动作、奖励、下一状态)之间的关系,我们分别使用各个元素作为观测数据,通过引入变分贝叶斯推理框架,我们最大化动作值函数的后验分布,从而推导出各个元素对应的基于最大化证据下界 (ELBO) 的损失函数。基于对动作价值函数的后验分布的拟合,我们能有效地将数据损坏建模为动作值函数中的不确定性。
1.3 基于熵的不确定性度量
为了进一步应对各类数据损坏带来的挑战,我们思考如何利用不确定性进一步增强鲁棒性。鉴于我们的目标是提高在干净环境中的智能体性能,我们提出减少损坏数据的影响,重点是使用干净数据来训练智能体。因此,我们提供了一个两步计划:(1)区分损坏数据和干净数据;(2)调控与损坏数据相关的损失,减少其影响,从而提升在干净环境中的表现。
对于(1),由于损坏数据通常会造成比干净数据更高的不确定性和动作价值分布熵,因此我们提出通过估计动作值分布的熵,来量化损坏数据和干净数据引入的不确定性。
对于 (2),我们使用分布熵指数的倒数来加权我们提出的 ELBO 损失函数。因此,在学习过程中,TRACER 能够通过调控与损坏数据相关的损失来减弱其影响,并同时专注于最小化与干净数据相关的损失,以增强在干净环境中的鲁棒性和性能。
1.4 算法架构
图 2. TRACER 算法框架图。
2. 实验介绍
为了模拟数据受损的情形,我们对数据集的部分数据加入随机噪声或对抗攻击来构建损坏数据。在我们的实验中,我们对 30% 的单类数据进行损坏。因此,在所有类型的数据都有损坏时,整个离线数据集中,损坏数据占约
的规模。
各类数据均受损
所有类型数据元素均存在损坏的部分实验结果见表 1,TRACER 在所有控制环境中均获得了较为明显的性能提升,提升幅度达 + 21.1%,这一结果展现了 TRACER 对大规模、各类数据损坏的强鲁棒性。
表 1. 离线数据集的所有类型元素均存在随机损坏(random)或对抗损坏(advers)时,我们的方法 TRACER 在所有环境中都获得了最高的平均得分。
单类数据受损
单种类型数据元素存在损坏的部分实验结果见表 2 和表 3。在单类数据损坏中,TRACER 于 24 个实验设置里实现 16 组最优性能,可见 TRACER 面向小规模、单类数据损坏的问题也能有效地增强鲁棒性。
表 2. 单类元素存在随机损坏时,我们的方法 TRACER 在 8 个实验设置中获得了最高的平均得分。
表 3. 单类元素存在对抗损坏时,我们的方法 TRACER 在 8 个实验设置中获得了最高的平均得分。
#LLM强化学习算法演进之路
Q-Learning->DQN->PPO->DPO等
本文中各方法的分布:
一、强化学习理论基础
- Q值: 代表智能体选择某个动作后,一直到最终状态奖励总和的期望, Q值评价动作。
- V值:代表智能体在这个状态下,一直到最终状态的奖励总和的期望,V值评价状态。
图1-1解:Q到V,V到Q,V到V之间的转换——强化学习的理论核心,建议常看常新,参考:https://zhuanlan.zhihu.com/p/109498587
如何在不知道真实环境分布的情况下估算V值,已经诞生了多种方法,大体归纳为基于价值、基于策略两种:
1.1)基于价值的方法
代表:MC(Monte-Carlo,蒙特卡洛)方法、TD(Temporal-Difference,时序差分),基于TD的变体包括SARSA、Q-learning、DQN)
- MC方法
- 思路:通过样本回合(episode,也叫trajectory,即轨迹)的完全体验来估计状态值函数V(s)。具体来说,它使用从一个状态开始到回合结束的真实收益来进行估计。
- 缺点:算法要求采样必须走到最终状态;面对巨大的状态空间,小概率能到达最终状态。
- TD方法
- 思路:不必等待一个完整的回合结束才能进行更新,而是可以在每个时间步进行增量更新。
- 延展方法:SARSA、Q-learning、DQN。
图1-2解:从MC到TD。MC的注意点:里面的V(s)实际是V(S_t);更新状态值函数实际是加权增量平均,即V=(1-α)V+αG=V+α(G-V),有时候α=1/N(s),N表示状态s被访问的次数,此时根据大数定理,最终的V会是G的期望值。
- TD方法的变体之——SARSA(State-Action-Reward-State-Action)
- 思路:SARSA算法更新的是状态-动作价值函数(Q值),通过五元组(当前状态S、当前动作A、收到的奖励R、下一个状态S’、下一个动作A’)来进行学习。SARSA被称为“on-policy”算法,因为它更新的Q值是基于当前策略选择的动作。
- TD方法的变体之——Q-learning
- 思路:采用Q表(Q-table)来存储状态-动作对的价值。通过不断更新Q表来学习一个最优策略,使得Agent能够在环境中最大化累积奖励。这是一种“off-policy”算法,即更新Q值时不依赖于当前执行的策略。它使用贪心策略来更新Q值,即选择下一个状态中的最大Q值进行更新。Q表是一个二维表格,其中:行代表环境中的所有可能状态s;列代表在每个状态下所有可能的动作a;表中的每个元素 Q(s,a)表示在状态s采取动作a后的预期累积奖励。
- 缺点:它只能解决离散的、有限状态、有限动作空间的任务。
- 选取action的策略——greedy-epsilon(又叫ε-greedy):即以概率1−ε选择当前已知的最优动作(即利用)。这通常是基于当前的Q值或策略评估选出的动作。以概率ε随机选择一个动作(即探索),以确保算法有机会尝试不同的动作,可能发现更优的策略。其实从下图中Q-learning的公式就可以看出,即形式如Q=(1-α)Q+αG=Q+α(G-Q)。
图1-3解:SARSA和Q-learning方法公式对比。上)SARSA方法的公式=TD的公式+替换V为Q;下)Q-learning方法的公式。
- Q-learning方法的改进版本之——DQN(Deep Q-Network)
- 思路:使用神经网络解决Q-learning中状态不连续的问题。在DQN中,Q值函数不是用表格存储,而是用神经网络来近似。神经网络Q(s,a;θ)参数化Q值函数,其中θ是神经网络的参数。计算细节包括:经验回放(Experience Replay)、目标网络(Target Network)、损失函数(Loss)等,如下图。
图1-4解:DQN的算法流程——选择动作+存储经验
图1-5解:DQN的算法流程——训练流程。注:一开始记忆库memory中没有经验,也没有训练evaluate network,积累了一定数量的经验之后,再开始训练evaluate network。
DQN代码学习:https://github.com/louisnino/RLcode/blob/master/tutorial_DQN.py
1.2)基于策略的方法
代表:PG(Policy Gradient,策略梯度)、AC、PPO(Proximal Policy Optimization,近端策略优化)
- PG方法
- 思路:利用reward奖励直接对选择行为的可能性进行增强和减弱,好的行为会被增加下一次被选中的概率,不好的行为会被减弱下次被选中的概率。
- 缺点:数据使用效率低(每次收集的数据只用一次就丢弃了,即on-policy);采用蒙特卡洛的思想,每次要走到最后,太慢了。
图1-6解:PG和前面几种方法的区别
图1-6解:PG中期望Reward的计算
图1-7解:PG中最大化期望Reward的计算
图1-8解:PG中最大化期望Reward的计算-梯度计算细节推导
PG代码见https://github.com/louisnino/RLcode/blob/master/tutorial_PG.py,其执行逻辑梳理如下:
图1-9解:PG代码执行逻辑
- Actor-Critic(AC)方法
- 思路:为了解决PG中采用蒙特卡洛必须走到最后的状态才计算G值,改为TD的思路。但是,PG需要计算G值,那么在TD中,我们应该怎样估算每一步的Q值呢?即神经网络。AC采用两个神经网络:Actor网络负责对网络输入状态S输出策略&选择动作,Critic网络负责计算每个动作的分数。
- 缺点:仍然是一个在线策略,即on-policy。
图1-10解:AC算法的由来
AC代码学习见https://github.com/louisnino/RLcode/blob/master/tutorial_AC.py,其执行逻辑梳理如下:
图1-11解:AC代码执行逻辑
- PPO方法
- 用AC来解决连续型控制问题。方法是输入avg和var,构造一个正态分布来表示策略。
- 如何实现:神经网络可以直接输出mu和sigma,就能获得整个策略的概率密度函数。
- avg表示平均数,也就是整个正态分布的中轴线,avg的变化,表示整个图像向左右移动。
- var表示方差,当sigma越大,图像越扁平;sigma约小,图像越突出,而最大值所在的位置,就是中轴线。
- 概念:从离散问题到连续问题
- 概念:两种策略
- 行为策略:不是当前策略,用于产出数据。
- 目标策略:会更新的策略,是需要被优化的策略。
- 如果两个策略是同一个策略,那么称为On Policy=在线策略;如果不是同一个策略,那么称为Off Policy=离线策略。
- 概率:重要性采样(Important-sampling)
- 目标:用行为策略获取的数据,能够更新目标策略,把AC从在线策略,变成离线策略。
- 含义:目标策略出现动作a的概率 除以 行为策略出现a的概率。
- 概念:N步更新
- 之前的TD叫做TD(0),而N步更新为TD(n),可以看成TD(0)其实是TD(n)的一种特殊情况。
- 实际上我们只需要计算最后的V(s'),根据这个估算的V(s'), 我们反推经过的所有state的V值。这个其实和PG估算G的过程是一样的,只不过我们并不需要走到最后,而是中途截断,用网络估算。
表1-1解:PPO给出的算法流程
PPO代码学习见https://github.com/louisnino/RLcode/blob/master/tutorial_PPO.py,其执行逻辑梳理如下:
图1-12解:整体代码流程
训练流程的1-4步代码解读分别见下面四幅图:
图1-13解:PPO代码1-初始化环境和PPO
图1-14解:PPO代码2-收集轨迹数据
图1-15解:PPO代码3-计算折扣回报+策略迭代入口
图1-16解:PPO代码4-策略迭代优化细节
快速背诵:收(收集轨迹数据)、计(计算折扣回报)、策(策略迭代优化)
1.3)PG->AC->TRPO->PPO->DPO方法演进公式对比
表1-2解:PG到AC到TRPO到PPO到DPO演进公式对比
二、LLM的PPO模型
首先,看下PPO算法的四个模型:
LLM中实际使用的公式:
图2-1解:LLM中PPO的公式
需要采样经验(Experience)数据的原因:
表2-1解:采样经验数据的各种原因
代码参考Open_RLHF库的PPO实战:https://github.com/OpenRLHF/OpenRLHF/blob/main/openrlhf/trainer/ppo_trainer.py
三、LLM的DPO(Direct Preference Optimization)模型
- 背景:目前RLHF的流程太复杂,不仅需要单独训练reward模型,还需要从LLM的输出采样。
- 优势:DPO通过理论证明,可以不需要引入reward模型,就可以完成LLM的偏好训练。实验证明,在生成情感、摘要、单论对话质量方面,DPO比基于PPO的RLHF更好。
DPO最终公式见表1-2,推导过程如下:
step1:明确目标
一个是Reward最大化,一个是positive的样本得分大于negative样本得分。因此,公式推导采用的策略是先最大化Reward,在带入"positive的样本得分大于negative样本得分"公式。
step2:表征positive的样本得分大于negative样本得分
图3-1解:DPO推导的step2,即表征positive的样本得分大于negative样本得分
step3:Reward最大化
图3-2解:DPO推导的step3,即引入Z(x)化简Reward最大化公式
图3-3解:DPO推导的step3,即求出最大的Reward
step4:带入step2
图3-4解:DPO推导的step4,将最大的Reward带入setp2
代码参考Open_RLHF库的DPO实战:https://github.com/OpenRLHF/OpenRLHF/blob/main/openrlhf/trainer/dpo_trainer.py
四、LLM的GRPO(Group Relative Policy Optimization)模型
- 背景(PPO的缺点):
- 需要训练一个与策略模型大小相当的价值模型(Critic模型),这带来了巨大的内存和计算负担;
- 在 LLM 的上下文中,通常只有最后一个 token 会被奖励模型打分,这使得训练一个在每个 token 上都准确的价值函数变得困难。
- GRPO的优势:
- 避免了像 PPO 那样使用额外的价值函数近似,而是使用"同一问题下多个采样输出的平均奖励"作为基线。
1)优化目标
图4-1解:GRPO公式解析
2)优势函数计算
图解:GRPO的优势函数计算
#大模型参评,审稿人19篇论文被拒
刚刚,CVPR 2025录用结果出炉!
今年,共有13008份有效投稿并进入评审流程,其中2878篇被录用,最终录用率为22.1%。
近两年来,CVPR录用结果逐年递减。
相较于去年(11532),CVPR 2025总投稿数再次增加,而录用率却降低1.5%(CVPR 2024录用率为23.6%)。
要知道,2023年录用率曾高达25.8%,共有2359篇论文被接受。
会议往年论文数据
CVPR是计算机视觉和模式识别领域顶级学术会议之一,每年举办一次。
CVPR 2025将于6月11日-15日,在美国田纳西州纳什维尔「音乐城市中心」召开。
有网友激动表示,「自己被录用的论文编号是2878,刚好是被接收论文总数,真的太巧了」。
滥用LLM,19篇审稿人论文全被「桌拒」
在录用结果公布之际,CVPR区域主席(AC)曝出了评审过程中一件令人震惊的事件:
一些极不负责审稿人,要么彻底放弃了评审过程,要么提交了质量低得离谱的评论。
甚至,一些评论竟是由大模型生成的,敷衍程度可见一斑。
要知道,在学术界,评审过程是确保研究质量的基石,这些行为直接威胁到了学术公平。
此前,CVPR曾公布了最新政策,明令禁止使用LLM参与评审。
地址:https://cvpr.thecvf.com/Conferences/2025/CVPRChanges
经过彻底调查,程序主席(PC)根据CVPR 2025此前公布的政策,确认了这些高度不负责的评审员,并追溯到他们作为作者提交的论文。
在权衡之后,CVPR果断对这些审稿人撰写的19篇论文,实施「桌拒」(desk-reject),而这些论文原本是有望被接受的。
有网友对此表示,下次也请公布一份「不负责评审员黑名单」。学术界需要知道这些信息,这样会更有效!
为CVPR 2025感到骄傲。
网友晒出成绩单,LeCun团队中奖
复旦大学陈家棋仅用20多天从0到投稿,Any2Any这篇论文直接逆风翻盘。他激动表示,「谢谢在我只有idea的时候就相信我能成功的co-author们」。
此外,他和团队合作的另一篇关于人类对齐视频生成的基准,也被CVPR 2025接收。
来自北航的盛律助理教授团队,一下子连中四篇。
英伟达高级科学家Ali Hatamizadeh表示,团队提出的MambaVision入选CVPR,这是首个用于计算机视觉的混合Mamba-Transformer骨干网络。
LeCun带队的一篇论文「Navigation World Models」,也成功被CVPR接收。
这篇论文主要提出了「导航世界模型」是一种可控的视频生成模型,能够根据过去的观察和导航动作,预测未来的视觉观察结果。
为了捕捉复杂的环境动态,NWM采用了条件扩散Transformer,并在人类和机器人智能体的多样化第一视角视频数据集上进行训练,模型参数规模扩展至10亿。
在熟悉的环境中,NWM可以通过模拟导航轨迹并评估是否实现预期目标来进行导航规划。
还有来自谷歌团队提出的ReCapture创新方法,能够基于用户提供的单一视频,生成带有自定义相机轨迹的新版本。
简单来说,它可以让「后期摄影术」变得触手可及,人人都能体验。
还有中佛罗里达大学Andong Deng作为GroundMoRe和Seq2Time论文一作两篇论文被接收。
还有来自深圳大学计算机本科生陈天行连中三篇。
没中奖的童鞋们,不要灰心,毕竟Rejection is part of the journey。
而且,今年还有ICCV 2025等着你,目前ICCV 2025提交入口已经打开了。
华人成为中坚组织力量
清华校友Ce Liu,担任本次会议联合组委会总主席。目前,他在Meta担任AI研究科学家总监,入选IEEE fellow。
他的研究领域集中在GenAI、计算机视觉和计算机图形学等领域。
2002年本科毕业于清华大学,2009年博士毕业于麻省理工学院。自博士毕业后,先后在微软、谷歌和Meta从事研究工作。2009-2024年,他还是MIT的兼职研究员(Research Affiliate),积极参与研究并教授课程。
6位程序委员会主席中有3位华人:Fuxin Li、Hao Su和Siyu Tang。
Fuxin Li是俄勒冈州立大学电气工程与计算机科学学院的副教授,研究方向是机器学习和计算机视觉。
在加入俄勒冈州立大学之前,在佐治亚理工学院度过了4.5年。在佐治亚理工学院之前,于2008年至2010年在波恩大学担任研究科学家。
他于2001年在浙江大学获得学士学位,并于2008年在中国科学院自动化研究所获得博士学位。
苏昊(Hao Su)是加州大学圣迭戈分校(UCSD)计算机科学系副教授,同时是某机器人初创公司的创始人兼首席技术官。他的研究兴趣广泛,涵盖计算机视觉、机器学习、计算机图形学和机器人学等领域。
他在北京航空航天大学获得数学博士,在斯坦福大学分别获得计算机科学博士学位。
Siyu Tang是苏黎世联邦理工学院(ETH Zürich)计算机科学系的终身轨助理教授,领导视觉计算研究所的计算机视觉与学习小组(VLG)。
在加入ETH之前,于2017年11月获得了资助,在马克斯·普朗克智能系统研究所建立了自己的研究小组。她曾在该研究所担任博士后研究员。她于2017年在马克斯·普朗克信息学研究所获得博士学位。在此之前,在德国亚琛工业大学获得媒体信息学硕士学位,并在中国浙江大学获得计算机科学学士学位。
她的研究专注于计算机视觉和机器学习,特别是对人类感知和建模的研究。
她积极参与相关学术服务,多次担任CVPR的不同委员会的主席。
4位研讨会/工作室委员会主席中2位华人:Chen Sun(布朗大学)、Lijuan Wang(微软)。
Chen Sun是布朗大学计算机科学的助理教授,并且是PALM研究实验室的负责人,主要研究计算机视觉、机器学习和人工智能。同时还在谷歌DeepMind担任兼职研究科学家。
此前,于2016年获得南加州大学的博士学位。在2011年,他完成了清华大学计算机科学的本科学位。
Lijuan Wang是微软云与人工智能部门的首席研究经理。她的研究领域包括深度学习和多模态感知智能的机器学习。
2001年,她本科毕业于华中科技大学。2006年在获得清华大学博士学位后,她加入了微软亚洲研究院,成为一名研究员。2016年,她加入了位于雷德蒙德的微软研究院。
她在顶级学术会议和期刊上发表了50多篇论文,并且是15项以上已授权或待审美国专利的发明人或共同发明人。她是IEEE的高级会员。
Tutorial委员会主席有一位华人:周伯磊(Bolei Zhou)。
目前,他是加州大学洛杉矶分校(UCLA)计算机科学系助理教授。他的研究位于计算机视觉与机器自主性交叉领域,重点在AI智能体。
此前,他在香港中文大学担任助理教授。
2010年,他从上海交通大学获得生物医学工程学士;2012年,从香港中文大学获信息工程硕士;2018年,从麻省理工学院获计算机科学博士。
扩大参与(Broadening Participation)委员会有一位华人主席:谢赛宁(Saining Xie)。
谢赛宁是纽约大学Courant数学科学研究所的计算机科学助理教授,同时也是CILVR小组的一员,此外还与纽约大学数据科学中心有合作。他的主要研究方向是计算机视觉和机器学习。
在此之前,曾在Facebook人工智能研究院(FAIR)担任研究科学家。
他在加州大学圣地亚哥分校(UC San Diego)的计算机科学与工程系获得了博士和硕士学位,导师是Zhuowen Tu教授。更早之前,他获得了上海交通大学的本科学位。
参考资料:
https://x.com/CVPR/status/1894847804717072459
#扩散模型作者创业
不要自回归!首个商业级扩散LLM来了,编程秒出结果
当前的 AI 领域,可以说 Transformer 与扩散模型是最热门的模型架构。也因此,有不少研究团队都在尝试将这两种架构融合到一起,以两者之长探索新一代的模型范式,比如我们之前报道过的 LLaDA。不过,之前这些成果都还只是研究探索,并未真正实现大规模应用。
今天凌晨,首个商业级扩散大型语言模型(dLLM)来了!该模型名为 Mercury,其表现非常卓越,在英伟达 H100 上能以每秒超过 1000 token 的速度运行,同时性能也并不比现有的经过速度优化的 LLM 差。
下面是官方展示的一个对比示例。让一个自回归 LLM 与 Mercury 编写一个 LLM 推理函数。自回归模型迭代了 75 次,而这个 dLLM 却仅迭代了 14 次就完成了任务,速度要快得多。
打造 Mercury 系列模型的是一家创业公司,名为 Inception Labs,该公司的创始人之一 Stefano Ermon 实际上也正是扩散模型(diffusion model)的发明者之一,同时他也是 FlashAttention 原始论文的作者之一。Aditya Grover 和 Volodymyr Kuleshov 皆博士毕业于斯坦福大学,后分别在加利福尼亚大学洛杉矶分校和康乃尔大学任计算机科学教授。
Inception Labs 今天发布的 Mercury 具有巨大的性能和效率优势,据 Kuleshov 推文介绍,基于来自 MidJourney 和 Sora 等图像和视频生成系统的灵感,该公司为 Mercury 引入了一种新的语言生成方法。相比于现有的 LLM,这种方法的运行效率显著更高(速度更快、成本更低),并且还可将推理成本降低 10 倍。
性能表现上,Mercury 系列中的编程模型 Mercury Coder 可比肩 Claude Haiku 和 GPT4o-mini 等针对速度指标优化过的前沿模型。但是,它的硬件效率要高得多,因为它使用了利用 GPU 的并行生成机制。这使得模型能以远远更快的速度和更低的成本运行(可以在同样的硬件上为更多用户提供服务)。
目前 Mercury Coder 已上线,可公开试用。该公司表示还可为企业用户提供代码和通用模型的 API 和内部部署服务。
试用地址:https://chat.inceptionlabs.ai
如此高效且达到商业级的新型语言模型自然吸引了不少关注,著名 AI 研究科学家 Andrej Karpathy 发帖阐述了这项成果的意义。他表示,不同传统的自回归 LLM(即从左到右预测 token),扩散模型是一次性向所有方向进行预测 —— 从噪声开始,逐渐去噪成 token 流。虽然之前的研究似乎表明文本好像更适合自回归范式,而扩散模型更适合图像与视频,但业界对此其实并没有定论。而这项研究更进一步表明,扩散模型在文本模态上也具有极大的潜力。
下面我们就来看看 Mercury 究竟是怎么打造的及其实际表现。
让扩散模型驱动下一代 LLM
当前的 LLM 都是自回归模型,也就是说它们是从左到右生成文本,一次生成一个 token。
这种生成过程本质上是顺序式的 —— 在生成某个 token 之前,必须先生成它之前的所有文本。而每个 token 的生成都需要评估一个包含数十亿参数的神经网络。前沿的 LLM 公司正在研究通过测试时计算来提高模型的推理和纠错能力,但生成长推理轨迹的代价是推理成本的急剧上升和更长的延迟。为了使高质量的 AI 解决方案真正普及,需要进行范式转变。
而扩散模型提供了这样的范式转变。
扩散模型的生成过程是「从粗到细」,即输出是从纯噪声开始的,然后通过一系列「去噪」步骤逐步细化。
由于扩散模型不受到仅考虑之前输出的限制,因此它们在推理和结构化响应方面表现更好。而且,由于扩散模型可以不断细化其输出,它们能够纠正错误和幻觉。因此,扩散模型是当前所有主要的视频、图像和音频领域的生成式 AI 的基础,包括 Sora、Midjourney 和 Riffusion。然而,扩散模型在文本和代码等离散数据上的应用从未成功过。而现在,情况变了。
Mercury Coder:每秒 1000+ Tokens
Mercury Coder 是 Inception Labs 向公众开放的第一个 dLLM。
它将 AI 能力推向了另一个高度:比当前一代的语言模型快 5 到 10 倍,并能够以低成本提供高质量的响应。
dLLM 作为典型自回归 LLM 的直接替代品,其支持很多用例,包括 RAG、工具使用和智能体工作流。
其工作流程是这样的,当接收到查询提示时,它并不是逐 token 生成答案,而是以「从粗到细」的方式生成。对答案的改进是由一个神经网络提供 —— 在文章示例中是一个 Transformer 模型 —— 在大量数据上进行了训练,并通过并行修改多个 token 来提高答案的质量。
Mercury Coder 性能非常出色,在标准编码基准测试中,Mercury Coder 超越了像 GPT-4o Mini 和 Claude 3.5 Haiku 这样的自回归模型,而这些模型专为速度进行过优化,同时速度还提高了多达 10 倍。
dLLM 的突出特点在于其速度。
即使是经过速度优化的自回归模型最多也只能达到每秒 200 个 token,但是该研究可以在商用的 NVIDIA H100 上以每秒超过 1000 个 token 的速度提供服务。与一些前沿模型相比,这些模型的运行速度可能还不到每秒 50 个 token,dLLM 提供的加速超过了 20 倍。
dLLM 这样的高吞吐量以前只能使用专门的硬件来实现,比如 Groq、Cerebras 和 SambaNova。现在算法改进也跟上了硬件进步,并且在更快的芯片上,加速效果会更加显著。
下图为 Mercury Coder 在 NVIDIA H100 上实现了每秒超过 1000 个 token 的处理速度。这意味着即使在没有使用专用芯片的情况下,dLLM 也能达到极快的生成速度!
速度比较;每秒输出 token
Mercury Coder 能以极高的速度达到相当高的编程指数,注意这里仅有 Small 和 Mini 版的数据
除了速度,Mercury 的代码补全功能也非常出色。在 Copilot Arena 上进行基准测试时,Mercury Coder Mini 并列第二,超过了 GPT-4o Mini 和 Gemini-1.5-Flash 等模型性能,甚至超过了 GPT-4o 等更大的模型。同时,它也是速度最快的模型,比 GPT-4o Mini 快约 4 倍。
,时长00:22
也做了一些简单的尝试,速度果真是超级快!
提示词:Write a solar system simulator that rotates(写一个旋转的太阳系模拟器)
可以看到,Mercury Coder 几乎眨眼之间就完成了所有代码的编写,并还附赠了相关说明。
未编辑的实测速度
运行看看效果,有一个 RED 参数未定义的报错,简单修正后即可运行。可以说是超出预料了。
虽然目前 Inception Labs 只发布了 Mercury Coder 模型,但着实让人开始期待起来了呢。
参考链接:
https://www.inceptionlabs.ai/news
https://x.com/karpathy/status/1894923254864978091
https://x.com/volokuleshov/status/1894852582075703509
#Phi-4
微软Phi-4家族新增两位成员,5.6B多模态单任务超GPT-4o,3.8B小模型媲美千问7B
动辄百亿、千亿参数的大模型正在一路狂奔,但「小而美」的模型也在闪闪发光。
2024 年底,微软正式发布了 Phi-4—— 在同类产品中表现卓越的小型语言模型(SLM)。仅用了 40% 合成数据,140 亿参数的 Phi-4 就在数学性能上击败了 GPT-4o。
刚刚,微软又隆重介绍了 Phi-4 模型家族的两位新成员:Phi-4-multimodal (多模态模型)和 Phi-4-mini(语言模型)。Phi-4-multimodal 改进了语音识别、翻译、摘要、音频理解和图像分析,而 Phi-4-mini 专为速度和效率而设计,两者都可供智能手机、PC 和汽车上的开发人员使用。
项目地址:https://huggingface.co/microsoft/phi-4
在技术报告中,微软对这两个模型进行了更加详细的介绍。
- Phi-4-Multimodal 是一个多模态模型,它将文本、视觉和语音 / 音频输入模态整合到一个模型中。它采用新颖的模态扩展方法,利用 LoRA 适配器和特定模态路由器,实现了多种推理模式的无干扰结合。例如,尽管语音 / 音频模态的 LoRA 组件只有 46 亿参数,但它目前在 OpenASR 排行榜上排名第一。Phi-4-Multimodal 支持涉及(视觉 + 语言)、(视觉 + 语音)和(语音 / 音频)输入的场景,在各种任务中的表现均优于此前的大型视觉 - 语言模型和语音 - 语言模型。
- Phi-4-Mini 是一个拥有 38 亿参数的语言模型,在高质量的网络和合成数据上进行了训练,其性能明显优于近期类似规模的开源模型,并在需要复杂推理的数学和编码任务上与两倍于其规模的模型不相上下。这一成就得益于精心设计的合成数据配方,该配方强调高质量的数学和编码数据集。与上一代产品 Phi-3.5-Mini 相比,Phi-4-Mini 的词汇量扩大到了 20 万个,从而能更好地支持多语言应用,同时还采用了分组查询功能,从而能更高效地生成长序列。
Phi-4-Multimodal 是这家公司的首个多模态语言模型,微软表示:「Phi-4-multimodal 标志着我们人工智能发展的一个新里程碑。
此外,微软还进一步训练了 Phi-4-Mini 以增强其推理能力。结果显示,它与 DeepSeek-R1-Distill-Qwen-7B 和 DeepSeek-R1-Distill-Llama-8B 等规模更大的先进推理系统相媲美。
接下来,让我们看看技术细节。
模型架构
两个模型都使用 tokenizer o200k base tiktoken ,词汇量为 200,064 个,旨在更高效地支持多语言和多模态输入和输出。所有模型都基于仅解码器的 Transformer,并支持基于 LongRoPE 的 128K 上下文长度。
语言模型架构
Phi-4-mini 由 32 层 Transformer 组成,专为速度和效率而设计,Phi-4-Mini 还有一些特殊的「省内存」技巧:
首先是分组查询注意力机制(GQA),模型在处理长序列时能够快速地聚焦于关键信息片段。这优化了长上下文生成时的 KV 缓存。具体来说,模型使用 24 个查询头和 8 个 K/V 头,将 KV 缓存消耗减少到标准大小的三分之一。
其次是输入 / 输出嵌入绑定技术,实现了资源的优化利用,同时与 Phi-3.5 相比提供了更广泛的 20 万词汇覆盖。
此外,在 RoPE 配置中,使用了分数 RoPE 维度,确保 25% 的注意力头维度与位置无关。这种设计能让模型更平滑地处理较长的上下文。
Phi-4-Mini 峰值学习率的计算公式为:
LR*(D) = BD^(-0.32),
其中 B 是超参数,D 是训练 token 的总数,通过调整 D = 12.5B、25B、37.5B 和 50B 来拟合 B 值。
多模态模型架构
Phi-4-Multimodal 采用了「Mixture of LoRA」技术,通过整合特定模态的 LoRAs 来实现多模态功能,同时完全冻结基础语言模型。该技术优于现有方法,并在多模态基准上实现了与完全微调模型相当的性能。此外,Phi-4-Multimodal 的设计具有高度可扩展性,允许无缝集成新的 LoRA,以支持更多模态,而不会影响现有模态。
该模型的训练过程由多个阶段组成,包括语言训练(包括预训练和后训练),然后将语言骨干扩展到视觉和语音 / 音频模态。
对于语言模型,研究者使用高质量、推理丰富的文本数据来训练 Phi-4-Mini。值得注意的是,他们加入了精心策划的高质量代码数据集,以提高编码任务的性能。
语言模型训练完成后,研究者冻结了语言模型,并实施「Mixture of LoRA」技术,继续多模态训练阶段。
具体来说,在训练特定模态编码器和投影器的同时,还训练了两个额外的 LoRA 模块,以实现与视觉相关的任务(如视觉 - 语言和视觉 - 语音)和与语音 / 音频相关的任务(如语音 - 语言)。它们都包含预训练和后训练阶段,分别用于模态对齐和指令微调。
Phi-4-Multimodal 模型架构。
性能评估
Phi-4-multimodal
虽然 Phi-4-multimodal 只有 5.6B 参数,但它将语音、视觉和文本处理无缝集成到一个统一的架构中,所有这些模态都在同一个表征空间内同时处理。
Phi-4 多模态能够同时处理视觉和音频。下表显示了在图表 / 表格理解和文档推理任务中,当视觉内容的输入查询为合成语音时的模型质量。与其他可以将音频和视觉信号作为输入的现有最先进的全方位模型相比,Phi-4 多模态模型在多个基准测试中取得了更强的性能。
图 1:所列基准包括 SAi2D、SChartQA、SDocVQA 和 SInfoVQA。进行对比的模型有:Phi-4-multimodal-instruct、InternOmni-7B、Gemini-2.0-Flash-Lite-prvview-02-05、Gemini-2.0-Flash 和 Gemini1.5-Pro。
Phi-4-multimodal 在语音相关任务中表现出了卓越的能力。它在自动语音识别 (ASR) 和语音翻译 (ST) 方面都优于 WhisperV3 和 SeamlessM4T-v2-Large 等专业模型。该模型以令人印象深刻的 6.14% 的单词错误率在 Huggingface OpenASR 排行榜上名列前茅,超过了 2025 年 2 月之前的最佳表现 6.5%。此外,它是少数几个成功实现语音摘要并达到与 GPT-4o 模型相当的性能水平的开放模型之一。该模型在语音问答 (QA) 任务上与 Gemini-2.0-Flash 和 GPT-4o-realtime-preview 等接近的模型存在差距,因为模型尺寸较小导致保留事实 QA 知识的能力较弱。
图 2:Phi-4 多模态语音基准。
在下方视频中,Phi-4-multimodal 分析了语音输入并帮助规划西雅图之旅:
,时长02:32
Phi-4-multimodal 同样在各种基准测试中都表现出了卓越的视觉能力,最显著的是在数学和科学推理方面取得了优异的表现。尽管规模较小,但该模型在通用多模态能力(如文档和图表理解、光学字符识别 (OCR) 和视觉科学推理)方面仍保持着极具竞争性的表现,与 Gemini-2-Flash-lite-preview/Claude-3.5-Sonnet 等相当或超过它们。
Phi-4-multimodal 展示了强大的推理和逻辑能力,适合分析任务。参数量更小也使得微调或定制更容易且更实惠。下表中展示了 Phi-4-multimodal 的微调场景示例。
下方视频展示了 Phi-4-multimodal 的推理能力:
,时长00:58
Phi-4-mini:3.8B,小身材大能量
Phi-4-Mini 和 Phi-4-Multimodal 共享同一个语言模型骨干网络。Phi-4-mini 虽然体积小巧,但它承袭了 Phi 系列前作的传统,在推理、数学、编程、指令遵循和函数调用等任务上超越了更大的模型。
Phi-4-mini 在各种测试集中和较小模型的成绩对比
更重要的是,开发者们可以基于 Phi-4-mini 构建出一个可扩展的智能体系统,它可以借函数调用、指令跟随、长上下文处理以及推理能力来访问外部知识,从而弥补自身参数量有限的不足。
通过标准化协议,Phi-4-mini 的函数调用可以与结构化的编程接口无缝集成。当用户提出请求时,Phi-4-mini 能够对查询进行分析,识别并调用相关的函数以及合适的参数,接收函数输出的结果,并将这些结果整合到最终的回应之中。
在设置合适的数据源、API 和流程之后,Phi-4-mini 可以部署在你家,当你的智能家居助手,帮你查看监控有没有异常。
基于 Phi-4-mini 的家居智能体
通过标准化协议,函数调用使得模型可以与结构化的编程接口无缝集成。当用户提出请求时,Phi-4-mini 可以对查询进行分析,识别并调用相关的函数以及合适的参数,接收函数输出的结果,并将这些结果整合到最终的回应之中。这样一来,就构建了一个可扩展的基于智能体的系统,借助定义良好的函数接口,模型能够连接到外部工具、应用程序接口(API)以及数据源,进而增强自身的能力。下面的例子就模拟了 Phi-4-mini 控制智能家居的场景。
因为体积较小,Phi-4-mini 和 Phi-4-multimodal 模型可以在计算资源有限的环境中使用,尤其是在用 ONNX Runtime 优化后。
训练数据
Phi-4-mini 性能明显优于近期类似规模的开源模型,有一个重要原因就是高质量的训练数据。
相比上一代 Phi-3.5-Mini,研究人员选择了更严格的数据过滤策略,加入了针对性的数学和编程训练数据、特殊清洗过的 Phi-4 合成数据,还通过消融实验重新调整了数据混合比例,增加推理数据的比例为模型带来了显著提升。
具体来说,研究人员从推理模型生成了大量合成的思维链(CoT)数据,同时采用基于规则和基于模型的两种筛选方法来剔除错误的生成结果,将正确的采样答案标记为首选生成,将错误的标记为非首选,并创建 DPO 数据。
不过,这些数据仅用于实验性推理模型,所以正式发布的 Phi-4-Mini 版本检查点中没有这些 CoT 数据。
在后训练阶段,与 Phi-3.5-Mini 相比,Phi-4-Mini 使用了更大规模和更多样化的函数调用和摘要数据。研究人员合成了大量的指令跟随数据来增强模型的指令跟随能力。
在编程方面,研究人员加入了大量的代码补全数据,比如要求模型在现有代码片段中间生成缺失代码的任务。这挑战了模型对需求和现有上下文的理解能力,带来了显著的性能提升。
Phi-4-Multimodal 模型的预训练阶段涉及丰富多样的数据集,视觉 - 语言训练数据包含 0.5T 图像 - 文本文档、OCR 数据、图表理解等;语音相关的训练数据涵盖真实和合成数据,使用内部 ASR 模型转录音频并计算原始文本与转录之间的词错率(WER)来衡量合成语音的质量。
更多详情,请访问原项目地址。
参考链接:
https://huggingface.co/microsoft/Phi-4-multimodal-instruct
#CL-DiffPhyCon
西湖大学提出闭环扩散控制策略,高效与闭环兼得
本文来自西湖大学人工智能系的吴泰霖团队。本文有两位共同第一作者:魏龙是西湖大学人工智能系博士后,冯浩东是西湖大学博士生。通讯作者吴泰霖是西湖大学人工智能系特聘研究员,其领导的人工智能与科学仿真发现实验室主要研究方向为开发生成模型方法并用于科学和工程领域的仿真、设计和控制。
高效闭环控制是复杂系统控制的核心要求。传统控制方法受限于效率与适用性挑战;而新兴的扩散模型虽然表现出色,却难以满足高效闭环控制的要求。西湖大学研究团队最新提出的 CL-DiffPhyCon 框架,通过异步并行去噪技术,在闭环控制要求下,显著提升了控制效率和效果。论文最近被人工智能领域顶级会议 ICLR 2025 接收。
- 论文标题:CL-DiffPhyCon: Closed-loop Diffusion Control of Complex Physical Systems
- 论文链接:https://openreview.net/pdf?id=PiHGrTTnvb
- 代码地址:https://github.com/AI4Science-WestlakeU/CL_DiffPhyCon
一、研究背景
在科学研究、工程实践以及具身智能等诸多领域,系统控制问题都有着广泛的应用。在这些场景中,高效闭环控制是核心性能要求。例如,当机器人在复杂环境中执行任务,必须对周围环境变化做出即时反应。这就需要控制系统能够根据环境实时反馈,迅速调整控制信号,保证每一个动作指令都基于最新的环境状态生成。另外,工业制造、航空航天、能源生产等科学和工程领域的系统控制任务,同样面临着如何实现高效闭环控制的难题。
在过往的研究当中,涌现出了传统控制方法,以及近年来的深度学习、强化学习、模仿学习等众多控制方法。近期的 DiffPhyCon [1] 等研究表明,基于扩散模型 [2] 的方法在复杂物理系统控制中表现出色,尤其是对高维、长时间跨度的控制问题具有显著的优势,这主要源自于扩散模型擅长学习高维分布的特性。这类方法从离线收集的轨迹数据中学习一个去噪模型,从噪声开始,利用去噪模型逐步去噪,产生控制信号。此外,基于扩散模型的策略在机器人操作任务中也具有优异的表现 [3]。
然而,现有的扩散控制方法在应用到闭环控制时,会遇到控制效果和效率难以平衡的缺陷。它们的模型窗口内所有物理时间步,都要经历从纯噪声开始的完整去噪采样过程。若每个物理时间窗口都照此采样并将其中的最早控制信号用于控制,虽然能实现闭环控制,却会带来非常高昂的采样成本。而且,这种方式还可能会破坏控制信号的时序一致性,影响整体控制性能。反之,如果为了提高采样效率,每隔若干个物理时间步才进行一次完整采样,又脱离了闭环控制的要求。
虽然近期有研究工作提出在线重新规划策略(RDM)[4],自适应地确定何时重新规划控制序列,但这种策略也不是真正意义上的闭环框架。它们往往需要额外的似然估计计算开销,还依赖额外的超参数。面对不同任务场景,需要多次实验来调试这些超参数,增加了应用难度和不确定性。
二、本文主要贡献
针对现有扩散控制方法在闭环控制中遇到的上述问题,本论文提出了一种基于扩散模型的闭环控制方法 CL-DiffPhyCon,它能够根据环境的实时反馈生成控制信号,实现了高效的闭环控制。该方法的核心思想是将扩散模型中的物理时间步和去噪过程解耦,允许不同的物理时间步呈现不同的噪声水平,从而实现了控制序列的高效闭环生成。论文在 1D Burgers’方程控制和 2D 不可压缩流体控制两个任务上,验证了 CL-DiffPhyCon 的显著结果。
如下图 1 中所示,该方法具有如下优势:
- 高效采样:CL-DiffPhyCon 通过异步去噪框架,能够显著减少采样过程中的计算成本,提高采样效率。与已有的扩散控制方法相比,CL-DiffPhyCon 能够在更短的时间内生成高质量的控制信号。
- 闭环控制:CL-DiffPhyCon 实现了闭环控制,能够根据环境的实时反馈不断调整控制策略。相比已有的开环扩散控制方法,提高了控制效果。
- 加速采样:此外,CL-DiffPhyCon 还能与 DDIM [5] 等扩散模型的加速采样技术结合,在维持控制效果基本不变的前提下,进一步提升控制效率。
图 1:本文的 CL-DiffPhyCon(右图)相较于以往扩散控制方法(左图和中图)的优势。通过采用异步去噪框架,该方法能够实现闭环控制,并显著加快采样过程。其中,H表示扩散模型包含的物理时间窗口长度,DiffPhyCon - h表示每隔h个物理时间步进行一次包含T个去噪步骤的完整采样过程,然后将采样的控制信号序列中的前h个依次用于开环控制。这里没有展示与 DDIM [5] 的结合。
三、问题设置和预备知识
1. 问题设置:
给定初始状态
、系统动力学G以及特定的控制目标
,本文考虑如下复杂系统的控制问题:
这里,
和
分别是物理时间步
时的系统状态和外部控制信号,轨迹的长度为N。系统动力学G代表系统在外部控制信号下随时间的状态转移规则。G可以是随机性的,存在非零随机噪声
;也可以是确定性的,即
。为了让问题设置更具一般性,状态的演变只能通过实际测量来观测,即假设G的表达形式不一定可以获得。本文中关注闭环控制,意味着每个时间步的控制信号
是从以当前状态
为条件的一个概率分布中采样得到的。这区别于开环控制或者规划(planning)方法,即每次规划未来多个时间步的控制信号后,将其依次应用到环境中,并且在此期间不利用环境反馈进行重新规划。
2. 预备知识:DiffPhyCon 简介
DiffPhyCon [1] 是近期发表的一种基于扩散模型的规划(planning)方法。它提前规划一个物理时间窗口(horizon)
内所有的控制信号,并依次将其用于系统的控制过程。为了记号方便,引入变量
表示第
物理时间步系统状态和控制信号的拼接。该方法包含以下过程:
- 首先离线收集大量的轨迹数据,每条轨迹包括初始状态、控制序列和相应的状态序列。
- 然后,用这些离线轨迹训练一个去噪步数为T,物理时间窗口为N的扩散模型,并将所有物理时刻的系统状态和控制信号的联合隐变量
-
- 作为扩散变量。这里在记号
-
- 中,用下角标表示物理时间
-
- 或其所处的区间,用括号里的t表示扩散步骤。在扩散过程中,随着t增大,
-
- 中的噪声程度逐渐增加:
-
- 不含噪声,
-
- 为高斯噪声。
- 在去噪过程(实际控制过程)中,以系统的初始状态
-
- 为条件,利用训练的扩散模型,在控制目标
-
- 的梯度引导下,让t从T 降到 0,将高斯噪声
-
- 逐步去噪为不含噪声的
-
- ,其中包含控制序列
-
- 和对应产生的状态序列
-
- 。
- 最后,将控制序列
-
- 逐步输入到环境中,实现对系统的控制。
上述过程中隐藏了一个假设:轨迹长度N 较小,这时H 取值为N。而实际问题中更为常见的情形是N 很大,这导致物理时间窗口为N的扩散模型难以在 GPU 中运行或者物理时间跨度太大导致偏离闭环要求过远。这就需要训练一个时间窗口相对较小(H<N)的扩散模型,然后每隔h个物理时间步进行一次完全的去噪过程,或者以自适应的方式确定何时重新规划控制序列 [4],如图 1 左边和中间子图所示。
四、CL-DiffPhyCon 方法介绍
该方法考虑的也是H<N的情形。关键想法是:将扩散模型的模型时间窗口内的物理时间和扩散(去噪)过程解耦,越早的物理时间赋予越快的去噪进度,也就是越低的噪声程度。如此一来,既实现了不同物理时间步的并行采样,提高了采样效率;又能让更早采样到的控制信号所产生的环境反馈用于后续物理时间的控制信号采样,实现了闭环控制。
为了方便,本文首先引入了如下两个记号:
- 同步联合隐变量:
-
- 表示在物理时间区间
-
- 内,对每个分量加入相同程度噪声。这里t的取值范围是 0 到T。
- 异步联合隐变量:
-
- 表示在物理时间区间
-
- 内,为越晚的物理时间赋予越高的噪声程度,即实现了物理时间和去噪进度的解耦。这里t的取值范围是 0 到
-
- 。
针对这两种变量,本文训练了两个扩散模型:同步扩散模型
和异步扩散模型
。
1. 同步扩散模型
:
这个模型预测同步联合隐变量
当中每个分量包含的噪声。它只用于
的物理时刻。训练损失如下:
训练这个模型的目的,是为了采样异步联合隐变量
,这是物理时间上最早的异步联合隐变量。采样方法如下:对于给定的初始条件
,类似于 DiffPhyCon 的去噪过程,从高斯噪声
开始,让t从T逐步减少到
,在每步迭代中,从
当中减去
预测的噪声,同时减去控制目标
的梯度。这样就采样得到了一系列同步联合隐变量
。再从其中取 “对角线”,就能得到初始的异步联合隐变量
(图 2 的 (2) 子图中的虚线红框)。
2. 异步扩散模型
:
这个模型预测隐变量
中每个分量包含的噪声。它用于
的所有物理时刻。它的训练损失如下:
训练这个模型的目的,是为了在给定第
个物理时刻的系统状态
和异步联合隐变量
的条件下,采样
,即实现解耦的异步去噪。采样方法如下:从
开始,让t从
逐步减少到 0,在每一步中,从
当中逐分量减去
预测的噪声,同时减去控制目标
的梯度,最终得到
。
3. 闭环控制过程
基于以上两个训练好的扩散模型,闭环控制的循环过程如下(分别对应图 2 中从左向右 4 个子图):
- 第(1)步:在第
-
- 个物理时间步,获得物理时间窗口
-
- 内的初始状态
-
- 和系统状态
-
- 。特别地,当
-
- 时,通过上文的同步扩散模型
-
- 采样得到
-
- 。
- 第(2)步:以
-
- 为采样条件,利用异步扩散模型
-
- ,从
-
- 开始连续采样
-
- 步,得到
-
- 。
- 第(3)步:将
-
- 的第 1 个分量
-
- 中包含的控制信号
-
- 输入到环境中,得到下一个状态
-
- 。
- 第(4)步:采样一个高斯噪声
-
- ,拼接到第(2)步采样得到的
-
- 的最后
-
- 个分量的结尾,得到物理时间窗口
-
- 内的初始状态
-
- ,同时将
-
- 作为条件,进入下一个物理时间步
-
- 。
图 2:CL-DiffPhyCon 用于闭环控制的流程:(1) 获取当前物理时刻系统状态和 “对角线形” 异步联合隐变量;(2) 利用异步扩散模型去噪;(3) 将采样到的控制信号应用到系统;(4) 获取系统反馈的最新状态和更新后的 “对角线形” 异步联合隐变量,进入到下一个物理时刻。
4. 与扩散模型加速采样技术的结合
值得一提的是,CL-DiffPhyCon 还可与扩散模型领域的快速采样技术相结合,进一步提升采样效率。例如,DDIM [5] 通过特定的采样策略减少了采样步数,在不损失太多采样质量的前提下加快了采样速度。在 CL-DiffPhyCon 的同步和异步模型的采样过程中引入 DDIM,能够使得 CL-DiffPhyCon 在保持控制性能基本不变的前提下,以更快的速度完成采样和控制信号生成,从而在实际应用中更具优势。论文通过实验结果验证了这一点,这说明 CL–DiffPhyCon 具有和已有的扩散模型领域加速采样方法相独立的加速效果。
四、CL-DiffPhyCon 理论分析
论文还从理论上分析了为何需要学习以上两个扩散模型。论文的目标是对联合分布
进行建模,并在控制目标的引导下采样。本文将如下的增广 (augmented) 联合分布作为分析的出发点:
如果我们能够采样这个增广联合分布中的所有随机变量,那么自然也就得到了
(包含于
)。而之所以要研究这个增广联合分布,是因为它指引着我们让
变得 “可被采样”。论文研究发现,这个看似复杂的增广联合分布其实具有一个有趣的规律:假设联合分布
满足 Markov 性质(这是强化学习等决策类问题中常见的假设),那么从增广联合分布中采样的问题,就可以转化为只从两类分布中采样的问题:即先从一个初始分布
中采样得到
,再从一个转移分布
中依次采样,得到一系列
(
)。具体地,该采样过程可以用如下定理描述:
所以,这里采用了 “先繁再简” 的分析策略,为复杂的分布加入了采样的可行性。这个定理还传递出另一个重要的性质:在每个物理时刻采样控制变量
时,所依赖的系统状态
可以从环境反馈中得到。这是因为我们已经采样得到了上一个时刻的控制变量
,因此可以立即将其输入到环境中,得到环境反馈的
。也就是说,这个采样过程能够满足闭环控制的要求。
仔细观察就会发现,上一节中学习的两个扩散模型恰好对应两个分布:即同步扩散模型
的作用是从
中采样,而异步扩散模型
的作用是从
中采样。所以,我们只需要这两个扩散模型就能够实现从轨迹数据分布中采样,再通过在采样过程中加入控制目标的梯度引导,就可以优化控制目标。
五、实验结果
1. 实验设置
借鉴 DiffPhyCon [1] 论文中的实验设置,这篇论文在两个具有挑战性的控制任务上进行了实验:
(1)一维 Burgers 方程控制:通过控制外力项,使系统的最终状态与目标状态一致。
(2)二维烟雾间接控制:通过间接控制外部力场,最小化从非目标出口逸出的污染物比例。
在一维 Burgers 方程控制实验中,考虑了 6 种实际场景,如无噪声控制、物理约束下的控制、存在系统和测量噪声时的控制,以及部分区域可控制(包括全部区域可观测和部分区域可观测两种细分场景)等。在二维烟雾间接控制任务中,设置了大范围区域控制和边界控制 2 种场景,每种又细分为固定障碍物地图和随机障碍物地图两种环境模式,以检验方法的泛化能力。
对比方法包括一系列经典控制方法、模仿学习、强化学习和扩散控制方法,如 PID、行为克隆(BC)、BPPO、自适应重规划扩散控制(RDM)以及 DiffPhyCon 等,并对这些基线方法进行了适当调整,以保证公平比较。由于两个实验中的轨迹较长,研究人员将 DiffPhyCon 扩展为三个版本:DiffPhyCon-h(h∈{1,5,H - 1})。这里的 DiffPhyCon - h表示每隔h个物理时间步进行一次 DiffPhyCon 的完整采样过程,然后将采样的控制信号序列中的前h个用于开环控制(见上文图 1)。
2. 实验结果
在一维 Burgers’方程控制任务中,CL–DiffPhyCon 在 6 种场景下控制效果均优于所有对比方法。与控制效果最佳的对比方法 DiffPhyCon-1 相比,CL-DiffPhyCon 在无噪声和带有物理约束的设置中,使控制目标分别降低了 54.3% 和 48.6%;在两种噪声的情况下,控制目标分别降低了 48.6% 和 57.2%;在部分区域可控制场景中,控制目标分别降低了 11.8% 和 11.1%。在采样效率上,CL-DiffPhyCon 相比每个 DiffPhyCon-h 快了约 H/h 倍(h∈{1,5,15}),也比自适应重规划扩散控制(RDM [4])快两倍。结合 DDIM 采样后,加速效果更明显,进一步实现了 5 倍的加速,且控制效果保持相当。
表 1. 一维 Burgers’方程控制任务上的实验结果对比。
在二维烟雾间接控制中,CL-DiffPhyCon 同样表现优异,在 4 种场景设置中,效果均优于对比方法。在采样效率方面,CL-DiffPhyCon 比 DiffPhyCon-h 实现了约 H/h h∈{1,5,14} 倍的加速,并且比 RDM 更高效。结合 DDIM 后,推理速度进一步加快,比 RDM 快 5 倍以上。
表 2. 二维烟雾间接控制任务上的实验结果对比。
图 3. 在固定地图(上图)和随机地图(下图)两种环境下,CL-DiffPhyCon 与表现最好的对比方法在二维烟雾间接控制上的可视化对比。横向表示不同物理时刻。控制目标 J 越低,表示控制效果越好。
六、总结与展望
CL-DiffPhyCon 为高效闭环控制提供了一种创新解决方案。通过实验验证,证明了其具有兼得优良的控制效果和高效的采样效率的显著优势。不过,研究人员也指出,该方法仍有提升空间。目前 CL-DiffPhyCon 是基于离线数据训练的,未来可以考虑在训练过程中融入环境实时反馈,探索多样的控制策略。此外,虽然两个扩散模型是基于对目标分布的理论分析推出,但在引导采样下得到的样本与最优解的误差界仍是一个开放问题,值得进一步深入研究。
从应用前景来看,CL-DiffPhyCon 不仅适用于这篇论文的复杂物理系统控制任务,在机器人控制、无人机控制等领域也具有广阔的应用潜力。随着研究的不断深入和技术的持续进步,CL-DiffPhyCon 将不断完善,为更广泛领域的控制问题提供有益的解决方案。
参考文献
[1] Long Wei et al. DiffPhyCon: A Generative Approach to Control Complex Physical Systems. NeurIPS 2024.
[2] Jonatha Ho et al. Denoising diffusion probabilistic models. NeurIPS 2020.
[3] Cheng Chi et al. Diffusion policy: Visuomotor policy learning via action diffusion. RSS 2023.
[4] Siyuan Zhou et al. Adaptive online replanning with diffusion models. NeurIPS 2024.
[5] Jiaming Song et al. Denoising Diffusion Implicit Models, ICLR 2021.