1890美元,就能从头训练一个还不错的12亿参数扩散模型

只用1890美元、3700 万张图像,就能训练一个还不错的扩散模型。 现阶段,视觉生成模型擅长创建逼真的视觉内容,然而从头开始训练这些模型的成本和工作量仍然很高。比如 Stable Diffusion 2.1 花费了 200000 个 A100 GPU 小时。即使研究者使用最先进的方法,也需要在 8×H100 GPU 上训练一个多月的时间。 此外,训练大模型也对数据集提出了挑战,这些数据基本以亿为单位,同样给训练模型带来挑战。 高昂的训练成本和对数据集的要求为大规模扩散模型的开发造成了难以逾越的障碍。 现在,来自 Sony AI 等机构的研究者仅仅花了 1890 美元,就训练了一个不错的扩散模型, 具有 11.6 亿参数的稀疏 transformer。 论文地址:https://arxiv.org/pdf/2407.15811 论文标题:Stretching Each Dollar: Diffusion Training from Scratch on a Micro-Budget 项目(即将发布):https://github.com/SonyResearch/micro_diffusion 具体而言,在这项工作中,作者通过开发一种低成本端到端的 pipeline 用于文本到图像扩散模型,使得训练成本比 SOTA 模型降低了一个数量级还多,同时还不需要访问数十亿张训练图像或专有数据集。 作者考虑了基于视觉 transformer 的潜在扩散模型进行文本到图像生成,主要原因是这种方式设计简单,并且应用广泛。为了降低计算成本,作者利用了 transformer 计算开销与输入序列大小(即每张图像的 patch 数量)的强依赖关系。 本文的主要目标是在训练过程中减少 transformer 处理每张图像的有效 patch 数。通过在 transformer 的输入层随机掩蔽(mask)掉部分 token,可以轻松实现这一目标。 然而,现有的掩蔽方法无法在不大幅降低性能的情况下将掩蔽率扩展到 50% 以上,特别是在高掩蔽率下,很大一部分输入 patch 完全不会被扩散 transformer 观察到。 为了减轻掩蔽造成的性能大幅下降,作者提出了一种延迟掩蔽(deferred masking)策略,其中所有 patch 都由轻量级 patch 混合器(patch-mixer)进行预处理,然后再传输到扩散 transformer。Patch 混合器包含扩散 transformer 中参数数量的一小部分。 与 naive 掩蔽方法相比,在 patch mixing 处理之后进行掩蔽允许未掩蔽的 patch 保留有关整个图像的语义信息,并能够在非常高的掩蔽率下可靠地训练扩散 transformer,同时与现有的最先进掩蔽相比不会产生额外的计算成本。 作者还证明了在相同的计算预算下,延迟掩蔽策略比缩小模型规模(即减小模型大小)实现了更好的性能。最后,作者结合 Transformer 架构的最新进展,例如逐层缩放、使用 MoE 的稀疏 Transformer,以提高大规模训练的性能。 作者提出的低成本训练 pipeline 减少了实验开销。除了使用真实图像,作者还考虑在训练数据集中组合其他合成图像。组合数据集仅包含 3700 万张图像,比大多数现有的大型模型所需的数据量少得多。 在这个组合数据集上,作者以 1890 美元的成本训练了一个 11.6 亿参数的稀疏 transformer,并在 COCO 数据集上的零样本生成中实现了 12.7 FID。 值得注意的是,本文训练的模型实现了具有竞争力的 FID 和高质量生成,同时成本仅为 stable diffusion 模型的 1⁄118 ,是目前最先进的方法(成本为 28,400 美元)的 1/15。 ‍方法介绍 为了大幅降低计算成本,patch 掩蔽要求在输入主干 transformer 之前丢弃大部分输入 patch,从而使 transformer 无法获得被掩蔽 patch 的信息。高掩蔽率(例如 75% 的掩蔽率)会显著降低 transformer 的整体性能。即使使用 MaskDiT,也只能观察到它比 naive 掩蔽有微弱的改善,因为这种方法也会在输入层本身丢弃大部分图像 patch。 延迟掩蔽,保留所有 patch 的语义信息 由于高掩蔽率会去除图像中大部分有价值的学习信号,作者不禁要问,是否有必要在输入层进行掩蔽?只要计算成本不变,这就只是一种设计选择,而不是根本限制。事实上,作者发现了一种明显更好的掩蔽策略,其成本与现有的 MaskDiT 方法几乎相同。由于 patch 来自扩散 Transformer 中的非重叠图像区域,每个 patch 嵌入都不会嵌入图像中其他 patch 的任何信息。因此,作者的目标是在掩蔽之前对 patch 嵌入进行预处理,使未被掩蔽的 patch 能够嵌入整个图像的信息。他们将预处理模块称为 patch-mixer。 使用 patch-mixer 训练扩散 transformer 作者认为,patch-mixer 是任何一种能够融合单个 patch 嵌入的神经架构。在 transformer 模型中,这一目标自然可以通过注意力层和前馈层的组合来实现。因此,作者使用一个仅由几个层组成的轻量级 transformer 作为 patch-mixer。输入序列 token 经 patch-mixer 处理后,他们将对其进行掩蔽(图 2e)。 图 2:压缩 patch 序列以降低计算成本。由于扩散 transformer 的训练成本与序列大小(即 patch 数量)成正比,因此最好能在不降低性能的情况下缩减序列大小。这可以通过以下方法实现:b) 使用更大的 patch;c) 随机简单(naive)掩蔽一部分 patch;或者 d) 使用 MaskDiT,该方法结合了 naive 掩蔽和额外的自动编码目标。作者发现这三种方法都会导致图像生成性能显著下降,尤其是在高掩蔽率的情况下。为了缓解这一问题,他们提出了一种直接的延迟掩蔽策略,即在 patch-mixer 处理完 patch 后再对其进行掩蔽。除了使用 patch-mixer 之外,他们的方法在所有方面都类似于 naive 掩蔽。与 MaskDiT 相比,他们的方法无需优化任何替代目标,计算成本几乎相同。 假定掩码为二进制掩码 m,作者使用以下损失函数来训练模型: 其中,M_ϕ 是 patch-mixer 模型,F_θ 是主干 transformer。请注意,与 MaskDiT 相比,本文提出的方法还简化了整体设计,不需要额外的损失函数,也不需要在训练过程中在两个损失之间进行相应的超参数调优。在推理过程中,该方法不掩蔽任何 patch。 未掩蔽微调 由于极高的掩蔽率会大大降低扩散模型学习图像全局结构的能力,并在序列大小上引入训练 – 测试分布偏移,因此作者考虑在掩蔽预训练后进行少量的未掩蔽微调。微调还可以减轻由于使用 patch 掩蔽而产生的任何生成瑕疵。因此,在以前的工作中,恢复因掩蔽而急剧下降的性能至关重要,尤其是在采样中使用无分类器引导时。然而,作者认为这并不是完全必要的,因为即使在掩蔽预训练中,他们的方法也能达到与基线未掩蔽预训练相当的性能。作者只在大规模训练中使用这种方法,以减轻由于高度 patch 掩蔽而产生的任何未知 – 未知生成瑕疵。 利用 MoE 和 layer-wise scaling 改进主干 transformer 架构 作者还利用 transformer 架构设计方面的创新,在计算限制条件下提高了模型的性能。 他们使用混合专家层,因为它们在不显著增加训练成本的情况下增加了模型的参数和表现力。他们使用基于专家选择路由的简化 MoE 层,每个专家决定路由给它的 token,因为它不需要任何额外的辅助损失函数来平衡专家间的负载。他们还考虑了 layer-wise scaling,该方法最近被证明在大型语言模型中优于典型 transformer。该方法线性增加 transformer 块的宽度,即注意力层和前馈层的隐藏层维度。因此,网络中较深的层比较早的层被分配了更多的参数。作者认为,由于视觉模型中的较深层往往能学习到更复杂的特征,因此在较深层使用更高的参数会带来更好的性能。作者在图 3 中描述了他们提出的扩散 Transformer 的整体架构。 图 3:本文提出的扩散 transformer 的整体架构。作者在骨干 transformer 模型中加入了一个轻量级的 patch-mixer,它可以在输入图像中的所有 patch 被掩蔽之前对其进行处理。根据当前的研究成果,作者使用注意力层处理 caption 嵌入,然后再将其用于调节。他们使用正弦嵌入来表示时间步长。他们的模型只对未掩蔽的 patch 进行去噪处理,因此只对这些 patch 计算扩散损失(论文中的公式 3)。他们对主干 transformer 进行了修改,在单个层上使用了 layer-wise scaling,并在交替 transformer 块中使用了混合专家层。 实验 实验采用扩散 Transformer(DiT)两个变体 DiT-Tiny/2 和 DiT-Xl/2。 如图 4 所示,延迟掩蔽方法在多个指标中都实现了更好的性能。此外,随着掩蔽率的增加,性能差距会扩大。例如,在 75% 的掩蔽率下,naive 掩蔽会将 FID 得分降低到 16.5(越低越好),而本文方法可以达到 5.03,更接近没有掩蔽的 FID 得分 3.79。 表 1 表明 layer-wise scaling 方法在扩散 transformer 的掩蔽训练中具有更好的拟合效果。 比较不同的掩蔽策略。作者首先将本文方法与使用较大 patch 的策略进行比较。将 patch 大小从 2 增加到 4,相当于 75% 的 patch 掩蔽。与延迟掩蔽相比,其他方法表现不佳,分别仅达到 9.38、6.31 和 26.70 FID、Clip-FID 和 Clip-score。相比之下,延迟掩蔽分别达到 7.09、4.10 和 28.24 FID、Clip-FID 和 Clip-score。 下图为延迟掩蔽 vs. 模型缩小以减少训练成本的比较。在掩蔽率达到 75% 之前,作者发现延迟掩蔽在至少三个指标中的两个方面优于网络缩小。但是,在极高的掩蔽率下,延迟掩蔽往往会实现较低的性能。这可能是因为在这些比率下掩蔽的信息损失太高导致的。 表 5 提供了有关模型训练超参数的详细信息。训练过程分两个阶段。 计算成本。表 2 提供了每个训练阶段的计算成本明细,包括训练 FLOP 和经济成本。第 1 阶段和第 2 阶段训练分别消耗了总计算成本的 56% 和 44%。模型在 8×H100 GPU 集群上的总时钟训练时间为 2.6 天,相当于在 8×A100 GPU 集群上为 6.6 天。

