Skip to content
英特尔股价暴跌 26%,40 年来最大跌幅
财报披露一系列消息:业绩不及预期、裁员、暂停派发股息。
北京时间今天凌晨,英特尔股价暴跌逾 26%,单日总市值蒸发达 323.7 亿美元(约合 2317 亿元人民币),经历了 40 年来表现最差的交易日之一。
本周四,英特尔刚刚公布了低于预期的第二季度财报,报告显示收益低于华尔街预期,公司宣布暂停派息,同时计划实施更广泛的重组计划。
在周五的交易日中,英特尔盘中跌幅曾一度接近 30%,据彭博社提供的数据,这是该股自 1982 年以来表现最差的一次。
英特尔在财报中表示,在第二季度的营收为 128 亿美元,同比下降 1%,(按美国通用会计准则统计)净利润由盈转亏,亏损 16 亿美元,去年同期净利润为盈利 15 亿美元。
预计公司的第三季度营收在 125 亿美元至 135 亿美元之间,远低于分析师预期的 143 亿美元。该公司公布的每股收益 (EPS) 为 0.02 美元,营收为 128 亿美元。
面对财务层面的挑战,英特尔 CEO 帕特・基辛格向员工发出了备忘录,宣布公司将实施一系列「重大成本削减措施」,旨在于 2025 年前节约 100 亿美元成本。该计划的核心内容包括裁减约 1.5 万个工作岗位,占公司员工总数的约 15%,预计大部分措施将在本年度内完成。
「这对我来说是一个痛苦的消息。我知道这对你们来说会更加难以接受。对英特尔来说,这是极其艰难的一天,因为我们正在进行公司历史上一些最重大的变革,」基辛格表示。「简而言之,我们必须将成本结构与新的运营模式相结合,从根本上改变我们的运营方式。我们的收入没有像预期的那样增长,我们还没有充分受益于人工智能等强大的趋势。」
由于生成式 AI 技术正走向落地,英特尔已开始大力转型,力图夺回被竞争对手 AMD 抢走的 PC 芯片市场份额。该公司还在全球各地斥资数十亿美元兴建工厂和其他设施,试图夺回其在芯片制造业的份额,而该行业目前由台积电 (TSMC) 主导。
英特尔数据中心和人工智能部门本季度收入 30.5 亿美元,低于预期的 30.7 亿美元。由于人工智能应用对 CPU 和 GPU 的需求巨大,数据中心和人工智能业务为英特尔提供了增加收入的机会。但英特尔的 GPU 显然还不像英伟达那样受欢迎。
英特尔 CEO 帕特・基辛格在今年的 ComputeX 上。
虽然数据中心和人工智能是当前最受关注的领域,但在英特尔,客户端业务(包括企业和消费电脑芯片的销售)仍然是其最大的整体业务。
本季度,英特尔的客户端收入为 74 亿美元。华尔街预计收入为 75 亿美元。该公司去年同期的客户端收入为 67 亿美元。
此外,英特尔在 PC 领域还面临着一个意想不到的潜在威胁:高通。这家在移动端芯片领域覆盖全球市场的公司于 5 月发布了其新款 Snapdragon X Elite PC 芯片,也成为了微软新款 Surface Laptop 和 Surface Pro 的一部分。
高通发布的 PC 端芯片比竞争对手英特尔和 AMD 的芯片更省电、续航时间更长,在质量上可与苹果自研的 M 系列芯片相媲美。在英特尔一方,类似的产品预计将于今年秋季推出。
还有英特尔的代工业务。该公司正在向第三方芯片设计商开放其代工厂,希望能够打造一项与台积电相媲美的业务。但到目前为止,英特尔是其最大的客户。虽然包括微软在内的客户已经准备就绪,但该公司仍需要时间才能在市场上站稳脚跟。
参考内容:
https://finance.yahoo.com/news/intel-stock-plummets-most-in-40-years-amid-massive-restructuring-201247461.html?guccounter=1&guce_referrer=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS8&guce_referrer_sig=AQAAAGn4GAu_AsHE9vbgYGeXdI44EPG5RAB680_QzhaTiCd8H2VzYzwgULEWLG_losKwb_J-wrCOHk6f2m0ATIAHNCI0uzZdoFmnMJvern8Gi7YFqVWtoj1-KpYMPJ0JyqRzH1cd78SLZ0XBLO4T41EYrbo3cMMCYBwWhN0ZiA4CSCv8
https://economictimes.indiatimes.com/jobs/mid-career/intel-ceo-pat-gelsinger-says-15000-job-cut-is-painful-but-necessary-for-a-new-era-of-growth-read-full-letter-here/articleshow/112214781.cms?from=mdr
Machine Unlearning 会是未来 LLM 的必需品吗?
—- 本周为您解读 ③ 个值得细品的 AI & Robotics 业内要事 —-
1. Machine Unlearning 会是未来 LLM 的必需品吗?
为什么需要关注 Machine Unlearning?LLM 做 Unlearning会更难吗?LLM 公司能用 Unlearning 解决数据纠纷吗?Machine Unlearning 现在存在哪些局限?…
2. AI 搜索想要颠覆传统搜索,必须迈过哪些坎儿?
「AI 搜索赛道」近期涌进了哪些关键玩家?谷歌占据的九成搜索引擎市场份额是否会受到影响?国内外 AI 大厂、创企都是如何做「AI + 搜索」应用的?三种不同的路线有哪些差异?AI 搜索对比传统搜索在技术上有何不同?…
3. ICML 2024 透露了哪些技术趋势?
ICML 2024 与往年有何区别?ICML 今年的热度如何?ICML 今年论文热词有哪些?今年哪些研究领域备受关注?哪些 AI 研究者今年最为活跃?大会获奖论文有哪些?…
日期:8 月 2 日
事件:在人工智能疾速发展,LLM 应用开始被广泛应用的当下,全球各国政府对 AI 治理投入了越来越多的精力。在近期多国政府出台的 AI 治理法案中,政府对数据安全、伦理、隐私保护,以及 AI 技术与版权、用户权益等方面的约束条款愈发清晰。在此趋势下,可以用于保护用户隐私数据的 Machine Unlearning 技术也在引起越来越多的关注。
为什么需要关注 Unlearning?[1]
1、在过去的十年中,数据量的大幅增加和硬件性能的快速提升推动了机器学习技术的快速发展。伴随近几年 LLM 模型的发展则进一步带来了对各类数据的需求和消耗。
2、伴随人工智能技术所需的数据量不断增加,许多国家最近立法实施「被遗忘的权利(Right to Forgotten)」。
① 」被遗忘的权利「中显著的例子是欧盟的通用数据保护条例(GDPR)、加拿大的个人信息保护与电子文件法(PIPEDA)隐私立法和美国的加州消费者隐私法案(CCPA)。
② 根据这些法律,公司必须采取合理措施保证在请求时删除个人数据。
③ 截至近期,联合国即将进入执行的《人工智能法案》和美国多个州政府最近的立法行动也对人工智能在用户隐私、版权等方面的提出规范。
4、在此趋势下,Machine Unlearning 技术受到越来越多的关注。
① 由于企业会利用用户数据训练模型。当用户行使「被遗忘的权利」,要求公司停止使用其数据,如果每次都要重新训练模型以响应用户的要求,将对企业造成巨大的开销和损失。
② 从技术层面看,Machine Unlearning 领域的研究不仅限于隐私保护,还包括分析不同数据对模型收敛时所贡献的梯度。这种分析有助于实现更精准的去学习,同时也能增强模型对噪声数据的检测能力(Noisy Data Detection)。
LLM 要如何用 Unlearning 进行数字遗忘?
罗维拉-伊-维尔吉利大学、CYBERCAT 和华为等机构的研究者在综述《Digital Forgetting in Large Language Models: A Survey of Unlearning Methods》讨论了在 LLM 中的数字遗忘问题,并梳理了 LLM 中所涉及的 Unlearning 方法进行梳理和对比。这些方法与广义 Machine Unlearning 的方法既有交叉,也有区别。
1、该工作围绕自 2022 年 11 月 ChatGPT 发布以来,LLM 的广泛应用和引发的问题,以数字遗忘为核心解决方案,阐述了包含 Machine Unlearning 在解决 LLM 对市场、隐私、版权等方面的影响。
① 该工作指出,LLM 的普及引发了有关模型与社会价值观和法治的一致性许多问题。
② 这些问题包括各类 LLM 对劳动力市场的影响、对个人隐私权的影响、对版权法的影响、对加剧偏见和歧视的影响,以及可能生成有害内容,包括可能被用来造成伤害的内容。
2、该工主要围绕数字遗忘技术展开讨论,其目标是给定一个具有不期望知识或行为的模型,经过数字遗忘处理后获得一个新模型,在该模型中不再存在检测到的问题。
② 有效的数字遗忘机制必须满足潜在冲突的要求包含:遗忘的有效性,即新模型遗忘不期望知识/行为的效果(无论是通过正式保证还是通过经验评估);模型在期望任务上的保留性能;以及遗忘过程的时效性和可扩展性。
3、该工作讨论了 LLM 的背景,描述了数字遗忘的动机、类型和期望属性,并介绍了 LLMs 中数字遗忘的方法,其中 Unlearning 的方法盘点核心。
4、该工作将适用于 LLM 的 Unlearning 方法分为四个大类,分别是全局权重修改、局部权重修改、架构修改和输入/输出修改方法。
① 全局权重修改(Global Weight Modification)指修改模型的所有参数以实现遗忘,其代表性方法包含数据分片(Data sharding)、梯度上升(Gradient ascent)、知识蒸馏(KD)、Generic alternatives 和强化学习。
② 局部权重修改(Local Weight Modification)指今修改模型中与遗忘目标相关的特定参数,其代表性方法为局部重训练(local retraining)、任务向量调整(task vector)和直接修改(Direct modification)
③ 架构修改(Architectur Modification)指在模型结构中添加新的层或应用线性变换,其代表性方法涉及额外的课学习层和线性变换。
④ 输入/输出修改(Input/output Modification)指在 LLM 的输入或输出层面上进行修改,但不改变模型内部参数,其代表性方法包含输入操纵和信息检索。
5、研究者对适用于 LLM 的 Unlearning 方法展开了一系列评估,包括所使用的数据集、模型和度量标准。
① 其分析的度量标准含三方面:模型是否有效地遗忘了目标知识;模型是否保留了其余的能力;遗忘过程的计算成本。
表 :LLM Unlearning 方法对比,L、M 和 H 分别表示低、中和高,Sgnf 表示极高。
LLM 中的 Unlearning 方法还有哪些难题亟待解决?
Machine Unlearning 作为一项新技术,在人工智能与大模型领域正在逐渐收到重视。然而,大多数现有方法仍存在不同层面的局限,而仍在发展中的 LLM 的部分特性则为 Machine Unlearning 带来了更多挑战。在。2023 年 10 月发布的综述《Large Language Model Unlearning》、2024 年的综述《《Digital Forgetting in Large Language Models: A Survey of Unlearning Methods》以及近期的工作中均指出了 Unlearning 方法当前面临的问题。
1、在 2023 年 10 月发布的综述《Large Language Model Unlearning》中,研究者重点关注了如何在 LLM 中进行 Unlearning。对比传统的分类模型,Unlearning 在 LLM 中面临着一些不同的挑战[7] :
① LLMs 的输出空间远大于标签类别,其带来的可能的结果数量远超传统分类模型。
② LLMs 的规模巨大,任何昂贵的 Unlearning 方法在 LLMs 上都不切实际。
③ LLMs 的训练语料库庞大且通常无法访问,难以获取训练数据的真实模型和行为,使得评估也变得困难。
④ 现有的 Unlearning 方法大多几种于分类模型上,但它们在计算成本和适用性的局限性使其无法直接应用于 LLMs。即便是流行的 RLHF 业存在极大的资源消耗,需要收集大量高质量的人类编写的样本。
2、《数字遗忘》的研究者指出,LLM 中,Machine Unlearning 是一个新的热点,但尚未成熟的研究领域。[6]
① 现有的许多 Unlearning 方法计算成本过高。其中,数据分片和梯度上升等涉及全局权重修改的方法需要大量的计算资源,这种 Unlearning 方式这不仅延长了遗忘过程的时间,还增加了实现遗忘所需的硬件成本。
② 由于在训练和推理过程中,模型需要占用大量的内存,LLM 尤为明显。因此,的 Unlearning 方法在处理大规模模型时可能会遇到内存限制。
③ 现有的 Unlearning 方法往往无法完全删除模型中的不期望知识。一些方法可能只是减少了这些知识的影响,而不是完全消除。这可能导致模型在某些情况下仍然表现出不期望的行为。
④ 泛化能力不足:一些 Unlearning 方法在处理特定任务或领域时表现良好,但在其他任务或领域上效果不佳。这意味着这些方法可能缺乏足够的泛化能力,无法在所有情况下都有效。
⑤ 某些 Unlearning 方法可能只适用于特定的数据类型或模型架构。同样的,一些 Unlearning 方法在处理特定任务或领域时表现良好,但在其他任务或领域上效果不佳。
⑥ 由于 LLM 的输出空间巨大,评估 Unlearning 方法的成功与否非常困难。现有的评估指标和方法可能无法充分捕捉到 Unlearning 方法的实际效果。
3、华盛顿大学、普林斯顿大学和南加州大学等机构的研究者在近期发布的《MUSE》论文中提出了面向 LLM 中 Unlearning 方法的综合评估基准。他们评估发现绝大多数 Unlearning 算法会降低模型的一般效用,且不能持续地适应连续的遗忘请求或大规模内容删除。[8]
00后CEO杨丰瑜:耶鲁博士回国创业,五个月造出首款「可量产」人形机器人|AI Pioneer
即使年轻的学术天才已成为当下AGI公司创始人的主流背景之一,2000年出生的杨丰瑜,还是年轻得让人意外。
本科密歇根大学计算机专业,耶鲁大学计算机专业博士生,年仅23岁的杨丰瑜,在去年开始了自己的具身智能机器人事业。
2024年,由他创办的UniX AI具身智能公司,在五个月内完成了一款轮式人形机器人的研发制造,这款带有「餐后清洁」以及「洗衣服」等功能的机器人将于九月开始量产,并对外销售。
在很多具身智能机器人仍然停留在实验室的阶段,这是一个很快的商业化速度。在苏州,UniX AI公司的机器人量产工厂已经超过两千五百平。
这家在去年几乎没人听说过的公司,在大半年内网罗了多位机器人行业内的资深技术人才。「有头部服务机器人的研发总监帮我们做底盘,也有一些头部的人形机器人公司顶尖人才在负责我们的硬件」。2024年7月,上海交大著名机器人专家王贺升教授,宣布正式加入UniX AI担任首席科学家。
在UniX AI释放出的首支技术展示视频中,名为Wanda的轮式人形机器人能够完成抓起豆腐、协助分类衣物、将衣物拿到洗衣机清洗等任务。当下具身智能公司难以解决的「柔性任务」问题,UniX AI似乎已经找到解决方案。
「我不觉得年轻有什么不好,从技术层面来讲,当下很多新技术、新产品,很多是由拥有深厚学术背景的年轻人创造的」,令我们有些意外的是,作为00后,杨丰瑜本人在谈吐中表现出超越年龄的成熟,对于公司管理和具身智能的技术阶段拥有非常清晰的认知。
我们对UniX AI的好奇集中在,一个在创投圈几乎没有任何消息的具身智能公司,为何能做到如此快的发展速度;作为极少的由00后操刀建立的具身智能公司,UniX AI如何实现从0到1的发展?UniX AI的具身智能终局路线图又是什么样的?
带着这些问题,机器之心与杨丰瑜展开了他创业以来的第一次公开媒体对话。
耶鲁00后
投身具身智能创业
机器之心:你现在已经毕业了吗?
杨丰瑜:我是本科直博到的耶鲁,博士毕业的论文要求我基本都达到了,就拿今年来说吧,我中了4篇CVPR,加上其他,总共有十多篇人工智能和机器人的顶会文章。
机器之心:你的精力很旺盛。
杨丰瑜:(笑),经常熬夜到凌晨三点半,前段时间还去打吊针。主要是因为团队在一起,经常不看手表,一抬头就已经很晚了。
机器之心:是什么时候开始想到要创业的?
杨丰瑜:我一直认为创业是“天时地利人和”。
去年我们看到感知层面在技术上有很大进步,包括视觉、语言模型和触觉等多模态的一些大模型或基座模型都有了很大的发展,这让我们看到了实现目标的可能性。另外国家也有一系列的支持政策推出,为创业提供了一个良好环境。这是“天时”。
“地利”:毋庸置疑,通用人形机器人是继新能源汽车之后的下一个发展方向,中国在供应链方面有着无可比拟的优势,而且长三角这边的高科技人才也非常多。
一开始,我们做了一些调研,去弄清楚目前机器人行业的工程化水平进展到哪个阶段、市场需求在哪里、上一代机器人解决了哪些问题以及它未来的机会在哪里?
能够成事,关键还是找到对的人。今年,我们正式组建团队,快速集结了很多方面的专家,有头部扫地机器人的研发总监,也有一些头部人形机器人公司顶尖人才,负责我们的硬件。在算法层面,我在美国以及欧洲招募了一批人才,包括我的一些同学、师兄,这是“人和”。
作为创始人和CEO,最重要的是集合资源。UniX AI是一个全球化的公司,把全世界不同国家在机器人软件、硬件、供应链的优势结合起来;同时我们有国际化的规划,通过一年、三年、五年计划的不断努力,实现Robots For All的公司愿景。
机器之心:简单介绍一下你的学术经历吧
杨丰瑜:小学到高中是在国内,本科去密歇根大学读了计算机专业。一开始接触的是视觉和机器学习,后来在导师「多模态学习」的影响下,开始进行视触觉的研究。
本科期间发表了5篇机器人视触觉论文,其中“Touch and Go: Learning from Human-Collected Vision and Touch”是世界上现今最大的视触觉传感数据集,被人工智能和机器学习领域的顶级会议NuerIPS接收。
在另外一个工作里,我们第一次引入diffusion model完成了对视觉和触觉之间的相互转化,成果被ICCV接收。
对于机器人来说,触觉很重要。一件衣服,是涤纶、棉纺还是丝,靠肉眼不太能够观察得出,只有真正摸上去,才能分辨不一样的质地。另外在一些精细活动上,比如将充电线插入充电口,也需要通过触觉不断调整,单靠视觉无法完成。
机器之心:然后你就来到了耶鲁。
杨丰瑜:因为在机器人视触觉方面的一些工作,特别是视触觉的转化和在大语言模型中的泛化运用,我获得了北美计算机协会杰出本科科学家称号,是学校有史以来第一人。最终选择耶鲁大学进行博士深造。
在这期间,我陆续发表了一些论文,其中《Binding touch to everything: Learning unified multimodal tactile representations》(CVPR, 2024, pp.26340-26353),在这篇论文中,我提出了世界首个适用于多款不同触觉传感器的触觉大模型 UniTouch,适用于与视觉、语言和声音等多种模态相连的基于视觉的触觉传感器。
另外一篇论文《Tactile-Augmented Radiance Fields》(CVPR, 2024, pp.26529-26539),则建立了世界上第一个可以在场景级泛化的3D视触觉模型TARF,UniX AI人形机器人的泛化能力也是基于该模型。
机器之心:你觉得00后的身份对你来讲是更有利还是更有弊?
杨丰瑜:创业公司,创始人是灵魂。很多人会觉得我很年轻,但我觉得00后的身份不是问题。
从技术层面讲,在迎接这一轮的科技变革和赛道创新的浪潮中,年轻人具有非常强的推动作用。很多新技术、新产品是由当下的年轻人创造的,特别是高科技行业,准入门槛相对较高。Sora核心团队的成员之一也是我同学,他在密歇根大学时就展现出了很强的技术能力。
从认知和经验层面讲,我觉得快速学习、快速纠错也是一种路径。另外是个性,要肯坚持有韧性,想尽一切办法,有“逢山开路,遇水搭桥”的精神,毕竟创业最后都是拿结果说话。
当然,UniX AI团队中也有很多有经验的专家,他们在结构、电子等方面有丰富的从业经验,我们之间有效配合,才能在短时间内推出我们的产品。
视触觉+操作
提升机器人可泛化能力
机器之心:触觉的提升为什么对机器人是重要的?
杨丰瑜:人是一个多感官动物,你的行动决策通常是多个感官共同传递过来的信息综合影响,智能机器人理论上也是这样。
触觉是最重要的感官信息之一,跟视觉反馈相比,它产生在机器人与环境交互之后,而视觉反馈是在之前。当机器人抓取一个物体时,物体发生了形变,本质上,这个交互动作发生后,机器人获得的增量信息都来自于触觉——它摸起来是怎样的。
拥有触觉信息能够让机器人在一些更复杂更细腻的任务上表现得更好,大大提高抓取任务的成功率,尤其是在柔性物体的抓取中,触觉的作用更加明显,可以说是从基本不可能完成任务到能够完成任务的质的提升。
比如,我们的轮式人形机器人Wanda已经实现捏鸡蛋、抓豆腐、洗衣服等任务,纯靠视觉去做,机器人得不到反馈,是很难执行下来的。
为什么现在机器人主要依靠视觉做判断,是因为视觉方面的数据相较于其他,是最直接、容易获取且被训练起来的,有大量数据可以用。但是在机器人往具身方向更进一步去走的时候,仅仅依靠视觉是肯定不够的。
作为一种依赖交互产生的感官信息,能够将触觉信息合理运用的意义还在于,机器人能够逐步在与世界的真实交互中不断学习,变得更加可用和泛化。
机器之心:为什么加入触觉后,机器人对柔性物体的控制水平会提升,原理是什么?
杨丰瑜:原理主要在于柔性物体与刚性物体在抓取和操作时有很大的不同。刚性物体在触碰前后,其物理形状基本不会改变,因此通过视觉观察,在抓取时相对容易判断。然而,柔性物体在抓取之前或操作之前,通过观察很难确定与它接触后会发生什么情况,因为在抓取过程中会出现大量的遮挡和形变,而这些形变通过视觉是很难准确预测的。
例如,当拿一张纸巾时,一旦将纸巾握到手里面,就会完全遮挡住视线,此时视觉几乎无法提供有效的信息来判断如何抓取或操作。在这种情况下,就只能依靠触觉等物理信息来完成感知。
机器之心:为什么好像很多时候我也不需要去尝试抓一下物体,我就知道怎么抓。
杨丰瑜:那是因为你作为一个人类来说,已经融合得很好了,以至于你不知道你用了触觉信息在这里面。你已经积累了二十多年的触觉数据,所以你不知道是哪一种感官支持你让你去完成了这个任务。
机器之心:对大部分机器人任务来说,不同感官的贡献比会有什么区别?现阶段,触觉的优先级有多高?
杨丰瑜:对于大部分机器人的任务来说,不同感官在感知、推理决策和行动这三个步骤中的贡献比例有所不同。
在感知层面上,初期主要依靠视觉和点云来获取全局信息,比如知道整个家的布局、水在哪里等。目前,通过视觉大模型和3D大模型来感知全局信息的问题已基本解决。
在决策层面上,主要依靠语言引入人类的先验知识。例如,机器人接到从冰箱拿水的指令后,能进行任务拆解,知道第一步打开冰箱,第二步拿水,第三步关冰箱,这些先验知识来自大量的互联网数据。
在行动层面上,视觉可以帮助机器人确定抓取的位置,但在确定抓取力度等方面,触觉信息起着重要作用。比如在有遮挡的情况下,像拿豆腐时,视觉难以准确判断抓取方式,而触觉能提供关键信息,帮助机器人完成精确抓取。
此外,触觉在一些精细力控的场景,如捏鸡蛋、抓豆腐等,以及在一些需要判断物体形变和力的反馈的场景中,发挥着重要作用。
总的来说,不同感官的贡献比因任务而异,在一些刚性物体的抓取中,视觉可能占比较高;而在很多柔性物体的抓取中,触觉的作用更为关键,甚至可以说是从基本无法完成任务到能够完成任务的质的提升。
机器之心:触觉这块有足够高的壁垒吗?落地到机器人产品里有什么难点?
杨丰瑜:我认为相对来说是比较高的,在2023年之前,触觉一直是一个非常小众的模态,与视觉和听觉相比,从事触觉相关工作的人非常少。
在开展触觉相关工作的初期,传感器是最大的难题。当时,全世界从事数据相关工作的人并不多,如何制作传感器是一个关键问题。
其次,是如何解析触觉信息的问题,这涉及到算法和数据两个层面。数据层面,此前世界上绝大多数触觉传感的具体数据并不公开,这可能是由于许多机器人结合的特殊性或其他原因导致,使得机器人领域的数据公开程度不如视觉领域。因此,我们不断解决数据集的问题,致力于推动全世界触觉传感数据集的不断公开。
在算法层面,触觉与视觉存在差异,其中包含许多物理的先验知识。例如,通过传感器上的marker可以判断受力情况,但这些信息不像视觉信息那样易于解释和识别。
当时还进行过一个实验,结果表明生成的触觉信号让人分辨起来非常困难。因为如果人没有经过一些特定的训练,很难分辨出每一种东西的触觉传感信号。我们也在积极努力降低这一壁垒,推动学术界更多的人参与其中,以促进整个触觉域的发展与进步。
机器之心:如果说,触觉信息不仅面临现存数据量少的问题,大规模采集成本也很高,那怎么去做到Scale up?
杨丰瑜:我们之前做的工作其实就是尝试解决这个问题,如何在大规模采集难以实现的情况下做到Scale up:
第一步,我们把视觉和触觉打通,通过视觉来预测触觉,甚至在没有触觉采集的场景中,利用视觉和语言等信息来推测触觉信号。
比如,采集了同类型同材料的桌子的触觉信息后,到新的家庭或办公室场景中,即使没有实际触摸过过新的桌子,也能通过视觉和语言信息推测其触觉信号。这样的话,我们可以做到即使没有真正物理的接触,也能够扩大可用数据集。但是这种方式可能跟真实信号有一些出入,因为这是预测的。
第二,我们不断推动触觉数据集的公开。通过公开数据集,可以让更多人参与到触觉领域的研究和发展中,从而促进整个领域的进步。
第三,在算法层面上,我们努力降低触觉信息识别的门槛。例如,通过在传感器上添加标记(marker),并发现标记在受到不同力时的变化规律,从而利用这些物理的先验知识来更好地解析触觉信息。
第四,致力于将不同的信息,如视觉、触觉、语言等多模态信息结合在一起,以完成各种任务。通过多模态信息的融合,可以在一定程度上弥补触觉数据量少的不足,提高模型的泛化能力和适应性。
机器之心:大规模采集是否可以实现,需要什么条件?
杨丰瑜:我认为这其实是整个具身智能发展的瓶颈,我个人认为可以实现大规模采集,但这里有一个商业化的过程。
当机器人走进千家万户,有一定量的时候,你就能收集到足够多的数据,支持更多的场景来做一些泛化。当然你不可能永远采到每一个点,所以「大规模」这个命题会一直存在。那机器学习的本质就是通过稀疏的采样,实现稠密分布的一个模拟拟合和预测。
在数据这方面,我们并不排斥模拟,但我觉得一定量的真机数据是实现具身智能的必要条件。
机器之心:触觉大模型有哪些关键的技术指标?
杨丰瑜:触觉大模型跟任何大模型一样,在不同的下游任务里面都有一些指标。我带领团队构建的世界上现存最大的视触觉数据集Touch and go,是全世界机器人视触觉预训练模型重要通用基准之一。
具身智能机器人Wanda
九月开始量产
机器之心:决定创业之后,打算做一个怎样的具身智能公司?
杨丰瑜:创业的本质是为社会创造价值。UniX AI是世界上少数几家把C端定为第一战略的具身智能机器人公司。
TO C虽然有很长的一段路要走,但背后的潜力是巨大的。从产业层面讲,人形机器人已经进入硬件+AI的技术融合期,发展飞速,越来越具备实用性。而且我乐观估计,这个融合进程要比原先业内人士预估的要快很多。
人口老龄化,出生率低下,劳动力短缺……这些都是全世界面临的问题。企业的责任是要为社会解决问题,这是UniX AI的机会点和价值点,也是我创业的初心。现在这个赛道大致的落地路径基本上是工业——商业——家庭,我们会覆盖商业和家庭,这也是服务TO C用户的主要场景。
UniX AI的愿景是Robots For All,打造通用的人形机器人,在运动能力与智慧程度方面都做到领先,实现体力劳动和智能陪伴。
机器之心:为什么一开始选择家庭场景去做?
杨丰瑜:事实上我们不只局限于家庭场景,我们也做泛商业的场景,比如办公室等。
To B 场景从技术上来说相对难度低一些,重复率高,对泛化性要求没有那么高。但To B的场景往往是强替代逻辑,这就对机器人的速度、操作准确率要求会非常高。
家庭场景很复杂,千变万化,每个家都是一个小生态,要求机器人具备很强的泛化能力。这当然对我们的产品提出了更高的要求。同时,我们在家庭场景中也会有很多L2级别的功能,更多地提升了产品在复杂场景的适应性和可玩性。
总的来说,我们的技术栈无论是 To B 还是 To C,都能覆盖。做好了家庭场景,我觉得其他场景都能游刃有余。从最难的骨头开始啃,一方面体现了UniX AI的技术实力,一方面也是我们切入市场的战略路径。
机器之心:像类似工厂这样的To B场景也会去做吗?
杨丰瑜:我们对所有场景都不排斥,UniX AI的模块化硬件方案相对来说可以适配很多不同的场景。同时,我们有一套感知和操作解耦的运动基元算法可以最大程度地利用数据,我们对场景的迁移性会非常强。虽然每一款产品都有其边界,我们愿意在各种场景中进行尝试和拓展。我们也在跑通一些重要的商业场景,帮助到消费者。
机器之心:所谓的供应链成本优势是什么?
杨丰瑜:我们团队中有一批经验丰富的供应链管理专家,他们掌握量产级的成本控制方法,并能将其应用到机器人供应链中。虽然机器人行业目前尚未大规模卷价格,但我们从一开始就按照量产级来控制成本,以确保产品能达到消费者可接受的价格。我们有信心通过有效的成本控制,使产品在价格上具有极强竞争力,为公司发展提供有力支持。
机器之心:即将推出的产品价格在什么区间?
杨丰瑜:这个现在我不是很方便披露,但我可以保证,一定是一个很惊喜的价格。
机器之心:你们打算怎么走向终局?
杨丰瑜:我们走向终局的逻辑很简单,需要一定量的高质量真实数据。关键就在于如何获取这些数据,比如拿自动驾驶举例,特斯拉的FSD能够走到终局,是因为花了6到8年时间,不断有车子在路上跑并收集数据。
机器人行业有所不同,大家期望机器人能够自动干点事儿。我们首先开发出若干单点场景的功能,让大家觉得机器人有用或好玩,而且在消费能力承受范围内,这样大家才会愿意购买。
我们的供应链有优势,能把价格降下来,这是很关键的一点。通过用户的不断反馈,我们不断优化迭代产品,最终打造出通用的具身智能机器人。
机器之心:机器人量产的难度和意义在哪里?
杨丰瑜:做DEMO其实很容易,只要在实验室做出来一台,就是成功。量产的难度,在于不是一台,而是一百台、一千台真正进入到用户家中,考验产品的数据安全性、操作稳定性、底层控制可靠性,背后需要强大的售后团队和不断迭代的技术团队。另外工艺也很重要,这也是考验量产能力的重要指标。
它的意义当然毋庸置疑,一方面体现出供应链的竞争力,一方面展现了技术的成熟度。谁是第一个吃螃蟹的人?谁又吃得又快又好?另外,量产可以得到一定的先发优势。
机器之心:决定创业以后,初始团队构建思路和团队组建情况目前大概是怎样的?
杨丰瑜:从0-1,初创团队很重要。我做事习惯先有顶层规划,再慢慢部署到每个层级,像瀑布流一样,从上往下。先找到最核心的关键人,干起来之后,再向下延伸不断完善团队,让整个轮子转起来。
从去年年底到现在,我们的团队发展非常快,已经迭代了三代产品。目前团队规模已经初具规模,但后期我们还会根据需要,不断调整和完善,让公司的竞争力愈来愈强。
获取人才这件事,是创业公司最重要的事情之一,我们公司大部分的人才我都亲自看过面过。很多时候,CEO不仅是首席执行官,更是“首席意义官”,需要跟同行者解释我们做的事情,它的价值和意义在哪里。让他们认同,一起上路,这非常重要。
同时,这个阶段我的管理半径很大,管理的颗粒度也很细,非常辛苦但很有必要。只有当自己全盘掌握,确认公司前进方向正确和稳定之后,才能花更多时间在别的方面。
机器之心:你怎么吸引这些人才?
杨丰瑜:本质上吸引大家的,还是如何走向具身智能终局这个路径,除此之外是怎么做的问题。
我们有几个亮点,第一有非常强的供应链成本优势,其次我们团队的执行力很强,迭代速度非常快,很多候选人可能第一次知道我们时,觉得我们不过尔尔,但几周后再来,发现场景已经跑通了,进展很快。我们也有一些国内顶尖机器人公司的人才,主动要求加入进来。
机器之心:目前的资金来源是?
杨丰瑜:我们会在合适的时候统一披露。
机器之心:是否有外部融资计划?
杨丰瑜:目前投资人反馈非常踊跃,欢迎和我们有共同通用具身智能愿景的投资人,和我们长期走下去。
机器之心:再详细介绍一下你们即将推出的产品,以及未来的市场计划?
杨丰瑜:我们即将量产的机器人叫Wanda,是一款轮式人形双臂机器人。在我们发布的首支技术视频中,大家可以看到它的一些功能特点,但这不是全部,等到九月份我们面向消费者公开发售的时候,会有更多惊喜细节。
最终,UniX AI希望交付给消费者的产品,是一款通用的具身智能机器人,不仅服务于家庭,更可以陪伴人们去往更多更远的地方,提供更多的功能,这需要我们在技术上不断发展,也需要公司和用户之间的协同共创。不积跬步无以至千里,那我们先从第一步开始。
阿里「轨迹可控版Sora」,告别「抽卡」,让视频生成更符合物理规律
你规定路线,Tora 来生成相应轨迹的视频。
目前,扩散模型能够生成多样化且高质量的图像或视频。此前,视频扩散模型采用 U-Net 架构 ,主要侧重于合成有限时长(通常约为两秒)的视频,并且分辨率和纵横比受到固定限制。
Sora 的出现打破了这一限制,其采用 Diffusion Transformer(DiT)架构,不仅擅长制作 10 到 60 秒的高质量视频,而且还因其生成不同分辨率、各种纵横比、且遵守实际物理定律的能力而脱颖而出。
可以说 Sora 是 DiT 架构最有利的证明,然而,基于 Transformer 的扩散模型在有效生成可控动作视频方面还未被充分探索。
针对这一问题,来自阿里的研究者提出了 Tora,这是第一个面向轨迹的 DiT 架构,它将文本、视觉和轨迹条件同时集成在一起以生成视频。
Tora 的设计与 DiT 的可扩展性无缝契合,允许精确控制具有不同持续时间、宽高比和分辨率的视频内容。大量实验证明,Tora 在实现高运动保真度方面表现出色,同时还能细致模拟物理世界的运动。
论文地址:https://arxiv.org/pdf/2407.21705
论文主页:https://ali-videoai.github.io/tora_video/
论文标题:Tora: Trajectory-oriented Diffusion Transformer for Video Generation
一艘老式的木制帆船沿着规定好的路线在迷雾笼罩的河流上平稳地滑行,周围是茂密的绿色森林。
一条鲫鱼优雅地游过火星的红色岩石表面,鱼的轨迹向左,火星的轨迹向右。
热气球沿着不同的轨迹升入夜空,一个沿着规定的斜线,另一个沿着有弯度的轨迹。
两只可爱的小猫并排走在宁静的金色沙滩上。
气泡沿着轨迹轻轻地漂浮在盛开的野花中。
枫叶在清澈的湖面上颤动,映照着秋天的森林。
山间的瀑布倾泻而下,主题、背景的运动都可以按照不同的路线运动。
在 Tora 与其他方法的比较中,可以看出 Tora 生成的视频流畅度更高,更遵循轨迹,且物体不会存在变形的问题,保真度更好。
方法介绍
Tora 采用 OpenSora 作为其 DiT 架构的基础模型,包含一个轨迹提取器 (TE,Trajectory Extractor)、时空 DiT(Spatial-Temporal DiT )和一个运动引导融合器 (MGF,Motion-guidance Fuser) 。TE 使用 3D 视频压缩网络将任意轨迹编码为分层时空运动 patch。MGF 将运动 patch 集成到 DiT 块中,以生成遵循轨迹的一致视频。图 3 概述了 Tora 的工作流程。
时空 DiT(ST-DiT)
ST-DiT 架构包含两种不同的块类型:空间 DiT 块 (S-DiT-B) 和时间 DiT 块 (T-DiT-B),它们交替排列。S-DiT-B 包含两个注意力层,每个层按顺序执行空间自注意力 (SSA) 和交叉注意力,后面跟着一个逐点前馈层,用于连接相邻的 T-DiT-B 块。T-DiT-B 仅通过用时间自注意力 (TSA) 替换 SSA 来修改此架构,从而保持架构一致性。在每个块中,输入在经过规范化后,通过跳跃连接连接回块的输出。通过利用处理可变长度序列的能力,去噪 ST-DiT 可以处理可变持续时间的视频。
轨迹提取器
轨迹已被证明是一种更加用户友好的方法来控制生成视频的运动。然而,DiT 模型采用视频自编码器和 patch 化过程将视频转换为视频 patch。在这里,每个 patch 都是跨多个帧导出,因此直接采用帧间偏移是不合适的。为了解决这个问题,本文提出的 TE 将轨迹转换为运动 patch,运动 patch 与视频 patch 位于相同的潜在空间。
运动引导融合器
为了将基于 DiT 的视频生成与轨迹结合起来,本文探索了三种融合架构变体,将运动 patch 注入每个 ST-DiT 块。这些设计如图 4 所示。
实验结果
在实现细节上,研究者基于 OpenSora v1.2 权重来训练 Tora。训练视频的分辨率由 144p 到 720p 不等。为了平衡训练 FLOP 以及每次迭代不同分辨率和帧数所需的内存,研究者相应地将批大小从 1 调整到 25。
至于训练基础设施,研究者使用了 4 块英伟达 A100 和 Adam 优化器,学习率为 2 × 10^−5。
研究者将 Tora 与流行的运动指导视频生成方法进行了比较。评估中使用了三种设置,分别为 16、64 和 128 帧,所有设置都是 512×512 的分辨率。
结果如下表 1 所示,在 U-Net 方法常用的 16 帧设置下,MotionCtrl 和 DragNUWA 能够更好地与所提供的轨迹实现对齐,但仍弱于 Tora。随着帧数增加,U-Net 方法在某些帧中出现明显偏差,并且错位误差传播会导致后续序列中出现变形、运动模糊或物体消失。
相比之下,得益于集成了 Transformer 的缩放能力,Tora 对帧数变化表现出很高的稳健性。Tora 产生的运动更加流畅,且更符合物理世界。对于 128 帧测试设置下的评估,Tora 的轨迹精度达到其他方法的 3 到 5 倍,展现出了卓越的运动控制能力。
在下图 5 中,研究者对不同分辨率和持续时长的轨迹误差进行分析。结果显示,不同于 U-Net 随时间推移出现明显的轨迹误差,Tora 的轨迹误差随时间推移出现渐进增加。这与 DiT 模型中视频质量随时间增加而下降相一致。Tora 在更长的时间下保持了有效的轨迹控制。
下图 6 展示了 Tora 与主流运动控制方法的比较分析,在包含两人共同运动的场景中,所有方法都能生成相对准确的运动轨迹。不过,Tora 的视觉质量更好,这要归功于更长序列帧的使用,有助于实现更平滑的运动轨迹和更逼真的背景渲染。
可以看到,在 Tora 生成的自行车场景中,人的双腿表现出逼真的踩踏动作,而 DragNUWA 的双腿几乎水平漂浮,违反了物理真实性。此外,DragNUWA 和 MotionCtrl 在视频结尾处都出现了严重的运动模糊。
在另一个生成灯笼的场景中,DragNUWA 随着所提供轨迹的持续升降出现了严重的变形。MotionCtrl 的轨迹虽然相对准确,但生成的视频与两个灯笼的描述不相符。Tora 不仅严格地遵循了轨迹,而且最大程度地减少了物体变形,确保了更高保真度的动作表示。
可解释性终极追问,什么才是第一性解释?20篇CCF-A+ICLR论文给你答案
本文首先简单回顾了『等效交互可解释性理论体系』(20 篇 CCF-A 及 ICLR 论文),并在此基础上,严格推导并预测出神经网络在训练过程中其概念表征及其泛化性的动力学变化,即在某种程度上,我们可以解释在训练过程中神经网络在任意时间点的泛化性及其内在根因。
一、前言
长期以来,我们团队一直在思考可解释性领域的一个终极问题,即什么才是解释性领域的第一性原理?所谓第一性原理,目前没有一个被广泛接受的框架,世上本无路,我们需要逐渐去定义这样一个路。我们需要在一个新的理论体系中,提出大量的公理性要求,得出一个可以从不同的角度全方位精确严谨解释神经网络内在机理的理论。一套理论系统能严谨解释神经网络的方方面面才叫 “第一性原理”。
如果你真的在严谨地做 “科学”,那么第一性原理一定不是想象中简单,而是一个复杂的体系,需要研究照顾到深度学习中方方面面纷繁复杂的现象。当然,如果你主观上不愿意或者不信一个理论需要足够严谨,那么研究会变得简单千万倍。就像物理学的标准模型一定比牛顿定律复杂,取决于你希望走哪条路。
沿着这个方向,我们团队独立从头构建了『等效交互可解释性理论体系』,并基于此理论,从三个角度来解释神经网络的内在机理。
1. 语义解释的理论基础:数学证明神经网络的决策逻辑是否可以被少量符号化逻辑所充分覆盖(充分解释)。『证明神经网络的决策逻辑是否可以被有限符号化逻辑解释清楚』这一命题是解释神经网络的根本命题。如果此命题被证伪,则从根本上讲,神经网络的可解释性将是无望的,所有的解释性算法只能提供近似的解读,而无法精确地覆盖所有的决策逻辑。幸运的是,我们找到了在大部分应用中神经网络都可以满足的面向遮挡鲁棒性的三个常见的条件,并且数学证明了满足这三个条件的神经网络的决策逻辑可以被写成符号化的交互概念。
参见 https://zhuanlan.zhihu.com/p/693747946
2. 寻找性能指标背后的可证明、可验证的根因:将神经网络泛化性和鲁棒性等终极性能指标的根因拆分具体少数细节逻辑。对神经网络性能(鲁棒性、泛化性)的解释是神经网络可解释性领域的另一个重大问题。然而,目前人们普遍认为神经网络性能是对神经网络整体的描述,而神经网络无法像人类一样将自己的分类判断拆解成具象化的、少量的决策逻辑。在这方面,我们给出了不一样的观点 —— 将性能指标与具象化的交互之间建立起数学关系。我们证明了 1. 等效交互的复杂度可以直接决定神经网络的对抗鲁棒性 / 迁移性,2. 交互的复杂度决定了神经网络的表征能力,3. 并解释神经网络的泛化能力 [1],和 4. 解释神经网络的表征瓶颈。
参见1:https://zhuanlan.zhihu.com/p/369883667
参见2:https://zhuanlan.zhihu.com/p/361686461
参见3:https://zhuanlan.zhihu.com/p/704760363
参见4:https://zhuanlan.zhihu.com/p/468569001
3. 统一工程性深度学习算法。由于缺少基础理论的支撑,目前深度学习算法大都是经验性的、工程性的。可解释性领域的第一性原理应该可以承担起将前人的大量工程性经验总结为科学规律的任务。在等效交互可解释性理论体系下,我们团队既证明了 14 种不同的输入重要性归因算法的计算本质在数学上都可以统一写成对交互作用的再分配形式。此外,我们还统一了 12 种提升对抗迁移性的算法,证明了所有提升对抗迁移性算法的一个公共机理是降低对抗扰动之间的交互效用,实现了对神经网络可解释性方向大部分工程性算法的理论凝练。
参见1:https://zhuanlan.zhihu.com/p/610774894
参见2:https://zhuanlan.zhihu.com/p/546433296
在等效交互可解释性理论体系下,我们的团队在之前的研究中已经成功发表了 20 篇 CCF-A 类和机器学习顶级会议 ICLR 论文,我们已经从理论和实验上充分解答了上述问题。
二、本文研究概述
沿着上述理论框架,在这篇知乎文章中,我们希望精确解释出神经网络训练过程中泛化性的变化规律,具体地涉及两篇论文。
1.Junpeng Zhang, Qing Li, Liang Lin, Quanshi Zhang,“Two-Phase Dynamics of Interactions Explains the Starting Point of a DNN Learning Over-Fitted Features”,in arXiv: 2405.10262
2.Qihan Ren, Yang Xu, Junpeng Zhang, Yue Xin, Dongrui Liu, Quanshi Zhang,“Towards the Dynamics of a DNN Learning Symbolic Interactions” in arXiv:2407.19198
图 1:两阶段现象的示意图。在第一阶段,神经网络逐渐消除中高阶交互,学习低阶交互;在第二阶段,神经网络逐渐建模阶数不断增大的交互。当神经网络训练过程中测试损失和训练损失之间的 loss gap 开始增大时,神经网络恰好也进入训练的第二阶段。
我们希望在等效交互框架里提出新的理论,精确预测出神经网络每一个时间点上神经网络所学到的交互概念的数量、复杂度,以及泛化性变化的动力学规律(如图 1 所示)。具体地,我们希望证明出两方面结论。
第一,基于前人的证明(一个神经网络的决策逻辑可以被严格解构表示为几十个交互概念效用的和的形式),进一步严格推导出在整个训练过程中,神经网络所建模的交互效用的变化动力学过程 —— 即理论需精确预测出在不同训练阶段,神经网络所建模的交互概念的分布的变化 —— 推导出哪些交互会在哪个时间点上被学习到。
第二,寻找充分的证据,证明所推导的交互复杂度的变化规律客观反映出神经网络在全训练周期中泛化性变化的规律。
综上两点,我们希望具体彻底解释清楚神经网络的泛化性变化的内在根因。
与前人的关系:当然大家可能第一反应想到神经正切核(NTK)[2],但是神经正切核只是把参数的变化曲线解了出来,而没办法进一步深入到决策逻辑层面进行解释,没有将神经网络建模的概念表征与其泛化性的关系建立起来,对泛化性的分析依然停留在特征空间分析的层面,而没有在【符号化概念逻辑】与【泛化性】之间建立起严格的关系。
三、两大研究背景
误会 1:神经网络的第一性表征是『等效交互』,而不是神经网络的参数和结构。单纯从结构层面分析神经网络是人们对神经网络泛化根本表征的误解。目前大部分神经网络泛化性研究主要着眼于神经网络的结构、特征、以及数据。人们认为不同的神经网络结构就自然对应不同的函数,并自然展现出不同的性能。
但是,事实上,如图 2 所示,结构的区别只是神经网络表征的表面形式。除去有明显缺陷的对性能有明显影响的神经网络,所有其他可以实现 SOTA 性能的具有不同结构的神经网络往往都建模了相似的等效交互表征,即不同结构的高性能神经网络在等效交互表征上往往都是殊途同归的 [3, 4]。虽然神经网络其中层特征内部是复杂的混乱的,虽然不同神经网络所建模的特征向量大相径庭,虽然神经网络中单个神经元往往建模了相对比较混乱的语义(不是严格清晰的语义),但是神经网络作为一个整体,我们从理论上证明神经网络的所建模的交互关系是稀疏的符号化的(而不是特征的稀疏性,具体见 “四、交互的定义” 章节),而且面向相同任务的完全不同的神经网络往往建模了相似的交互关系。
图 2:不同结构的神经网络所建模的等效交互往往是殊途同归的。对于一个相同的输入句子,面向两个相同任务的两个完全不同的神经网络建模往往相似的交互。
由于不同神经网络的参数和训练样本不一样,两个神经网络中没有任何一个神经元在表征上具有严格的一一对应关系,且每一个神经元往往建模着不同语义的混合模式。相比之下,正如上段分析,神经网络所建模的交互表征实际上是不同神经网络表征中的不变量。因此,我们有理由认为神经网络根本表征是等效交互,而不是其载体(参数和训练样本),符号化交互表征可能代表了知识表征的第一性原理(被交互的稀疏性定理、无限拟合性定理、以及殊途同归现象所保证,见 “四、交互的定义” 章节,具体详细研究见下面知乎文章。
参见:https://zhuanlan.zhihu.com/p/633531725
误会 2:神经网络的泛化性问题是一个混合模型问题,而不是一个高维空间的向量。如图 3 所示,传统的泛化性分析总是假设单个样本整体是高维空间的一个点,实际上神经网络对单个样本的表征是 mixture model 的形式 —— 实际上通过大量不同的交互来表达。我们发现简单交互的泛化能力比复杂交互的泛化能力更强,所以不再适合用一个简单标量来笼统表示整个神经网络在不同样本上的泛化能力。相反,同一个神经网络在不同的样本上建模了不同复杂度的交互关系,而不同复杂度的交互往往对应着不同泛化能力。通常情况下,神经网络建模的高阶(复杂)的交互往往难以泛化到测试样本上(测试样本上不会触发相同的交互),代表过拟合表征,而神经网络建模的低阶(简单)交互往往代表泛化性较强的表征,具体详细研究见 [1]。
图 3:(a)传统的泛化性分析总是假设单个样本整体是高维空间的一个点。(b)实际上神经网络对单个样本的表征是 mixture model 的形式,神经网络在单个样本会建模简单交互(可泛化的交互)和复杂交互(不可泛化的交互)。
四、交互的定义
让我们考虑一个深度神经网络和一个输入样本,它包含个输入变量,我们用集合表示这些输入变量的全集。令表示 DNN 在样本上的一个标量输出。对于一个面向分类任务的神经网络,我们可以从不同角度来定义其标量输出。例如,对于多类别分类问题,可以定义为,也可以定义为 softmax 层之前该样本真实标签所对应的标量输出。这里,表示真实标签的分类概率。这样,针对每个子集,我们可以用下面公式来定义中所有输入变量之间 “等效与交互” 和 “等效或交互”。
如图 4(a)所示,我们可以这样理解上述与或交互:我们可以认为与等效交互表示神经网络所编码的内输入变量之间的 “与关系”。例如,给定一个输入句子,神经网络可能会在之间建模一个交互,使得产生一个推动神经网络输出 “倾盆大雨” 的数值效用。如果中的任何输入变量被遮挡,则该数值效用将从神经网络的输出中移除。类似地,等效或交互表示神经网络所建模的内输入变量之间的 “或关系”。例如,给定一个输入句子,只要中的任意一个词出现,就会推动神经网络的输出负面情感分类。
神经网络所建模的等效交互满足 “理想概念” 的三条公理性准则,即无限拟合性、稀疏性、样本间迁移性。
无限拟合性:如图 4,5 所示,对于任意遮挡样本,神经网络在样本上的输出可以用不同交互概念的效用之和来拟合。即,我们可以构造出一个基于交互的 logical model,无论我们如何遮挡输入样本,这个 logical model 依然可精确拟合模型在此输入样本在任意遮挡状态下的输出值。
稀疏性:面向分类任务的神经网络往往只建模少量的显著交互概念,而大部分交互概念都是数值效用都接近于 0 的噪声。
样本间迁移性:交互在不同样本间是可迁移的,即神经网络在(同一类别的)不同样本上建模的显著交互概念往往有很大的重合。
图 4:神经网络的复杂的推理逻辑可以被基于少量交互的逻辑模型准确拟合。每个交互都是衡量神经网络建模特定输入变量集合之间非线性关系的度量指标。当且仅当集合中变量同时出现时才会触发与交互,并为输出贡献数值分数,集合中任意变量出现时会触发或交互。
图 5:神经网络在任意的遮挡样本上的输出可以用不同交互概念的效用之和来拟合,即我们可以构造出一个基于交互的 logical model,无论我们如何遮挡输入样本,哪怕穷举个输入单元上种完全不同的遮挡方式,这个 logical model 依然可精确拟合模型在此输入样本在任意遮挡状态下的输出值。
五、新的发现与证明
5.1 发现神经网络在训练过程中交互变化的两阶段现象
在这篇知乎文章中,我们关注神经网络解释性领域的一个根本问题,即如何从一个解析分析的角度去严格预测出神经网络在训练过程中泛化能力的变化情况,并且精确的分析神经网络从欠拟合到过拟合的整个动态变化过程及其背后的根本原因。
首先,我们将交互的阶数(复杂度)定义为交互中的输入变量的数量,。我们团队之前的工作发现神经网络在某个特定样本所建模的 “与或交互” 的复杂度直接决定了神经网络在这个样本的泛化能力 [1],即神经网络建模的高阶的(大量输入单元之间的)“与或交互” 往往有较差的泛化能力,而低阶的(少量输入单元之间的)“与或交互” 具有较强的泛化能力。
因此,本篇研究的第一步是去预测出神经网络在训练过程中不同时间点所建模的不同阶 “与或交互” 的复杂度的一个解析解,即我们可以通过神经网络在不同时间点所建模的不同阶 “与或交互” 的分布去解释神经网络在不同阶段的泛化能力。交互的泛化能力的定义与神经网络整体泛化能力的定义请见 “5.2 神经网络所建模交互的阶数和其泛化能力的关系” 章节。
我们提出两个指标来表示不同阶(复杂度)的交互的强度的分布。具体来说,我们用来衡量所有阶正显著交互的强度,用来衡量所有阶负显著交互的强度,其中和表示显著交互的集合,表示显著交互的阈值。
图 6:从训练不同轮次的神经网络中提取的不同阶交互强度和。在不同数据集上、不同任务上训练的不同的神经网络的训练过程都存在两阶段现象。前两个选定时间点属于第一阶段,而后两个时间点属于第二阶段。恰恰在进入神经网络训练过程的第二阶段不久,神经网络的测试损失和训练损失之间的 loss gap 开始显著上升(见最后一列)。这表明神经网络训练的两阶段现象与模型 loss gap 的变化在时间上是 “对齐” 的。更多实验结果请参见论文。
如图 6 所示,神经网络的两阶段现象具体表现为:
在神经训练训练之前,初始化的神经网络主要编码中阶交互,很少编码高阶和低阶交互,并且不同阶交互的分布看起来呈现 “纺锤形”。假设具有随机初始化参数的神经网络建模的是纯噪声,我们在 “5.4 理论证明两阶段现象” 章节证明了具有随机初始化参数的神经网络建模的不同阶的交互的分布呈现 “纺锤形”,即仅建模少量的低阶和高阶交互,大量建模中阶交互。
在神经网络训练的第一阶段,神经网络编码的高阶和中阶交互的强度逐渐减弱,而低阶交互的强度逐渐增强。最终,高阶和中阶交互逐渐被消除,神经网络只编码低阶交互。
在神经网络训练的第二阶段,神经网络在训练过程中编码的交互阶数(复杂度)逐渐增加。在逐渐学习更高复杂度的交互的过程中,神经网络过拟合的风险也在逐渐提高。
上述的两阶段现象广泛存在于不同结构的神经网络训练于不同任务上的不同数据集的训练过程中。我们在图像数据集(CIFAR-10 数据集、MNIST 数据集、CUB200-2011 数据集(使用从图片中裁剪出来的鸟类图像)和 Tiny-ImageNet 数据集)上训练了 VGG-11/13/16 和 AlexNet。我们在 SST-2 数据集上训练了用于情感语义分类 Bert-Medium/Tiny 模型,我们在 ShapeNet 数据集中训练 DGCNN 来分类的 3D 点云数据。上图显示了不同的神经网络在不同训练时期提取的不同阶的显著交互的分布。我们在这些神经网络的训练过程中都发现了两阶段现象,更多实验结果及细节请参考论文。
5.2 神经网络所建模交互的阶数和其泛化能力的关系
我们团队之前的工作已经发现了神经网络所建模交互的阶数和其泛化能力的关系,即高阶交互比低阶交互具有更差的泛化能力 [1]。某个具体交互的泛化性有清晰的定义 —— 如果一个交互同时在训练样本和测试样本中频繁的被神经网络所建模,则这个交互具有较好的泛化能力。在本篇知乎文章中,介绍了两个实验来证明高阶交互具有较差的泛化能力,低阶交互具有较强的泛化能力。
实验一:观察在不同数据集上训练的不同神经网络所建模的交互的泛化性。这里我们用被测试集所触发的交互的分布和被训练集所触发的交互的分布的 Jaccard 相似性来度量交互的泛化性。具体来说,给定一个包含个输入变量的输入样本,我们将从输入样本提取到的阶交互向量化,其中表示个阶交互。然后,我们计算分类任务中所有类别为的样本中提取到的阶的平均交互向量,表示为,其中表示类别为的样本的集合。接下来,我们计算从训练样本中提取的阶的平均交互向量与从测试样本中提取的阶的平均交互向量之间的 Jaccard 相似性,以衡量分类任务中类别为的样本的阶交互的泛化能力,即:
其中,和将两个维交互向量投影到两个维的非负向量上,以便计算 Jaccard 相似性。对于某一阶的交互,如果此阶交互普遍展现出较大的 Jaccard 相似性,则表示这一阶交互具有较强的泛化能力。
我们进行了实验计算不同阶交互。我们测试了在 MNIST 数据集上训练的 LeNet、在 CIFAR-10 数据集上训练的 VGG-11、在 CUB200-2011 数据集上训练的 VGG-13,以及在 Tiny-ImageNet 数据集上训练的 AlexNet。为了减少计算成本,我们仅计算了前 10 个类别的 Jaccard 相似性的平均值。如图 7 所示,随着交互阶数的增加,交互的 Jaccard 相似性不断下降。因此,这验证了高阶交互比低阶交互具有更差的泛化能力。
图 7:从训练样本和测试样本中提取的交互之间的 Jaccard 相似性。低阶交互具有相对较高 Jaccard 相似性表明低阶交互具有较强的泛化能力。
实验二:比较神经网络在正常样本和 OOD 样本建模的交互的分布。我们比较了从正常样本中提取的交互与从分布外 (OOD) 样本中提取的交互,以检查神经网络在 OOD 样本上是否建模更多的高阶交互。我们将少量训练样本的分类标签设置为错误标签。这样,数据集中的原始样本可以视为正常样本,而一些带有错误标签的样本则对应于 OOD 样本,这些 OOD 样本可能会导致神经网络的过拟合。我们在 MNIST 数据集和 CIFAR-10 数据集上分别训练了 VGG-11 和 VGG-13。图 8 比较了从正常样本中提取的交互的分布和从 OOD 样本中提取的交互的分布。我们发现,VGG-11 和 VGG-13 在分类 OOD 样本时建模了更多复杂的交互(高阶交互),而在分类正常样本时则使用了较低阶的交互。这验证了高阶交互的泛化能力通常弱于低阶交互。
图 8:比较从正常样本中提取的交互与从分布外 (OOD) 样本中提取的交互。神经网络通常在 OOD 样本上建模的更高阶的交互。
5.3 两阶段现象和神经网络训练过程 loss gap 的变化相对齐
我们发现上述两阶段现象可以充分表示神经网络泛化性动力学。一个很有趣的现象是神经网络训练过程中的两阶段现象和神经网络在测试集和训练集的 loss gap 的变化在时间上是对齐的。训练损失和测试损失之间的 loss gap 是衡量模型过拟合程度的最广泛使用的指标。图 6 显示了不同的神经网络在训练工程的测试损失和训练损失之间的 loss gap 的曲线,还显示了从不同训练时期的神经网络中提取的交互分布。我们发现当神经网络训练过程中测试损失和训练损失之间的 loss gap 开始增大时,神经网络恰好也进入训练的第二阶段。这表明神经网络训练的两阶段现象与模型 loss gap 的变化在时间上是 “对齐” 的。
我们可以这样理解上述现象:在训练过程开始前,初始化的神经网络所建模的交互全部表示随机噪声,并且不同阶交互的分布看起来像 “纺锤形”。在神经网络训练的第一阶段,神经网络逐渐消除中阶和高阶的交互,并学习最简单的(最低阶的)交互。然后,在神经网络训练的第二阶段,神经网络建模了阶数逐渐增大的交互。由于我们在 “5.2 神经网络所建模交互的阶数和其泛化能力的关系” 章节中的两个实验验证了高阶交互通常比低阶交互具有更差的泛化能力,因此我们可以认为在神经网络训练的第二阶段,DNN 首先学习了泛化能力最强的交互,然后逐渐转向更复杂但泛化能力较弱的交互。最终一些神经网络逐渐过拟合,并编码了大量中阶和高阶交互。
5.4 理论证明两阶段现象
理论证明神经网络训练过程的两阶段现象共分为三个部分,第一部分我们需要证明随机初始化的神经网络在训练过程开始之前建模的交互的分布呈现 “纺锤形”,即很少建模高阶和低阶交互,主要建模中阶交互。第二部分证明神经网络在训练的第二阶段在建模阶数逐渐增大的交互。第三部分证明神经网络在训练的第一阶段逐渐消除中阶和高阶交互,学习最低价的交互。
1. 证明初始化神经网络建模的 “纺锤形” 交互分布。
由于随机初始化的随机网络在训练过程开始之前建模的都是噪声,所以我们假设随机初始化的神经网络建模的交互的服从均值为,方差为的正态分布。在上述假设下,我们能够证明初始化的神经网络建模的交互的强度和的分布呈现 “纺锤形”,即很少建模高阶和低阶交互,主要建模中阶交互。
2. 证明神经网络训练的第二阶段的交互变化动态过程。
在进入正式的证明之前,我们需要做以下的预备工作。首先,我们参照 [5, 6] 的做法,将神经网络在特定样本上的 inference 改写为不同交互触发函数的加权和:
其中,为标量权重,满足。而函数为交互触发函数,在任意一个遮挡样本上都满足。函数的具体形式可以由泰勒展开推导得到,可参考论文,这里不做赘述。
根据上述改写形式,神经网络在特定样本上的学习可近似看成是对交互触发函数的权重的学习。进一步地,实验室的前期工作 [3] 发现在同一任务上充分训练的不同的神经网络往往会建模相似的交互,所以我们可以将神经网络的学习看成是对一系列潜在的 ground truth 交互的拟合。由此,神经网络在训练到收敛时建模的交互可以看成是最小化下面的目标函数时得到的解:
其中表示神经网络需要拟合的一系列潜在的 ground truth 交互。和则分别表示将所有权重拼起来得到的向量和将所有交互触发函数的值拼起来得到的向量。
可惜的是,上述建模虽然能得到神经网络训练到收敛时的交互,但是无法很好地刻画神经网络训练过程中学习交互的动态过程。这里引入我们的核心假设:我们假设初始化神经网络的参数上包含了大量噪声,而这些噪声的量级在训练过程中逐步变小。而进一步地,参数上的噪声会导致交互触发函数上的噪声,且该噪声随着交互阶数指数级增长 (在 [5] 中已有实验上的观察和验证) 。我们将有噪声下的神经网络的学习建模如下:
其中噪声满足。且随着训练进行,噪声的方差逐渐变小。
在给定的噪声量级的情况下最小化上述损失函数,可得到最优交互权重的解析解,如下图中的定理所示。
我们发现,随着训练进行(即噪声量级变小),中低阶交互强度和高阶交互强度的比值逐渐减小(如下面的定理所示)。这解释了训练的第二阶段中神经网络逐渐学到更加高阶的交互的现象。
另外,我们对上述结论进一步做了实验验证。给定一个具有 n 个输入单元的样本,指标,其中, 可以用来近似测量第 k 阶交互和第 k+1 阶交互强度的比值。在下图中,我们可以发现,在不同的输入单元个数 n 和不同的阶数 k 下,该比值都会随着的减小而逐渐减小。
图 9:在不同的输入单元个数 n 和不同的阶数 k 下,第 k 阶交互和第 k+1 阶交互强度的比值都会随着噪声量级的减小而逐渐减小。这说明随着训练进行(即逐渐变小),低阶交互强度与高阶交互强度的比值逐渐变小,神经网络逐渐学到更加高阶的交互。
最后,我们对比了在不同噪声量级下的理论交互值在各个阶数上的分布和实际训练过程中各阶交互的分布,发现理论交互分布可以很好地预测实际训练中各时间点的交互强度分布。
图 10:比较理论交互分布(蓝色直方图)和实际交互分布(橙色直方图)。在训练第二阶段的不同时间点,理论交互分布都可以很好地预测和匹配实际交互的分布。更多结果请参见论文。
3. 证明神经网络训练的第一阶段的交互变化动态过程。
如果说训练的第二阶段中交互的动态变化可以解释为权重的最优解在噪声逐渐减小时的变化,那么第一阶段就可认为是交互从初始化的随机交互逐渐收敛到最优解的过程。
路漫漫其修远兮,我们团队是做神经网络可解释性的第一性原理,我们希望在更多的方面把这个理论做扎实,能够严格证明等效交互是符号化的解释,并且能够解释神经网络的泛化性、鲁棒性,同时证明神经网络表征瓶颈,统一 12 种提升神经网络对抗迁移性的方法和解释 14 种重要性估计方法。我们后面会做出更扎实的工作,进一步完善理论体系。
[1] Huilin Zhou, Hao Zhang, Huiqi Deng, Dongrui Liu, Wen Shen, Shih-Han Chan, and Quanshi Zhang. Explaining generalization power of a dnn using interactive concepts. AAAI, 2024
[2] Arthur Jacot, Franck Gabriel, Clement Hongler. Neural tangent kernel: Convergence and generalization in neural networks. NeurIPS, 2018
[3] Mingjie Li, and Quanshi Zhang. Does a Neural Network Really Encode Symbolic Concept? ICML, 2023
[4] Wen Shen, Lei Cheng, Yuxiao Yang, Mingjie Li, and Quanshi Zhang. Can the Inference Logic of Large Language Models be Disentangled into Symbolic Concepts?
[5] Qihan Ren, Huiqi Deng, Yunuo Chen, Siyu Lou, and Quanshi Zhang. Bayesian Neural Networks Tend to Ignore Complex and Sensitive Concepts. ICML, 2023
[6] Dongrui Liu, Huiqi Deng, Xu Cheng, Qihan Ren, Kangrui Wang, and Quanshi Zhang. Towards the Difficulty for a Deep Neural Network to Learn Concepts of Different Complexities. NeurIPS, 2023
等效交互理论体系
[1] Huiqi Deng, Na Zou, Mengnan Du, Weifu Chen, Guocan Feng, Ziwei Yang, Zheyang Li, and Quanshi Zhang. Unifying Fourteen Post-Hoc Attribution Methods With Taylor Interactions. IEEE Transactions on Pattern Analysis and Machine Intelligence (IEEE T-PAMI), 2024.
[2] Xu Cheng, Lei Cheng, Zhaoran Peng, Yang Xu, Tian Han, and Quanshi Zhang. Layerwise Change of Knowledge in Neural Networks. ICML, 2024.
[3] Qihan Ren, Jiayang Gao, Wen Shen, and Quanshi Zhang. Where We Have Arrived in Proving the Emergence of Sparse Interaction Primitives in AI Models. ICLR, 2024.
[4] Lu Chen, Siyu Lou, Benhao Huang, and Quanshi Zhang. Defining and Extracting Generalizable Interaction Primitives from DNNs. ICLR, 2024.
[5] Huilin Zhou, Hao Zhang, Huiqi Deng, Dongrui Liu, Wen Shen, Shih-Han Chan, and Quanshi Zhang. Explaining Generalization Power of a DNN Using Interactive Concepts. AAAI, 2024.
[6] Dongrui Liu, Huiqi Deng, Xu Cheng, Qihan Ren, Kangrui Wang, and Quanshi Zhang. Towards the Difficulty for a Deep Neural Network to Learn Concepts of Different Complexities. NeurIPS, 2023.
[7] Quanshi Zhang, Jie Ren, Ge Huang, Ruiming Cao, Ying Nian Wu, and Song-Chun Zhu. Mining Interpretable AOG Representations from Convolutional Networks via Active Question Answering. IEEE Transactions on Pattern Analysis and Machine Intelligence (IEEE T-PAMI), 2020.
[8] Xin Wang, Jie Ren, Shuyun Lin, Xiangming Zhu, Yisen Wang, and Quanshi Zhang. A Unified Approach to Interpreting and Boosting Adversarial Transferability. ICLR, 2021.
[9] Hao Zhang, Sen Li, Yinchao Ma, Mingjie Li, Yichen Xie, and Quanshi Zhang. Interpreting and Boosting Dropout from a Game-Theoretic View. ICLR, 2021.
[10] Mingjie Li, and Quanshi Zhang. Does a Neural Network Really Encode Symbolic Concept? ICML, 2023.
[11] Lu Chen, Siyu Lou, Keyan Zhang, Jin Huang, and Quanshi Zhang. HarsanyiNet: Computing Accurate Shapley Values in a Single Forward Propagation. ICML, 2023.
[12] Qihan Ren, Huiqi Deng, Yunuo Chen, Siyu Lou, and Quanshi Zhang. Bayesian Neural Networks Avoid Encoding Perturbation-Sensitive and Complex Concepts. ICML, 2023.
[13] Jie Ren, Mingjie Li, Qirui Chen, Huiqi Deng, and Quanshi Zhang. Defining and Quantifying the Emergence of Sparse Concepts in DNNs. CVPR, 2023.
[14] Jie Ren, Mingjie Li, Meng Zhou, Shih-Han Chan, and Quanshi Zhang. Towards Theoretical Analysis of Transformation Complexity of ReLU DNNs. ICML, 2022.
[15] Jie Ren, Die Zhang, Yisen Wang, Lu Chen, Zhanpeng Zhou, Yiting Chen, Xu Cheng, Xin Wang, Meng Zhou, Jie Shi, and Quanshi Zhang. A Unified Game-Theoretic Interpretation of Adversarial Robustness. NeurIPS, 2021.
[16] Wen Shen, Qihan Ren, Dongrui Liu, and Quanshi Zhang. Interpreting Representation Quality of DNNs for 3D Point Cloud Processing. NeurIPS, 2021.
[17] Xin Wang, Shuyun Lin, Hao Zhang, Yufei Zhu, and Quanshi Zhang. Interpreting Attributions and Interactions of Adversarial Attacks. ICCV, 2021.
[18] Wen Shen, Zhihua Wei, Shikun Huang, Binbin Zhang, Panyue Chen, Ping Zhao, and Quanshi Zhang. Verifiability and Predictability: Interpreting Utilities of Network Architectures for 3D Point Cloud Processing. CVPR, 2021.
[19] Hao Zhang, Yichen Xie, Longjie Zheng, Die Zhang, and Quanshi Zhang. Interpreting Multivariate Shapley Interactions in DNNs. AAAI, 2021.
[20] Die Zhang, Huilin Zhou, Hao Zhang, Xiaoyi Bao, Da Huo, Ruizhao Chen, Xu Cheng, Mengyue Wu, and Quanshi Zhang. Building Interpretable Interaction Trees for Deep NLP Models. AAAI, 2021.
小技巧大功效,「仅阅读两次提示」让循环语言模型超越Transformer++
在当前 AI 领域,大语言模型采用的主流架构是 Transformer。不过,随着 RWKV、Mamba 等架构的陆续问世,出现了一个很明显的趋势:在语言建模困惑度方面与 Transformer 较量的循环大语言模型正在快速进入人们的视线。
令人兴奋的是,这些架构在推理期间使用了恒定量的内存。不过,受制于有限的内存,循环语言模型(LM)无法记忆并使用长上下文中的所有信息,这导致了上下文学习(in-context learning,ICL)质量的不佳。因此,获得高效大语言模型的关键挑战在于选择存储或者丢弃哪些信息。
在最近的论文《Just read twice: closing the recall gap for recurrent language models》中,来自斯坦福大学、布法罗大学的研究者通过简单观察发现,数据在推理期间涌入循环语言模型的排序极大地影响了在有限内存中预测存储哪些信息的难度。
我们假设根据文档 D(比如伽利略・伽利莱的详细维基百科)来提问:伽利略是什么时候搬到的佛罗伦萨?这时,如果提示遵循了 [Q, D] 的排序,则模型只需要记住文档 D 中的一个事实即可。相反,如果提示遵循了 [D, Q] 的排序,则模型需要记住所有事实。如下图 1(左)所示。
因此,本文首先从理论上形式化了数据排序如何影响内存需求,然后提出两种方法来减轻对数据排序的依赖,分别是 Just-read-twice(JRT)提示策略和 JRT 循环架构。本文主要分为以下几个部分展开:
理解数据排序的作用。研究者得出的第一个洞见是:记忆问题的 hardness 要降低到与设置剥离(set disjointness,SD)相同,这是通信复杂度理论中持续数十年的最典型问题。SD 要求一种流算法(比如循环模型)来决定上下文中提供的输入集是否剥离:
理论分析和实验结果表明,第一个集 | A | 掌控了求解 SD 所需的内存。因果模型需要存储 A 中的所有元素以与 B 中的元素进行比较。这表明了,使用上下文中的「正确数据排序」(如将最小 min (|A|, |B|) 的集放在首位)将有助于内存受限的模型。更进一步,观察到上下文非因果逻辑的模型可在空间最小的 (|A|, |B|) 中求解 SD,而无需考虑数据排序。
其次是利用「正确的」排序。本文提出了一种非常简单的 JRT-Prompt 策略,在模型生成答案之前在上下文中将信息重复多次(如上图 1 右所示)。在第二以及更多轮次中,语言模型在决定存储哪些信息时要以完整的上下文为条件,从而有效避免了将数据排序「归正」的问题。
结果表明,JRT-Prompt 在 16 个已有循环语言模型和 6 项 ICL 任务上,实现了平均 11.0 ± 1.3 百分点的提升,而吞吐量是 FlashAttention-2(长度 32k、批大小 16)的 11.9 倍。JRT-Prompt 虽然增加了上下文长度,但渐进来看仍然比注意力更加地计算和内存高效。
超越因果模型。本文提出了 JRT-RNN,它的灵感来源于简单的 Prefix-LM 编码器解码器架构设计。大多数的上下文学习输入包含两部分内容,分别是输入的提示(上下文、指令)和作为输出的模型生成文本。在 Prefix-LM 架构中,LM 并没有遵循因果逻辑地处理提示区域,而对输出进行了因果解码,其中在因果区域仅使用了标准的下一个 token 预测损失,以及非因果区域上的损失。
不过遗憾的是,此前 Prefix-LM 模型的训练方法取得的成功有限,并使用了低效的 Transformer 主干。因此本文通过一些简单的改变来提高质量和效率,包括改进训练损失并使用称之为「Prefix Linear Attention,PLA」 的线性注意力公式。研究者发现,使用他们的 IO 感知实现,JRT-RNN 在 360m 和 1.3b 参数设置下,分别可以提供 13.7 和 6.9 百分点的平均质量改进,吞吐量是 FA2 的 19.2 倍。
论文地址:https://arxiv.org/pdf/2407.05483
项目主页:https://github.com/HazyResearch/prefix-linear-attention
JRT-Prompt 方法概览
上下文学习任务以 (C, Q, Y) 作为输入,其中 C 为一些上下文来源(如文档或代码存储库),Q 为给定上下文时对模型的一些问题或请求,Y 为答案。对于使用自回归 LM A 的标准上下文学习,研究者输入 C 和 Q,并根据正确的完成情况 Y 来评估生成的输出 Yˆ = A (C, Q)。
JRT-Prompt 是一种极其简单的方法,在提示模型输出答案之前会在上下文中重复提示中的信息(如问题和文档),例如下图 1 右的 Yˆ = A (C, Q, C, Q)。因此,在上下文第二次出现时,模型根据完整的上下文来决定存储哪些信息。
此外,JRT-Prompt 可以与现成的 LLM 一起使用。研究者在零样本提示下,在一系列记忆密集型上下文任务上评估了以下 LM:
Based 预训练 LM,参数规模为 1.3B,在 Pile 的 10 − 50B 个 token 上进行训练;
Mamba 预训练的 LM,参数规模为 130M、370M、1.4B 和 2.8B,在 Pile 的 300B 个 token 上进行训练;
Gated Linear Attention 预训练的 LM,参数规模为 1.3B 和 2.7B,在 SlimPajama 数据集的 100B 个 token 上进行训练;
Mamba-2 预训练的 LM,参数规模为 130M、370M、1.3B 和 2.7B,在 Pile 的 300B 个 token 上进行训练。
结果如下表 1 所示,通过增加状态(state)大小,研究者发现 JRT-Prompt 方法在各个模型和任务上平均带来了 11.0 ± 1.3 百分点的性能提升,利用该方法的 Based 模型平均优于利用标准提示的 Transformer 模型。
他们还发现,JRT-Prompt 可以使 Transformer 模型受益,并且该方法在一些任务上(附录 2)比少样本学习更加有效。值得注意的是,Springer 等人在论文《Repetition improves language model embeddings》中提出使用自回归 Transformer 模型来重复上下文以实现生成嵌入的目的,本文的研究结果也类似。研究者专注于亚二次架构和上下文学习任务。
JRT-Prompt 虽然由于重复而增加了上下文长度,但是其使用的亚二次循环架构仍比使用二次 Transformer 模型更高效。研究者发现,在序列长度 N = 32768、批大小为 16 时,使用 JRT-Prompt(序列长度 2N)在英伟达 H100 上提供的吞吐量是 FlashAttention-2(序列长度 N)的 11.9 倍。
JRT-RNN:编码器 – 解码器循环架构
JRT-RNN 的灵感来自于 Prefix-LMs,但侧重于扩展质量 – 效率权衡空间的帕累托边界(Pareto frontier)。为了提高质量,JRT-RNN 在编码器端使用了单独的 k_e 和 v_e 映射,在解码器端使用了 k_d 和 v_d 映射。虽然 Prefix LM 模型对编码器和解码器区域使用了共享映射权重,但研究者发现使用两组映射可以提高质量。
为了提高效率,JRT-RNN 为编码器使用了非因果线性注意力,而为解码器使用标准因果线性注意力。研究者称为 Prefix Linear Attention(PLA)(图 1 右),公式如下:
JRT-RNN 训练目标。Prefix LMs 通常不计算非因果区域的损失,而 JRT-RNN 将下一个 token 预测与掩码语言建模(MLM)目标进行了结合。并且对于添加的 MLM 目标,研究者用一个 [MASK] token 替换了来自编码器区域 {u_1, …, u_M} 的比例为 P 的 tokens,并在预测原始 token 时测量了交叉熵损失。
损失如下:
实验结果
在实验中,研究者评估了 JRT-RNN 在以下三个指标上的质量和效率:
上下文学习质量
整体语言建模
生成
上下文学习质量
如下表 2 所示,研究者发现,JRT-RNN 在参数为 360M(30B tokens)时比仅解码器的基线(Based)平均高出 13.7 个百分点,在参数为 1.3B(50B tokens)时平均高出 6.9 个百分点。
同时,JRT-RNN 在参数为 360M 和 1.3B 时与 Transformer++ 的差距分别缩小到了 0.5 个百分点和 1.9 个百分点之内。
在下表 3 中,研究者比较了当 prefill 长度 l 小于编码器长度 M 时,JRT-RNN 与同类推理策略的表现。
整体自然语言理解
根据以往研究,研究者进一步将困惑度分为了两组:联想记忆「AR slice」包括了被称为「AR hits」的 tokens,它们需要模型按照顺序执行记忆以正确地预测下一个 token;而「Other slice」包含剩余的 tokens(如记忆的知识)。
对于记忆频率,JRT-RNN 在「AR slice」表现出色。对于训练期间不常见的二元组(即不太可能在模型参数中被记住的),JRT-RNN 的困惑度相对于 Based 和 Mamba 这两个强大的因果循环基线有所改善。
对于记忆距离,在「AR slice」中,JRT-RNN 与仅解码器基线之间的差距随着上下文中重复二元组的增加而扩大。这也进一步证明了 JRT-RNN 可以帮助完成更长的上下文记忆任务。
非记忆频率。对于训练期间很少见到的二元组的非记忆「Other slice」,JRT-RNN 的困惑度比仅解码器的 LM 更差。这是意料之中的结果,因为 JRT-RNN 计算了仅解码器 LM 的 65% tokens 的损失。
我们预计这一差距会随着规模和训练时间的延长而缩小(随着二元语法频率的增加而增加)(图 3,左上角)。
生成吞吐量
生成可以分解为提示「prefill 处理」和解码「下一个 token 预测」两步。相较于标准的仅解码器循环模型,JRT-RNN 不会修改解码步骤,因此讨论重点在 prefill 阶段。
使用 Simran Arora 等人论文《Simple linear attention language models balance the recall-throughput tradeof》中提出的 Based CUDAn 内核,JRT-Prompt 在处理 prefill 时吞吐量分别是 FlashAttention-2 和 FLA Triton 内核的 11.9 和 13.7 倍,如下表 5 所示。
当研究者将批大小增加到 64 时,JRT-Prompt 吞吐量分别是 FlashAttention-2 和 FLA Triton 内核的 6.1 倍和 7.2 倍。
接下来他们扩展了 Based 内核以支持 JRT-RNN,并且证明了当将序列长度增加到 32768 时,吞吐量分别是 FlashAttention-2 和 FLA 的 19.2 倍和 22.0 倍。当将批大小增加到 64 时,JRT-RNN 分别又提供了 9.7 倍和 11.5 倍的吞吐量提升。JRT-RNN 所需的时间是 Based prefill 的 1.24 倍,比 JRT-Prompt 更加高效。
更多技术细节和实验结果请参阅原论文。
70倍极致压缩!大模型的检查点再多也不怕
大模型作为当下 AI 工业界和学术界当之无愧的「流量之王」,吸引了大批学者和企业投入资源去研究与训练。随着规模越做越大,系统和工程问题已经成了大模型训练中绕不开的难题。例如在 Llama3.1 54 天的训练里,系统会崩溃 466 次,平均 2.78 小时一次!
那么,频繁存储检查点就显得十分必要。但存储检查点本身也是一个大工程。
Meta 做了很多努力来加速存储检查点时间和增加存储频率,来对抗频繁出现的系统失效。但频繁存储也意味着大量的存储资源开销,其训练集群配备了 240PB 的 SSD 来应对这一挑战,光存储这一项的耗费就要亿元!
华为诺亚的 ExCP 方法也就应运而生,为了应对存储带来的巨大开销,他们提出了极致压缩检查点技术,能够无损压缩模型 70 倍,大幅降低训练中的存储开销。
代码目前已经开源,在 Apache 2.0 框架下发布,issue 中已经有小伙伴成功复现了结果。
文章地址:https://arxiv.org/abs/2406.11257
仓库地址:https://github.com/Gaffey/ExCP
方法也很有创新性,文章中提到了两个重要的概念,一个是利用训练中检查点的残差信息,通过时间序列上信息的稀疏性实现更高的剪枝比例;另一个是将优化器和权重联合起来进行压缩,实现整体的高压缩率。
具体方法
1. 检查点残差
在训练过程中,当前的参数可以看作上一个检查点存储的权重加上逐次迭代时梯度更新的总和,这部分是相对稀疏的,包含的信息量较少,因此对这一残差进行压缩,可以获得更好的压缩比例。而与此相反的,优化器中存储的动量是梯度一阶矩和二阶矩的滑动平均值,对于一阶矩来说,它的滑动平均默认的参数是 0.9,在数百到数千个迭代之后与上一次检查点存储的内容已经没有太大的关联,所以对于优化器直接压缩其本身的值而非残差。最终待压缩的检查点表示为
2. 权重 – 优化器动量联合压缩
目前已有的模型压缩相关的工作一般只关注于模型的推理性能,或者是模型最终存储检查点的大小,而不关注模型在整个训练过程中对储存空间的开销。因而已有工作只对权重进行压缩,而忽略了 Adam 等常见优化器中实际上存储了两倍于权重数量的动量。这一工作一方面将两者一起进行了压缩,显著提升了整体的压缩比例;另一方面也利用了权重和优化器动量的关联性,进一步提升彼此的压缩比例。
权重剪枝:由于剪枝的权重是残差值,优化器动量的二阶矩可以大致表示在过去一段时间内权重残差值的变化幅度,所以可以使用优化器动量的二阶矩作为指标来确定不同层的剪枝比例。剪枝策略如下文公式所示
式中,W 和分别表示权重和二阶矩。
优化器动量剪枝:对于动量剪枝,可以使用一阶矩作为指示器来进行剪枝,论文中有关于可收敛性的一个简要证明。同时,如果一个位置的权重已经被剪枝,那么对应位置的优化器动量也应该同步被处理,所以剪枝策略如下文公式所示
式中, 表示一阶矩。
3. 整体压缩流程
整体压缩流程如 Algorithm 1 所示,依次进行计算权重残差 / 联合压缩 / 非均匀量化 / 编码压缩等步骤,得到最终的压缩结果。
而恢复出检查点完整文件的流程则如 Algorithm 2 所示,进行解压缩之后,首先从非均匀量化后存储的码本和下标中恢复出浮点结果,然后再与基准权重(上一个检查点的原始权重或恢复出的重建权重)相加,得到检查点完整文件。而恢复出整个训练流程中的检查点文件的流程如 Algorithm 3 所示,在完成训练后只保存初始化权重的随机种子和每个检查点存储的压缩结果,然后依次对检查点进行恢复以得到完整的检查点序列,以供从其中选择某个或多个检查点恢复训练 / 进行测试等。
实验结果
文章中不仅对于大语言模型做了评估,在 ViT-L32 这样较大的视觉模型上这一方法也能取得很好的效果。
从消融实验里也可以看出,采用残差剪枝的方法大大减少了剪枝带来的损失。
文章中还提供了大语言模型压缩前后问答的样例,可以看到压缩本身对于模型的问答能力也没有造成损害。
LLM可解释性的未来希望?稀疏自编码器是如何工作的,这里有一份直观说明
简而言之:矩阵 → ReLU 激活 → 矩阵
在解释机器学习模型方面,稀疏自编码器(SAE)是一种越来越常用的工具(虽然 SAE 在 1997 年左右就已经问世了)。
机器学习模型和 LLM 正变得越来越强大、越来越有用,但它们仍旧是黑箱,我们并不理解它们完成任务的方式。理解它们的工作方式应当大有助益。
SAE 可帮助我们将模型的计算分解成可以理解的组件。近日,LLM 可解释性研究者 Adam Karvonen 发布了一篇博客文章,直观地解释了 SAE 的工作方式。
可解释性的难题
神经网络最自然的组件是各个神经元。不幸的是,单个神经元并不能便捷地与单个概念相对应,比如学术引用、英语对话、HTTP 请求和韩语文本。在神经网络中,概念是通过神经元的组合表示的,这被称为叠加(superposition)。
之所以会这样,是因为世界上很多变量天然就是稀疏的。
举个例子,某位名人的出生地可能出现在不到十亿分之一的训练 token 中,但现代 LLM 依然能学到这一事实以及有关这个世界的大量其它知识。训练数据中单个事实和概念的数量多于模型中神经元的数量,这可能就是叠加出现的原因。
近段时间,稀疏自编码器(SAE)技术越来越常被用于将神经网络分解成可理解的组件。SAE 的设计灵感来自神经科学领域的稀疏编码假设。现在,SAE 已成为解读人工神经网络方面最有潜力的工具之一。SAE 与标准自编码器类似。
常规自编码器是一种用于压缩并重建输入数据的神经网络。
举个例子,如果输入是一个 100 维的向量(包含 100 个数值的列表);自编码器首先会让该输入通过一个编码器层,让其被压缩成一个 50 维的向量,然后将这个压缩后的编码表示馈送给解码器,得到 100 维的输出向量。其重建过程通常并不完美,因为压缩过程会让重建任务变得非常困难。
一个标准自编码器的示意图,其有 1×4 的输入向量、1×2 的中间状态向量和 1×4 的输出向量。单元格的颜色表示激活值。输出是输入的不完美重建结果。
解释稀疏自编码器
稀疏自编码器的工作方式
稀疏自编码器会将输入向量转换成中间向量,该中间向量的维度可能高于、等于或低于输入的维度。在用于 LLM 时,中间向量的维度通常高于输入。在这种情况下,如果不加额外的约束条件,那么该任务就很简单,SAE 可以使用单位矩阵来完美地重建出输入,不会出现任何意料之外的东西。但我们会添加约束条件,其中之一是为训练损失添加稀疏度惩罚,这会促使 SAE 创建稀疏的中间向量。
举个例子,我们可以将 100 维的输入扩展成 200 维的已编码表征向量,并且我们可以训练 SAE 使其在已编码表征中仅有大约 20 个非零元素。
稀疏自编码器示意图。请注意,中间激活是稀疏的,仅有 2 个非零值。
我们将 SAE 用于神经网络内的中间激活,而神经网络可能包含许多层。在前向通过过程中,每一层中和每一层之间都有中间激活。
举个例子,GPT-3 有 96 层。在前向通过过程中,输入中的每个 token 都有一个 12,288 维向量(一个包含 12,288 个数值的列表)。此向量会累积模型在每一层处理时用于预测下一 token 的所有信息,但它并不透明,让人难以理解其中究竟包含什么信息。
我们可以使用 SAE 来理解这种中间激活。SAE 基本上就是「矩阵 → ReLU 激活 → 矩阵」。
举个例子,如果 GPT-3 SAE 的扩展因子为 4,其输入激活有 12,288 维,则其 SAE 编码的表征有 49,512 维(12,288 x 4)。第一个矩阵是形状为 (12,288, 49,512) 的编码器矩阵,第二个矩阵是形状为 (49,512, 12,288) 的解码器矩阵。通过让 GPT 的激活与编码器相乘并使用 ReLU,可以得到 49,512 维的 SAE 编码的稀疏表征,因为 SAE 的损失函数会促使实现稀疏性。
通常来说,我们的目标让 SAE 的表征中非零值的数量少于 100 个。通过将 SAE 的表征与解码器相乘,可得到一个 12,288 维的重建的模型激活。这个重建结果并不能与原始的 GPT 激活完美匹配,因为稀疏性约束条件会让完美匹配难以实现。
一般来说,一个 SAE 仅用于模型中的一个位置举个例子,我们可以在 26 和 27 层之间的中间激活上训练一个 SAE。为了分析 GPT-3 的全部 96 层的输出中包含的信息,可以训练 96 个分立的 SAE—— 每层的输出都有一个。如果我们也想分析每一层内各种不同的中间激活,那就需要数百个 SAE。为了获取这些 SAE 的训练数据,需要向这个 GPT 模型输入大量不同的文本,然后收集每个选定位置的中间激活。
下面提供了一个 SAE 的 PyTorch 参考实现。其中的变量带有形状注释,这个点子来自 Noam Shazeer,参见:https://medium.com/@NoamShazeer/shape-suffixes-good-coding-style-f836e72e24fd 。请注意,为了尽可能地提升性能,不同的 SAE 实现往往会有不同的偏置项、归一化方案或初始化方案。最常见的一种附加项是某种对解码器向量范数的约束。更多细节请访问以下实现:
OpenAI:https://github.com/openai/sparse_autoencoder/blob/main/sparse_autoencoder/model.py#L16
SAELens:https://github.com/jbloomAus/SAELens/blob/main/sae_lens/sae.py#L97
dictionary_learning:https://github.com/saprmarks/dictionary_learning/blob/main/dictionary.py#L30
import torchimport torch.nn as nn# D = d_model, F = dictionary_size# e.g. if d_model = 12288 and dictionary_size = 49152# then model_activations_D.shape = (12288,) and encoder_DF.weight.shape = (12288, 49152)class SparseAutoEncoder (nn.Module): """ A one-layer autoencoder. """ def __init__(self, activation_dim: int, dict_size: int): super ().__init__() self.activation_dim = activation_dim self.dict_size = dict_size self.encoder_DF = nn.Linear (activation_dim, dict_size, bias=True) self.decoder_FD = nn.Linear (dict_size, activation_dim, bias=True) def encode (self, model_activations_D: torch.Tensor) -> torch.Tensor: return nn.ReLU ()(self.encoder_DF (model_activations_D)) def decode (self, encoded_representation_F: torch.Tensor) -> torch.Tensor: return self.decoder_FD (encoded_representation_F) def forward_pass (self, model_activations_D: torch.Tensor) -> tuple [torch.Tensor, torch.Tensor]: encoded_representation_F = self.encode (model_activations_D) reconstructed_model_activations_D = self.decode (encoded_representation_F) return reconstructed_model_activations_D, encoded_representation_F
标准自编码器的损失函数基于输入重建结果的准确度。为了引入稀疏性,最直接的方法是向 SAE 的损失函数添加一个稀疏度惩罚项。对于这个惩罚项,最常见的计算方式是取这个 SAE 的已编码表征(而非 SAE 权重)的 L1 损失并将其乘以一个 L1 系数。这个 L1 系数是 SAE 训练中的一个关键超参数,因为它可确定实现稀疏度与维持重建准确度之间的权衡。
请注意,这里并没有针对可解释性进行优化。相反,可解释的 SAE 特征是优化稀疏度和重建的一个附带效果。下面是一个参考损失函数。
# B = batch size, D = d_model, F = dictionary_sizedef calculate_loss (autoencoder: SparseAutoEncoder, model_activations_BD: torch.Tensor, l1_coeffient: float) -> torch.Tensor: reconstructed_model_activations_BD, encoded_representation_BF = autoencoder.forward_pass (model_activations_BD) reconstruction_error_BD = (reconstructed_model_activations_BD - model_activations_BD).pow (2) reconstruction_error_B = einops.reduce (reconstruction_error_BD, 'B D -> B', 'sum') l2_loss = reconstruction_error_B.mean () l1_loss = l1_coefficient * encoded_representation_BF.sum () loss = l2_loss + l1_loss return loss
稀疏自编码器的前向通过示意图。
这是稀疏自编码器的单次前向通过过程。首先是 1×4 大小的模型向量。然后将其乘以一个 4×8 的编码器矩阵,得到一个 1×8 的已编码向量,然后应用 ReLU 将负值变成零。这个编码后的向量就是稀疏的。之后,再让其乘以一个 8×4 的解码器矩阵,得到一个 1×4 的不完美重建的模型激活。
假想的 SAE 特征演示
理想情况下,SAE 表征中的每个有效数值都对应于某个可理解的组件。
这里假设一个案例进行说明。假设一个 12,288 维向量 [1.5, 0.2, -1.2, …] 在 GPT-3 看来是表示「Golden Retriever」(金毛犬)。SAE 是一个形状为 (49,512, 12,288) 的矩阵,但我们也可以将其看作是 49,512 个向量的集合,其中每个向量的形状都是 (1, 12,288)。如果该 SAE 解码器的 317 向量学习到了与 GPT-3 那一样的「Golden Retriever」概念,那么该解码器向量大致也等于 [1.5, 0.2, -1.2, …]。
无论何时 SAE 的激活的 317 元素是非零的,那么对应于「Golden Retriever」的向量(并根据 317 元素的幅度)会被添加到重建激活中。用机械可解释性的术语来说,这可以简洁地描述为「解码器向量对应于残差流空间中特征的线性表征」。
也可以说有 49,512 维的已编码表征的 SAE 有 49,512 个特征。特征由对应的编码器和解码器向量构成。编码器向量的作用是检测模型的内部概念,同时最小化其它概念的干扰,尽管解码器向量的作用是表示「真实的」特征方向。研究者的实验发现,每个特征的编码器和解码器特征是不一样的,并且余弦相似度的中位数为 0.5。在下图中,三个红框对应于单个特征。
稀疏自编码器示意图,其中三个红框对应于 SAE 特征 1,绿框对应于特征 4。每个特征都有一个 1×4 的编码器向量、1×1 的特征激活和 1×4 的解码器向量。重建的激活的构建仅使用了来自 SAE 特征 1 和 4 的解码器向量。如果红框表示「红颜色」,绿框表示「球」,那么该模型可能表示「红球」。
那么我们该如何得知假设的特征 317 表示什么呢?目前而言,人们的实践方法是寻找能最大程度激活特征并对它们的可解释性给出直觉反应的输入。能让每个特征激活的输入通常是可解释的。
举个例子,Anthropic 在 Claude Sonnet 上训练了 SAE,结果发现:与金门大桥、神经科学和热门旅游景点相关的文本和图像会激活不同的 SAE 特征。其它一些特征会被并不显而易见的概念激活,比如在 Pythia 上训练的一个 SAE 的一个特征会被这样的概念激活,即「用于修饰句子主语的关系从句或介词短语的最终 token」。
由于 SAE 解码器向量的形状与 LLM 的中间激活一样,因此可简单地通过将解码器向量加入到模型激活来执行因果干预。通过让该解码器向量乘以一个扩展因子,可以调整这种干预的强度。当 Anthropic 研究者将「金门大桥」SAE 解码器向量添加到 Claude 的激活时,Claude 会被迫在每个响应中都提及「金门大桥」。
下面是使用假设的特征 317 得到的因果干预的参考实现。类似于「金门大桥」Claude,这种非常简单的干预会迫使 GPT-3 模型在每个响应中都提及「金毛犬」。
def perform_intervention (model_activations_D: torch.Tensor, decoder_FD: torch.Tensor, scale: float) -> torch.Tensor: intervention_vector_D = decoder_FD [317, :] scaled_intervention_vector_D = intervention_vector_D * scale modified_model_activations_D = model_activations_D + scaled_intervention_vector_D return modified_model_activations_D
稀疏自编码器的评估难题
使用 SAE 的一大主要难题是评估。我们可以训练稀疏自编码器来解释语言模型,但我们没有自然语言表示的可度量的底层 ground truth。目前而言,评估都很主观,基本也就是「我们研究一系列特征的激活输入,然后凭直觉阐述这些特征的可解释性。」这是可解释性领域的主要限制。
研究者已经发现了一些似乎与特征可解释性相对应的常见代理指标。最常用的是 L0 和 Loss Recovered。L0 是 SAE 的已编码中间表征中非零元素的平均数量。Loss Recovered 是使用重建的激活替换 GPT 的原始激活,并测量不完美重建结果的额外损失。这两个指标通常需要权衡考虑,因为 SAE 可能会为了提升稀疏性而选择一个会导致重建准确度下降的解。
在比较 SAE 时,一种常用方法是绘制这两个变量的图表,然后检查它们之间的权衡。为了实现更好的权衡,许多新的 SAE 方法(如 DeepMind 的 Gated SAE 和 OpenAI 的 TopK SAE)对稀疏度惩罚做了修改。下图来自 DeepMind 的 Gated SAE 论文。Gated SAE 由红线表示,位于图中左上方,这表明其在这种权衡上表现更好。
Gated SAE L0 与 Loss Recovered
SAE 的度量存在多个难度层级。L0 和 Loss Recovered 是两个代理指标。但是,在训练时我们并不会使用它们,因为 L0 不可微分,而在 SAE 训练期间计算 Loss Recovered 的计算成本非常高。相反,我们的训练损失由一个 L1 惩罚项和重建内部激活的准确度决定,而非其对下游损失的影响。
训练损失函数并不与代理指标直接对应,并且代理指标只是对特征可解释性的主观评估的代理。由于我们的真正目标是「了解模型的工作方式」,主观可解释性评估只是代理,因此还会有另一层不匹配。LLM 中的一些重要概念可能并不容易解释,而且我们可能会在盲目优化可解释性时忽视这些概念。
总结
可解释性领域还有很长的路要走,但 SAE 是真正的进步。SAE 能实现有趣的新应用,比如一种用于查找「金门大桥」导向向量(steering vector)这样的导向向量的无监督方法。SAE 也能帮助我们更轻松地查找语言模型中的回路,这或可用于移除模型内部不必要的偏置。
SAE 能找到可解释的特征(即便目标仅仅是识别激活中的模式),这一事实说明它们能够揭示一些有意义的东西。还有证据表明 LLM 确实能学习到一些有意义的东西,而不仅仅是记忆表层的统计规律。
SAE 也能代表 Anthropic 等公司曾引以为目标的早期里程碑,即「用于机器学习模型的 MRI(磁共振成像)」。SAE 目前还不能提供完美的理解能力,但却可用于检测不良行为。SAE 和 SAE 评估的主要挑战并非不可克服,并且现在已有很多研究者在攻坚这一课题。
有关稀疏自编码器的进一步介绍,可参阅 Callum McDougal 的 Colab 笔记本:https://www.lesswrong.com/posts/LnHowHgmrMbWtpkxx/intro-to-superposition-and-sparse-autoencoders-colab
参考链接:
https://www.reddit.com/r/MachineLearning/comments/1eeihdl/d_an_intuitive_explanation_of_sparse_autoencoders/
https://adamkarvonen.github.io/machine_learning/2024/06/11/sae-intuitions.html
太原理工2024软件工程招60个班,近2000人,冲上热搜
这一届软件工程专业的学生占了 1/4,同班同学都是老乡。
都知道计算机专业火热,没想到竟然这么火。
刚刚,「2024 太原理工大学(211)软件工程招 60 个班,接近 2k 人」的这条消息登上知乎热榜,讨论量居高不下。
「60 个班,近 2000 人」,看到这个招生数量,各路网友们也是非常惊讶,一个专业招收这么多学生,这也太夸张了吧,别的不说,有这么多老师吗,难道学生都要上 120 人的大课?
等到写毕业论文找老师辅导,还得排号?毕竟一个老师平均要辅导超过 100 位本科生,就算是开线上讨论会,也得考虑一下腾讯会议室装这么多人会不会卡成 PPT。
更有网友用「离了个大谱」来形容。
太原理工大学(Taiyuan University of Technology)位于山西省太原市,是国家「世界一流学科建设高校」,国家「211 工程」重点建设高校。
据悉,该校 2024 年本科招生计划 8880,覆盖全国 31 个省市自治区(包括港澳台地区),其中山西省内计划占比 56%。
太原理工大学软件学院成立于 2010 年,2004 年经教育部批准设立软件工程本科专业。学院目前拥有完整的本科和硕士培养体系,设有软件工程本科专业,拥有软件工程一级学科硕士学位授予权,2021 年软件工程专业获批山西省本科一流专业。截止目前,学院教职工人数共 69 人,在校本科生 5439 人,研究生 117 人。师生比达到 1:78,可以说是非常夸张了。
据最新版报考指南介绍,太原理工大学的软件工程专业主要课程包括:面向对象程序设计、数据结构与算法、计算机系统基础、操作系统、数据库概论、软件工程导论、软件设计与体系结构、软件测试技术、软件需求工程、软件项目管理等。
根据官网查询到的准确消息,今年太原理工大学软件工程录取人数实为 1871 人(山西考区,原计划为 1795 人),最高分是 578 分,最低 534 分,平均 546 分。
当我们输入其他考区时,显示太原理工大学并未在其他地方招收学生。
作为对比,去年录取人数为 1541,今年比去年多了 300 多人。
除了招生人数,高昂的学费也是大家讨论的另一个焦点。据了解,该专业每年学费为 1.6 万,是其他专业的三倍之多。
随着这条消息的持续传播,大家讨论的也异常热烈,总结起来主要有以下几个观点。
观点 1 计算机行业已饱和,管杀不管埋?毕业即失业?
报志愿时,家长和考生们考虑的决定性因素,除了专业的未来「前景」,更是毕业时的「钱景」。
然而面对大学扩招带来的毕业生人数激增,毕业生获得 offer 的比率同时也在下降,我国今年的高校毕业生人数预计达 1179 万,同比增加 21 万。再创历史新高。大学生们,正在面临一个又一个「没有最难,只有更难」的就业季。
就业寒冬中,在张雪峰的直播间,紧紧围绕在计算机科学周边的 IT 专业无疑是推荐榜榜首的「爆款」。据麦可思研究院在今年六月发布的《2024 年中国本科生就业报告》显示,电子信息类专业领跑收入排行榜,前五位分别是信息安全(7756 元)、微电子科学与工程(7151 元)、软件工程(7061 元)、数据科学与大数据技术(7014 元)、电子科学与技术(7011 元)。
来源:http://www.mycos.com.cn/index.php/Index/response/nav/3.html
与此相对的是,这些专业对口的互联网企业却源源不断地传出裁员的消息。「广进计划」的风从硅谷袭来,无论是大厂中厂还是小厂,「35 岁喜提 N+1」,「入职 x 年,终于迎来毕业」,这些层出不穷的帖子背后,大家都收到了同一条消息:互联网各条业务线的人员确实已接近饱和。
暂且不考虑目前相对好就业的专业,在四年之后的就业难度会像「通货膨胀」一样飞速上涨。假设今年太原理工大学软件工程录取的 1800 多人同时走进就业市场,他们面临的也将是一条狭窄的通道。
因此,有网友甚至评论:
更值得担忧的是,ChatGPT 确实让「码农」的门槛越来越低。每次有大模型发布,编码能力都是 demo 展示的重要环节,各家大厂也在积极推出类似 Devin 这样具有出色编码能力的 AI 智能体员工。在今年的迪拜世界政府峰会上,英伟达 CEO 黄仁勋甚至亲自盖章「编程无用论」,他说:「在过去的 10 年、15 年里,几乎每个人都会告诉你,孩子学习计算机至关重要,每个人都应该学习编程。但如今,情况几乎完全相反。因为英伟达的目标是创造计算技术,让任何人都不需要编程。」
观点 2:师生比高达 1:80,教学质量能保证吗?
除了找不到工作的问题,最令网友们担心的还有师生比带来的教学质量问题,更何况 1800 多个学生的学费,一年下来也是一笔不小的数目,收入是否与教学质量相匹配。
对于学校而言,这种看似「不考虑后果,只顾着收割眼前利益」的做法,并非全是收益。家长们的担忧不无道理:太原理工大学其他专业的录取分数线都在 600 分以上,而软件工程的最低投档线甚至只有 505 分,已经滑至 B 段本科的水平了,也就是说,录取的生源质量大打折扣。
这种忧虑也顺延到了这批学生走进就业市场的时候,如果学校无法培养出高质量的毕业生,一旦他们进入企业,对于企业而言,增加了业务风险。而另一种可能是,那些专业技能不足的毕业生将成为残酷的就业市场首批淘汰的「炮灰」,这不仅加剧了学生的就业困境,更进一步扩大大学教育与市场需求之间的脱节,陷入一种恶性循环。
观点 3:还有很多学校有扩招现象
在这个帖子引发这么多质疑之前,关于报考太原理工大学软件工程专业的画风是这样的:
太原理工大学作为山西省唯一的一所 211 院校、唯二的双一流大学,承担着无数山西家长的希望,也肩负着山西考生的前途命运。为了保护本地考生,很多高校会把热门的好专业多留些名额给本地的学生。
除了太原理工大学,河南大学、南阳师范学院也有类似的扩招计划。
对此,也有许多山西 ip 的网友纷纷站出来力挺太原理工。
还有在读学生现身说法,相对高昂的学费放眼全国是普遍现象,教学质量有国家背书,最重要的是,对于「本省人」来说,花相对较高的学费获得了「211 title」与好专业(这两项无疑是就业简历上最重要的元素),只能说是捡到大便宜了,又怎么能认为是不划算的买卖呢?
对此,你怎么看,欢迎评论区留言。
参考链接:https://www.zhihu.com/question/663179975
延迟交互模型,为什么是下一代RAG的标配?
在 RAG 系统开发中,良好的 Reranker 模型处于必不可少的环节,也总是被拿来放到各类评测当中,这是因为以向量搜索为代表的查询,会面临命中率低的问题,因此需要高级的 Reranker 模型来补救,这样就构成了以向量搜索为粗筛,以 Reranker 模型作精排的两阶段排序架构。
目前排序模型的架构主要有两类:
1. 双编码器。以 BERT 模型为例,它针对查询和文档分别编码,最后再经过一个 Pooling 层,使得输出仅包含一个向量。在查询时的 Ranking 阶段,只需要计算两个向量相似度即可,如下图所示。双编码器既可以用于 Ranking 也可以用于 Reranking 阶段,向量搜索实际上就是这种排序模型。由于双编码器针对查询和文档分别编码,因此无法捕获查询和文档的 Token 之间的复杂交互关系,在语义上会有很多损耗,但由于只需要向量搜索即可完成排序打分计算,因此执行效率非常高。
2. 交叉编码器(Cross Encoder)。Cross-Encoder 使用单编码器模型来同时编码查询和文档,它能够捕捉查询和文档之间的复杂交互关系,因此能够提供更精准的搜索排序结果。Cross-Encoder 并不输出查询和文档的 Token 所对应的向量,而是再添加一个分类器直接输出查询和文档的相似度得分。它的缺点在于,由于需要在查询时对每个文档和查询共同编码,这使得排序的速度非常慢,因此 Cross-Encoder 只能用于最终结果的重排序。例如针对初筛结果的 Top 10 做重排序,仍然需要耗时秒级才可以完成。
今年以来,另一类以 ColBERT【参考文献1】 为代表的工作,在 RAG 开发社区引起了广泛关注,如下图所示,它具备一些显著区分于以上两类排序模型的特点:
其一是相比于 Cross Encoder,ColBERT 仍采用双编码器策略,将查询和文档分别采用独立的编码器编码,因此查询的 Token 和文档的 Token 在编码时互不影响,这种分离使得文档编码可以离线处理,查询时仅针对 Query 编码,因此处理的速度大大高于 Cross Encoder;
其二是相比于双编码器,ColBERT 输出的是多向量而非单向量,这是从 Transformer 的最后输出层直接获得的,而双编码器则通过一个 Pooling 层把多个向量转成一个向量输出,因此丢失了部分语义。
在排序计算时,ColBERT 引入了延迟交互计算相似度函数,并将其命名为最大相似性(MaxSim),计算方法如下:对于每个查询 Token 的向量都要与所有文档 Token 对应的向量进行相似度计算,并跟踪每个查询 Token 的最大得分。查询和文档的总分就是这些最大余弦分数的总和。例如对于一个有 32 个 Token 向量的查询(最大查询长度为 32)和一个有 128 个 Token 的文档,需要执行 32*128 次相似性操作,如下图所示。
因此相比之下, Cross Encoder 可以称作早期交互模型 (Early Interaction Model),而以 ColBERT 为代表的工作可称为延迟交互模型(Late Interaction Model)。
下图从性能和排序质量上,分别对以上排序模型进行对比。由于延迟交互模型满足了对排序过程中查询和文档之间复杂交互的捕获,同时也避免了对文档 Token 编码的开销,因此既能保证良好的排序效果,也能实现较快的排序性能 —— 相同数据规模下, ColBERT 的效率可达 Cross Encoder 的 100 倍以上。因此延迟交互模型是一种非常有前景的排序模型,一个天然的想法是:能否在 RAG 中直接采用延迟交互模型替代向量搜索 + 精排这样的两阶段排序架构?
为此,我们需要考虑 ColBERT 工程化的一些问题:
1. ColBERT 的 MaxSim 延迟交互相似度函数,计算效率大大高于 Cross Encoder,但相比普通向量搜索,计算开销仍然很大:因为查询和文档之间的相似度,是多向量计算,因此 MaxSim 的开销是普通向量相似度计算的 M * N 倍 (M 为查询的 Token 数, N 为 文档的 Token 数)。针对这些,ColBERT 作者在 2021 年推出了 ColBERT v2 【参考文献 2】,通过 Cross Encoder 和模型蒸馏,改进了生成的 Embedding 质量,并且采用压缩技术,对生成的文档向量进行量化,从而改善 MaxSim 的计算性能。基于 ColBERT v2 包装的项目 RAGatouille 【参考文献 3】成为高质量 RAG 排序的解决方案。然而,ColBERT v2 只是一个算法库,端到端的让它在企业级 RAG 系统使用,仍然是一件困难的事情。
2. 由于 ColBERT 是预训练模型,而训练数据来自于搜索引擎的查询和返回结果,这些文本数据并不大,例如查询 Token 数 32 , 文档 Token 数 128 是典型的长度限制。因此将 ColBERT 用于真实数据时, 超过限制的长度会被截断,这对于长文档检索并不友好。
基于以上问题, 开源 AI 原生数据库 Infinity 在最新版本中提供了 Tensor 数据类型,并原生地提供端到端的 ColBERT 方案。当 Tensor 作为一种数据类型,ColBERT 编码输出的多个向量,就可以直接用一个 Tensor 来存放,因此 Tensor 之间的相似度就可以直接得出 MaxSim 打分。针对 MaxSim 计算量大的问题,Infinity 给出了 2 个方案来优化:其一种是 binary 量化,它可以让原始 Tensor 的空间只需原始尺寸的 1/32 , 但并不改变 MaxSim 计算的相对排序结果。这种方案主要用于 Reranker,因为需要根据前一阶段粗筛的结果取出对应的 Tensor 。另一种是 Tensor Index,ColBERTv2 实际上就是 ColBERT 作者推出的 Tensor Index 实现,Infinity 采用的则是 EMVB【参考文献 4】,它可以看作是 ColBERT v2 的改进,主要通过量化和预过滤技术,并在关键操作上引入 SIMD 指令来加速实现。Tensor Index 只能用来服务 Ranker 而非 Reranker。此外,针对超过 Token 限制的长文本,Infinity 引入了 Tensor Array 类型:
一篇超过 ColBERT 限制的文档,会被切分成多个段落,分别编码生成 Tensor 后,都跟原始文档保存在一行。计算 MaxSim 的时候,查询跟这些段落分别计算,然后取最大值作为整个文档的打分。如下图所示:
因此,采用 Infinity,可以端到端地引入延迟交互模型高质量地服务 RAG。那么,应该是采用 ColBERT 作为 Ranker ,还是 Reranker 呢?下边我们采用 Infinity 来在真实数据集上进行评测。由于 Infinity 的最新版本实现了有史以来最全的混合搜索方案,召回手段包含向量搜索、全文搜索、稀疏向量搜索,上文所述的 Tensor ,以及这些手段的任意组合,并且提供了多种 Reranker 手段,如 RRF,以及 ColBERT Reranker 等,因此我们在评测中包含了各种混合搜索和 Reranker 的组合。
我们采用 MLDR 数据集进行评测。MLDR 是 MTEB 【参考文献 5】用来评测 Embedding 模型质量的 benchmark 集,其中 MLDR 是其中一个数据集,全称为 Multi Long Document Retrieval,一共包含 20 万长文本数据。评测采用 BGE-M3【参考文献 6】作为 Embedding 模型,采用 Jina-ColBERT 【参考文献 7】来生成 Tensor,评测脚本也放到了 Infinity 仓库【参考文献 8】。
评测一:ColBERT 作为 Reranker 是否有效。将 20 万 MLDR 数据分别用 BGE-M3 生成稠密向量和稀疏向量,并插入到 Infinity 数据库中,数据库包含 4 列,分别保存原始文本,向量,稀疏向量,以及 Tensor,并分别构建相应全文索引、向量索引、稀疏向量索引。评测包含所有的召回组合,包含单路召回、双路召回,以及三路召回,如下所示:
评测指标采用 nDCG@10。其他参数:采用 RRF Reranker 时粗筛返回的 Top N = 1000 ,查询累计共有 800 条,平均每条查询长度在 10 个 token 左右。
从图中看到,所有的召回方案,在采用了 ColBERT Reranker 之后,都有明显的效果提升。ColBERT 作为一种延迟交互模型,它可以提供跟在 MTEB 的 Reranker 排行榜上位居前列相提并论的排序质量,但是性能却是它们的 100 倍,所以可以在更大的范围内进行重排序。图中给出的结果是针对 Top 100 进行 Reranker,而采用 Top 1000 进行 ColBERT 重排序,数值没有明显变化,性能还有明显下降,因此不推荐采用。传统上采用基于 Cross Encoder 的外部 Reranker ,Top 10 就会有秒级的延迟,而 Infinity 内部实现了高性能的 ColBERT Reranker,即使针对 Top 100 甚至 Top 1000 做重排序,也不会影响用户体验,而召回的范围却大大增加,因此可以显著改进最终的排序效果。此外,这种 ColBERT Reranker 计算只需在纯 CPU 架构上即可运行,这也大大降低了部署的成本。
评测二:对比基于 ColBERT 作为 Ranker 而不是 Reranker。因此,这时需要针对 Tensor 这列数据构建 Tensor Index。同时,为了评估 Tensor Index 引入的精度损耗,还进行了暴力搜索。
可以看到,相比 Reranker ,即使是采用没有精度损失的暴力搜索,也没有显著的提升,而采用基于 Tensor Index 的排序质量甚至低于采用 Reranker。然而,作为 Ranker 的查询时间却要慢得多:MLDR 数据集包含 20 万文档数据,大约 2GB 左右,采用 Jina-ColBERT 转成 Tensor 数据后,高达 320 G,这是因为 Tensor 数据类型是把一篇文档的每个 Token 对应的向量都要保存下来, ColBERT 模型的维度是 128 维,因此默认数据量会膨胀 2 个数量级,即使构建了 Tensor Index,在查询这么多数据的时候,也需要平均 7s 才能返回一个查询,但得到的结果却并没有更好。
因此,很显然,ColBERT 作为 Reranker 的收益比作为 Ranker 要高得多。当前最佳的 RAG 检索方案,是在 3 路混合搜索(全文搜索 + 向量 + 稀疏向量)的基础上加 ColBERT Reranker。有伙伴可能会问了,为了采用 ColBERT Reranker,就需要增加单独的 Tensor 列,并且该列会相比原始数据集膨胀 2 个数量级,这样做是否值得?首先:Infinity 针对 Tensor 提供了 Binary 量化手段,作为 Reranker,它并不影响排序结果很多,但却可以让最终的数据仅有原始 Tensor 大小的 1/32。其次,即便如此,也会有人认为这样的开销过高。然而站在使用者的视角,用更多的存储,来换取更高的排序质量和更廉价的成本(排序过程无需 GPU),这样做依然是非常值得的。最后,相信很快就可以推出效果上略有下降,但存储开销大大降低的 Late Interaction 模型,作为一款 Data Infra 基础设施, 对这些变化保持透明,把这些 Trade Off 交给用户是明智的选择。
以上是基于 Infinity 在 MLDR 数据集上的多路召回评测,在其他数据集的评测结果,可能会有所不同,但整体上结论不会变 —— 3 路混合搜索 + 基于 Tensor 的重排序,是当前搜索结果质量最高的召回手段。
由此可以看到,ColBERT 及其延迟交互模型,在 RAG 场景具有很大的应用价值,以上是在文本对话内容生成的相关工作,近期,延迟交互模型在多模态场景,也得到了 SOTA 的结果。这就是 ColPali【参考文献 9】,它改变了 RAG 的工作流程,如下图所示:
RAG 在面临复杂格式文档时,当下的 SOTA ,是采用文档识别模型,对文档的布局做识别,并针对识别出的部分结构,例如图表,图片等,再分别调用相应的模型,将它们转化为对应的文字,再用各种格式保存到 RAG 配套的数据库中。而 ColPali 则省掉了这些步骤,它直接采用多模态模型生成 Embedding 内容。提问的时候,可以直接针对文档中的图表进行回答:
ColPali 模型的训练跟 ColBERT 类似,也是采用查询 – 文档页面对的形式,从而捕获查询和文档多模态数据之间的语义关联,只是采用 PaliGemma 【参考文献 10】用来生成多模态 Embedding 。相比没有采用 Late Interaction 机制但同样采用 PaliGemma 生成 Embedding 的方案 BiPali,在 nDCG@5 的评测指标对比是 81.3 vs 58.8,这种差距是就是 “极好” 和 “压根不能工作” 的区别。
因此,尽管 ColBERT 出现至今已有 4 年时间,可是 Late Interaction 模型在 RAG 的应用才刚刚开始,它必将扩大 RAG 的使用场景,在包含多模态在内的复杂 RAG 场景提供高质量的语义召回。而 Infinity 已经为它的端到端应用做好了准备,欢迎关注和 Star Infinity,https://github.com/infiniflow/infinity, 致力于成为最好的 AI 原生数据库!
参考文献
1. Colbert: Efficient and effective passage search via contextualized late interaction over bert, SIGIR 2020.
2. Colbertv2: Effective and efficient retrieval via lightweight late interaction, arXiv:2112.01488, 2021.
3. RAGatouille https://github.com/bclavie/RAGatouille
4. Efficient Multi-vector Dense Retrieval with Bit Vectors, ECIR 2024.
5. https://huggingface.co/mteb
6. https://huggingface.co/BAAI/bge-m3
7. https://huggingface.co/jinaai/jina-colbert-v1-en
8. https://github.com/infiniflow/infinity/tree/main/python/benchmark/mldr_benchmark
9. ColPali: Efficient Document Retrieval with Vision Language Models, arXiv:2407.01449, 2024.
10. https://github.com/google-research/big_vision/tree/main/big_vision/configs/proj/paligemma