#全模态对齐框架align-anything
实现跨模态指令跟随
本开源项目由北京大学对齐小组开发并进行长期维护,团队专注于人工智能系统的安全交互与价值对齐,指导老师为北京大学人工智能研究院杨耀东助理教授。核心成员包括吉嘉铭、周嘉懿、邱天异、陈博远、王恺乐、洪东海、楼翰涛、王旭尧、陈文琦、张钊为、汪明志、钟伊凡等。
团队就强化学习方法及大模型的后训练对齐技术开展了一系列重要工作,包括 Aligner(NeurIPS 2024 Oral)、ProgressGym(NeurIPS 2024 Spotlight)以及 Safe-RLHF(ICLR 2024 Spotlight)等系列成果。近期,团队针对 OpenAI o1 技术的深入分析累计点击量已超过 15 万。
如何全模态大模型与人类的意图相对齐,已成为一个极具前瞻性且至关重要的挑战。
在当前 AI 领域的快速发展中,「有效加速」和「超级对齐」已经成为两个主要的发展动向,它们深刻影响着研发方向和投资决策。前者以 OpenAI 为代表,后者则得到了包括 Llama 等诸多开源模型的支持。
2024 年 9 月 25 日,MetaAI 发布了 Llama 3.2 后,北京大学一支团队迅速跟进,用自研的全球首个全模态对齐框架「Align Anything」对 Llama 3.2 进行了微调,表现出了比 Meta 微调的 Llama-3.2-11B-Vision-Instruct 更强的对齐性与指令跟随性。
为进一步促进社区的多模态对齐研究,日前,该团队以将「Align Anything」框架进行开源。通过该框架,研究人员不但可以利用该框架进行多模态模型的对齐实验,提高模型的训练和评估效率,还可以用该框架微调各种大模型,提升在特定任务上的表现。该框架的推出,对探索全模态大模型与人类的意图相对齐、研究如何通过不同对齐算法让模型输出更符合人类预期和价值观具有重要意义。
该框架的独特之处在于:
1)Align-Anything 框架支持文本、图像、音频、视频等多种模态的输入和输出对齐,这在目前开源社区中是独一无二的。它填补了现有框架仅支持单一模态或少数模态对齐的空白,为全模态大模型的对齐提供了统一和通用的解决方案;
2)框架实现了包括 SFT、DPO、PPO、SimPO 等超过 6 种对齐算法,支持从文本到文本、文本加图像到文本、文本到图像、文本到音频、文本到视频等多种模态的微调。研究者可以轻易地在任意至任意的模态上扩展新的对齐算法;
3)同时发布首个全模态人类偏好数据集 Align-Anything,提供详细的人类偏好注释以及用于批评和改进的精细语言反馈,在增强模型的多模态理解能力的同时,从而实现跨模态的全面评估和改进。
全模态大模型与全模态对齐
大模型性能的最后一块拼图
人类在日常生活中接收到的信息往往是全模态的,不同的感官渠道能够互相补充,帮助我们更全面地理解和表达复杂的概念。这种全模态的信息流对大模型范式转向通用人工智能也同等重要,研究人员开始尝试将大语言模型进行模态扩展,得到不仅能够处理语言,还可以理解并生成图像、音频、视频等多种信息的全模态模型,如 GPT-4o、Chameleon 等。也包含目前最为流行的开源视觉语言模型,Llama-3.2-Vision。
以 Llama-3.2-Vision 为代表的大语言模型多模态化已是大势所趋,而支持任意的模态输入并生成任意模态的输出的全模态大模型将成为未来的里程碑。如何将全模态大模型与人类的意图相对齐,已成为一个极具前瞻性且至关重要的挑战。然而,随着模态的增加,输入输出空间的分布更加广泛,并增加了幻觉现象,使得全模态对齐变得更加复杂。
在不到两周的时间内,北大对齐小组基于 Llama-3.2-Vision 的 11B 预训练版本进行后训练 (Post-Training) 对齐微调得到 Beaver-Vision-11B,表现出了比 Meta 微调的 Llama-3.2-11B-Vision-Instruct 更强的对齐性与指令跟随性。
- Beaver-Vision-11B 模型:https://huggingface.co/PKU-Alignment/Beaver-Vision-11B
例如被问到「图中的拉面来自于何家餐厅?」这个问题时,Llama-3.2-11B-Vision-Instruct 没有准确识别出餐具中的「一兰」字样,将餐厅错误地解读为「Ippudo」;专家模型 GPT-4o 识别准确,但提供的回答并不详细具体。而 Beaver-Vision-11B 既准确地识别出了餐厅,还提供了细致的思考与推理过程。
在 Meta 并未披露 Llama-3.2-11B-Vision-Instruct 对齐技术细节情况下,北大对齐小组愿开源数据、训练、模型、评估的全流程,为全模态对齐研究贡献力量。
对齐框架:Align-Anything 详解
Beaver-Vision-11B 的背后是北大对齐小组在数据、模型、算法、框架和评估五大维度进行的深入原创探索 —— Align-Anything 框架,它致力于使全模态大模型与人类意图和价值观对齐,这里的全模态包括文生文、文生图、文图生文、文生视频等任意到任意的输入与输出模态。
- Align-anything 开源地址:https://github.com/PKU-Alignment/align-anything
- Align-anything 数据集地址:https://huggingface.co/datasets/PKU-Alignment/align-anything-400k
关于全模态大模型对齐的定义和里程碑的更多细节,可以参阅北大对齐小组发布的 AI 对齐综述。
- 论文链接:https://alignmentsurvey.com/
总体而言,该框架具有以下特点:
align-anything的框架示意图
- 高度模块化的框架:对不同算法类型的抽象化和精心设计的 API,用户能够为不同的任务修改和定制代码,以及定制化模型与数据集注册等高级扩展用法;
- 支持跨任意模态模型的微调:包含对如 Llama3.2、LLaVA、Chameleon、Qwen2-VL、Qwen2-Audio、Diffusion 等跨越多种模态生成与理解的大模型的微调能力;
- 支持不同的对齐方法:支持任意模态上的多种对齐算法,既包括 SFT、DPO、PPO 等经典算法,也包括 ORPO, SimPO 和 KTO 等新算法;
- 支持多种开、闭源对齐评估:支持了 30 多个多模态评测基准,包括如 MMBench、VideoMME 等多模态理解评测,以及如 FID、HPSv2 等多模态生成评测。
训练框架
北大对齐小组设计了高度模块化、扩展性以及简单易用的对齐训练框架,支持由文本、图片、视频、音频四大基本模态衍生出的任意模态模型对齐微调,并验证了框架对齐算法的实现正确性。
模块化
对齐代码实现高度可复用。Align-Anything 的设计思路是模态与算法的解耦合。例如,对于 DPO 算法,其损失函数的实现可被抽象为:提升 chosen 答案的概率,降低 rejected 答案的概率。这一思想是模态无感的。
Align-Anything 在模态扩展的过程中尽可能地复用了相同的框架,这样既能够突出不同模态间算法实现的差异性,也便于用户在新的模态上扩展算法。
扩展性
模型与数据集注册高度可定制。多模态大模型的迭代日新月异,新模型、新数据集层出不穷。这要求对齐框架具备高度的可扩展性,便于用户快速地将新模型或新数据集仅通过几行代码注册进框架中。
对于新数据集的注册,Align-Anything 提出了一个名为「template」的数据集键值转换规则。无论 prompt 对应的键名是「prompt」还是「question」,无论 response 对应的键名是「response」还是「answer」,「template」机制都支持用户通过简单构建映射规则的方式完成键值解析和转换,避免用户单独实现复杂的数据预处理代码。
易用性
用户指南与代码传参高度可复现。对齐算法的训练启动往往涉及复杂的路径与训练超参数传递,而随着模态数的增多,算法训练启动愈发复杂,新用户往往难以快速上手。为此,北大对齐小组为 Align-Anything 开发了详尽的使用说明文档。
这份说明文档为已支持模态的每个对齐算法都提供了一份可以直接复制粘贴并运行的启动脚本。示例是最好的入门教程,通过运行这些示例,用户可以快速启动训练。
进一步,北大对齐团队提供了细致的训练超参数传递规则解析,告知用户有哪些训练超参数可传入,以及如何传入,这些设计将为用户调试多模态大模型对齐实验提供极大便利。
正确性
北大对齐小组在他们构造的全模态对齐数据集上,测试了 Align-Anything 在多种模态的任务和模型上的对齐表现。他们发现对齐算法能够大幅提升模型的指令跟随能力,并且在多种开源榜单上进行了验证,这些实验结果既包含了 LLaVA 等经典的视觉语言模型,也涵盖有最新由 Meta 开源的 Chameleon 系列模型:
- AA-chameleon-7b-base 模型:https://huggingface.co/PKU-Alignment/AA-chameleon-7b-base
- AA-chameleon-7b-plus 模型:https://huggingface.co/PKU-Alignment/AA-chameleon-7b-plus
除了最经典的图文模态,北大对齐小组还在时新的音频文本混合模态上进行了对齐的有效性验证。Qwen2-Audio 是截至目前效果最好的开源音频文本混合模型之一,已在 AIR Bench 等多种类型的评测榜单上取得 SOTA 的表现。Qwen2-Audio 的技术报告中提到了对齐算法 DPO 在后训练(Post-Training)阶段的重要作用,然而,目前社区并不支持对于该模型的对齐微调。
北大对齐小组开源了首个对 Qwen2-Audio 的 DPO 算法的实现,并在 AIR Bench 的多个维度上进行测试,在音频文本上百尺竿头更进一步,相较于 Qwen2-Audio 取得了明显的提升:
评测框架
北大对齐小组精心设计了高度解耦合的多模态对齐评测框架,提供多种模态评测,支持多种推理后端,具有高度可扩展性,以满足多样化的多模态模型评测需求。
多种模态评测
Align-Anything 评估框架现已适配了超过 30 个常用基准测试,涵盖了 Text ⇒ Text、Text + Image ⇒ Text 以及 Text ⇒ Image 等模态类别。此外,Text + Audio/Video ⇒ Text 和 Text ⇒ Audio/Video 的基准测试也已完成内部开发。
下表列举了部分框架中已经适配的基准测试:
多种推理后端
考虑到 Transformers 框架和 Diffusers 框架对模型支持之间的差异,Align-Anything 的评测框架将推理和评估过程进行了解耦合,并支持使用不同的后端进行推理。在多模态理解任务和多模态生成任务中,框架分别采用 Deepspeed 和 Accelerate 作为推理后端,以适配不同模型结构的推理需求。
此外,Align-Anything 评测模块还提供了使用 vLLM 进行推理的接口,适配 vLLM 框架的模型能够在评测中实现推理加速。
高度可扩展性
为了方便集成自定义评测集,Align-Anything 对评测框架进行了高度解耦。该框架主要由 DataLoader、Generator 和 Evaluator 三部分组成。DataLoader 负责加载和预处理多种评测集,转化为适合推理的数据格式;Generator 负责使用不同的推理框架生成结果;Evaluator 则对生成的结果进行评估并输出评分。
如果开发者仅需更换评测集,而无需更改推理框架和评估方式,只需将新的评测集适配到 DataLoader 中即可完成集成。
对齐综合示例:指令跟随提升
全模态人类偏好数据集:Align-Anything
- 数据集链接:https://huggingface.co/datasets/PKU-Alignment/align-anything-400k
北大对齐小组同时发布了首个全模态人类偏好数据集 Align-Anything。与专注于单个模态且质量参差不齐的现有偏好数据集不同,Align-Anything 提供了高质量的数据,包括了混合输入和输出中的任何模态,旨在提供详细的人类偏好注释以及用于批评和改进的精细语言反馈,从而实现跨模态的全面评估和改进。
总的来说,该数据集具有如下特征:
- 全模态任务:涵盖指令跟随、感性认知、针对内容提问、创意创作等多个任务,覆盖任何输入输出混合模态。
- 精细化偏好标注:基于标注指令跟随、美学性、客观原则符合性、清晰度等多个细粒度原则进行标注,提供复杂精细化偏好标注。
- 自然语言语言反馈:提供细粒度批评和润色反馈,可利用此自然语言反馈开发算法及提升模型性能
- 跨模态 QA 对:输入输出包含混合模态,在不同模态之间实现更丰富的交互。
与现有数据集的对比
我们的世界本质上是多模态的。人类通过多种感官感知世界,语言模型也应该以类似的方式运作。然而,由于不同模态数据的可用性和多样性,当前多模态基础模型的开发面临限制。具体来说,挑战包括:
- 模态数据不平衡:虽然视觉任务有丰富的数据,但视频和音频等其他模态的数据相对稀缺,并且缺乏不同模态之间的联动数据。
- 有限的多模态训练数据:大多数现有数据集都集中在特定于模态的问答任务上,而缺乏专门的数据集来增强多模态模型的指令跟随能力。
表中的首选项注释方法由三个部分组成:
- A 是指标注来源,它指示如何在数据集中确定偏好项。主要是人工注释或手动构建、由 GPT-4V 或其他系统等模型生成或注释,或是从多个来源聚合。
- S 表示偏好信号的组成,其中可能包括评分、排名和推理。在某些情况下,首选项是通过优化、更正或破坏响应来构建,以形成所需的首选项对。
- F 则表示数据集是否在这些首选项维度中提供更详细的细粒度反馈。
通过和目前现有偏好数据集的对比,北大对齐小组发现虽然随着大模型的能力逐渐向越来越多模态迁移,目前偏好数据集却缺乏细粒度的反馈维度且涵盖模态较少,同时缺乏一个合理的结构和纽带,将跨模态偏好数据集组织起来。
数据集的呈现
为了能够应对上述提到的挑战,在数据集的构建阶段,北大对齐小组开创性地将数据集的呈现分为三个模块,通过语言反馈标注作为弥合模态之间鸿沟的桥梁,承载任意模态上的人类细粒度偏好反馈:
- Any-to-Any 表示任意类型的输入输出模态的双向转换。
- Any-to-Text 表示从非文字模态的输入向文字模态输出的转换。
- Text-to-Any 则代表从文字模态向其他任意模态进行的转换。
同时,他们还演示了基于多模态特性优化数据集质量的多步骤流程:
从流程图可以看到,首先设计针对各种模态量身定制的特征,根据特定的模态任务及其相应的特征,以优化部分较低质量的原始提示,以得到最终版本的问题,同时从多个来源收集回答(包括根据特性构造偏序问答对、调用开源和闭源模型以及使用人工生成答案)。
接着对收集到的问答对使用目前 SOTA 闭源模型和专业标注人员进行细粒度的偏好标注。标注过程涵盖各种维度,每个维度都有相应的偏好回答选项和评分标准。
最后,针对各个模态任务特性,提供有关回答的语言反馈(包括批评和优化)。这里的语言反馈流程分为三步:确定批评的范围、对相应需要批评的范围进行反馈,以及对整个反馈过程提供优化建议。这样的语言反馈流程范式捕获了跨模态的直接偏好和基于语言的反馈,确保对响应进行全面评估和优化。
对齐算法:从全模态语言反馈中学习
为了解决全模态的统一对齐,北大对齐小组通过更丰富的信息内容实现更精确、细粒度的全模态对齐,需要从数据多样性和反馈机制统一性两个方面深入探索和优化:
- 丰富的全模态反馈数据
传统对齐方法依赖单一模态数据,无法满足全模态模型对齐的复杂需求。需要引入更丰富和复杂的反馈模态,如结合图像、音频、视频等多种模态的信息,使反馈内容更加立体和多元化。这种全模态反馈能呈现更多维度的信息,帮助模型更好地理解和捕捉不同模态之间的相互关系,提高对齐的精准度;
- 统一的反馈收集和处理机制
当前不同模态之间的反馈形式不统一,导致对齐过程中协调性差。设计一种通用的反馈建模与收集机制,允许人类提供自由形式的反馈,无论是文字描述、图像标注还是语音指令。开发高效的反馈处理机制,将任意模态上的人类反馈转换为细粒度监督信号,对全模态的反馈进行统一建模处理,使其在模型训练中具有一致性;
如何利用好语言反馈的丰富信息赋能全模态对齐,是北大对齐团队重点关注的关键科学问题。为此,他们提出了从语言反馈中学习的范式(Learning from Language Feedback, LLF)。
LLF 范式主要包含四大环节:
1. 评论模型建模:使用交叉熵损失函数,令多模态大模型拟合数据集中的语言反馈,作为评论模型。训练完成的评论模型将对输入的问答对提供评论。
2. 模型自提升:令初始模型在给定好 prompt 的数据集上生成一系列 response,再利用评论模型对此生成的评论,令初始模型针对自身的 response 进行修正。
3. 奖励建模:将修正后的 response 与原先的 response 拼接,组成偏序对,进行奖励建模,或是 DPO 微调。
4. 强化学习微调:基于训练好的奖励模型,完成完整的强化学习微调流程。
北大对齐小组希望 LLF 能够通过语言反馈提取出更加丰富的偏好信息,从而提升多模态大模型的指令跟随能力。他们已在图文模态上展开了前期探索,验证了这套路径的可行性。北大对齐小组将在更多模态上实践这一范式,针对语言反馈赋能全模态对齐开展更具实证性的研究。
基于 Align-Anything 框架
实现 Llama-3.1 的模态增加
Align-Anything 提供了一套全面的工具和教程,用于构建和训练基于 Llama 的多模态语言模型。项目提供了整合视觉(CLIP)和听觉(CLAP)模态的详细教程,涵盖从模型构建、分阶段训练到多数据集联合训练的高级技巧。
项目同时也开源了构建后的模型参数和使用示例。该实例旨在帮助开发者基于自身的私有数据构建和定制多模态大语言模型。
部分测试样例结果为:
基于 Align-Anything 框架
实现 Chameleon 全模态激活与对齐
北大对齐小组基于 Meta 的 Chameleon-7B,使用了 laion-art 数据集激活了 Chameleon 模型的图像生成能力,并开源了以这个方式训练得到的 AA-Chameleon-7B-Base 模型。他们随后使用 Align-Anything 数据集的图文联合数据对该模型进行对齐,开源了 AA-Chameleon-7B-Plus 模型。
同时,北大对齐小组也开源了首个对 Chameleon 进行图文模态输入 / 输出的 DPO 与 PPO 两大经典对齐算法的实现。
对齐过程中,北大对齐小组选用了包含指令跟随、物理规律、文字清晰度、图像美学性、模态联动和信息丰富程度等多维度的偏好数据,达到了较好的效果。对齐后模型的文生图能力和图文联合输入 / 输出能力都有较大的提升:
在图文联合输入 / 输出评测中,对齐后模型和对齐前模型比较,GPT-4o 评测胜率超过 80%。以下为对齐前后的一些实例比较:
基于 Align-Anything 框架
对 Llama-3.2-11B-Vision
进行指令跟随对齐
Llama-3.2-11B-Vision 是最新 Llama-3.2 系列中以图文问答见长的模型,北大对齐小组使用他们提出的 Align-Anything-Instruct 数据集对该模型进行了细致的指令微调,得到了 Beaver-Vision-11B。
该模型在多个开源评测榜上超越了 Meta 官方发布的指令微调版本 Llama-3.2-11B-Vision-Instruct,表现出了更强的指令跟随能力与图像识别能力。
#这些幕后技术正在推动AI视频时代的到来
还记得「威尔・史密斯吃意大利面」的 AI 鬼畜视频吗?在这些视频里,威尔・史密斯的面部表情、动作都非常夸张,还充满了扭曲、变形。
一年多以前,大部分 AI 视频生成模型确实只能达到这样的水平。但如今,情况完全不同了:AI 不仅能让表情、动作和光影都非常自然,还能运用丰富的镜头语言,生成的视频具有电影级别的质感。
这种让国外网友都大呼「有用」的生成效果来自字节跳动前段时间发布的豆包・视频生成模型。在开启内测后,机也进行过测试,效果非常惊艳(参见《终于拿到内测!豆包 - PixelDance 真是字节视频生成大杀器》)。
回想今年年初 Sora 问世之际,国内 AI 社区还弥漫着一种悲观的情绪,觉得 AI 视频生成门槛颇高,国内企业想弯道超车难度不小。然而令人意外的是,Sora 高开低走,迟迟未向公众开放。反倒是国产模型不断带来惊喜,甚至有演变成生产力工具的趋势。
那么,面对重重困难,国内的视频生成模型为什么会发展得如此之快?豆包・视频生成模型的背后有哪些技术底座在提供支撑?生成式 AI 浪潮带来的视频数据激增、编解码技术挑战如何解决?在刚刚召开的 2024 火山引擎视频云技术大会上,我们找到了一些答案。
算力、编解码、框架:AI 视频时代的三大挑战
如果你在小红书上围观过「即梦 AI 短片挑战赛」,那你一定会被网友们的创意所打动。此前,这些创意因视频制作门槛过高而处于休眠状态。如今,随着生成式 AI 的发展,创建高质量的视频变得更加简单,生成的视频数量随之大幅增加。这带来了新的商业机会和应用场景。
但这种数据量的增长也伴随着一些问题,其中最突出的是对计算资源的巨大需求。视频数据量增加,意味着需要更多的算力来处理这些数据。与此同时,训练、推理的计算成本也急剧上升。例如,Sora 训练和推理所需的算力比 GPT-4 还要高很多,训练算力需求是 GPT-4 的 4.5 倍,推理需求则接近 400 倍。这表明,随着视频生成技术的发展,算力层需要经历一场变革。
此外,视频处理的核心技术 —— 编解码也面临着挑战。视频编码的目的是将视频数据压缩成更小的文件,便于存储和传输;而解码则是将压缩的视频还原成可以播放的格式。这两者的效率直接影响视频的质量、存储空间的需求、网络传输的速度以及设备播放视频的流畅度。因此,编解码技术对于视频处理来说至关重要。
传统的编解码技术是基于固定的算法和规则进行的,比如通过一些特定的压缩算法来减小视频文件的大小。然而,随着 AI 技术的进步,编解码技术也逐渐向智能化方向发展。不过,如何将 AI 与编解码技术深度融合仍然是一个具有挑战性的问题。
再说回视频生成本身。其实,视频的生成和处理涉及大量复杂的步骤,包括预处理、数据分析、压缩、生成等等。在这些过程中,框架层起到了组织和协调各种处理任务的作用。随着生成式 AI 和大模型的兴起,传统的框架已经难以应对庞大而复杂的处理需求。其中,视频数据的预处理尤其棘手,面临成本、质量、协同、性能等多方面挑战。因此,必须构建更强大的框架,以支持大规模的数据处理和复杂的视频任务。
面对这些难题,火山引擎已经研发出了一系列解决方案。
比如在算力层,他们去年就推出了自研的视频转码专用芯片。经过一年的精心打磨和广泛应用,该芯片已经取得了显著的成效,在抖音的实践中实现了效率的显著提升和成本的大幅下降。具体来说,一台芯片服务器转码能力算力相当于百台 CPU 服务器。在同等视频压缩效率下,它的成本可以节省 95% 以上。在本次大会上,他们还宣布首次正式对外开放测试,招募首批种子用户,共同探索该芯片商业价值的可复制性。
在编解码算法层,他们结合传统压缩技术与深度学习技术,推出了 BVC2 智能混合编解码方案,大幅提升了效率和编码性能。在第六届深度学习图像压缩挑战赛上,该方案在高码率和低码率视频压缩中获得了冠军。
不过,更令人瞩目的创新在框架层。他们用一个围绕 BMF 框架构建的方案有效助力了豆包・视频生成模型的训练,还在本次大会上开源了移动端后处理解决方案 ——BMF-lite。
算法之外,豆包・视频生成模型还有个「重要武器」——BMF
在 OpenAI 的 Sora 走红之后,AI 社区的大部分讨论都围绕它背后的算法展开。但其实除了算法,研究人员还面临着很多困难。这种情况下,一个有效的视频处理框架可以让大模型团队事半功倍。因此,ByteDance Research 负责人李航将「BMF」称为他们训练模型的「重要武器」。
熟悉视频处理的开发者可能都知道,BMF 并不是一个新框架,在去年 8 月份的火山引擎视频云技术大会上就已经亮相。
在豆包・视频生成模型的开发过程中,火山引擎基于 BMF 构建了能够预处理海量视频数据的方案来支持模型训练。这个方案帮助大模型团队克服了前面提到的成本、质量、协同、性能等多方面挑战。
首先是成本挑战。我们知道,超大规模视频训练数据集会导致计算和处理成本激增。针对这一问题,他们通过使用云计算中的弹性资源调度模式,根据实际需求的波动情况来分配计算资源。此外, 他们还使用精细化的调度算法,灵活地在不同的任务和场景中分配 CPU、GPU 等异构计算资源。这种「海量潮汐资源精细化混部调度」方法确保了在处理大量视频数据时既能满足计算需求,又能降低运营成本。
其次是质量挑战。在收集、生成大量视频数据时,这些视频的质量可能有很大差异,数据样本有待分类、分段和清洗。此外,这些视频的种类也可能不均衡。这种不均衡会影响后续模型的训练或视频处理效果,因为不同类别的数据样本可能需要不同的处理方式。
为了解决这些问题,火山引擎采用了多种算法,对视频数据进行多维度分析和筛选,包括分辨率、帧率、噪声、色彩等等。通过实践积累,火山引擎开发了 50 多个「算子」(算法模块),这些算子可以灵活组合,对视频数据进行精细化处理,确保保留下来的都是高质量且类别均衡的视频。这一过程保障了模型在训练时只使用符合标准的视频,从而避免因数据质量差或不均衡而影响整体表现。
接下来是协同挑战。视频预处理涉及多个复杂的环节,每个都需要不同的技术和处理方法,通常需要多个团队协作完成。团队之间的沟通和协作可能会变得复杂,特别是当各个环节紧密依赖时。
但好在,BMF 具有动态模块化的设计,这意味着每个处理任务可以通过不同的模块灵活组合、替换或扩展。团队可以在短时间内将几十个「算子」集成到一起,快速开发出完整的处理链路。这种动态、模块化的架构使得系统的迭代开发效率显著提升,速度比使用传统框架快了数倍。
最后是性能挑战。在视频处理过程中,不同的任务对计算资源的需求不同。常见的计算资源包括 CPU、GPU、ARM 等。这些资源各自具有不同的性能特点和优势,称为异构计算资源。要充分利用这些不同的计算资源,需要灵活的调度和分配,否则会导致某些资源过载,或者一些资源闲置,无法发挥出最大效能。
BMF 框架的灵活调度能力有利于解决这一问题。具体来说,BMF 能够根据每个算子的计算需求,智能选择最适合的硬件资源,将算子处理流程动态部署在 CPU 等不同的计算单元上。这种灵活的资源分配机制使得系统在运行过程中可以快速进行性能调优,适应不同的负载和任务变化,确保在高效处理任务的同时提升任务吞吐量。通过这种方式,他们有效缓解了由于资源瓶颈带来的计算压力,提升了整体系统的运行效率和稳定性。
在这些创新的支持下,团队短时间内生产了足够多高质量的视频素材,用于模型的训练,有力地支撑了视频生成模型的上线与调优。此外,火山引擎视频云还为该模型生产的视频提供了从编辑、上传、转码、分发、播放的全生命周期一站式解决方案。
在今年的大会上,火山引擎还开源了移动端后处理解决方案 ——BMF-lite。BMF-lite 具备轻量、通用、高效和前沿的显著特点,极大地提升了多媒体处理框架的灵活性和适应性。
首先,在轻量化方面,BMF-lite 采用了不依赖任何第三方组件的设计,推出了轻量化的开源版本,并采用了简洁高效的结构,便于开发者快速集成和部署,适合各种不同的应用场景。
其次,在高效性上,BMF-lite 通过引入算子加速功能,结合 kernel 融合等创新技术,显著提高了视频处理的速度和性能,极大优化了资源利用效率。
此外,BMF-lite 提供了多平台统一接口,无论开发者使用何种平台,都能轻松接入 BMF 框架,实现视频处理的无缝对接。
更重要的是,BMF-lite 还支持端侧大模型的接入,在被称为端侧 AI「元年」的 2024 年,这一功能可以说恰逢其时。
在 AI 视频时代,像 BMF-lite 这样的开源框架能够降低企业的研发成本,对于整个行业的发展都是非常有益的。但这样的框架也需要大量的时间和资源来开发和维护,所以 BMF-lite 的开源显得非常难能可贵。
视频正成为人类的第二语言
其实,除了前面提到的视频生成、编解码,还有很多视频技术正在塑造我们所在的这个 AI 视频时代。这个时代不再是传统意义上的用户被动接受视频内容,而是通过智能化和个性化的手段,让用户能够更主动地参与、创造和定制实时、沉浸的视频体验。
比如, 在这次大会上,火山引擎整合豆包大模型与实时音视频技术,推出了类似「Her」的对话式 AI 实时交互解决方案,让 AI 和用户进行实时对话,其端到端延时低至 1 秒以内。这一方案可广泛应用于智能助手、AI 社交陪伴、儿童学习陪伴、AI 教育、智能客服等众多场景。
,时长02:04
正如火山引擎总裁谭待所说,「视频正迅速崛起为人类的第二语言,其丰富的表达手段和效果远超传统文字,为我们提供了更多元、更生动的交流方式。」
,时长00:27
在大会上,做演讲的并非谭待本人,而是他的数字分身。由于效果极为逼真,有人误以为是视频抠像。这一效果主要由豆包语音合成模型和形象驱动算法提供支持。目前,火山引擎推出的定制数字人服务可1:1高度还原定制者的形象及声音,而且步骤简单,仅需提供一段本人录制的视频及音频,即可交由人工智能进行学习训练并生成出专属数字人,一次录制即可长期反复多次使用。
可以预见的是,随着 AI 加持的视频技术的持续发展,更交互、更沉浸的视频内容将逐渐渗透到更多的生活和工作领域。无论是个人创作、智能助手,还是教育、社交互动,这些技术都将引领一场视频体验的全面升级。而我们,也将见证更多精彩瞬间的到来。
#OpenAI若造出AGI,就能从微软独立
股权争夺战开打,两边都找好了投行
神秘的合约条款被曝光。
OpenAI 和自己最大的金主微软,最近出现了关系破裂的迹象。一边是想要更多钱,想要独立性,另一边是已经在分开下注。
本周五一系列新消息的出炉,让「科技领域最好兄弟」的分歧曝光了。
引爆生成式 AI 技术之后,OpenAI 已成为科技领域最炙手可热的公司。就在本月,该公司完成了一轮 66 亿美元的融资,估值达到 1570 亿美元。确定营利组织的大方向后,如何分配利益是它面临的最大挑战之一。
去年秋天,OpenAI 首席执行官山姆・奥特曼(Sam Altman)询问微软首席执行官萨蒂亚・纳德拉(Satya Nadella),这家科技巨头是否会向这家初创公司投资数十亿美元。
据《纽约时报》报道,彼时微软已经向 OpenAI 注入了 130 亿美元,纳德拉最初愿意继续提供现金。但在 OpenAI 董事会宫斗,短暂罢免了奥特曼之后。据四位不愿透露姓名的知情人士透露,纳德拉和微软重新考虑了这一决定。
在接下来的几个月里,微软毫不让步,因为预计今年将亏损 50 亿美元的 OpenAI 仍在要求更多资金和更多算力来推动和运行 AI 大模型系统。
众所周知,下一代大模型的构建需要耗费巨大的算力,且 OpenAI 在技术层面上一直处于领先地位,如果继续支持,领先的程度或许会更大。但到了「GPT-5」这个节点上,似乎微软也开始犯嘀咕了。
奥特曼曾表示,OpenAI 与微软的合作是「科技领域里最好的兄弟情谊」,但两家公司之间的关系已经开始出现紧张。根据对 19 名熟悉两家公司关系的人士的采访,OpenAI 正面临的财务压力、管理层震荡以及微软与 OpenAI 员工之间的分歧。这一切正使得五年的合作伙伴关系变得紧张。
如今的局势表明 AI 创业公司正面临着一个关键挑战:它们必须依赖世界科技巨头的资金和基础算力,因为这些大公司控制着开发人工智能所需的大规模云计算系统。
AI 创业公司放手发展技术,由背后的大厂提供资金和算力,是快速推进大模型研发的「标准模式」。微软和 OpenAI 的合作正是其中的典范。当 OpenAI 获得微软巨额投资时,它同意达成一项独家协议——从微软购买计算能力,并与这家科技巨头在新的生成式 AI 领域密切合作。
「我们非常感谢能与微软合作;他们很早就开始压下重注,他们提供的大量计算资源对于我们的研究突破至关重要,两家公司都受益匪浅,」奥特曼周四在一份声明中表示。「我们很高兴并致力于追求我们共同的愿景,期待在未来共同取得更大的成就。」
然而,在过去的一年里,OpenAI 一直在试图重新谈判这笔交易,以帮助它获得更多的计算能力并减少巨额开支,而微软高管则越来越担心他们的人工智能工作过于依赖 OpenAI。
据五位消息人士透露,纳德拉私下曾表示,奥特曼去年 11 月被公司弹劾令他感到震惊和担忧。
或许就是从那时起,微软开始对冲对 OpenAI 的赌注。
「我们在合作的许多不同阶段持续对 OpenAI 进行投资,」微软首席技术官 Kevin Scott 在最近的一次采访中表示。「我们当然是他们最大的资本投资者。」
但在今年 3 月,微软支付了至少 6.5 亿美元,把 OpenAI 的竞争对手 Inflection 几乎挖空。Inflection 的前首席执行官兼联合创始人 Mustafa Suleyman 现在负责管理微软的消费级 AI 新团队,致力于基于 OpenAI 软件为消费者打造人工智能技术。据两位熟悉微软计划的人士透露,他会是微软长期努力打造可以取代 OpenAI 技术的关键人物。
「如果微软只使用 OpenAI 的技术,它可能会变得落后,」投资银行 D.A. Davidson 的分析师 Gil Luria 表示。「这是一场真正的竞赛 ——OpenAI 也存在没有赢下的可能性。」
据五位知情人士透露,OpenAI 的一些高管和员工,包括奥特曼本人,对微软找来 Suleyman 感到愤怒,这直接源于 Suleyman 的团队是微软工程师团队的一部分,他们直接与 OpenAI 的员工对接。几十位微软工程师在 OpenAI 位于旧金山的办公室现场工作,并使用 OpenAI 提供的笔记本电脑,这些电脑设置了保障这家初创公司安全协议的措施。
据两位知情人士透露,最近一些 OpenAI 员工抱怨称,Suleyman 在一次视频会议中对一名 OpenAI 员工大声斥责,因为他认为这家初创公司未能以足够快的速度向微软交付新技术。还有一些人对微软的工程师下载重要的 OpenAI 软件时没有遵守双方协议的操作流程感到不满。
Inflection 的创始人 Mustafa Suleyman 现在负责微软的一个新团队,该团队致力于基于 OpenAI 软件为消费者开发 AI 技术。
在微软退出关于追加资金的讨论后,OpenAI 处境开始变得艰难。它需要更多资金来维持运营,同时公司高管们对合同的排他性感到不满。据七位知情人士透露,过去一年里,OpenAI 一再尝试谈判从而降低成本,并希望能够从其他公司购买算力资源。
而据六位知情人士透露,今年 6 月,微软同意在合同中做出例外处理。这使得 OpenAI 能够与 Oracle 签订一份约 100 亿美元的计算合同,为其提供额外的计算资源。据两位知情人士透露,Oracle 提供的是适用于 AI 大模型训练的算力,而微软则提供驱动这些硬件的软件。
据一位知情人士透露,最近几周,OpenAI 与微软就未来的一份合同进行了谈判。尽管具体条款尚不清楚,但此次谈判减少了微软向这家较小的公司收取算力资源费用的金额。
OpenAI 在寻找算力资源获取的替代方案的同时,据两位知情人士透露,OpenAI 还加快了扩大投资者范围的步伐。
OpenAI 的计划之一是确保来自战略投资者的资金,这些投资者不仅仅提供资金,还能以其他方式帮助提升 OpenAI 的前景。
这些组织包括苹果、芯片制造商英伟达,以及由阿联酋控制的科技投资公司 MGX。
奥特曼和 OpenAI 多年来一直在与苹果讨论潜在的合作关系,比如:2022 年,OpenAI 开发 ChatGPT 核心技术时,奥特曼曾和微软首席技术官 Kevin Scott 与苹果高管会面,探讨三家公司合作的可能性。据两位知情人士透露,该会议最终促成了苹果同意在今年早些时候在 iPhone 上引入 ChatGPT 这一决策。
英伟达是另一个重要的合作伙伴,因为它设计了 OpenAI 构建 AI 技术所需的计算芯片。MGX 则参与了 OpenAI 的一个雄心勃勃的计划,即在全球建立新的计算数据中心。
本月早些时候,OpenAI 完成了由 Thrive Capital 领投的 66 亿美元融资,英伟达、MGX 以及其他公司也参与了此次融资。
虽然因为今年九月 OpenAI 又出现了高层动荡,苹果在最后时刻选择退出,但微软在这一轮仍然跟进了。
根据《纽约时报》审阅的文件,OpenAI 预计到 2024 年底前至少在计算成本上花费 54 亿美元。该金额预计将在未来五年内迅速增加,到 2029 年,年计算成本甚至可能飙升至 375 亿美元。
目前尚不清楚 OpenAI 与微软合作关系的最新调整将如何改变这一趋势,但据一位了解公司战略的人士透露,微软高管对这些变化感到满意。微软可以继续从 OpenAI 不断取得进展的技术中获益,而 OpenAI 也会继续为大量计算资源的获取而支付给微软。
尽管如此,据三位知情人士透露,OpenAI 的员工抱怨微软没有提供足够的计算能力。另有两位知情人士还表示:「有人抱怨:如果另一家公司率先创造出具有人脑能力的 AI,微软将难辞其咎,因为它没有为 OpenAI 提供所需的计算能力。」
奇怪的是,这也可能是 OpenAI 摆脱与微软合约束缚的关键。据称,两家签订的合同中包含一项条款,规定如果 OpenAI 开发出通用人工智能(AGI):即当前人工智能领域的重要目标,与人脑能力相近的机器智能,微软就将失去对 OpenAI 技术的使用权。
据一位熟悉该公司谈判情况的人士称,该条款旨在确保像微软这样的公司不会滥用未来强大的 AGI 能力。但如今,OpenAI 高管认为这是获得更好合同的途径。因为根据合同条款,OpenAI 董事会可以决定 AGI 何时到来。
目前,争执已经上升到了台面上。据《华尔街日报》报道,基于最新一轮融资的结果,微软正与 OpenAI 就股权展开博弈。微软寻求以迄今为止向 OpenAI 注入的 140 亿美元现金换取大量股权,两家公司都在向投资银行寻求谈判的建议。
据知情人士透露,微软已聘请摩根士丹利,OpenAI 则聘请了高盛作为其顾问。
在转向营利机构之后,除了弄清楚微软将拥有多少股份以外,双方还必须弄清楚它们将各自拥有哪些治理权。
据报道,OpenAI 总裁 Greg Brockman 计划最早于 11 月结束长期休假,回到谈判当中来。
参考内容:
https://www.nytimes.com/2024/10/17/technology/microsoft-openai-partnership-deal.html
https://www.wsj.com/tech/ai/the-14-billion-question-dividing-openai-and-microsoft-71cf7d37
#SAM 2.1
SAM 2.1上新、Lingua代码库发布,一大波Meta开源工具来袭
今天,Meta 分享了一系列研究和模型,这些研究和模型支撑 Meta 实现高级机器智能(AMI)目标,同时也致力于开放科学和可复现性。
这些工作侧重于 AMI 的构建模块,包括感知、语音和语言、推理、具身智能和对齐。研究工作包括 SAM 2.1、Spirit LM、Layer Skip、自学习评估器等。
SAM 2.1
SAM 2 已经被应用于跨学科(包括医学图像、气象学等)研究,并且产生了良好的影响。现在,Meta 宣布推出性能更强的 SAM 2.1。
,时长00:09
Meta 引入了额外的数据增强技术来模拟 SAM 2 之前遇到的视觉相似物体和小物体的存在,通过在较长的帧序列上训练模型并对空间和物体指针内存的位置编码进行一些调整,提高了 SAM 2 的遮挡处理能力。
- 项目链接:https://github.com/facebookresearch/sam2
Spirit LM
大型语言模型经常被用于构建文本到语音 pipeline,其中语音通过自动语音识别 (ASR) 进行转录,然后由 LLM 生成文本,最终使用文本到语音 (TTS) 转换为语音。然而,这个过程损害了语音表达。
为了解决这一限制,Meta 构建了开源多模态语言模型 Spirit LM,实现了语音和文本的无缝集成。
,时长00:36
Spirit LM 在语音和文本数据集上使用词级交织方法进行训练,以实现跨模态生成。Meta 开发了两个版本的 Spirit LM,以展示文本模型的语义生成能力和语音模型的表达能力。
- 论文链接:https://arxiv.org/abs/2402.05755
- 代码链接:https://github.com/facebookresearch/spiritlm
- 模型权重:https://ai.meta.com/resources/models-and-libraries/spirit-lm-downloads/
Layer Skip
大型语言模型已在各个行业中广泛采用,但其高计算和内存要求会消耗大量能源,并且可能带来高昂的经济成本。为了应对这些挑战,Meta 提出了一种端到端解决方案 ——Layer Skip,以加快 LLM 在新数据上的生成时间,而无需依赖专门的硬件或软件。
,时长01:12
- 论文链接:https://arxiv.org/abs/2404.16710
- 代码链接:https://github.com/facebookresearch/LayerSkip
- 权重链接:https://huggingface.co/collections/facebook/layerskip-666b25c50c8ae90e1965727a
Layer Skip 通过执行其层的子集并利用后续层进行验证和校正来加速 LLM。现在,Meta 又要发布 Layer Skip 的推理代码和微调检查点。Llama 3、Llama 2 和 Code Llama 等模型已经使用 Layer Skip 进行了优化。Layer Skip 可以将模型性能提升高达 1.7 倍。
Lingua
Lingua 是一个轻量级且独立的代码库,旨在助力大规模训练语言模型。Lingua 将使人们更容易将概念转化为实际实验,并优先考虑简单性和可复用性以加速研究。高效且可定制的平台还允许研究人员以最少的设置快速测试他们的想法。
- 项目链接:https://github.com/facebookresearch/lingua
,时长00:15
MEXMA
MEXMA 是一种新型预训练跨语言句子编码器。在训练过程中,通过结合 token 层级和句子层级的目标,MEXMA 的表现优于以往的方法。
研究团队发现,之前用于训练跨语言句子编码器的方法仅通过句子表征来更新编码器,而通过引入 token 层级的目标,研究者可以更好地更新编码器,从而改进性能。
MEXMA 覆盖了 80 种语言,并且在句子分类等下游任务中表现出色。
- 论文链接:https://arxiv.org/abs/2409.12737
- 模型链接:https://huggingface.co/facebook/MEXMA
- 代码链接:https://github.com/facebookresearch/mexma
自学习评估器
Meta 在 8 月发表了一篇题为《Self-Taught Evaluators》的论文,提出了自学习评估器,用于生成合成偏好数据来训练奖励模型,无需依赖人工标注。
- 论文链接:https://arxiv.org/abs/2408.02666
- 代码链接:https://github.com/facebookresearch/RAM/tree/main/projects/self_taught_evaluator
- 访问合成数据:https://huggingface.co/datasets/facebook/Self-taught-evaluator-DPO-data
- 模型链接:https://huggingface.co/facebook/Self-taught-evaluator-llama3.1-70B
同时,Meta 发布了使用直接偏好优化训练的模型。实验结果表明,在 RewardBench 上,虽然在训练数据创建中未使用任何人工标注,但其表现优于更大的模型或使用人工标注标记的模型,如 GPT-4、Llama-3.1-405B-Instruct 和 Gemini-Pro。
参考链接:
#SageAttention
又快又准,即插即用!清华8比特量化Attention,两倍加速于FlashAttention2,各端到端任务均不掉点!
论文第一作者张金涛来自清华大学计算机系,论文通讯作者陈键飞副教授及其他合作作者均来自清华大学计算机系。
大模型中,线性层的低比特量化(例如 INT8, INT4)已经逐步落地;对于注意力模块,目前几乎各个模型都还在用高精度(例如 FP16 或 FP32)的注意力运算进行训练和推理。然而,随着大型模型需要处理的序列长度不断增加,Attention(注意力运算)的时间开销逐渐成为网络优化的主要瓶颈。
为了提高注意力运算的效率,清华大学陈键飞团队提出了 8Bit 的 Attention(SageAttention)。实现了 2 倍以及 2.7 倍相比于 FlashAttention2 和 xformers 的即插即用的推理加速,且在视频、图像、文本生成等大模型上均没有端到端的精度损失。
- 论文标题:SageAttention: Accurate 8-Bit Attention for Plug-and-play Inference Acceleration
- 论文链接:https://arxiv.org/abs/2410.02367
- 开源代码:https://github.com/thu-ml/SageAttention
即插即用举例
SageAttention 可以一行代码轻松替换掉 torch 中当前最优的 Attention 接口(scaled_dot_product_attention),实现即插即用的推理加速。
具体来说,SageAttention 的使用非常方便,使用 pip install sageattention 后,
只需要在模型的推理脚本前加入以下三行代码即可:
效果上,以开源视频生成模型 CogvideoX 为例,使用 SageAttention 可以端到端加速 35%,且生成的视频无损:
,时长00:06
全精度 Attention
,时长00:06
SageAttention
接下来,将从背景与挑战,技术方案,以及实验效果介绍 SageAttention。
背景
随着大模型需要处理的序列长度越来越长(比如 Llama3.1 支持 128K 的序列长度),Attention 的速度优化变得越来越重要。下图展示了一个标准的 Transformer 模型中各运算随着序列长度变化的时间占比:
挑战
为了方便指代注意力元算中包含的矩阵,我们先回顾一下注意力的计算公式:
将神经网络中各运算的数值类型从高比特量化至低比特是一种有效提升计算和访存效率的方法。然而,研究团队发现直接将注意力运算中的 Q, K, P, V 从 FP16 量化为 INT8 或者 FP8 后将会导致在几乎所有模型和任务上都会得到极差的结果,例如,在 Unidiffuser 文生图模型中,会得到一张完全模糊的图像;在 Llama2-7B 进行四选一选择题任务上得到 25.5% 的准确率。
经过仔细分析后,研究团队发现主要是两个原因导致了量化注意力的不准确:
- 大多视频、图像生成模型中,矩阵 K 表现出了极强的通道维度的异常值分布,直接使用 INT8 或者 FP8 数据类型对其进行量化会导致巨大的误差。
- 在所有模型中,对矩阵 P, V 进行量化不能保证一个模型中所有层的精度。下表展示了对 P, V 量化后,Llama2-7B 和 Unidiffuser 模型所有层中,最差情况的层对应的量化注意力的准确度,(该准确度为量化注意力相比全精度注意力的误差),可以发现不管对 P, V 矩阵进行何种 8Bit (INT8,E4M3,E5M2)量化,总有些层的准确率非常差,导致了端到端效果的下降。
技术方案
为了解决上述的两个关键问题,研究团队提出了对应的解决办法。
- 对 K 进行平滑处理。SageAttention 采用了一个简单但非常实用的方法来消除矩阵 K 的异常值:K = K – mean (K) 其中 mean (K) 是沿着通道维度求平均值。这个简单的做法不仅不会影响注意力计算的正确性 Softmax (QK^T) = Softmax (Q (K-mean (K))^T) ;且对整个 Attention 速度的影响只有 0.2%;同时还保证了量化后的注意力运算的精度:
- 对 Q, K 进行分块 INT8 量化。对于矩阵 Q, K,SageAttention 采用了以 FlashAttention 的分块大小为粒度的 INT8 量化。这是因为:1. 对 Q, K 矩阵进行 INT8 量化相比于进行 FP8 量化,注意力的精度更高。2. 在一些常用卡上,比如 RTX4090,INT8 矩阵乘法(INT32 为累加器)的速度是 FP8(FP32 为累加器)的两倍。
- 对 P, V 采用 FP16 数据类型的矩阵乘法累加器。对于矩阵 P, V,SageAttention 采用了保留 P, V 为 FP16 的类型,但进行矩阵乘法时采用 FP16 数据类型的累加器。这是因为:1. PV 矩阵乘法的数值范围始终在 FP16 的表示范围内,且经过大量实验验证,FP16 作为累加器的数据类型不会带来任何精度损失(见下表)。2. 在一些常用卡上,比如 RTX4090,以 FP16 为累加器数据类型的矩阵乘法的速度是 FP32 作为累加器的两倍。
SageAttention 的流程图及算法如下所示:
实验效果
SageAttention 实现了底层的 GPU Kernel,在算子速度以及各个模型的端到端精度上都有十分不错的表现。
具体来说,算子速度相比于 FlashAttention2 和 xformers 有 2.1 以及 2.7 倍的加速。以下 4 张图展示了在 RTX4090 上,不同的序列长度下 SageAttention 的各种 Kernel 与其他方法的速度比较。
以下 4 张图展示了在 RTX3090 上,不同的序列长度下 SageAttention 的各种 Kernel 与其他方法的速度比较。
下表展示了在 RTX4090 上,各模型中的注意力模块中 SageAttention 相比于使用模型原始的注意力的加速比。
真实任务的精度上,下表展示了 SageAttention 在视频、图像、文本生成等大模型上均没有端到端的精度损失:
#MoEUT
Jurgen、曼宁等大佬新作:MoE重塑6年前的Universal Transformer,高效升级
7 年前,谷歌在论文《Attention is All You Need》中提出了 Transformer。就在 Transformer 提出的第二年,谷歌又发布了 Universal Transformer(UT)。它的核心特征是通过跨层共享参数来实现深度循环,从而重新引入了 RNN 具有的循环表达能力。层共享使得 UT 在逻辑推理任务等组合问题上的表现优于 Transformer,同时还在小规模语言建模和翻译任务上得到改进。
UT 已被证明具有更好的组合泛化特性,能够在无监督的情况下解构结构化问题并泛化到更长的序列。因此与 Transformer 相比,UT 是一种具有卓越泛化特性的通用性更强的架构。
但 UT 的计算效率远低于标准 Transformer,不适合当前语言建模等以参数为王的任务。那么,我们能不能开发出计算效率更高的 UT 模型,并这类任务上实现比标准 Transformer 更具竞争力的性能呢?
近日,包括 LSTM 之父 Jürgen Schmidhuber、斯坦福大学教授 Christopher Manning 等在内的研究者从全新视角出发,提出了解决 UT 基础计算参数比问题的最新方案。具体来讲,他们提出 Mixture-of-Experts Universal Transformers(简称 MoEUT),它是一种混合专家(MoE)架构,允许 UT 以计算和内存高效的方式扩展。
- 论文标题:MoEUT: Mixture-of-Experts Universal Transformers
- 论文地址:https://arxiv.org/pdf/2405.16039
- 代码地址:https://github.com/robertcsordas/moeut
在文中,研究者利用了 MoE 在前馈和自注意力层方面的各种最新进展,并将这些进展与以下两项创新工作相结合:1)layer grouping,循环堆叠 MoE 层组;2)peri-layernorm 方案(位于 pre-layernorm 和 post-layernorm 之间),并且仅在紧接 sigmoid 或 softmax 激活之前应用层范数。这两者都是专为共享层 MoE 架构设计,并且有强有力的实证证据支持。
从其作用来讲,MoEUT 允许构建参数和资源高效的 UT 语言模型,不仅在我们可以负担得起的所有规模(最高 10 亿参数)上对算力和内存的需求更低,性能也超越了标准 Transformer。
研究者在 C4、SlimPajama 和 peS2o 语言建模数据集、以及 The Stack 代码数据集上测试 MoEUT 的能力,结果表明,循环对于模型实现具有竞争力的性能至关重要。同样地,研究者在 BLiMP 和儿童图书测试、Lambada、HellaSwag、PIQA 和 ARC-E 等下游任务上展现了良好的零样本性能。
MoEUT 架构概览
如前文所述,MoEUT 是一种具有层共享参数的 Transformer 架构,其中使用 MoE 来解决参数计算比问题。虽然最近出现了很多关于 Transformer 语言模型的 MoE 方法研究,但要让它们在参数相同的情况下与密集方法竞争,仍然是一项艰巨的任务。
因此,研究者利用了 MoE 前馈网络块(FFN)、MoE 自注意力层,并引入了两种考虑到共享层模型特定属性的新方法 ——layer grouping 和信号传播。这些技术的结合对于实现有效的共享层 MoE Transformer 发挥了巨大作用。
MoE 前馈块
为了通过 MoE 来参数化共享层 Transformer 的前馈块,研究者使用了 σ-MoE 并做了一些修改。σ-MoE 将前馈块划分为 N_E 个切片,称为专家(expert)。每个专家都有两组权重,分别是
和
,其中 e ∈{1,...,N_E} 是专家索引。
在每个 token 位置 t,给定层输入 x_t ∈ R^d_model,MoE 前馈层会为每个专家计算一个分数,从而得到一个向量 s ∈ R^N_E,其计算如下:
MoE 层仅选择与 s_t ∈ R^N_E 中 top-K 元素相对应的 K 个专家(从 N_E 中),来产生层输出 y_t ∈ R^d_model,如下所示:
初步实验表明,σ-MoE 的原始正则化往往不稳定,有时会导致训练期间损失激增。为了避免这种情况,研究者仅在序列内应用正则化(而不是批次中的所有 token)。对于输入序列 x_t,t ∈ {1,...,T},计算平衡损失 L 如下所示:
MoE 自注意力层
为了将 MoE 引入自注意力层,研究者应用了 SwitchHead,它是一种将 σ-MoE 扩展到注意力层的 MoE 方法。与标准多头注意力层一样,SwitchHead 层中的每个头包含四个转换:查询、键、值和输出投影。但是,SwitchHead 使用 MoE 来参数化值和输出投影。
也即,每个头都有一个与之关联的查询和键投影以及 N_A 值和输出投影,它们针对每个输入进行动态选择。
键和查询「照常」计算:给定位置 t 处的一个输入,x_t ∈ R^d_model,并且 k^h_t = x_tW^h_K、q^h_t = x_tW^h_Q,h ∈{1,...,H} 是头索引。专家对这些值的选择计算如下:
值和输出的选择是独立的。输出的选择使用不同的权重矩阵 W^h_SO ∈ R^d_model× N_A 来类似地计算,即
和
。输出 y ∈ R^d_model 计算如下:
层分组:MoE 高效层共享和操作内的子操作
研究者观察到,基于 MoE 的原始 UT 只有一个共享层,在更大规模上往往难以获得良好的性能。假设原因有二:首先,随着网络规模的扩大,层中专家的数量会迅速增加,但我们无法以相同的速度增加活跃专家 K 数量而不大幅增加所需计算量。这就迫使我们降低活跃专家的比例,而这通常是不利的。其次,注意力头的总数保持在相对较低的水平,这对于一个大型模型来说可能是不够的。增加注意力头的数量也同样代价高昂。
因此,在增加注意力头总数的同时,可以调用一组层,减少每个 σ-MoE 中的专家数量。最终的网络是通过重复堆叠这些共享相同参数的小组而得到的(从某种意义上说,将组重新定义为 UT 中的共享层)。
下图 1 提供了一个示例,标记为「层 A」(或层 B)的所有层在整个网络中共享相同的参数。组 G 的大小是非共享层的数量。在研究者的实验中,组大小在 2 到 4 之间,典型的循环步骤数为 8 或 9。
在 UT 中改进信号传播的新型层归一化方案
研究者提出另一种方法来避免上述问题:在「主数据路径」中不使用分层归一化。这意味着,对于本文的 UT,在注意力值投影之前不使用分层矩阵,在 σ-MoE 层之前也不使用分层矩阵。相反,只有在紧跟着 sigmoid 或 softmax 激活函数的线性层(在这些非线性层之前产生关键的重归一化激活)之前,即注意力中的查询和关键投影、注意力层和前馈层上的专家选择以及最终分类层之前,才会使用 layernorm。如图 3 所示。
由于前馈层内的主数据路径上只使用了 ReLU 激活函数,因此输出更新将与输入成正比,从而有效地解决了残差增长问题,同时也提供了高效的梯度流路径。这种方案称为 「peri-layernorm」方案,它介于「pre-layernorm」和「post-layernorm」方案之间,将 layernorm 定位在残差连接的「周围」(但不在其上)。具体如下图 3 所示。
实验结果
在论文中,研究者展示了使用流行的 C4 数据集进行语言建模时 MoEUT 性能和效率的主要实验结果。为了证明 MoEUT 的通用性,研究者还展示了在 SlimPajama 和 peS2o 语言建模数据集上的主要结果,以及在 「The Stack」上的代码生成。
与标准 Transformer 对比 Scaling
MoEUT 的 Scaling 结果如图 4 所示。y 轴显示的是 C4 held-out 子集上的复杂度。在参数数量相同的情况下,MoEUT 模型略微优于密集模型(图 4a),而且随着规模的扩大,差距呈扩大趋势。研究者还与非共享 σ-MoE 模型进行了比较,该模型的表现明显不如 MoEUT,这表明共享层具有明显的优势。此外如图 4b 显示,就训练期间所有前向传递所花费的总 MAC 运算次数而言,MoEUT 远远优于基线密集模型。
代码生成性能
为了证实 MoEUT 在不同任务领域的有效性,研究者在「The Stack」数据集的一个子集上对其进行了训练,该数据集是一个代码生成任务。由于无法进行完整的 epoch 训练,因此这里只使用了几种语言并混合使用了这些语言:Python、HTML、C++、Rust、JavaScript、Haskell、Scala 和汇编。研究者在数据集的一个 held-out 子集上评估了 MoEUT。结果如图 5 所示,与自然语言领域的结果一致:MoEUT 的表现优于基线。
图 6 展示了 layer grouping 对 244M 参数 MoEUT 模型的影响。研究者发现 G = 2 是最佳值,而且层维度的循环确实是有益的。
下游任务上的零样本表现
研究者评估了 MoEUT 在六个不同下游任务中的零样本性能:LAMBADA、BLiMP、Children's Book Test (CBT) 、HellaSwag、PIQA 和 ARC-E。结果见表 1,MoEUT 的表现往往优于基线,但在所有情况下差异都很小。
研究者还将 MoEUT 与另一个基准模型 Sparse Universal Transformer(SUT)进行了比较,SUT 是最近提出的一个 UT 模型,也使用了 MoE 层,且以前未在标准语言建模任务中进行过评估。虽然 MoEUT 和 SUT 都在前馈层和注意力层使用了 MoE,但这两种方法在不同层面上存在一些技术差异:SUT 使用竞争性专家选择(softmax)、多重负载平衡损失和更大的专家规模,且采用 post-layernorm 模式,不使用 layer grouping。与 MoEUT 的方法不同,SUT 在层维度上使用了自适应计算时间(ACT)。
结果如图 7 所示。与 MoEUT 和参数匹配的密集基线相比, SUT 在性能上有明显的劣势。研究者认为这种性能低下的主要原因是作者将 ACT 机制作为其模型的主要组成部分之一。移除 ACT 后,性能显著提高。然而,即使在这种设置下,它的性能仍然低于 MoEUT 和标准 Transformer 基线。
研究者还对「peri - 层归一化」进行了评估。图 8 显示了结果。本文的层归一化方案始终表现最佳。小模型的差距更大,而大模型的差距则越来越小(对于 719M 参数模型,peri-norm 和 post-norm 之间的差距微乎其微)。同时,随着训练步数的增加,peri-norm 和 post-norm 之间的差距也在增大,因此如果模型的训练时间更长,就有可能获得更高的收益。
调整专家选择机制
为了更好地理解 MoEUT 的专家选择,研究者分析了在 C4 上训练的 244M 参数 MoEUT 模型的 MLP 块中的专家选择。本节中的所有实验都是通过计算 C4 验证集上 G = 2(即模型组中有两层)模型的统计数据进行的。这里只展示了模型组第一层的行为,因为研究者发现第二层的结果在本质上是相似的。
结果表明,MoEUT 能够根据不同情况动态调整其专家选择机制。有时,专家会被分配给流行的 token,而在其他情况下,专家会在各层之间共享或专门化,这取决于哪种方式更适合任务。
专家的跨层使用。如图 9 所示,右下角的黄点表示一些专家主要被分配到最后一层。然而,对于其他专家来说,专家被激活的层范围很广。专家似乎是在连续的层序列中被激活的,这可以从纵向排列的宽阔结构中看出。因此可以得出这样的结论:如果有必要,MoEUT 能够专注于特定层,并可在各层之间共享权重。
每个 token 专家选择的多样性。研究者分析了 MLP 各层针对给定输入 token 在不同层和上下文中的专家选择多样性。为此,他们测量了不同层在不同位置 / 上下文下为单个 token 激活的专家总数。结果如图 10 所示。
各栏/位置的专家选择动态。结果如图 11 ,在后续层中,所选专家之间存在不可忽略的重叠;但是,这种重叠还远远没有达到完全重叠的程度。这表明,专家通常在单列中动态变化,在不同层中执行不同的功能。
#现阶段的多模态大模型做不了医疗
在当前的技术和数据储备下,多模态大模型在医疗辅助诊断领域难以取得重大突破。
在人工智能的这波浪潮中,以ChatGPT为首的大语言模型(LLM)不仅在自然语言处理(NLP)领域掀起了一场技术革命,更是在计算机视觉(CV)乃至多模态领域展现出了令人瞩目的潜力。
这些先进的技术,以其强大的数据处理能力和深度学习算法,正在被广泛应用于医疗影像分析、辅助诊断、个性化治疗计划制定等多个方面。相信大多数小伙伴都坚定不移地认为大语言模型(LLM)和图文多模态大模型的崛起无疑为医疗领域带来了革命性的变革。
然而,作为一线医疗AI从业者,本文作者(廖方舟,知乎@https://www.zhihu.com/people/liao-fang-zhou-31)却提出了一种截然不同的观点,即在当前的技术和数据储备下,多模态大模型在医疗辅助诊断领域难以取得重大突破。
今天的文章将为大家揭示多模态大模型在辅助诊断、异常检测等方面的潜力与局限,作者不仅分享了对当前技术的深刻见解,还提出了关于数据质量和模型训练的重要思考。如果您对AI在医疗领域的应用充满好奇,或者正在寻找行业内部的深度分析,欢迎深入阅读本文,详情请移步至文末阅读原文。
背景
2023-2024年,科技领域最引人注目的进展无疑是大语言模型(LLM)和图文多模态大模型的飞速发展。除了通用模型的突破,各垂直领域的大模型也如雨后春笋般涌现。医学作为一个至关重要的垂直领域,也见证了多项关键进展。例如,Google Health的Med-PaLM 2 和 OpenAI 的ChatGPT 声称能够通过美国医生资格考试,并具备一定的多模态能力来进行基础的读片工作。
大语言模型在众多自然语言处理(NLP)任务中表现出色,逐渐统合了许多独立的NLP领域。随着数据规模的增加,大语言模型的表现遵循“Scaling Law”不断提升。在翻译、编写代码等应用场景中,ChatGPT 已经迅速推广,取代了许多旧有工具。
这种趋势迫使尚未涉足大模型领域的人们重新思考:是否也应该投入大模型的开发?大模型是否会对现有行业带来巨大冲击?作为医疗AI从业者,我在这些问题上进行了反思。本文将分享我对大模型在医疗领域的一些看法,欢迎大家批评指正。
我得出的基本结论是:在当前的技术和数据储备下,多模态大模型在医疗辅助诊断领域难以取得重大突破。
定义
多模态大模型是指能够同时处理和整合来自多种输入形式(如文本、图像、音频等)的大型机器学习模型。这些模型通过理解和生成多种形式的数据,能够执行跨模态任务,例如从图像生成描述性文本,或根据文本生成相关的图像。这类模型结合了视觉和语言理解能力,使得它们能够在多种应用场景中发挥作用,从而突破单一模态的限制,提供更加丰富和交互性强的用户体验。
多模态大模型的技术架构
多模态大模型通常由一个多模态嵌入模块、跨模态注意力机制和解码器组成:
- 多模态嵌入模块:将不同模态的数据转换为共同的向量表示。这可以通过独立的编码器(如卷积神经网络用于图像,变压器模型用于文本)实现。
- 跨模态注意力机制:允许模型关注不同模态数据中的相关信息,使得一个模态的特征可以增强或补充另一个模态的特征。例如,在图像描述生成中,模型可以利用图像的特征来聚焦生成文本的内容。
- 解码器:将整合后的多模态特征转化为具体的输出形式,如生成自然语言描述、生成图像或其他形式的数据。
在医学应用中,常见的场景是智能读片,即输入X光或CT图像,由模型解读后自动生成报告。患者可以根据模型的反馈进一步提问,深入咨询预期的病情变化、疾病成因、治疗手段等。
一个例子:https://stanford-aimi.github.io/chexagent.html
根据上述技术架构,我们可以看到,大模型在进行描述时,类似于人类,边看图边说话,它的“眼睛”会寻找图像中与问题最相关的部分,提取该区域的特征并进行语言组织。
难点1:微小目标识别
模型要准确描述图像内容的前提是“注意”到图像中的异常之处,这个过程基本等同于“异常检测”或“显著性检测”。医学图像与自然图像的主要区别在于对小目标检测的重视,例如在肺部CT中,结节检测的下限通常是3-4毫米,即4-5像素。考虑到典型的薄层CT图像尺寸为300x512x512像素,这种结节在原图中所占比例仅为1/1e6,在二维图像上相当于1080p照片上的一个像素。
以这张照片为例,普通自然语言描述的输出可能是:
一个人穿着正式服饰,拿着一张演讲稿纸,准备在麦克风前发表演讲。
而模仿医生写报告的方式,输出结果可能是:
下巴有一颗痣,色淡,半球状,无危,直径4mm
这一简单描述综合了器官检测、异常检测、细粒度识别、分割测量等任务,这也是医学AI软件常用的模型拆解思路。在异常检测中,可以使用密集锚点(dense anchor)和相对简单的骨干网络(backbone)提取所有可能的位置点,在细粒度识别中,则只用关注异常位点,使用较复杂的骨干网络以达到更好的诊断效果。
要将这些步骤整合到一个端到端的大模型中,需要一个极大的图像特征图(feature map),确保微小物体特征不被遗漏,同时融合多尺度特征进行复杂计算以保证特征提取的完备性,这意味着巨大的计算量。此外,在巨大的特征图上进行跨注意力(cross-attention)同样计算代价高昂。
这个计算过程也表明,大模型的“看图说话”能力受限于“异常检测”步骤的准确性。如果检测不到异常,就会漏诊;如果假阳性过多,说错话的概率也会显著增加。这一能力的提升,与模型是否多模态、是否大规模关系不大,关键在于视觉模型本身的检测能力。
难点2:语义模糊、风格不一的医生报告
表面上看,医学影像与医生报告似乎是一个天然的图像-文本数据对,而且数据量也不缺乏:每个三甲医院都能轻松提供上百万套CT图像与对应的文本报告。似乎只要多收集几个医院的数据,利用规模效应(scaling law),问题就能迎刃而解。然而,实际情况并非如此。我们来看看一些真实的影像科报告,他们都是骨折病例,来自不同的医院:
双侧胸廓对称,气管及纵隔居中。双肺纹理增强模糊,双下肺背侧胸膜下可见斑片状模糊影。双肺胸膜下可见线样模糊影。气管及支气管通畅。心脏不大。纵隔及肺门未见明显肿大的淋巴结。双侧胸腔可见少许积液。骨窗示右侧锁骨中段似见透亮线影。胸骨下段骨质不连续,局部可见小骨碎片影。TH11椎体骨质不连续,稍变扁。前纵隔脂肪间隙模糊,可见絮状渗出影。双侧诸肋骨未见明显移位性骨折征象。
"1.右肺中叶、左肺上叶下舌段、两肺下叶轻度慢性炎症;2.两肺上叶混合型肺气肿并肺大疱形成;3.两侧胸膜肥厚;4.右侧第4肋陈旧性骨折。"
- 胸骨骨折,右侧第2-5前肋及左侧第6前肋骨折,左肺下叶及右肺中下叶膨胀不全伴挫伤,请结合临床,必要时复查。2.两侧胸腔少量积液。3.附见:脾脏肿大;胆囊周围少量积液。,两肺纹理增多,走向自然,左肺下叶及右肺中下叶膨胀不全伴条片状模糊影,余肺野内未见明显异常密度阴影。所见各级支气管腔通畅,管腔无狭窄。两侧肺门未见肿大淋巴结,纵隔未见肿大淋巴结。胸廓两侧对称,胸膜无增厚,两侧胸腔少量积液。心脏和大血管无异常。胸骨骨折,右侧第2-5前肋及左侧第6前肋骨折。附见:脾脏肿大;胆囊周围少量积液。"
左肺上叶尖后段(Img63)见磨玻璃结节,内似见小泡影,大小为13mm×11mm。左肺上叶尖后段(Img31)、右肺下叶背段(Img126)见实性结节,较大者位于右肺下叶背段,大小为6mm×4mm。右肺上叶尖段、下叶背段(Img122)见类圆形薄/无壁透亮区。双肺下叶背段近胸膜处见少许斑片状、条索状高密度影及胸膜下线影,以右侧为著。双侧肺门无增大,所见气道通畅。心脏大小正常。纵隔无占位性病变,淋巴结不大。左侧胸腔少量积液。肋骨3D重建、曲面重建左侧第7-12肋多发骨皮质连续性中断,断端对位对线尚可;余所示各肋骨未见明确错位骨折。
胸廓对称,胸壁光滑。肺纹理清晰,走行正常,右肺中叶见小结节影(im30)。肺门影不大,气管及各支气管通畅,气管内见稍高密度影。心影不大,各层面未见肿大淋巴结影。骨窗右侧第11肋见骨折线。
患者屏气不佳,伪影较重,影响观察。胸廓两侧对称,支气管血管束部分模糊。双肺可见数个小结节,直径约0.2cm-0.4cm,较大者位于右肺中叶外段(Img38);右肺中叶及左肺下叶后基底段可见少许索条影。主气管、双肺主支气管及其分支管腔通畅。双侧肺门及纵隔内未见明显增大淋巴结。心脏大,局部心包增厚。未见明确胸膜病变。右侧第5前肋局部形态欠规则。
这些报告清晰地展示了语义上的显著差异:1. 不同医院在风格和详细程度上差异很大,报告的行文顺序也没有固定模式。2. 病灶定位方法各异:有些仅基于解剖位置(如“胸骨下段”),有些则使用图像层数(如“img31”)。3. 名词使用习惯差异大:“骨质不连续”=“局部形态欠规则”,“肺门影不大”=“双侧肺门无增大”。
除此之外,如果直接让机器学习模型从这些文本中学习,你将遇到如下问题:
- 需要同时描述全局和注意微小物体 :这意味着需要维护多尺度的特征。
- 缺乏某个病症的描述并不意味着病症不存在 :可能是医生未检查到,或漏诊。这些报告中都提到了骨折,如果你的模型学习了检查骨折的技能,但在新医院的数据中发现这个医院的医生默认不检查微小骨折(因为检查费时且发生率低),模型就无法适应。
- 数据极为长尾和稀疏 :虽然这里选取的都是骨折病例,但实际上骨折发生率仅为1%。如果按照自然分布训练,难以充分训练模型。这些报告中涉及肺、心、肝、骨、脾、胆、气管、淋巴等多个器官,每个器官的病变发生率都不高,难以形成一个在各个疾病上都均衡的训练集。
- 医生的定位描述非常抽象 :如“左侧第6前肋”,“下叶背段(Img122)”,“胆囊周围”,这些位置普通人甚至无法定位。要让大模型从这些报告中学习,前提是模型必须熟悉各种解剖位置,这本身就是一个不小的挑战。还有更模糊的描述,如“双肺可见数个小结节”,面对这么大的肺,模型该如何设置注意力?
在自然图像的描述任务中,尽管不同人对图像的描述角度、详略、指向方式各异,大模型似乎仍能较好地处理这些差异,原因是大家都认可 image caption 是没有标准答案的,我不会因为模型没有对毛泽东下巴上的痣进行细致描述和准确分类而苛责它。然而,医学影像诊断本质上仍然是一个检测和分类任务,使用的指标是 MAP 和 AUC。据我所知,目前还没有证据表明,多模态训练能显著提升 COCO 小目标检测能力?事实上,现有的各类 SOTA 的 open-vocabulary 论文都尚未达到监督学习的水平。
难点3:医生报告并非金标准
即便前两个难点(微小物体检测和报告语言风格问题)可以通过技术手段克服,如在模型结构中引入从粗到细的分级注意力机制,或通过清洗数据统一报告格式,并通过补充标注解决指向不明确的问题,第三个难点却超出了纯技术解决方案的范畴。这一难题,乃是医学AI领域最核心的挑战所在。所有涉足诊断相关产品(如胸部CT、乳腺钼靶、胸部X光)的医学AI公司,几乎无一例外地都经历过一个深刻而苦涩的教训:
医生的标注不可完全依赖。
在行业的早期阶段,大家普遍认可医生的权威性,认为诊断任务需要深厚的经验和长期训练。经验丰富的医生被视为高质量数据集的关键,因此,常用的策略是让低年资医生进行初步标注,高年资医生对有分歧的部分进行质量控制。我们曾投入十余名医生,花费三十余万元标注费用,希望快速扩充数据集,结果训练出来的模型效果却非常垃圾,不得不推翻重来。问题的原因如下:
- 医生之间缺乏共识 :不同医院的医生在诊断标准上存在显著差异。在医院内部,科主任通常具有权威性,可以在科室内推行他的标准。然而,在多医院医生合作时,矛盾便会显现。A医院的年轻医生往往不愿接受B医院高年资医生的标准,因为他们的主任教的标准不同。即使是A医院和B医院的高年资医生之间,也难以达成共识。影像科学领域缺乏一部公认的权威百科全书来解决诊断标准问题,因为该学科本身就面临“同影异病”和“同病异影”的复杂情况。我们统计过,两位初标医生的一致率仅约70%。即便有高年资医生进行校验,也只是将个人偏好注入数据集,而无法真正拉齐初标医生的看法。
- 漏标现象严重 :许多微小病灶只有3-5个像素,容易被人眼忽略。尽管医生接受过专业训练,漏诊仍然不可避免。作为参考,我们从医院报告系统中寻找骨折病例,发生率约为1%,而配备了AI辅助诊断之后,骨折的发病率提高到了10%,原因是医生报告中只会写有临床意义的骨折位点,一些微小骨折,要么没有看见,要么看见了也没有提一下的必要。而机器学习算法,追求的是“标准一致”的训练集,与医生平时的工作习惯进行标注是大不一样的。
- 医生难以约束 :在公司主导的产品开发中,外聘医生的主要动力是通过标注更多数据获取更高报酬。AI公司往往通过数据量考核标注工作,导致标注速度优先于标注质量。此外,由于医生在疾病解释方面具有天然的权威性,即使标注出现错误,算法工程师们也难以提出反驳。即使公司方配备了内部专家控制标注质量,他们也难以全面监督大量标注人员的工作。
因为上述问题的存在,医疗 AI 公司普遍采用了“少数全职精英医生制定标准 + 大量经过培训的非专业人员执行标注 + 使用模型把控标注质量 + 反复迭代清洗数据”的技术路线。一般来说,达到一个勉强可用的水平,所需的数据量如下:
器官分割任务: 约 100 例病例
病灶检测任务: 约 2000 例病例
病灶分类任务: 约 50000 例病例
此外,还需要将各种 corner case 加入,总数据量大致翻倍后,才能达到较高的实用水平。这些数字看起来并不大,似乎触手可及,但实际上,只有亲身参与过这个行业的人才知道,数据的高质量背后需要经历许多轮的模型-标注交叉检查,算法、医生、测试、标注、产品经理之间的反复讨论,修订标注标准,以及无数次标注培训会。这通常需要数个月的辛勤工作,才能沉淀出高质量的数据。
在项目实践中,我深刻体会到,数据的质量远比数量重要。通常,多加新数据来训练效果不如对现有数据进行清洗,甚至由于新数据未经反复清洗,数据质量差,反而可能拉低分数。因此,对于在医学领域如何有效应用 scaling law,我仍然没有完全想明白。
对现在工作的一些讨论
下面我对今年新出的一些工作做一些解读,来辅助验证一下我的观点。
CT-Clip
A foundation model utilizing chest CT volumes and radiology reports for supervised-level zero-shot detection of abnormalities
这篇工作的亮点,是收集了两万多ct图像,和它们的报告文本,使用clip的范式来做训练。我非常钦佩作者将数据开源的举动,要知道对于敏感的医疗数据,开源两万数据+报告,是比发几篇cvpr或者radiology 更加能推动行业进展的事情,其中要经过非常繁琐的数据伦理审查流程。在中国,我们号称数据很多,但是各个医院都拿着自己的数据当个宝,还从来没有过这个级别的开源数据集。
讲完了优点,我们看看作者做了啥,作者在摘要中自豪的宣称,
CT-CLIP outperforms state-of-the-art, fully supervised methods in multi-abnormality detection across all key metrics
主要是这张图:
乍一看,比监督学习的baseline 高了14个点,牛逼!但是且慢,你看看这个AUC的数字,0.75,比瞎猜好不了太多,作为baseline 的supervised learning auc 只能做到0.6,这只能说这个baseline 过于垃圾,老中医望闻问切的auc没准都比他高。
chexagent
CheXagent: Towards a Foundation Model for Chest X-Ray Interpretation
这篇工作的思路和上面那个并没有本质区别,无非是从胸部ct换成了胸部x光。因为胸部x光很早就有开源数据,从有image caption 这个任务以来,就不停有人尝试拿nlp的各种image caption 算法套用到x光上来水论文。我们且不看作者做了多少辛勤的数据和模型工作,看看它的结果(图片中结果是accuracy):
这一堆五五六六的分数...要是我都不好意思发这论文。现在所有做大模型+医疗的单位,都喜欢做一个对着x光做报告生成、患者对答的demo,证明自己有一个会说话的数字医生,似乎取代医生指日可待。实际上这些case都是精挑细选,根本经不起生产环境的考验,看完本文之后,希望各位看官加一个心眼,看看他paper里边的算法指标。
除了指标上的问题,我们找一些细节证据,是如何反映我刚才提到的几个难点的。这是ct-clip中各个病种的auc分数,它分数最高的病种是心肌肥大 Cardiomegaly 和 胸腔积液Pleural effusion ,得分超过0.9,已经摸到勉强可用的边了,分数最低的是肺结节 Lung nodule 和 纤维化后遗症 Pulmonary fibrotic sequela,基本还在瞎猜的范围。
给大家感受一下这几个病怎么看:
胸腔积液和心肌肥大是较为宏观的图像特征,且基本没有歧义,属于普通人一教就会的类型。纤维化则是类似于图像纹理的弥散特征,它之所以得分低,并非因为难以判别,而是因为纤维化程度较低时,医生往往结合患者是否有肺炎或结核病史后再决定是否记录,如果没有特别病史,可能就不写了。肺结节是一个典型的小目标检测任务,正如我之前提到的,这类端到端模型难以处理得很好。
结合我前面提到的难点,纤维化问题反映了“医生报告并非金标准”的挑战,而肺结节检测则属于“微小目标识别”的难题。至于“语义模糊、风格不一的医生报告”问题,这个数据集仅来源于一家医院,还尚未遇到此类问题。在我们自己的项目中,我会对训练集进行验证,观察其拟合情况,即对训练集进行一次validation,以评估其指标表现。对于一般的检测和分类任务,如果训练集的指标都不高,通常意味着可能存在大量的标注错误。这几篇论文并未提供详细的数据,因此无法进行深入分析。
监督学习做到哪一步了?
那么一般来说,监督学习是什么水平呢,医生自己又是什么水平呢?这个数字的真值其实很难获得,我们以FDA的认证报告作为参考吧。qxr-LN 是 Qure.ai 开发的胸部x光结节检测产品,这是它的FDA 认证报告 总结一下:纯医生:auc=0.73,纯模型:auc=0.94,模型+医生:auc=0.81。这组数字说明了几点:医生是废物,模型比医生强了两个次元,当医生用模型辅助诊断的时候,他甚至还会将正确答案改错。
这种乐子数据屡见不鲜,在早期的 FDA 报告里边,Qure还报告过0.99的模型 auc (脑平扫认证报告),属于是华佗再世了。
在辅助诊断产品方面,学术界的成果普遍不如工业界的实用产品。但工业界的测试集和数据往往不公开,因此很难有统一的衡量标准来比较各家AI公司的水平。所谓的临床试验数据,由于各家公司独立进行,也缺乏可比性。此外,临床试验的金标准由医生制定,其标注质量也需要打一个大问号。真的要按照严格的临床试验流程来搞,数字可能不会特别好看,所以 QURE 估计是掺了些水分在指标里的。
抛开可能的水分,实际情况如何呢?正如之前提到的,医生之间的一致性非常低,因此如果细致地评估医生报告的AUC,可能真的只有0.7多。模型的表现通常会比医生高一些,Qure的这款产品在我们的简单评测中表现尚可,基本能用。
然而,从体验和可用性来看,医生的报告仍有优势。医生尽管容易犯一些小错误,比如漏掉小结节或不判别模棱两可的病例,但极少犯严重的错误。模型虽然擅长小微病灶检测,但有时会在大问题上出错,例如,有段时间我们的模型有千分之一的概率将心脏误认为肿瘤(这是胸部CT和胸部X光类产品中常见的bug,几乎家家都出现过)。这种问题虽然在AUC上无足轻重,但对用户的信任度有很大影响。
因此,尽管从得分上看,模型在单病种上的表现不输医生,但从实际体验来看,模型也从未完全胜过医生。现在的医疗AI产品,即使在单病种检测上,也还不能完全替代医生,只能作为辅助工具使用。(跟自动驾驶有点像吧。。。)
多模态大模型的发展路径?
多模态大模型的最大优势,就是能以统一的任务范式,吃下各种数据集,用大语言模型把未经整理、来源各异的标注消化嚼碎了喂给视觉backbone,让模型有极强的“通用“能力。因此他的最大使用场景,是在一些低犯错成本、高数据来源异质性、开放可交互的情景中使用。比如说医生的教学、科研场景,要从医院数据库里边做相似病例检索,以前要花大把金钱和人力做数据清洗,把非结构化的病例进行结构化,有了大模型可能直接做向量数据库检索就行。这是我能想到的现在的技术水平就能马上使用的。
至于大模型能不能更进一步,把我们从监督学习无尽清洗数据的泥潭中拯救出来,还需要大家一起努力
总结
文章有点长,简单帮大家总结下:
首先,对于微小目标识别,医疗影像中的微小病灶(如肺部结节)在图像中占比极小,要求模型具备极高的分辨能力;此外,不同的病灶需要多尺度特征和巨大的特征图,这不仅增加了计算量,还要求极高的精确度。
其次,在实际临床应用中,医生的报告往往风格各异,描述的详细程度和顺序没有固定标准,这使得模型难以统一学习和理解。不仅如此,报告中对病灶的定位方式多样,有些基于解剖位置,有些基于图像层数,这进一步增加了模型训练的复杂性。
除此之外,不同医生和医院之间的诊断标准差异较大,导致标注数据的一致性和可靠性不足,何况医生的漏标现象也很严重,尤其是对一些微小病灶,导致标注数据的质量不高。这导致标注数据的高质量要求反复的模型-标注交叉检查和不断的迭代清洗,这需要大量时间和资源。
因此,高质量的数据远比数量更重要。有效的数据清洗和标准化是提升模型性能的关键。然而,在医学影像中,数据获取和清洗的复杂性使得这一过程尤为艰难。从作者例举的几篇文章(如CT-Clip和CheXagent)来看,即使是多模态大模型在医疗影像分析中的应用,其效果仍然不尽如人意。模型在某些宏观特征(如心肌肥大、胸腔积液)上的表现较好,但在微小病灶(如肺结节、纤维化后遗症)上的检测能力仍显不足。
总的来说,小编认为,多模态大模型在医疗辅助诊断领域的应用仍然是前景广阔,但正如本文作者所述,受限于技术和数据储备的瓶颈,当前还难以取得重大突破。为此,后续对于提高模型在微小病灶检测上的能力、统一医生报告的标准、以及提高数据标注的质量,是未来发展的关键方向。同时,未来需要更加注重数据质量的提升和技术的逐步改进,才能更好地推动多模态大模型在医疗领域的应用和发展。
#他们掰开神经元,终于让大模型9.8大于9.11了
神秘创业公司,开源AI「洗脑」工具
大模型为什么认为 9.8<9.11?神经元级别的解释来了。
9.8 和 9.11 到底哪个大?这个小学生都能答对的问题却难倒了一众大模型,很多模型输出的结果都是「9.8<9.11」。
为什么模型会集体出错?AI 研究者们总结了很多可能的原因,比如模型会把 9.11 拆解成 9/./11 三部分,然后拿 11 去和 8 作比较;也有人猜测,大模型会把 9.8 和 9.11 当成日期或版本号……
这些解释听起来都有些道理,但如果我们能够直观地「看到」模型出错的原因,那么我们对于问题的归因会更加准确,解决问题的速度也会更快。
刚刚官宣的 AI 研究实验室 Transluce(字面意思是让光线穿过某物以揭示其结构) 就在做这件事情。他们开发了一个名叫 Monitor 的交互界面,以帮助人类观察、理解和引导语言模型的内部计算。
透过 Monitor,我们先来看看 AI 模型为什么会觉得 9.11 比 9.8 更大。
首先,让模型比较一下这两个数的大小,当然它没有意外地出错了。
Monitor 提供了快捷的方式帮助我们分析其错误。将光标放在出错的位置,可以看到模型在此处预测的词的概率分布。很显然,Llama 3.1 8B 的这个版本不仅错了,而且还对自己的错误很自信。
点击一下这个错误,Monitor 开始分析模型出错的可能原因。具体来说,它会「寻找影响 bigger 这个预测结果的神经元」。之后,Monitor 会对这些神经元进行聚类,如下所示,此处有 4 个聚类:
粗略来看,Llama 3.1 8B 在看到 9.11 和 9.9 这两个数字文本时,首先想到的并不是单纯的数值,而是会和人类一样联想到相关的其它概念,比如 9/11 袭击和之后的恐怖袭击、《圣经》章节和诗文编号、化学化合物和分子式、日期等等。并且其中每一种「联想」都会触发不同的神经元组合。
选择其中一个展开,可以看到影响 AI 模型做出「bigger」这个判断的神经元详情。
我们可以点开一个具体的神经元查看,比如这个第 2 层的 1054 号神经元。这里展示了其在接收提示词之后的正值激活情况。注意,这里的神经元描述是该团队用自己提出的一种自动化方法生成的;其中用到了一个解释器模型,它会提出一些关于数据的假设,之后再通过一个自动评分流程对这些假设进行评估,详情可访问 https://transluce.org/neuron-descriptions
通过分析这些神经元,我们可以洞见模型出错的根本原因:模型根本没把 9.11 当成数值,而是看成了一个日期,这样连带下来,9.9 自然也是一个日期了。于是,9 月 11 号自然就比 9 月 9 日 bigger。另外,在《圣经》中,9.11 也是比 9.8 更靠后的编号。而不管是 9/11 事件还是《圣经》,模型的训练数据中都包含大量相关的文本内容,这会影响到模型在判断这个数字时的神经元激活权重。
Monitor 还提供了进一步的检查技术,可以通过将相应激活强行设置为 0 来修正 AI 模型的行为。下面我们将对应「日期」的相关神经元的激活改成 0 看看。
结果?这个 Llama 3.1 8B 还是没对,但是可以看到「bigger」的概率下降了很多(0.961→0.563),而对应正确答案的「smaller」异军突起,已经来到了 top-2 的位置。
接下来,继续操作,将关联《圣经》章节编号的神经元激活也调成 0:
这一次,模型终于对了。它保留了 bigger,但将 9.9 和 9.11 的位置调换一下以遵循提问的形式。同样,它对自己的答案很有信心。
而修复这个问题的代价仅仅是抑制了不到 0.2% 的 MLP 神经元。
除了比较 9.11 和 9.9 的大小,官方还提供了另外三个示例,包括修复 AI 难以数值排序的问题、引导出隐藏知识、引导故事中特定角色。其中的操作不仅包括将激活清零,也包括增强某些特定神经元以引导模型生成符合用户需求的结果。
另外,用户也可以使用自己的提示词,然后基于此分析模型的思考过程。尝试了一个 AI 领域的热门问题:Strawberry 中有几个 r?
可以看到,这个 AI 模型答错了,同时也对自己的答案颇有信心。
根据 Monitor 分析,Llama 3.1 8B 模型在回答这个问题时会将 Strawberry 拆分成两部分:Straw 和 berry,同时 Strawberry 还激活了与食品和佐料相关的神经元。
有意思的是,即便抑制了 Monitor 找到的所有神经元激活,这个 Llama 3.1 8B 模型依然无法正确解答「Strawberry 中有几个 r」这个问题。
那我们来增强一些神经元试试。这里我们在 Monitor 中输入「Strawberry as a string made of several English letters(将 Strawberry 看作是一个由英语字母构成的字符串)」作为搜索条件,定位到了 50 个相关神经元,这里我们直接全部增强它们。
这一次,Llama 3.1 8B 终于给出了正确答案。而这一次,我们执行了两项抑制(各 500 个神经元)和一项引导增强(50 个神经元),不过这些神经元的数量我们也可以自行调整。基于此,我们可以得出这样的洞见:在解答「Strawberry 中有几个 r」这样的问题时,LLM 的问题是想得太多,去分析其背后所代表的意义和事物了,而它原本只需要将其看成一个字符串即可。
那么,这个叫 Monitor 的模型到底是怎么做出来的?背后的运行机制是怎样的?Transluce 这家公司是什么来头?在一篇博客和一封公开信中,Transluce 给出了系统介绍。
Monitor 的基本构成
Monitor 采用了一套由 AI 驱动的工具,可帮助用户理解语言模型中的神经激活模式:
1、一个预先编译的高质量神经元描述数据库,生成自对 Llama-3.1-8B 中的所有 MLP 神经元应用 Transluce 的 AI 驱动描述 pipeline。该系统同样适用于 SAE 特征或任何其他特征集。Transluce 从神经元开始,因为它们最简单,并且已经运作得很好。他们将发布系统的代码,并期待其他人用他们自己的特征集在此基础上进行构建!
2、一个实时界面,用于显示给定聊天对话的重要概念。用户可以通过激活(概念触发的强度)或归因(概念对指定目标 token 的影响程度)来衡量重要性。
3、一个实时的人工智能检查器,它会自动显示可能是误导性线索的非预期概念的集群(例如「9 月 11 日」神经元在数字「9.11」上被触发)。
4、语义引导的转向,基于自然语言输入,增加或降低与概念相关的神经元集合的强度。
系统设计
开发者采用一个预先编译好的神经元描述数据库,并且每个描述都与最能激活该神经元的 K 个关键示例和它们的激活模式相联系。
向量数据库(VectorDB)
该团队采用了 OpenAI 的 text-embedding-3-large 嵌入技术来处理这些描述,创建一个用于语义搜索的索引。
Linter
接下来,开发者使用一个 AI linter 来突出显示相关的神经元簇。首先,他们让 GPT-4o mini 简化并概括神经元的描述。然后,他们使用 OpenAI 的嵌入技术(text-embedding-3-large)来嵌入神经元,并使用层次聚类方法,根据余弦相似度将神经元聚类,使用 0.6 的阈值。
最后,他们让 GPT-4o mini 为某簇简化过的神经元再生成一个简洁的描述,并根据簇内神经元在语义上的相似度打一个分数(1-7),其中 1 代表最相似。在 Monitor 的界面中,只显示数量大于等于三个,且得分小于等于 3 的簇。
引导
开发者通过将神经元的激活值固定在指定值来引导它们。具体来说,如果需要在 token T 上引导一组神经元 S,以强度 λ 进行操作,在每个 token t 属于 T 的情况下,在该标记的前向传播过程中,将神经元的激活值设置为:λ*10^−5。
这个过程也会进入该层的残差中,进而影响后续的层与注意力头。这一操作会覆盖所有需要引导的神经元 s。由于神经元具备正负两种极性,当我们指定一个神经元时,只有当它与引导集中指定的极性相同时才会生效。
激活与归因
如何衡量哪个神经元在特定任务中更活跃?开发者提供了激活和归因两种模式。
激活主要关注神经元的原始激活值,即上一节中的 λ,如果这个值远高于平均值,那么它很可能在任务中扮演重要角色。
归因是一种更具针对性的模式,它测量神经元对特定输出 token 的影响。受 Attribution Patching 启发,计算输出 token 的对数概率 z 相对于神经元激活值 e 的梯度,归因值等于
。
摘要功能
自动生成的神经元描述往往很啰嗦,而且很多描述对用户来说可能没有意义。为了解决这个问题,研究者们用大约 1000 个手动标注的示例集对 GPT-4o-mini 进行了微调,让它能够判断哪些描述对用户来说是相关的,哪些是不相关的。
为了让描述不那么啰嗦,该团队还使用了少量样本作为提示词,让 GPT-4o-mini 对每个神经元生成更简洁的描述,并将其展示给用户和 AI linter(AI linter 对较短的输入会处理得更好)。
前端设计
Monitor 的界面主要这几个功能。首先可以点击模型回答中的 token,查看更多详细信息,比如每个输出 token 的概率。左侧的窗口中也显示了 AI linter 分析的模型出错的原因,用户可以通过调整参数(如 k 和 λ)来控制引导操作的影响范围和强度。
在 Monitor 中,系统将会寻找与用户搜索查询最为匹配的 k 个神经元。这些神经元会被选为引导集,帮助我们决定哪些特征需要被减弱(停用)或者加强(增强)。通常情况下,如果我们想要减弱一个特征,我们会设置引导值为 0(λ=0);如果我们想要加强一个特征,我们会设置引导值为 0.5(λ=0.5)。
用户可以根据自己的需要,通过点击高级选项来调整 k 的数值(也就是他们想要影响的神经元数量)和 λ 的数值(也就是影响的程度)。他们还可以查看被选为引导集的神经元示例,并决定他们想要影响的特定的 token 子集。如果没有特别指定,系统默认会影响初始系统和用户提示中的所有 token。
当然,用户也可以点击单个神经元,了解每个神经元的具体详情。
用户还可以选择要引导的标记子集,并查看引导集中的示例神经元。
前端中最复杂的部分是右上角的 AI 助理显示。这个地方能为用户提供最相关的信息,包括有关界面状态和 AI linter 显示的信息。未来,这将成为一个通用接口,用户可以从 AI 后端请求和接收信息。
Transluce:创建世界一流的工具来理解 AI 系统
人类很难理解人工智能系统,因为它们庞大且不透明。Transluce 的目标是创建世界一流的工具来理解 AI 系统,并使用这些工具来推动可信赖 AI 的行业标准。2024 年 7 月,Transluce 成立;2024 年 10 月 24 日,也就是今天,该公司正式官宣。
公司的创始团队如下:
其中,联合创始人 Jacob Steinhardt 是加州大学伯克利分校助理教授,2018 年在斯坦福大学取得博士学位,师从斯坦福大学计算机科学副教授 Percy Liang。他的 Google Scholar 被引量高达 20000+。
另一位联合创始人 Sarah Schwettmann 是 MIT 计算机科学与人工智能实验室(CSAIL)的研究科学家,2021 年 8 月在 MIT 拿到大脑与认知科学博士学位。
公司的顾问团队非常豪华,集齐了 Yoshua Bengio、Percy Liang 在内的多位 AI 大牛。
总的来看,Transluce 现阶段是一个非营利性研究实验室,致力于构建开源、可扩展的技术,以理解 AI 系统并引导它们服务于公共利益。
为了建立对 AI 系统能力和风险分析的信任,这些工具必须是可扩展和开放的:
- 可扩展性:AI 系统涉及多个复杂数据流的交互,包括训练数据、内部表示、行为和用户交互。现有的理解 AI 的方法依赖于人类研究者的大量手动工作。Transluce 致力于开发可扩展的方法,利用 AI 来协助理解,通过训练 AI 智能体来理解这些复杂的数据源,向人类解释它们,并根据人类反馈修改数据。
- 开放性:构建 AI 系统的公司不能成为其安全性的主要仲裁者,因为这与商业优先级存在利益冲突。为了允许有意义的公众监督,审计 AI 系统的工具和流程应该是公开验证的,能够响应公众反馈,并且对第三方评估者开放。这样,全球最优秀的人才可以审查这项技术并提高其可靠性。
Transluce 致力于解决这些需求。他们将构建 AI 驱动的技术来理解和分析 AI 系统,并将其开源发布,以便社区能够理解并在此基础上进行构建。他们将首先把这项技术应用于公开分析前沿开放权重的 AI 系统,以便全世界可以审查他们的分析并提高其可靠性。一旦他们的技术经过公开审查,他们将与前沿 AI 实验室和政府合作,确保内部评估达到与公共最佳实践相同的标准。
Transluce 已经发布了第一个里程碑 —— 一套 AI 驱动的工具,用于自动理解大型语言模型的表示和行为。这些工具可以扩展到从 Llama-3.1 8B 到 GPT-4o 和 Claude 3.5 Sonnet 的模型范围,并将开源发布,供社区进一步开发。他们的方法包括创建 AI 驱动的工具,将巨大的计算能力用于解释这些复杂的系统。他们通过三种演示来展示这一愿景:
1. 一个 LLM pipeline,为神经元激活模式创建最先进的特征描述;
2. 一个可观察性界面,用于询问和引导这些特征;
3. 一个行为引导智能体,自动从前沿模型中搜索用户指定的行为,包括 Llama-405B 和 GPT-4o。
这些工具利用 AI 智能体训练,自动理解其他 AI 系统,并将这些见解呈现给人类。
参考链接:
https://transluce.org/introducing-transluce
https://monitor.transluce.org/dashboard/chat
https://transluce.org/observability-interface
#黄仁勋确认Blackwell缺陷修复
100%英伟达的错:明年初出货
老黄:科技公司的芯片需求让我夜不能寐。
「我们的 Blackwell 芯片存在设计缺陷,虽然可以正常使用,但该设计缺陷导致良率低下,」黄仁勋表示。「这 100% 是英伟达的错。」
自 3 月份发布以来,全球科技公司都在疯狂求购的 Blackwell AI 芯片,似乎终于要到了出货的时候。
本周三,在与高盛(Goldman Sachs)进行的会议中,英伟达表示 Blackwell GPU 中影响良率的设计缺陷已宣告修复,B100/B200 处理器的改进版即将投入量产。
据路透社等外媒报道,英伟达 CEO 黄仁勋本周承认,该缺陷完全由英伟达造成,并表示该现在已在台积电的及时帮助下修复了缺陷。
今年 8 月,当有关英伟达最新一代芯片 Blackwell 设计缺陷的第一批报道出现时,一些媒体称台积电应承担责任 —— 并暗示这可能导致英伟达与其代工合作伙伴之间的关系紧张。
黄仁勋表示,事实并非如此。他还驳斥了有关两家公司关系紧张的报道,并称其为「假新闻」。为了让 Blackwell 计算设备正常工作,英伟达设计了七种不同类型的芯片,并同时投入生产。
英伟达的 Blackwell 芯片采用全新一代架构,台积电 4NP 工艺打造,拥有 2080 亿个晶体管,在执行大模型推理等任务时效率较前代提升了 30 倍,因而备受科技公司期待。
此种面积的芯片,显然不能再通过传统方式来打造。Blackwell 的 B100 和 B200 GPU 两个型号使用台积电的 CoWoS-L 封装技术连接两个芯片,该技术依赖于配备局部硅互连(LSI)桥接器的 RDL 中介层(以实现约 10 TB/s 的数据传输速率)。
英伟达表示,双芯片的 GPU 没有内存局部性问题或缓存问题,CUDA 将其视为单块 GPU,可见这些芯片的桥接器至关重要。然而,GPU 芯片、LSI 桥接器、RDL 中介层和主板基板之间的热膨胀特性可能不匹配,导致系统弯曲和故障。
图源:Nvidia
因此,英伟达在 8 月承认了其 Blackwell GPU 的良品率低,需要修改 GPU 硅片的顶部金属层和凸片,以提高生产良率。当时,英伟达在一份声明中表示,「公司已经对 Blackwell GPU 的掩膜实施了修复。」
不过,英伟达也重申,公司在第二季度与客户一起对 Blackwell GPU 进行了抽样检查,并承认必须生产「低良率 Blackwell 材料」才能满足对 Blackwell 处理器的需求。
同时,黄仁勋在 2025 财年第二季度财报电话会议上表示,公司针对 Blackwell B100 和 B200 GPU 的设计进行了所有必要的变更,从而有望在第四季度实现量产。
英伟达 Blackwell GPU 不同型号的参数规格。
其实在半导体行业中,影响良率的 bug 以及重大功能问题并不是什么新鲜事。通常,公司通过修改金属层(或两层)等新步进(stepping)来修复这些问题。
据此前报道,英特尔的 Sapphire Rapids 有 500 个 bug。因此,英特尔发布了大约十几个步进来修复所有 bug(其中五个是基础重置)。每个新步进大约需要三个月才能完成(包括识别问题、修复问题和生产新版本芯片)。
图源:Intel
从这一点来看,英伟达和台积电修复 Blackwell GPU 的速度的确令人印象深刻。
目前,已修复的用于 AI 和超级计算机的 Blackwell GPU 预计将于最近几天投入量产,并在 2025 年初开始发货(仍在英伟达 2025 财年内)。
此外,根据英伟达在今年初披露的消息,AWS、谷歌、Meta 和微软是其主要客户(合计收入占比高达 40%),为满足他们对其新一代 AI 算力的需求,该公司必须在本年度出货一些最初低良率的 Blackwell GPU。不过,2024 年究竟会有多少 Blackwell GPU 被「送」往数据中心,我们不得而知。
周三美股收盘,刚刚创下历史新高的英伟达股票收跌 2.81 %,回落到 140 美元以下。
参考内容:
#Hammer
哪个模型擅长调用工具?这个7B模型跻身工具调用综合榜单第一
工具调用是 AI 智能体的关键功能之一,AI 智能体根据场景变化动态地选择和调用合适的工具,从而实现对复杂任务的自动化处理。例如,在智能办公场景中,模型可同时调用文档编辑工具、数据处理工具和通信工具,完成文档撰写、数据统计和信息沟通等多项任务。
业界已发布的工具调用模型,在特定评测基准上有接近甚至超越闭源 SOTA 模型(比如 GPT-4)的表现,但在其他评测基准上下降明显,难以泛化到新工具和新场景。为应对这一挑战,来自 OPPO 研究院和上海交通大学的研究团队提出函数掩码(Function Masking) 方法,构建了具备强大泛化能力的轻量化工具调用系列模型:Hammer,并开源了完整的技术栈,旨在帮助开发者构建个性化的终端智能应用。
在工具调用典型评测基准上,包括 Berkeley Function-Calling Leaderboard(BFCL)、API-Bank、Seal-Tools 等,Hammer 系列模型展现了出色的总体性能,特别是 Hammer-7B 模型,综合效果仅次于 GPT-4 等闭源大模型,在工具调用模型中综合排名第一,具备强大的新场景和新工具泛化能力。
- 模型地址:https://huggingface.co/MadeAgents
- 论文地址:https://arxiv.org/abs/2410.04587
- 代码地址:https://github.com/MadeAgents/Hammer
工具调用任务说明
工具调用作为 AI 智能体执行复杂任务所必备的核心能力,要求模型不仅能够识别正确的函数,还要准确填写函数的输入参数;如果给定函数列表无法满足用户的意图,模型也应具备拒绝任务的能力。下图是工具调用模型输入输出的一个样例:
Hammer 训练方法
研究团队在 Hammer 的训练过程中引入了一项关键技术:函数掩码(Function Masking) 和一个增强数据集:不相关性检测增强数据集(Irrelevance-Augmented Dataset)。
- 函数掩码旨在减少模型对函数名称和参数名称的依赖,核心是通过哈希化函数名称和参数名称,使模型在执行工具调用任务时不得不依赖更完备且可靠的功能描述信息,而不是对名称的记忆或匹配。这种方式有助于减少因命名差异导致的误判问题,提升模型在多样化命名风格和应用场景中的稳定性和适应性。
- 不相关性检测增强数据集旨在帮助模型在给定用户意图而当前无适用函数的情况下,能够正确判断并给出「不相关」信号。该数据集包含了 7,500 个增强样本,设计时平衡了工具调用任务和不相关性检测任务的比例,以达到最佳的综合效果。(已开源至:https://huggingface.co/datasets/MadeAgents/xlam-irrelevance-7.5k)
Hammer 总体表现
Hammer 系列模型在工具调用典型评测基准上均展现了出色的性能,具体表现如下面的两张表格所示。可以看到,在 BFCL 榜单上,Hammer-7B 模型的总体准确率达到 83.92%,接近闭源 SOTA 模型 GPT-4 的 95.79%,优于其他工具调用模型。同时,在其他评测基准上,Hammer-7B 模型的平均 F1 达到 76.21%,接近闭源模型 GPT-4 的 78.79%,大幅领先其他工具调用模型。Hammer-7B 能够在参数规模较小的情况下,在不同评测基准上与闭源 SOTA 大模型竞争,充分展示了 Hammer 模型在各种工具调用任务中的准确性和稳定性。
函数掩码技术的通用性
研究团队还将函数掩码和数据增强技术应用于不同的基础模型,以验证其通用性。实验选择了 Qwen 系列和 Deepseek-Coder 系列模型作为基准,并在相同的训练和测试条件下进行比较。下表中的结果显示,经过函数掩码技术调优后的 Hammer 版本显著提升了基础模型的工具调用准确性,远高于未调优版本,证明了函数掩码和不相关性数据增强对不同模型架构均有显著的优化效果。同时,在使用相同的基座模型和基础数据的情况下,与 xLAM(同样基于 Deepseek 微调而来的工具调用模型)的对比,也体现了函数掩码及不相关性数据增强的作用。
不相关性数据增强比例的权衡
在设计不相关性数据增强时,研究团队测试了不同比例的不相关性数据样本对模型表现的影响。下图实验结果表明,合理比例的不相关性增强数据(约占总数据的 10%)能够在提升工具调用准确性的同时,显著增强模型在不相关检测场景中的识别能力,降低错误调用的风险。实验结果还显示,进一步增加不相关性数据会略微降低功能调用的准确性,因此找到适当的平衡点至关重要。
总结
Hammer 模型通过函数掩码技术和不相关性检测数据增强,在多个评测基准中取得了良好的效果,表现出强大的泛化能力和稳定性,为轻量化工具调用模型在终端应用向前迈了一步。
Hammer 系列目前已更新至 2.0 版本,欢迎感兴趣的读者通过 huggingface 进行体验!