「越狱」事件频发,如何教会大模型「迷途知返」而不是「将错就错」?

大型语言模型(LLM)展现出了令人印象深刻的智能水平。因此,确保其安全性显得至关重要。已有研究提出了各种策略,以使 LLM 与人类伦理道德对齐。然而,当前的先进模型例如 GPT-4 和 LLaMA3-70b-Instruct 仍然容易受到越狱攻击,并被用于恶意用途。 为什么哪怕经过了大量的安全对齐,这些模型依然容易被越狱?应该如何进一步把安全对齐做深(deep)? 围绕这两个问题,香港中文大学(深圳)贺品嘉团队和腾讯AI Lab实验室联合提出了 Decoupled Refusal Training (DeRTa),一个简单新颖的安全微调方法,可以赋予大语言模型「迷途知返」的能力,从而在不影响模型有用性(helpfulness)的同时,大幅提升其安全性(safety)。 论文标题:Refuse Whenever You Feel Unsafe: Improving Safety in LLMs via Decoupled Refusal Training 论文地址:https://arxiv.org/abs/2407.09121 开源代码:https://github.com/RobustNLP/DeRTa 研究者发现,安全微调数据中存在拒绝位置偏差(refusal position bias),即模型表示拒绝回答的行为,总是出现在回复的开头,这可能阻碍了模型在后续位置处保持安全的能力。为了验证这一猜测,研究者使用越狱样本测试 LLaMA3-8B 和 LLaMA3-70B,结果显示几乎所有(99.5%)被模型成功拒绝的越狱样本,拒绝性单词(如 Sorry)都出现在前五个单词中。一旦开头没有被拒绝,模型将很难在后续位置表现出安全的行为。 方法 为了解决这一问题,该论文提出了解耦拒绝训练(DeRTa)。DeRTa 包括两个新颖的设计: 带有有害前缀的最大似然估计(MLE):将一段随机长度的有害回复(harmful response)添加到安全回复的开头,可以训练 LLMs 在任何位置拒绝回复,而不仅仅是在开始处。此外,添加有害前缀提供了额外的上下文,显著提高了 LLM 识别和避免不安全内容的能力。 强化过渡优化(RTO):虽然加入有害前缀可以帮助模型从有害状态过渡到安全状态,但每个训练样本仅提供单次过渡,可能不足以使 LLM 有效识别和阻止潜在威胁。为了应对这一问题,研究者引入了一个辅助训练目标 RTO,让模型在有害序列的任意位置,都预测下一个单词为「Sorry」,从而在有害回复序列中的每个位置都学习一次从有害到安全的过渡。 上述设计确保了模型防御机制的全面增强,允许模型学会「迷途知返」的行为。该方法的设计,在推特上也引起了一定的讨论。 主要实验 为了验证方法的效果,研究者在两个知名的模型家族 LLaMA3 (8B & 70B) 和 Mistral (7B & 8×7B) 上进行了实验,涵盖六种不同的越狱攻击方式。结果显示: DeRTa 显著提升了安全性,同时不会降低有用性。 DeRTa 可以进一步提升 LLaMA3-70B-Instruct 的安全性。 分析实验 为了提供更多有价值的见解,研究者主要基于 LLaMA3-70B,对 DeRTa 的工作原理进行了更细致的分析,包括: 1. 案例研究,DeRTa 如何影响拒绝性单词位置分布2. 消融实验,DeRTa 中两种策略的作用大小3. 分析实验一,与 DPO 进行比较,探究训练数据中的有害回复所发挥的作用4. 分析实验二,DeRTa 在不同模型尺寸的适用性 首先,论文给出的示例具体地展示了 DeRTa 模型的「迷途知返」能力:即使在已经输出了一部分不安全文本的情况下,模型也能有效过渡到安全状态。此外,作者给出了在不同的方法下,模型输出的拒绝性单词的位置分布。可以看出,使用了 RTO 的模型,可以在显著靠后的位置,仍然具有保持安全的能力。 在消融实验中,实验结果显示,仅仅使用有害前缀策略不足以应对各种形式的攻击。例如,该策略对于防御 CodeAttack 这类较为复杂的攻击几乎没有帮助。该攻击通过让模型补全代码来越狱,模型在前面位置的回复中,会进行无恶意的代码补全,到一定位置处,模型将会开始一边补全代码一边生成恶意回复。 对于有害前缀策略的这些不足,RTO 可以有效弥补,从而使模型展现出很高的安全性,这说明 RTO 对于加强(赋予)模型在任何位置拒绝的能力至关重要。 RTO 的成功很自然带来一个问题:模型安全性的提升,是否可以归功于训练中整合了有害回复,而不是建模了 token 级别的安全过渡?为了回答这一问题,作者将 DeRTa 与 DPO 进行了比较。该实验进一步验证了,DeRTa 带来的安全性提升并不是简单地利用了有害回复的信息,而是得益于其对 token 级别安全过渡的直接建模。 此外,该论文也展示了在不同尺寸的模型上的表现,包括 LLaMA3 (8B & 70B) 和 Mistral (7B & 8×7B),结果显示该方法对不同大小的模型均有很好的效果。 结语 大模型安全依然任重道远。如何突破表面对齐,将安全做深入是一件很有挑战的事情。研究者在此给出了一些探索和思考,希望可以为这一方面的研究,提供一些有价值的见解和基线方法。

刚刚,Meta开源「分割一切」2.0模型,视频也能分割了

还记得 Meta 的「分割一切模型」吗?这个模型在去年 4 月发布,被很多人认为是颠覆传统 CV 任务的研究。 时隔一年多,刚刚,Meta 在 SIGGRAPH 上重磅宣布 Segment Anything Model 2 (SAM 2) 来了。在其前身的基础上,SAM 2 的诞生代表了领域内的一次重大进步 —— 为静态图像和动态视频内容提供实时、可提示的对象分割,将图像和视频分割功能统一到一个强大的系统中。 SAM 2 可以分割任何视频或图像中的任何对象 —— 甚至是它以前没有见过的对象和视觉域,从而支持各种不同的用例,而无需自定义适配。 在与黄仁勋的对话中,扎克伯格提到了 SAM 2:「能够在视频中做到这一点,而且是在零样本的前提下,告诉它你想要什么,这非常酷。」 Meta 多次强调了最新模型 SAM 2 是首个用于实时、可提示的图像和视频对象分割的统一模型,它使视频分割体验发生了重大变化,并可在图像和视频应用程序中无缝使用。SAM 2 在图像分割准确率方面超越了之前的功能,并且实现了比现有工作更好的视频分割性能,同时所需的交互时间为原来的 1/3。 该模型的架构采用创新的流式内存(streaming memory)设计,使其能够按顺序处理视频帧。这种方法使 SAM 2 特别适合实时应用,为各个行业开辟了新的可能性。 当然,处理视频对算力的要求要高得多。SAM 2 仍然是一个庞大的模型,也只有像 Meta 这样的能提供强大硬件的巨头才能运行,但这种进步还是说明了一些问题:一年前,这种快速、灵活的分割几乎是不可能的。SAM 2 可以在不借助数据中心的情况下运行,证明了整个行业在计算效率方面的进步。 模型需要大量的数据来训练,Meta 还发布了一个大型带注释数据库,包括大约 51,000 个真实世界视频和超过 600,000 个 masklets。与现有最大的视频分割数据集相比,其视频数量多 4.5 倍,注释多 53 倍,Meta 根据 CC BY 4.0 许可分享 SA-V。在 SAM 2 的论文中,另一个包含超过 100,000 个「内部可用」视频的数据库也用于训练,但没有公开。 与 SAM 一样,SAM 2 也会开源并免费使用,并在 Amazon SageMaker 等平台上托管。为了履行对开源 AI 的承诺,Meta 使用宽松的 Apache 2.0 协议共享代码和模型权重,并根据 BSD-3 许可分享 SAM 2 评估代码。 目前,Meta 已经提供了一个 Web 的演示体验地址:https://sam2.metademolab.com/demo 基于 web 的 SAM 2 演示预览,它允许分割和跟踪视频中的对象。 正如扎克伯格上周在一封公开信中指出的那样,开源人工智能比任何其他现代技术都更具有潜力,可以提高人类的生产力、创造力和生活质量,同时还能加速经济增长并推动突破性的医学和科学研究。人工智能社区利用 SAM 取得的进展给我们留下了深刻的印象, SAM 2 必将释放更多令人兴奋的可能性。 SAM 2 可立即应用于各种各样的实际用例 – 例如,跟踪对象(左)或分割显微镜捕获的视频中的移动细胞以辅助科学研究(右)。 ‍未来,SAM 2 可以作为更大型 AI 系统的一部分,通过 AR 眼镜识别日常物品,并向用户提供提醒和说明。 SAM 2 前脚刚上线,大家就迫不及待的用起来了:「在 Meta 未提供的测试视频上试用 SAM 2。效果好得令人瞠目结舌。」 来源:https://x.com/BenjaminDEKR/status/1818066956173664710 还有网友认为,SAM 2 的出现可能会使其他相关技术黯然失色。 如何构建 SAM 2? SAM 能够了解图像中对象的一般概念。然而,图像只是动态现实世界的静态快照。许多重要的现实用例需要在视频数据中进行准确的对象分割,例如混合现实、机器人、自动驾驶车辆和视频编辑。Meta 认为通用的分割模型应该适用于图像和视频。 图像可以被视为具有单帧的非常短的视频。Meta 基于这个观点开发了一个统一的模型,无缝支持图像和视频输入。处理视频的唯一区别是,模型需要依靠内存来调用该视频之前处理的信息,以便在当前时间步准确地分割对象。 视频中对象的成功分割需要了解实体在空间和时间上的位置。与图像分割相比,视频提出了重大的新挑战。对象运动、变形、遮挡、光照变化和其他因素可能会因帧而异。由于摄像机运动、模糊和分辨率较低,视频的质量通常低于图像,这增加了难度。因此,现有的视频分割模型和数据集在为视频提供可比的「分割任何内容」功能方面存在不足。 Meta 构建 SAM 2 和新 SA-V 数据集来解决这些挑战。 与用于 SAM 的方法类似,Meta 对视频分割功能的研究涉及设计新任务、模型和数据集。 研究团队首先开发了可提示的(promptable)视觉分割任务并设计了一个能够执行该任务的模型 ——SAM 2。 然后,研究团队使用 SAM 2 来帮助创建视频对象分割数据集 ——SA-V,该数据集比当前存在的任何数据集大一个数量级。研究团队使用它来训练 SAM 2 以实现 SOTA 性能。 可提示的视觉分割 SAM 2 支持在任何视频帧中选择和细化对象。 研究团队设计了一个可提示的视觉分割任务,将图像分割任务推广到视频领域。SAM 经过训练,以图像中的输入点、框或掩码来定义目标对象并预测分割掩码。该研究训练 SAM 2 在视频的任何帧中获取输入提示来定义要预测的时空掩码(即「masklet」)。 SAM 2 根据输入提示立即预测当前帧上的掩码,并将其临时传播(temporally propagate)以生成跨所有视频帧的目标对象的 masklet。一旦预测出初始 masklet,就可以通过在任何帧中向 SAM 2 提供附加提示来迭代完善它。这可以根据需要重复多次,直到获得所需的 masklet。 统一架构中的图像和视频分割 从 SAM 到 SAM 2 的架构演变。 SAM 2 架构可以看作是 SAM 从图像领域到视频领域的推广。 SAM 2 可以通过点击、边界框或掩码被提示,以定义给定帧中对象的范围。轻量级掩码解码器采用当前帧的图像嵌入和编码提示来输出该帧的分割掩码。在视频设置中,SAM 2 将此掩码预测传播到所有视频帧以生成 masklet,然后在任何后续帧上迭代添加提示以细化 masklet 预测。 为了准确预测所有视频帧的掩码,研究团队引入了一种由记忆编码器、记忆库(memory bank)和记忆注意力模块组成的记忆机制。当应用于图像时,内存组件为空,模型的行为类似于 SAM。对于视频,记忆组件能够存储关于该会话中的对象和先前用户交互的信息,从而允许 SAM 2 在整个视频中生成 masklet 预测。如果在其他帧上提供了额外的提示,SAM 2 可以根据对象存储的记忆上下文有效地纠正其预测。 帧的记忆由记忆编码器根据当前掩码预测创建,并放置在记忆库中以用于分割后续帧。记忆库由先前帧和提示帧的记忆组成。记忆注意力操作从图像编码器获取每帧嵌入,并根据记忆库进行调整以产生嵌入,然后将其传递到掩码解码器以生成该帧的掩码预测。对于所有后续帧重复此操作。 Meta 采用流式架构,这是 SAM 在视频领域的自然推广,一次处理一个视频帧并将有关分割对象的信息存储在记忆中。在每个新处理的帧上,SAM 2 使用记忆注意力模块来关注目标对象之前的记忆。这种设计允许实时处理任意长的视频,这不仅对于 SA-V 数据集的注释收集效率很重要,而且对于现实世界的应用(例如在机器人领域)也很重要。 当图像中被分割的对象存在模糊性时,SAM 会输出多个有效掩码。例如,当一个人点击自行车轮胎时,模型可以将这次点击解释为仅指轮胎或整个自行车,并输出多个预测。在视频中,这种模糊性可能会扩展到视频帧中。例如,如果在一帧中只有轮胎可见,则轮胎上的点击可能仅与轮胎相关,或者随着自行车的更多部分在后续帧中变得可见,这种点击可能是针对整个自行车的。为了处理这种模糊性,SAM 2 在视频的每个步骤创建多个掩码。如果进一步的提示不能解决歧义,模型会选择置信度最高的掩码,以便在视频中进一步传播。 SAM 2 架构中的遮挡 head 用于预测对象是否可见,即使对象暂时被遮挡,也能帮助分割对象。 在图像分割任务中,在给定积极提示的情况下,帧中始终存在可分割的有效对象。在视频中,特定帧上可能不存在有效对象,例如由于对象被遮挡或从视图中消失。为了解释这种新的输出模式,研究团队添加了一个额外的模型输出(「遮挡 head(occlusion head)」),用于预测当前帧中是否存在感兴趣的对象。这使得 SAM 2 能够有效地处理遮挡。 SA-V:Meta 构建了最大的视频分割数据集 来自 SA-V 数据集的视频和掩码注释。 ‍ 为了收集一个大型且多样化的视频分割数据集,Meta 建立了一个数据引擎,其中注释员使用 SAM 2 交互地在视频中注释 masklet,然后将新注释的数据用于更新 SAM 2。他们多次重复这一循环,以迭代地改进模型和数据集。与 SAM 类似,Meta 不对注释的 masklet 施加语义约束,注重的是完整的物体(如人)和物体的部分(如人的帽子)。 借助 SAM 2,收集新的视频对象分割掩码比以往更快,比每帧使用 SAM 快约 8.4 倍。此外,Meta 发布的 SA-V 数据集的注释数量是现有视频对象分割数据集的十倍以上,视频数量大约是其 4.5 倍。 总结而言,SA-V 数据集的亮点包括: 在大约 51,000 个视频中有超过 600,000 个 masklet 注释; 视频展示了地理上不同的真实场景,收集自 47 个国家; 覆盖整个对象、对象中的一部分,以及在物体被遮挡、消失和重新出现的情况下具有挑战性的实例。 结果 下方两个模型都是用第一帧中的 T 恤蒙版初始化的。对于 baseline,Meta 使用来自 SAM 的蒙版,问题是过度分割并包括人的头部,而不是仅跟踪 T 恤。相比之下,SAM 2 能够在整个视频中准确跟踪对象部分。 为了创建统一的图像和视频分割模型,Meta 将图像视为单帧视频,在图像和视频数据上联合训练 SAM 2。团队利用了去年作为 Segment Anything 项目的一部分发布的 SA-1B 图像数据集、SA-V 数据集以及额外的内部许可视频数据集。 ‍ SAM 2(右)提高了 SAM(左)图像中的对象分割精度。 SAM 2 论文也展示了该模型的多项提升: 1、SAM 2 在 17 个零样本视频数据集的交互式视频分割方面表现明显优于以前的方法,并且所需的人机交互减少了大约三倍。 2、SAM 2 在 23 个数据集零样本基准测试套件上的表现优于 SAM,而且速度快了六倍。 3、与之前的最先进模型相比,SAM 2 在现有的视频对象分割基准(DAVIS、MOSE、LVOS、YouTube-VOS)上表现出色。 4、使用 SAM 2 进行推理感觉很实时,速度大约为每秒 44 帧。 5、循环中使用 SAM 2 进行视频分割注释的速度比使用 SAM 进行手动每帧注释快 8.4 倍。 6、为了衡量 SAM 2 的公平性,Meta 对特定人群的模型性能进行了评估。结果表明,在感知性别和 18-25 岁、26-50 岁和 50 岁以上三个感知年龄组评估中,模型显示的差异很小。 更多结果,请查看论文。 论文地址:https://scontent-sjc3-1.xx.fbcdn.net/v/t39.2365-6⁄453323338_287900751050452_6064535069828837026_n.pdf?_nc_cat=107&ccb=1-7&_nc_sid=3c67a6&_nc_ohc=TnvI-AaGawoQ7kNvgFJPdfC&_nc_ht=scontent-sjc3-1.xx&oh=00_AYAlCBmHCcIEnDo-YzzCScg8NZPgTQlwjE9FVlniLRw5JQ&oe=66AE2179 局限性 虽然 SAM 2 在分割图像和短视频中的对象方面表现出色,但仍然会遇到诸多挑战。 SAM 2 可能会在摄像机视角发生剧烈变化、长时间遮挡、拥挤的场景或较长的视频中失去对对象的追踪。 在实际应用中,Meta 设计了交互式模型来缓解这一问题,并通过在任意帧中点击校正来实现人工干预,从而恢复目标对象。 在拥挤的场景中,SAM 2 有时会混淆多个外观相似的对象。 ‍ 当目标对象只在一帧中指定时,SAM 2 有时会混淆对象,无法正确分割目标,如上述视频中的马匹所示。在许多情况下,通过在未来帧中进行额外的细化提示,这一问题可以完全解决,并在整个视频中获得正确的 masklet。 虽然 SAM 2 支持同时分割多个单独对象的功能,但模型的效率却大大降低。实际上,SAM 2 对每个对象进行单独处理,只利用共享的每帧嵌入,不进行对象间通信。虽然这简化了模型,但纳入共享的对象级上下文信息有助于提高效率。 SAM 2 的预测可能会错过快速移动对象的细节。 对于复杂的快速运动对象,SAM 2 有时会漏掉一些细节,而且预测结果在帧之间可能不稳定,如上文骑自行车者的视频所示。 在同一帧或其他帧中添加进一步的提示来优化预测只能部分缓解此问题。在训练过程中,如果模型预测在帧间抖动,不会对其进行任何惩罚,因此无法保证时间上的平滑性。提高这种能力可以促进需要对精细结构进行详细定位的实际应用。 虽然 Meta 的数据引擎在循环中使用了 SAM 2,且在自动 masklet 生成方面也取得了长足进步,但仍然依赖人工注释来完成一些步骤,例如验证 masklet 质量和选择需要校正的帧。 因此,未来的发展需要进一步自动化这个数据注释过程,以提高效率。要推动这项研究,还有很多工作要做。 参考链接: https://ai.meta.com/blog/segment-anything-2-video/ https://techcrunch.com/2024/07/29/zuckerberg-touts-metas-latest-video-vision-ai-with-nvidia-ceo-jensen-huang/

只要一张图就能「还原」绘画过程,这篇论文比爆火的Paints-UNDO实现得更早

最近,lvmin 带来了最新模型 Paints-UNDO。这款 AI 生成工具可以根据图片还原整个绘画过程,整个 AIGC 社区都为之震撼。 Paints-UNDO 的演示 demo。 早在 1 个月前,NUS,SJTU,Tiamat 等机构联合已经发布了一篇做类似任务的工作 ProcessPainter: Learn Painting Process from Sequence Data。Paints-UNDO 技术报告还未公布,让我们一起看看 ProcessPainter 是如何实现的吧! 论文标题:ProcessPainter: Learn Painting Process from Sequence Data 论文链接:https://arxiv.org/pdf/2406.06062 代码链接:https://github.com/nicolaus-huang/ProcessPainter 翻开任意一本绘画教学书籍,都能看到按照步骤画画的指导。然而,在生成式 AI 时代,通过去噪过程完成图像生成和人类画家绘画过程完全不同,AI 画画的过程无法直接用于绘画教学。 为了解决这一问题,ProcessPainter 通过在合成数据和人类画师绘画视频上训练时序模型,首次实现了让扩散模型生成绘画过程。此外,不同题材、画师的绘画过程差异巨大,风格迥异。然而,目前很少有研究将绘画过程作为研究对象。论文作者在预训练的 Motion Model 基础上,通过在特定画师的少量绘画序列上训练 Motion LoRA,学习画师的绘画技法。 深入解读 ProcessPainter 的核心技术 1. 时序注意力机制(Temporal Attention) 用时序注意力学习生成绘画过程是 ProcessPainter 的核心创新。绘画序列生成的关键是,整个序列是同一张图从抽象到具体的变化过程, 前后帧在内容和构图上是一致且相关的。为了实现这一目标,作者为 Unet 引入了来自 AnimateDiff 的时序注意模块。该模块位于每一层扩散层之后,通过帧间自注意机制来吸收不同帧的信息,确保整个序列的平滑过渡和连续性。 实验证明,该训练策略可以在帧之间保持一致的绘画效果。绘画过程生成和视频生成任务不同之处在于,绘画过程前后变化更加剧烈,首帧是完成度很低的色块或线稿,而尾帧是完整的画作,这对模型训练带来挑战。为此,论文作者先在大量合成数据集上预训练时序模块,让模型学习各种各种 SBR(Stroke-based rendering) 方法的逐步绘画过程,再用数十个艺术家的绘画过程数据训练 Painting LoRA 模型。 2. 艺术品复制网络(Artwork Replication Network) 绘画实践中,我们更希望知道一幅作品是如何画出来的,以及如何从半成品绘画继续细化以达到期待的成品效果。这就引申出了两个任务:绘画过程重建和补全。鉴于这两个任务都有图像的输入,论文作者提出了艺术品复制网络(Artwork Replication Network)。 这一网络设计能够处理任意帧的图像输入,灵活控制绘画过程的生成。与之前的可控性生成方法类似,论文作者引入一个 ControlNet 的变体,来控制生成结果中的特定帧与参考图一致。 3. 合成数据集与训练策略由于真实绘画过程数据较难获取,数量不足以支持大规模训练。为此,论文作者构建了用于预训练的合成数据集。 具体采用了三种合成数据方法: 1. 采用 Learn to Paint 来产生半透明贝赛尔曲线笔触的绘画序列; 2. 通过自定义笔触,用 Neural style painting 生成油画风格和中国画风格的绘画序列。3. 上述 SBR(Stroke base painting)方法是从粗到细的拟合一张目标图像, 意味着允许对于已经绘画的部分进行覆盖和修改,然而很多绘画种类,如中国画和雕刻,由于材料的限制,无法大幅度修改已经完成的部分, 绘画过程是分区域完成的。为此,论文作者采用 SAM(segment anything) 和显著性检测方法,从空白画布逐个子区域添加内容,先绘制显著性物体, 然后逐步向背景扩散,从而合成绘画过程视频。 在训练阶段,论文作者首先在合成数据集上预训练了 Motion Model,然后冻结了 Motion Model 的参数并训练了 Artwork Replication Network。在微调绘画 LoRA 模型时,第一步只使用最终帧来微调空间注意力 LoRA,以防止半成品绘画训练集损害模型的生成质量。 此后,论文作者冻结了空间注意力 LoRA 的参数,并使用完整的绘画序列微调时间注意力 LoRA。在推理阶段,当从文本生成绘画序列时,ProcessPainter 不使用艺术品复制网络。在绘画过程重建和补全任务中,ProcessPainter 使用艺术品复制网络接收特定帧的参考输入。为了确保生成的绘画序列中的帧尽可能与输入图像匹配,ProcessPainter 采用了 DDIM 反演技术来获取参考图像的初始噪声,并在 UNet 中替换特定帧的初始噪声。 ProcessPainter 效果展示在合成数据集上训练的 ProcessPainter base model 可以生成过程上有风格差异的绘画序列。 通过在少量人类画师的绘画序列上分别训练 Motion Lora,ProcessPainter 可以学习特定画师的绘画过程和风格。 指定参考图像,ProcessPainter 可以将完成的艺术品逆向解构为绘画步骤,或者从半成品推演出完整的画作。 这些技术组件的结合,让 ProcessPainter 不仅能够从文本生成绘画过程,还能将参考图转换成绘画序列,或是对未完成的画作进行补全。这无疑为艺术教育提供了新工具,同时也为 AIGC 社区开辟了新赛道。也许不久的将来,Civitai 上会有各种模拟人类画师绘画过程的不同 Lora 出现。

ICML 2024|复杂组合3D场景生成,LLMs对话式3D可控生成编辑框架来了

近年来,针对单个物体的 Text-to-3D 方法取得了一系列突破性进展,但是从文本生成可控的、高质量的复杂多物体 3D 场景仍然面临巨大挑战。之前的方法在生成场景的复杂度、几何质量、纹理一致性、多物体交互关系、可控性和编辑性等方面均存在较大缺陷。 最近,来自北京大学王选计算机研究所的 VDIG 研究团队与其合作者公布了最新研究成果 GALA3D。针对多物体复杂 3D 场景生成,该工作提出了 LLM 引导的复杂三维场景可控生成框架 GALA3D,能够生成高质量、高一致性、具有多物体和复杂交互关系的 3D 场景,支持对话式交互的可控编辑,论文已被 ICML 2024 录用。 论文标题:GALA3D: Towards Text-to-3D Complex Scene Generation via Layout-guided Generative Gaussian Splatting 论文链接:https://arxiv.org/pdf/2402.07207 论文代码:https://github.com/VDIGPKU/GALA3D 项目网站:https://gala3d.github.io/   GALA3D 是一个高质量的 Text-to-3D 复杂组合场景生成与可控编辑框架。用户输入一段描述文本,GALA3D 能够 zero-shot 地生成相应的具有多物体和复杂交互关系的三维场景。GALA3D 在保证生成 3D 场景与文本高度对齐的同时,展现了其在生成场景质量、多物体复杂交互、场景几何一致性等方面的卓越性能。此外,GALA3D 还支持用户友好的端到端生成和可控编辑,使得普通用户能够在对话式的交谈中轻松定制和编辑 3D 场景。在与用户的交流中,GALA3D 可以精准地实现复杂三维场景对话式的可控编辑,并根据用户的对话实现复杂三维场景的布局变换、数字资产嵌入、装修风格改变等多样化的可控编辑需求。 方法介绍   GALA3D 的整体架构如下图所示:   GALA3D 利用大型语言模型(LLMs)生成初始布局,并提出布局引导的生成式 3D 高斯表示构建复杂 3D 场景。GALA3D 设计通过自适应几何控制优化 3D 高斯的形状和分布,以生成具有一致几何、纹理、比例和精确交互的 3D 场景。此外,GALA3D 还提出了一种组合优化机制,结合条件扩散先验和文生图模型,协作生成具有一致风格的 3D 多物体场景,同时迭代优化从 LLMs 提取的初始布局先验,以获得更加逼真准确的真实场景空间布局。广泛的定量实验和定性研究表明 GALA3D 在文本到复杂三维场景生成方面取得了显著效果,超越现有文生 3D 场景方法。 a、基于 LLMs 的场景布局先验   大语言模型展现了优异的自然语言理解和推理能力,本文进一步探索了 LLMs 大语言模型在 3D 复杂场景的推理和布局生成能力。如何在没有人工设计的情况下获得相对合理的布局先验有助于减少场景建模和生成的代价。对此,我们使用 LLMs (例如 GPT-3.5) 对文本输入的实例及其空间关系进行抽取,并生成相应的 Layout 布局先验。然而,通过 LLMs 解读的场景 3D 空间布局和 Layout 先验与实际场景存在一定差距,通常表现生成悬浮 / 穿模的物体,比例差异过大的物体组合等。进一步地,我们提出了 Layout Refinement 模块,通过基于视觉的 Diffusion 先验和 Layout 引导的生成式 3D 高斯对上述生成的粗糙布局先验进行调整和优化。 b、Layout Refinement   GALA3D 使用基于 Diffusion 先验的 Layout 布局优化模块对上述 LLMs 生成的布局先验进行优化。具体地,我们将 Layout 引导的 3D 高斯空间布局的梯度优化加入 3D 生成过程,通过 ControlNet 对 LLM-generated Layouts 进行空间位置、旋转角度和尺寸比例的调整,如图展示了优化前后 3D 场景和 Layout 的对应关系。经过优化的 Layout 具有更加准确的空间位置和比例尺度,并且使得 3D 场景中多物体的交互关系更加合理。   c、布局引导的生成式 3D 高斯表示   我们首次将 3D-Layout 约束引入 3D 高斯表示,提出了布局引导的生成式 3D 高斯,用于复杂文生 3D 场景。Layout-guided 3D 高斯表示包含多个语义抽取的实例物体,其中每个实例物体的 Layout 先验可以参数化为:   其中,N 代表场景中实例物体的总数。具体地,每一个实例 3D 高斯通过自适应几何控制进行优化,得到实例级的物体 3D 高斯表示。进一步地,我们将多个物体高斯根据相对位置关系组合到全场景中,生成布局引导的全局 3D 高斯并通过全局 Gaussian Splatting 渲染整个场景。 d、自适应几何控制   为了更好地控制 3D 高斯在生成过程中的空间分布和几何形状,我们提出了针对生成式 3D 高斯的自适应几何控制方法。首先给定一组初始高斯,为了将 3D 高斯约束在 Layout 范围内,GALA3D 使用一组密度分布函数来约束高斯椭球的空间位置。我们接着对 Layout 表面附近的高斯进行采样来拟合分布函数。之后,我们提出使用形状正则化控制 3D 高斯的几何形状。在 3D 生成的过程中,自适应几何控制不断优化高斯的分布和几何,从而生成更具纹理细节和规范几何的 3D 多物体与场景。自适应几何控制还保证了布局引导的生成式 3D 高斯具有更高的可控性和一致性。 实验结果   与现有 Text-to-3D 生成方法相比,GALA3D 展现了更加优异的 3D 场景生成质量和一致性,定量实验结果如下表所示:   我们还进行了广泛且有效的用户调研,邀请 125 位参与者(其中 39.2% 为相关领域的专家和从业人员)对本文方法和现有方法的生成场景进行多角度评估,结果如下表所示:   实验结果表明 GALA3D 在生成场景质量、几何保真度、文本一致性、场景一致性等多维度的测评指标中均超越现有方法,取得了最优的生成质量。 如下图定性实验结果所示,GALA3D 能够 zero-shot 地生成复杂多物体组合 3D 场景,并且具有良好的一致性:   下图展示了 GALA3D 能够支持用户友好的、对话式的可控生成和编辑:

CMU&清华新作:让LLM自己合成数据来学习,特定任务性能同样大幅提升

虽然大规模语言模型(LLM)在许多自然语言处理任务中表现优异,但在具体任务中的效果却不尽如人意。为了提升模型在特定自然语言任务上的表现,现有的方法主要依赖于高质量的人工标注数据。这类数据的收集过程既耗时又费力,对于数据稀缺的任务尤为困难。 为了解决这个问题,一些研究尝试通过强大的 Teacher Model 生成训练数据,来增强 Student Model 在特定任务上的性能。然而,这种方法在成本、可扩展性和法律合规性方面仍面临诸多挑战。在无法持续获得高质量人类监督信号的情况下,如何持续迭代模型的能力,成为了亟待解决的问题。 来自卡内基梅隆大学和清华大学的研究团队提出了 SELF-GUIDE 方法。该方法通过语言模型自身生成任务特定的数据集,并在该数据集上进行微调,从而显著提升模型在特定任务上的能力,无需依赖大量外部高质量数据或更强大的 Teacher Model。具体来说,在外部输入大约 3 个样例的情况下,SELF-GUIDE 采用多阶段的生成和过滤机制,利用模型生成的合成数据进行微调,使模型在特定任务上的表现更加出色。 论文地址:https://arxiv.org/abs/2407.12874 代码仓库:https://github.com/zhaochenyang20/Prompt2Model- SELF-GUIDE  图 1:SELF-GUIDE  利用模型自主合成数据的能力提升模型执行特定任务的能力。 方法 具体来说,研究团队将 SELF-GUIDE 方法分解为三个主要阶段:输入数据生成、输出数据生成和质量优化。 输入数据生成 在 SELF-GUIDE 框架的设计和实现过程中,研究者首先根据任务类型(生成型任务或分类型任务)指定不同的提示模板。对于生成型任务, SELF-GUIDE 框架使用一个相对简单的提示模板。而对于分类型任务, SELF-GUIDE 框架则采用了另一种策略。对于分类任务, SELF-GUIDE 框架首先从全部标签空间中随机选择一个标签,将其作为条件生成的伪标签,指导输入数据的生成。选定伪标签后, SELF-GUIDE 框架使用较为复杂的条件生成模板,引导模型生成与所选伪标签相对应的输入内容。 图 2:SELF-GUIDE 的核心在于一个高效的多阶段生成机制,其中语言模型逐步生成输入数据输出数据组合。经过生成和过滤后,自生成的数据进一步用于微调语言模型本身。此图描述了 SELF-GUIDE 针对生成任务的流程。 选定模板并填充示例(few-shot examples)后,完整的提示被传递给 LLM,以生成输入数据。每轮提示后,新生成的输入会被添加到输入库中。从这个库中随机抽取一部分输入,并与初始示例中的输入合并,形成新的提示,逐步扩展 LLM 生成的输入集并且减少重复。SELF-GUIDE 仅进行一轮输入生成,随后在质量优化阶段,应用基于规则的过滤器来去除低质量的输入。 图 3:此图描述了 SELF-GUIDE 完成分类任务的过程。对于分类任务的数据,SELF-GUIDE 首先生成伪标签,然后生成对应的输入,最后重新生成真实标签。 输出数据生成 输出数据生成阶段采用了典型的上下文学习方法:研究者向模型提供任务指令和原始示例,使模型对输入生成阶段产生的每一个输入进行标注。在获取所有输出后,再进行一轮基于规则的过滤,以选择最终的合成数据集。 质量优化 生成数据的质量对于下游训练的成功至关重要。SELF-GUIDE  采用了两种策略来提高质量:调整生成参数以提高生成质量并基于规则过滤掉低质量样本。 调整温度:调整温度是一种平衡多样性和质量的常见策略。SELF-GUIDE 框架在输入生成阶段使用较高的温度以鼓励多样性,在其他阶段通过使用较低的温度确保得到概率最高的输出,从而保证整体数据质量。然而,仅依靠温度调整不足以实现所需的平衡。因此, SELF-GUIDE 还在输入生成后和输出注释后分别进行了两轮基于规则的数据过滤。 噪声过滤(Noise Filter):研究者手动整理了一份噪声术语列表,包括常见的问候语和噪声字符(例如,生成内容中的”\\”)。如果生成示例的输入或输出中出现了任何来自这份列表的噪声术语, SELF-GUIDE 将丢弃整个示例。 长度过滤(Length Filter):虽然示例的长度可能存在偏差,但是研究者认为这些示例在特定任务的长度分布方面仍然具有代表性。SELF-GUIDE 假设示例的长度遵循正态分布,并计算出输入样例的均值 μ 和标准差 σ,研究者假定生成示例的输入和输出长度应符合同一正态分布,并要求长度在 (μ − 2σ, μ + 2σ) 范围内。 整体参数微调(One Parameter Fits All):为了使 SELF-GUIDE 生成符合指令和示例指定目标分布的训练数据,需要在标注数据点上优化各种超参数,包括生成输入输出的个数、输入数据生成的温度、输出数据生成的温度、微调参数等。研究者将实验测试任务分为两部分:一部分可以利用所有数据进行验证以调整生成参数,称为验证任务;另一部分的数据仅用于测试而不可用于调整参数,称为测试任务。研究者在验证任务上搜索 “最大化最差任务性能” 的参数,并将其固定用于测评 SELF-GUIDE 在测试任务上的表现。 实验结果 为了评估 SELF-GUIDE 的有效性,研究者从 Super-NaturalInstructions V2 基准中选择了 14 个分类任务和 8 个生成任务。研究者随机选择了一半任务用于超参数搜索,剩余的一半用于评估。在模型方面,研究者选择了 Vicuna-7b-1.5 作为输入生成、输出生成和微调的基础模型。在评估指标方面,研究者采用了与 Super-NaturalInstructions 基准相同的评估指标,即分类任务的 Exact Match 和生成任务的 ROUGE-L。 为了体现 SELF-GUIDE 的效果,研究者将 SELF-GUIDE 与其他指令跟随和上下文学习方法进行了比较:   1.Few-Shot ICL:作为主要基准,研究者与直接提示语言模型进行了比较。这种方法直接依赖于模型固有的指令跟随能力。 2.Self-ICL:Self-ICL 使用自生成的示例来提高零样本指令跟随。研究者在 Self-ICL 工作的基础上进行了修改,通过自生成尽可能多的示例(而不是固定个数的示例)填充提示词,从而增加参考样本数目。 3.Few-Shot Finetuning:直接利用输入的少量示例进行微调。 SELF-GUIDE 原文主要实验结果如下所示。在基准的评估指标上,分类任务的绝对提升达到了 14.5%,而生成任务的绝对提升则达到了 17.9%。这些结果表明, SELF-GUIDE 在指导 LLM 向任务特定专业化方向发展方面具有显著效果,即使在数据极其有限的情况下。这突显了自我生成数据在大规模适应 LLM 到特定任务中的潜力。更多实验结果和消融实验请参考论文原文。 图 4:对于每类任务(分类和生成任务),研究者将任务随机分成两半,一半用于调试 “One Parameter Fits All” 策略的参数,另一半用于使用这些调试好的参数测试 SELF-GUIDE 的性能。我们使用相同的解码参数和提示模板来评估模型在 SELF-GUIDE 前后的表现。 总结 SELF-GUIDE 框架鼓励模型自主生成训练数据并在此数据上进行微调。实验结果表明,这种方法在提升大规模语言模型特定任务的专业能力方面具有巨大潜力,尤其是在数据有限的情况下,SELF-GUIDE 可以有效解决缺少训练数据的问题。同时,这也为探索自主模型适应和持续学习的技术提供了参考。研究者希望这一工作能够推动 AI 系统在自主对齐和改进机制方面的发展,使其更加符合人类的意图。

谷歌开源最强端侧小模型:2B参数越级跑赢GPT-3.5-Turbo,苹果15Pro运行飞快

谷歌也来卷「小」模型了,一出手就是王炸,胜过了比自己参数多得多的GPT-3.5、Mixtral竞品模型。 今年 6 月底,谷歌开源了 9B、27B 版 Gemma 2 模型系列,并且自亮相以来,27B 版本迅速成为了大模型竞技场 LMSYS Chatbot Arena 中排名最高的开放模型之一,在真实对话任务中比其两倍规模以上的模型表现还要好。   如今,仅仅过去了一个多月,谷歌在追求负责任 AI 的基础上,更加地考虑该系列模型的安全性和可访问性,并有了一系列新成果。   此次,Gemma 2 不仅有了更轻量级「Gemma 2 2B」版本,还构建一个安全内容分类器模型「ShieldGemma」和一个模型可解释性工具「Gemma Scope」。具体如下: Gemma 2 2B 具有内置安全改进功能,实现了性能与效率的强大平衡; ShieldGemma 基于 Gemma 2 构建,用于过滤 AI 模型的输入和输出,确保用户安全; Gemma Scope 提供对模型内部工作原理的无与伦比的洞察力。 其中,Gemma 2 2B 无疑是「最耀眼的仔」,它在大模型竞技场 LMSYS Chatbot Arena 中的结果令人眼前一亮:仅凭 20 亿参数就跑出了 1130 分,这一数值要高于 GPT-3.5-Turbo(0613)和 Mixtral-8x7b。 这也意味着,Gemma 2 2B 将成为端侧模型的最佳选择。     苹果机器学习研究(MLR)团队研究科学家 Awni Hannun 展示了 Gemma 2 2B 跑在 iPhone 15 pro 上的情况,使用了 4bit 量化版本,结果显示速度是相当快。   视频来源:https://x.com/awnihannun/status/1818709510485389563 此外,对于前段时间很多大模型都翻了车的「9.9 和 9.11 谁大」的问题,Gemma 2 2B 也能轻松拿捏。   图源:https://x.com/tuturetom/status/1818823253634564134 与此同时,从谷歌 Gemma 2 2B 的强大性能也可以看到一种趋势,即「小」模型逐渐拥有了与更大尺寸模型匹敌的底气和效能优势。 这种趋势也引起了一些业内人士的关注,比如知名人工智能科学家、Lepton AI 创始人贾扬清提出了一种观点:大语言模型(LLM)的模型大小是否正在走 CNN 的老路呢? 在 ImageNet 时代,我们看到参数大小快速增长,然后我们转向了更小、更高效的模型。这是在 LLM 时代之前,我们中的许多人可能已经忘记了。 大型模型的曙光:我们以 AlexNet(2012)作为基线开始,然后经历了大约 3 年的模型大小增长。VGGNet(2014)在性能和尺寸方面都可称为强大的模型。 缩小模型:GoogLeNet(2015)将模型大小从 GB 级缩小到 MB 级,缩小了 100 倍,同时保持了良好的性能。类似工作如 SqueezeNet(2015)和其他工作也遵循类似的趋势。 合理的平衡:后来的工作如 ResNet(2015)、ResNeXT(2016)等,都保持了适中的模型大小。请注意,我们实际上很乐意使用更多的算力,但参数高效同样重要。 设备端学习?MobileNet(2017)是谷歌的一项特别有趣的工作,占用空间很小,但性能却非常出色。上周,我的一个朋友告诉我「哇,我们仍然在使用 MobileNet,因为它在设备端具有出色的特征嵌入通用性」。是的,嵌入式嵌入是实实在在很好用。 最后,贾扬清发出灵魂一问,「LLM 会遵循同样的趋势吗?」   图像出自 Ghimire 等人论文《A Survey on Efficient Convolutional Neural Networks and Hardware Acceleration》。 Gemma 2 2B 越级超越 GPT-3.5 Turbo Gemma 2 家族新增 Gemma 2 2B 模型,备受大家期待。谷歌使用先进的 TPU v5e 硬件在庞大的 2 万亿个 token 上训练而成。 这个轻量级模型是从更大的模型中蒸馏而来,产生了非常好的结果。由于其占用空间小,特别适合设备应用程序,可能会对移动 AI 和边缘计算产生重大影响。 事实上,谷歌的 Gemma 2 2B 模型在 Chatbot Arena Elo Score 排名中胜过大型 AI 聊天机器人,展示了小型、更高效的语言模型的潜力。下图表显示了 Gemma 2 2B 与 GPT-3.5 和 Llama 2 等知名模型相比的卓越性能,挑战了「模型越大越好」的观念。   Gemma 2 2B 提供了: 性能卓越:在同等规模下提供同类最佳性能,超越同类其他开源模型; 部署灵活且经济高效:可在各种硬件上高效运行,从边缘设备和笔记本电脑到使用云部署如 Vertex AI 和 Google Kubernetes Engine (GKE) 。为了进一步提高速度,该模型使用了 NVIDIA TensorRT-LLM 库进行优化,并可作为 NVIDIA NIM 使用。此外,Gemma 2 2B 可与 Keras、JAX、Hugging Face、NVIDIA NeMo、Ollama、Gemma.cpp 以及即将推出的 MediaPipe 无缝集成,以简化开发; 开源且易于访问:可用于研究和商业应用,由于它足够小,甚至可以在 Google Colab 的 T4 GPU 免费层上运行,使实验和开发比以往更加简单。 从今天开始,用户可以从 Kaggle、Hugging Face、Vertex AI Model Garden 下载模型权重。用户还可以在 Google AI Studio 中试用其功能。 下载权重地址:https://huggingface.co/collections/google/gemma-2-2b-release-66a20f3796a2ff2a7c76f98f Gemma 2 2B 的出现挑战了人工智能开发领域的主流观点,即模型越大,性能自然就越好。Gemma 2 2B 的成功表明,复杂的训练技术、高效的架构和高质量的数据集可以弥补原始参数数量的不足。这一突破可能对该领域产生深远的影响,有可能将焦点从争夺越来越大的模型转移到改进更小、更高效的模型。 Gemma 2 2B 的开发也凸显了模型压缩和蒸馏技术日益增长的重要性。通过有效地将较大模型中的知识提炼成较小的模型,研究人员可以在不牺牲性能的情况下创建更易于访问的 AI 工具。这种方法不仅降低了计算要求,还解决了训练和运行大型 AI 模型对环境影响的担忧。 ShieldGemma:最先进的安全分类器 技术报告:https://storage.googleapis.com/deepmind-media/gemma/shieldgemma-report.pdf ShieldGemma 是一套先进的安全分类器,旨在检测和缓解 AI 模型输入和输出中的有害内容,帮助开发者负责任地部署模型。 ShieldGemma 专门针对四个关键危害领域进行设计: 仇恨言论 骚扰 色情内容 危险内容 这些开放分类器是对负责任 AI 工具包(Responsible AI Toolkit)中现有安全分类器套件的补充。 借助 ShieldGemma,用户可以创建更加安全、更好的 AI 应用 SOTA 性能:作为安全分类器,ShieldGemma 已经达到行业领先水平; 规模不同:ShieldGemma 提供各种型号以满足不同的需求。2B 模型非常适合在线分类任务,而 9B 和 27B 版本则为不太关心延迟的离线应用程序提供了更高的性能。 如下表所示,ShieldGemma (SG) 模型(2B、9B 和 27B)的表现均优于所有基线模型,包括 GPT-4。 Gemma Scope:让模型更加透明 Gemma Scope 旨在帮助 AI 研究界探索如何构建更易于理解、更可靠的 AI 系统。其为研究人员和开发人员提供了前所未有的透明度,让他们能够了解 Gemma 2 模型的决策过程。Gemma Scope 就像一台强大的显微镜,它使用稀疏自编码器 (SAE) 放大模型的内部工作原理,使其更易于解释。 Gemma Scope 技术报告:https://storage.googleapis.com/gemma-scope/gemma-scope-report.pdf SAE 可以帮助用户解析 Gemma 2 处理的那些复杂信息,将其扩展为更易于分析和理解的形式,因而研究人员可以获得有关 Gemma 2 如何识别模式、处理信息并最终做出预测的宝贵见解。 以下是 Gemma Scope 具有开创性的原因: 开放的 SAE:超过 400 个免费 SAE,涵盖 Gemma 2 2B 和 9B 的所有层; 交互式演示:无需在 Neuronpedia 上编写代码即可探索 SAE 功能并分析模型行为; 易于使用的存储库:提供了 SAE 和 Gemma 2 交互的代码和示例。 参考链接: https://developers.googleblog.com/en/smaller-safer-more-transparent-advancing-responsible-ai-with-gemma/

OpenDevin出技术报告了,大模型Agent开发者必读

热门通用大模型 Agent 平台。 今年 3 月,「全球首位 AI 软件工程师」Devin 引爆了 AI 圈。与此前 AI 编程助手不同的是,Devin 并不只是辅助编程的角色,而是能够独立地、端到端地完成整个开发项目。 Devin 的出世让我们领略了大模型 Agent 的强大能力。很快,业界就出现了众多尝试复刻它的开源项目,其中 OpenDevin 脱颖而出,受到了人们最多的关注。 OpenDevin 是一个开发通过软件与世界互动的通用智能体的平台,其特点包括:  大模型 Agent、接口和环境之间交互的交互机制; Agent 可用的沙盒操作系统 + Web 浏览器环境; 可创建和执行代码的接口; 多 Agent 支持; 评估框架。 目前,OpenDevin 的 GitHub 已经获得了超过 2.9 万 Star 量。 近日,OpenaDevin 团队发布了该工具的技术报告。 报告地址:https://arxiv.org/pdf/2407.16741 在技术报告中,OpenDevin 的作者,来自伊利诺伊大学香槟分校、卡耐基梅隆大学等机构的学者们详细介绍了 OpenDevin,这是一个社区驱动的平台,旨在开发通过软件与世界交互的通用和专业 AI Agent。 更重要的是,OpenDevin 不仅是一个概念框架,它还包括一个全面且可立即使用的 Agent、环境和评估实现。截至本报告发布时,OpenDevin 包含一个 Agent 中心,其中已实现 10 多个智能体,包括一个基于 CodeAct 架构实现的强大的通用智能体,并增加了用于 Web 浏览和代码编辑功能。用户与智能体的交互是通过聊天界面实现的,该界面可视化智能体当前操作并允许实时反馈。此外,评估框架目前支持 15 个基准,可使用它们来评估智能体性能。 OpenDevin 架构 本文中,作者从以下几个方面描述 OpenDevin:(1)如何定义和实现智能体;(2)动作执行如何促进观察;(3)如何管理和扩展智能体常用的技能;(4)如何将多个智能体组合在一起以解决任务。 如何定义和实现智能体 智能体可以感知环境状态,并在解决用户指定的任务时生成要执行的操作。 状态和事件流。在 OpenDevin 中,状态是一种数据结构,它封装了智能体执行任务的所有相关信息。此状态的一个关键组成部分是事件流,是按照时间顺序收集过去的动作和观察。 动作。受 CodeAct 的启发,OpenDevin 通过一组核心的动作将智能体与环境连接起来。动作 IPythonRunCellAction 和 CmdRunAction 使智能体能够在沙盒环境(例如,安全隔离的 Linux 操作系统)内执行任意 Python 代码和 bash 命令。而 BrowserInteractiveAction 支持智能体与 Web 浏览器交互。 观察。观察描述了智能体观察到的环境变化。它可能由智能体的动作引起,也可能不是:它可以是 1) 用户提出的自然语言指令,2) 智能体先前动作的执行结果(例如,代码执行结果等)。 实现新的智能体。智能体设计简单但功能强大,从而允许用户轻松创建和定制用于各种任务的智能体。核心在于 step 函数,它将当前状态作为输入并根据智能体的逻辑生成适当的动作。图 2 显示了智能体抽象的简化示例代码。 观察动作执行结果 Agent Runtime 为智能体提供了与人类软件开发人员相当的动作空间,使 OpenDevin 能够处理各种软件开发和基于 Web 的任务,包括复杂的软件开发工作流程、数据分析项目、Web 浏览任务等。它允许智能体访问 bash 终端来运行代码和命令行工具,利用 Jupyter notebook 即时编写和执行代码,并与 Web 浏览器交互以执行基于 Web 的任务(例如,信息搜索)。 可扩展的智能体 – 计算机接口 作者构建了一个 AgentSkills 库,这是一个旨在增强智能体功能的工具箱,能够提供基本 bash 命令或 python 代码无法轻松获得的实用程序。 多智能体交互 OpenDevin 允许多个智能体进行交互。为了实现这一目标,作者使用了一种特殊的动作类型 AgentDelegateAction,它允许智能体将特定的子任务委托给另一个智能体。 评估 本节将 OpenDevin (以下实验结果中简写为 OD)与开源可复现的基线方法进行了比较。这 15 个基准涵盖软件工程、网页浏览等任务。 表 3 表明,虽然 OpenDevin 智能体可能无法在每个类别中都达到最佳性能,但其设计考虑了通用性。 表 4 报告了智能体在软件工程基准上的结果。 具体而言: SWE-bench 旨在评估智能体解决 GitHub 问题的能力,如 bug 报告或功能请求。如表 4 所示,本文最新版本的 CodeActAgent v1.8 ,基于 claude-3.5-sonnet,与其他专门用于软件开发的开源智能体相比,解决问题率高达 26%。 HumanEvalFix。OpenDevin CodeActAgent 成功修复了 Python 拆分中 79.3% 的错误,明显优于所有非智能体方法,几乎是 StarCoder2-15B 性能的两倍。 基于 GPT-4o 的 OpenDevin 智能体在 ML-Bench 上实现了 76.47% 的最高成功率,优于 SWE-Agent(42.64%)。 Gorilla APIBench 考察智能体使用 API 的能力。使用 GPT-4o 的 OpenDevin 的成功率为 36.4%,优于未针对 API 调用进行专门微调的基线。 ToolQA 评估智能体使用外部工具的能力。与所有基线相比,采用 GPT-4o 的 OpenDevin 表现出最高的性能。智能体在与 CSV 和数据库工具使用相关的任务上表现更好,但在数学和计算器工具使用方面需要改进。 表 5 报告了网页浏览基准的评估结果。 表 6 报告了各种辅助基准的结果。 其中,GAIA 用于评估智能体解决一般任务的能力,结果显示,智能体在 GAIA 上取得了 32.1 分,比原来的 AutoGPT 有了明显的提高。 GPQA 用于评估智能体在解决具有挑战性的研究生水平问题时协调使用工具的能力。结果如表 6、7 所示,OpenDevin 集成了支持多种工具使用以及 web 搜索的功能,使得智能体能够更好地解决复杂的多步骤问题。

谷歌终于赢了OpenAI一回:实验版本Gemini 1.5 Pro超越GPT-4o

这么强的模型,谷歌给大家免费试用。 近两日,谷歌在‍不断发布最新研究。继昨日放出最强端侧 Gemma 2 2B 小模型后,刚刚,Gemini 1.5 Pro 实验版本 (0801) 已经推出。 用户可以通过 Google AI Studio 和 Gemini API 进行测试和反馈。 既然免费,那我们帮大家测试一下最近比较火的比大小问题。当我们问 Gemini 1.5 Pro (0801) 9.9 和 9.11 哪个数大时,模型一次就能回答正确,并给出了理由。 当我们继续追问「Strawberry 单词里面有多少个 r」时,然而 Gemini 1.5 Pro (0801) 却翻车了。在提示语中施加「咒语」一步一步来,模型分析到第四步就出错了。 Google AI Studio 测试地址:https://aistudio.google.com/app/prompts/new_chat 不过,从官方评测来看,Gemini 1.5 Pro (0801) 各项指标还是很能打的。新模型迅速夺得著名的 LMSYS Chatbot Arena 排行榜榜首,并拥有令人印象深刻的 ELO 分数,得分为 1300。 这一成就使 Gemini 1.5 Pro (0801) 领先于 OpenAI 的 GPT-4o(ELO:1286)和 Anthropic 的 Claude-3.5 Sonnet(ELO:1271)等强大竞争对手,这或许预示着人工智能格局的转变。   Gemini 团队关键成员 Simon Tokumine 称 Gemini 1.5 Pro (0801) 是谷歌迄今为止制造的最强大、最智能的 Gemini (模型)。   除了拿到 Chatbot Arena 榜首,Gemini 1.5 Pro (0801) 在多语言任务、数学、Hard Prompt 和编码等领域也表现相当出色。 具体而言,Gemini 1.5 Pro (0801) 在中文、日语、德语、俄语方面均表现第一。   但在编码、Hard Prompt 领域,Claude 3.5 Sonnet、GPT-4o、Llama 405B 仍然处于领先地位。 在 win-rate 热图上:Gemini 1.5 Pro (0801) 对阵 GPT-4o 的胜率为 54%,对阵 Claude-3.5-Sonnet 的胜率为 59%。 Gemini 1.5 Pro (0801) 在 Vision 排行榜上也第一!   网友纷纷表示,谷歌这次真是出乎所有人的预料,没有提前官宣就突然开放测试最强模型,这次压力给到了 OpenAI。     虽然 Gemini 1.5 Pro (0801) 取得了很高的成绩,但它仍处于实验阶段。这意味着该模型在广泛使用之前可能会进行进一步的修改。  网友评测 有网友对 Gemini 1.5 Pro (0801) 的内容提取能力、代码生成能力、推理能力等进行了测试,我们来看下他的测试结果。   来源:https://x.com/omarsar0/status/1819162249593840110 首先,Gemini 1.5 Pro (0801) 的图像信息提取功能很强,例如输入一张发票图像,将发票细节用 JSON 格式编写出来: 再来看下 Gemini 1.5 Pro (0801) 的 PDF 文档内容提取功能,以经典论文《Attention Is All You Need》为例,提取论文章节目录:   让 Gemini 1.5 Pro (0801) 生成一个帮助学习大型语言模型(LLM)知识的 Python 游戏,该模型直接生成了一整段代码:   值得一提的是,Gemini 1.5 Pro (0801) 还给出了详细的代码解释,包括代码中函数的作用、该 Python 游戏的玩法等等。 这段程序可以直接在 Google AI Studio 中运行,并且可以试玩,例如做道关于 Tokenization 定义的选择题:   如果觉得选择题太简单无聊,可以进一步让 Gemini 1.5 Pro (0801) 生成一个更复杂的游戏:     得到一个 LLM 专业知识句子填空游戏: 为了测试 Gemini 1.5 Pro (0801) 的推理能力,网友提问了一个「吹蜡烛」问题,但模型回答错误: 尽管有一些瑕疵,但 Gemini 1.5 Pro (0801) 的确表现出接近 GPT-4o 的视觉能力,以及接近 Claude 3.5 Sonnet 的代码生成和 PDF 理解、推理能力,值得期待。 参考链接: https://www.youtube.com/watch?v=lUA9elNdpoY https://x.com/lmsysorg/status/1819048821294547441

苹果让大模型学会偷懒:更快吐出第一个token,准确度还保住了

偷懒才能更好地工作。 Llama 3.1 刚刚发布,你是否已经尝试了呢?就算你的个人计算机是最近的顶尖配置,运行其中最小的 8B 版本可能也依然会有明显延迟。为了提升模型的推理效率,研究者想出了多种多样的方法,但其中很多都会让模型牺牲一些准确度。   近日,苹果和 Meta AI 的一个研究团队提出了一种新方法,可在保证准确度不明显下降的同时,将 Llama 2 预填充阶段的推理速度提升到原来的 2 倍以上,这或许能为 Llama 3.1 的加速提供一些启发。他们把这种方法称为 LazyLLM,即懒惰大型语言模型。     论文标题:LazyLLM: Dynamic Token Pruning for Efficient Long Context LLM Inference 论文地址:https://arxiv.org/abs/2407.14057 那么他们是怎么让 LLM 偷懒的呢?要理解他们的方法,我们首先需要知道标准的基于 prompt 的 LLM 推理过程是怎样的。简单来说,该过程分为两个阶段:预填充和解码,如图 1 所示。     在预填充阶段,模型计算和保存 prompt 中每个 token 的 KV 缓存,并预测首个 token。我们将预填充阶段所耗费的时间称为「首个 token 时间(TTFT)」。   预填充阶段之后是解码阶段。在这个阶段,模型再次使用缓存的 KV 来迭代式地解码下一个 token,直到满足停止标准。   在预填充阶段,所有 Transformer 层都会使用 prompt 中的所有 token。当 prompt 较长时,TTFT 可能很慢,因为当前最佳的基于 Transformer 的 LLM 既深又宽,并且计算注意力的成本会随 prompt 中 token 数量而呈二次增长。举个例子,Llama 2(7B 版本)堆叠了 32 层 Transformer,模型维度为 4096。在这种情况下,TTFT 需要的 walltime 是每个后续解码步骤的 21 倍,在 LongBench 基准上这些时间大约占用了总生成时间的 23%。   因此,要让 LLM 推理高效进行,优化 TTFT 是非常关键的步骤。   尽管 LLM 推理优化方面是一个活跃的研究领域,但很多方法关注的重心都是提升解码阶段的推理速度。研究者很少关注 TTFT 的改进。一些基于压缩的研究成果可通过减少 LLM 的大小隐式地提升 TTFT。   另一个研究方向是在静态的 Transformer 架构下实现对 TTFT 的改进。对于这个研究方向,很自然会引出一个问题:在生成首个 token 时,所有 prompt token 都必不可少吗?   图 2 给出了在 LongBench 基准上的 LLM 分析结果。       可以看到,对于首个生成的 token,输入 token 的注意力分数非常稀疏,这说明输入 prompt 中的许多 token 是多余的,就算移除也不会影响到下一 token 预测。这一观察正是该团队提出 LazyLLM 的基础。   LazyLLM 的优势包括适用范围广、无需训练、效果好。图 3 对比了标准 LLM 与 LazyLLM。   LazyLLM   图 4 展示了 LazyLLM 的整体框架。   从完整上下文开始,LazyLLM 会逐渐对 token 进行剪枝,从而逐渐减少得到最终模型所使用的计算数量。请注意,LazyLLM 允许模型在不同的生成步骤选取不同的 token 子集,即便它们中的一些可能在之前的步骤中被剪枝了。相比于静态剪枝(一次性对所有 token 进行剪枝),动态剪枝会在每个生成步骤对下一 token 预测进行优化,这有助于维持模型的性能表现。   渐进式 token 剪枝   之前也有一些研究成功使用过 token 剪枝来优化 LLM 推理。但是,这些方法需要积累预测前几个 token 的完整注意力图,以便在剪枝开始之前分析 prompt token 的重要性。也因此,它们不适合用于降低 TTFT,因为它们在预填充阶段仍需要计算所有 KV 缓存。   相较之下,LazyLLM 「很懒」,会从推理的第一轮迭代(预填充步骤)开始,只计算对预测下一 token 重要的 token。   在第一轮迭代中,一大关键难题是确定各个 token 的重要性。受之前已有研究(其中表明 token 隐藏状态会在穿过 Transformer 层时发生演进)的启发,该团队的解决方案是在每个生成步骤使用逐层 token 剪枝。具体来说,他们是使用各层的注意力图来确定输入 token 对将要预测的 token 的重要性。   在计算了 token 的置信度分数之后,另一个难题是确定剪枝 token 的阈值。   具体来说,对于不同的层和不同的任务,该阈值可能会随注意力分数的变化而改变。该团队的解决思路是使用 top-k 百分位数选取策略。具体来说,如果一个 token 的置信度分数小于输入 token 中的第 k 个百分位数,便将其剪枝掉。一旦 token 被剪枝去掉了,它就不再参与所有后续层的计算。   也就是说,后续层使用的 token 是之前层所使用 token 的子集。   后面的实验表明,剪枝层的位置和剪枝的 token 数量不同时,也会导致性能发生变化。具体来说,对于同一 Transformer 层,随着被剪枝去掉的 token 越来越多,模型的性能也会逐渐下降。   他们还发现,相比于早期层的剪枝,在后期层执行剪枝时会得到更好的性能,这说明后期层对 token 剪枝的敏感度更低。为了更好地平衡速度与准确度,该团队使用了如图 4 所示的渐进式剪枝法,从而在早期层保留更多 token,然后在 token 流向后期层的过程中逐渐减少 token 的数量。   Aux Cache(辅助缓存)   预填充阶段没有 KV 缓存,每个 token 都表示成隐藏状态。因此,可通过移除已被剪枝 token 的隐藏状态来实现渐进式 token 剪枝。但是,要将渐进式 token 剪枝扩展到后续的解码步骤,却并不简单。原因是每个解码步骤都会使用预填充阶段计算的 KV 缓存来计算注意力。由于 LazyLLM 是在预填充阶段执行渐进式 token 剪枝,因此在某一层被剪枝的 token 的 KV 不会出现在下一层的 KV 缓存中。   这里提醒一下,LazyLLM 框架允许在每一步让每个生成步骤从完整的输入 token 序列中挑选一个不同的 token 子集,无论它们是否已在之前的步骤中被剪枝。举个例子,在接下来的解码步骤中,那些在 KV 缓存中不存在的已被剪枝的 token 可能会被重新选取出来用于计算注意力。在这种情况下,模型无法检索到这些 token 的 KV 缓存。   对此,一个基于直觉的解决方案是再让这些 token 通过该 Transformer 的起点。但是,这会导致对同一 token 的重复计算,并最终减慢整体的生成速度。   为解决这个难题,该团队在原有的 KV 缓存之外引入了另一种缓存:Aux Cache(辅助缓存)。   如果已被剪枝 token(如图 4 中 T4 和 T7)的 KV 并未出现在后续层的 KV 缓存中,则会由 Aux Cache 保存它们的隐藏状态以供后续迭代检索。   如图 4 所示,在每个解码步骤,每个 Transformer 层首先会检索过去 token 的 KV 缓存(如果存在的话)。对于那些不在 KV 缓存中的 token,则直接从其前一层的 Aux Cache 中检索它们的隐藏状态,而不必再次经过之前的层。Aux Cache 可确保每个 token 在每个 Transformer 层中最多被计算一次,还能确保 LazyLLM 最慢时也比标准 LLM 快。 实验   该团队在两个大型语言模型上检验了这种「懒惰」新方法:Llama 2 7B 和 XGen 7B。作为对比的标准 LLM 是同样的公开发布的预训练检查点模型,同时不进行任何附加训练。   实验基准是 LongBench,这是一个针对长内容理解的多任务基准。LongBench 基准包含 16 个数据集,涉及 6 个任务,包括单文档问答、多文档问答、总结、少样本学习、合成任务和代码补全。   评估指标是每种方法在 TTFT 加速与准确度权衡方面的效果和效率。   结果   表 1 给出了 LazyLLM、标准 LLM 和其它基线方法的 TTFT 加速和准确度结果。   在此表中,baseline 是指标准 LLM 推理。random token drop 是指对 token 执行随机剪枝。static token pruning 是指在预填充阶段基于前面几个 Transformer 层的注意力方法来对输入 token 执行一次性剪枝。Prompt Compression 就是 prompt 压缩方法,也就是使用 LLM 去除输入上下文中的冗余。   从表 1 可以看到,LazyLLM 在 TTFT 加速方面全面优胜,同时准确度方面的下降基本可以忽略不计。需要指出,使用 LLM 来压缩 prompt 需要大量计算。因此,即使 Prompt Compression 能让推理速度更快,但其实际的 TTFT 却比标准 LLM 还长。 对总体生成速度的影响 为了评估新方法对总体生成速度的影响,该团队分析了计算使用的 prompt token 百分比和生成加速情况,见表 2。       可以看到,LazyLLM 计算使用的 token 的占比总是低于 100%,这说明 LazyLLM 在生成结束时也没有用完 prompt 中的所有 token,但理论上讲该模型可以使用所有 token。这能为不同任务的整体生成过程提供额外的加速。   不同层的丢弃率   该团队也分析了剪枝层的位置和被剪枝 token 的数量的影响。结果见图 6。       可以看到,当在同一 Transformer 层进行剪枝时,留下的 token 越少,模型的性能越差。这也符合我们的直观认知。此外,相比于在更前期 Transformer 层执行剪枝,在后期层进行剪枝会得到更好的性能,这说明后期层对 token 剪枝的敏感度更低。   基于这些观察,可以说渐进式 token 剪枝的效果得到了证明。   渐进式 KV 增长   最后,该团队也尝试了理解使用 token 剪枝逻辑的模型的内部情况。具体来说,他们想要了解 prompt token 中的累积使用比例以及相应的不被使用的比例。这种「累积 token 使用量」可以等价地定义成每一步的 KV 缓存 大小。图 7 给出了 LazyLLM 的每个阶段这些累积的 prompt token 使用量。   该结果支持这一假设:许多 token 永远不会被模型选择(即便理论上讲模型可以使用 prompt 中的所有 token。   考虑到模型依然能维持执行任务的准确度,因此可以得出结论:模型可以有效地丢弃不影响输出质量的 token。