#谷歌研究科学家意外离世
两月前留下绝笔:从事大模型研究让我深陷抑郁症
「再见,菲利克斯!」
本周四,人工智能社区都在以自己的方式,对一位科学家进行告别。
菲利克斯・希尔(Felix Hill),是 Google DeepMind 的一名研究科学家,在 2024 年 12 月 5 日去世。自 2023 年初以来,他一直在与严重的精神疾病作斗争。
在离世之前,他已经在 Google DeepMind 工作了近 9 年。
纽约大学计算机科学和数据科学教授、生物技术公司 Prescient Design 联合创始人兼资深主管 Kyunghyun Cho 表示,我现在想起来还是很心痛。他写了一篇文章来纪念自己与菲利克斯的相识和研究伙伴经历。
那是在 2014 年,Kyunghyun Cho 在蒙特利尔做博士后,指导老师是 Yoshua Bengio,而 Felix 当时是刚到蒙特利尔的访问学者。彼时 Kyunghyun Cho 正在探索可以处理长文的神经机器翻译系统,当 Felix 在 Kyunghyun Cho 的办公桌前停下来并自我介绍时,他留下一句:语法不是问题。
这句话成为了此后几年里 Kyunghyun Cho 幻灯片上的常客之一。如今到了大语言模型时代,我们也已经理解了其中的意味。
菲利克斯和 Kyunghyun Cho 在这之后合作完成了一系列研究。
值得一提的是,在 2024 年 10 月,菲利克斯还留有一篇博客文章。
英伟达研究科学家 Jim Fan 表示:这是我读过的最令人心碎的博客,因为它是如此真实,如此贴近心灵。
人工智能不应该是 2000 亿参数的压力和痛苦。它曾经是一个充满咖啡香味的顿悟时刻、令人兴奋的深夜 arXiv 之旅、让我们脸上露出邪魅笑容的地方。但所有流入的资本和关注似乎都在迫使每个人都在陷入内耗。
老黄总是告诉我们不要使用「打败这个,粉碎那个」之类的短语。我们来这里是为了提升整个生态系统,而不是让任何人走向灭亡。为什么不把我们的工作看作是把蛋糕做大 —— 我们需要先一起烤蛋糕,蛋糕越大越好,然后再分蛋糕。人工智能不是零和游戏,事实上,它可能是人类有史以来玩过的最具正和的游戏。我们作为一个社区应该这样做,互相照顾。向「竞争对手」表达爱意 —— 因为从宏观上看,我们都是加速未来的共同作者。
我从未有幸在现实生活中认识 Felix,但我喜欢他的研究品味,并为他的每篇新论文设置了 Google Scholar 提醒。他在智能体和 VLM 方面的工作对我产生了很大的影响。他本可以成为我的好朋友。我想认识他,但我再也无法认识他了。安息吧菲利克斯。愿来世不再有纷争。
以下是博客内容:
在过去两年里,人工智能领域发生了不可逆转的变化。
ChatGPT 的月度用户已接近 2 亿。2024 年 5 月,谷歌 Gemini 的访问量接近 3.2 亿次,人工智能的爱好者现在可以使用人工智能微波炉、人工智能牙刷甚至人工智能足球。
然而,对于我们许多从事人工智能工作的人来说,这种大众兴趣的蓬勃发展既是福也是祸。当然,工资增加了,股票价格和公司市场估值也随之提高。另一方面,这种变化也带来了一系列独特的压力。
这篇博客的主题就是现代人工智能带来的压力。它针对的是那些从事人工智能工作的人(据保守估计,目前全世界约有 87% 的人工智能从业人员),尤其是那些从事人工智能研究的人。
最终,我希望通过谈论是什么让人工智能研究充满压力,能让我们这些有幸在这一领域工作的人生活得更快乐一些。因为,尽管目前一片混乱,但这仍然是一个美妙而充实的职业,一个有可能解决科学、哲学乃至人类自身许多重大问题的职业。
无处可逃
几个月前,我参加了一个朋友的 40 岁生日聚会。我们是很好的朋友,所以我认识很多客人,有些还很熟悉。但我并不认识他们所有人。
在那些我最不熟悉的人当中,我发现了一个奇怪的现象。
尽管我身体不是很好(这点稍后再说),显然也不热衷于交谈,但我周围还是排起了小队。仅仅因为大家知道我在 DeepMind 工作,人们就想和我交谈。
而且不是关于足球或 80 年代音乐之类的治疗性话题。这些人想聊的是我最不想去想的一件事:人工智能。这么多人对我的工作感兴趣固然让我受宠若惊,但这也提醒了我过去两年发生了多大的变化。银行家、律师、医生和管理顾问都想了解我对 ChatGPT 的看法;虽然很少有人声称在工作中直接使用这些 LLM,但他们坚信人工智能领域正在发生一些他们应该了解的事情。
作为一名研究人员,我相信你一定能体会这种在社交场合无法脱身的感觉。
但情况更糟。我甚至在自己家里都不安全。
因为害怕引发焦虑,我早就不看新闻了。但即使是在看足球、VH1、蒙塔巴诺探长或埃莱娜・费兰特(Elena Ferrante)的《那不勒斯四部曲》(Neapolitan Quartet)的改编影视作品时,广告中也充斥着关于人工智能的内容。
这时候,我常常想收拾行囊,跨越大陆,加入一个与世隔绝的教派。不过,如果现阶段连禅修也在某种程度上被人工智能渗透了,我不会感到惊讶。
隐性竞争
几家大公司似乎都在争相开发最大、最好的大型语言模型,这本身就给人一种压力,无论你为谁工作。
目前,从事人工智能研究就像是在参加一场战争。众所周知参战会导致严重的后果,包括心理变态、离婚和自杀。
当然,这并不是说参与人工智能研究等同于「现实战争」中的肉搏。但我从自己的经历中了解到,两者之间的相似之处是真实存在的,尽管有些微妙。
底线工作
通常情况下,工业界的研究人员并不习惯于他们的工作对雇主的底线产生直接和即时的影响。
当然,很多研究人员都梦想有机会产生这样的影响。只是以前这种情况十年才会出现一次。
在大多数情况下,目前对 LLM 进行基础研究的结果都是对模型性能的微小且可能是短期的扰动。然而,由于公众估值与 LLM 的表现有着千丝万缕的联系,这些扰动反过来又会导致股价出现数十亿美元的波动。
这种动态变化当然会给人工智能研究人员带来巨大压力,而在 2022 年之前,人工智能研究人员在研究生院、博士后研究期间,甚至在工作中,都并未对这种动态变化有所准备。
钱,钱,钱
大多数人工智能研究人员,尤其是我们这些超过一定年龄的人,从事研究工作并不是为了赚钱。从事自己热爱的工作却能获得大笔收入,这听起来像是灵丹妙药,但也会引发强烈的焦虑。尤其是如果导致收入增加的外部因素不在你的控制范围之内,并且 / 或者会让你对工作的热爱大打折扣。
无论人工智能是否与此有关,有大量证据表明,突然积累的财富会导致各种问题;看看那些经过多年努力终于大红大紫的演员或歌手就知道了。成瘾、人际关系破裂、友谊破裂,甚至自杀,这些都是比较常见的症状。
科学家不发挥作用
LLM 的规模、简便性和有效性使得我们很难进行相关的「科学」研究,即立即使 LLM 变得更好的「科学」研究。
主流的 LLM 研究人员已经开始接受 Sutton 那篇《苦涩的教训》,即除了规模之外,几乎不需要任何创新。
而且,即使在理论上有可能实现实质性创新(这肯定是有可能的),要实现创新也往往需要在不同条件下对规模最大的 LLM 进行反复训练。即使是最大的公司也无力承担。对于一名「普通」的研究科学家来说,这可能会让人感到难以承受。
对于习惯于在小型(5-10 人)团队中工作的工业科学家来说,这些条件是很困难的。但对于学术界的科学家来说,这种情况肯定更为严重:博士、博士后和人工智能 / CS/ML 教职员工。
发表论文
虽然学术界人士可以(也应该)继续发表从 LLM 实验中获得的见解,但对于工业界的科学家来说,发表的问题就不那么明确了。
长期以来,发表论文一直是科学进程的固有组成部分,也一直是人工智能研究的核心原则。与我交谈过的大多数人工智能研究人员,尤其是研究科学家,都同意我的观点,即发表论文是我们职业生涯的一个重要方面。
但是,至少在业界,发表论文是否是一个人研究的可行成果,这个问题在过去两年里变得越来越不明确。能提高 LLM 水平的小诀窍等同于 LLM 大战中潜在的关键武器。泄露这些秘密是否会给资助研究的机构带来好处,始终是一个「微妙」的问题。
这一切都意味着研究人员经常无法预知自己想法的命运,至少在我看来,这会给他们带来巨大的压力。
初创企业
当然,摆脱这些忧虑的一个可行办法是提出科学愿景,筹集一些资金,成立一家初创公司。事实上,当前人工智能初创企业(无论规模大小)的激增表明,有很多科学家选择了这条路。
但是,成为创始人并不是避免压力相关问题的万全之策。事实上,做这件事的压力是出了名的大;即使在目前投资者热情高涨的情况下,许多资金充足的人工智能初创企业也会失败。
我从自己的经历中了解到,成为创始人是一段特别孤独的旅程。对于雄心勃勃的科学家来说,这无疑是一个可行的选择,但它不可能让做科学变得容易,也不可能减轻压力。
为什么我要在博客里倾诉压力
在人工智能领域,过去两年是混乱和疯狂的两年,但对我个人来说,这两年也是特别动荡的两年。
2023 年 4 月,我母亲在与老年痴呆症长期斗争后去世。当时我因急性精神病住进了精神病院,压力可能是一个重要因素。在随后的 12 个月里,我理论上在康复,但实际上却处于极度焦虑和自杀性抑郁的状态。在此期间,我非常幸运,因为我的雇主理解我的处境(以及我对公司的价值),并为我提供了持续的治疗和精神支持。
在又经历了 6 个月濒临生命危险的抑郁之后,我开始感觉好些了,最近我觉得可以把我的经历写出来了。我认识到,压力和焦虑是相辅相成的;事实上,它们最终可能是一回事。当然,就像任何适应性特征一样,焦虑也有好处(例如提高工作效率),但当焦虑变成恶性时,后果可能会相当严重。
在反思过去两年的人工智能研究时,我试图重新学习如何成为一名人工智能研究人员,这让我在本博客中分享了自己的见解。当然,分享这些见解并不能解决所有问题,但在最黑暗的时刻给我带来希望的几件事之一,就是我知道我并不孤单。如果你现在正在遭受痛苦,相信我,你并不孤单。
社交焦虑
我已经介绍了许多压力或焦虑的催化剂,这些压力或焦虑目前可能困扰着从事人工智能研究的人。但有一种压力我没有提及,因为我很幸运,从未亲身经历过。相反,我是从与朋友和同事的亲密交谈中了解到它的。
这种压力就是社交焦虑。
据朋友们说,社交焦虑症患者在群体交往中会遇到困难。这在现代人工智能世界中是很困难的,因为在这个世界中,大型项目团队和大规模(通常是跨洲际)合作是必不可少的。目前行业内的人才高流失率只会让情况变得更糟,因为成熟的团队(通常起到社交安全网的作用)可能会在一夜之间被摧毁。人员流失也会导致信任问题,因为以前可靠的盟友会离开,转投 「敌人」的研究团队。
好消息是,社交焦虑是可以克服的,就像我迄今为止讨论过的所有焦虑或压力一样。这个过程可以从培养自然支持网络开始,比如家人和「非人工智能」朋友。但关键的第二步是,我们所有从事人工智能工作的人都要开始并继续进行有关压力的坦诚对话。
对此,如果你有任何想法,请提供经验,看看我们是否能让人工智能研究不仅成为一个充满活力和智力挑战的地方,同时也成为一个富有同情心和仁慈的地方。
参考内容:
https://docs.google.com/document/d/1aEdTE-B6CSPPeUWYD-IgNVQVZM25f7MF-u9qn5KJJvo/mobilebasic
https://x.com/kchonyc/status/1874768078044868708
https://x.com/DrJimFan/status/1874959979553427815
#VLM Agents Generate Their Own Memories
数据不够致Scaling Law撞墙?CMU和DeepMind新方法可让VLM自己生成记忆
最近 AI 社区很多人都在讨论 Scaling Law 是否撞墙的问题。其中,一个支持 Scaling Law 撞墙论的理由是 AI 几乎已经快要耗尽已有的高质量数据,比如有一项研究就预计,如果 LLM 保持现在的发展势头,到 2028 年左右,已有的数据储量将被全部利用完。
图源:Will we run out of data? Limits of LLM scaling based on human-generated data
卡内基・梅隆大学(CMU)和 Google DeepMind 的一篇标题为「VLM 智能体生成自己的记忆:将经验蒸馏成具身思维程序」的研究发现,通过使用低质量数据和反馈,或许能够解决这个高质量数据不足的问题。其中提出的 ICAL 可让 LLM 和 VLM 根据次优演示和人工反馈创建有效的提示词,从而改善决策并减少对专家演示的依赖。该论文是 NeurIPS 2024 的 Spotlight 论文,项目代码也已发布。
- 论文标题:VLM Agents Generate Their Own Memories: Distilling Experience into Embodied Programs of Thought
- 论文地址:https://openreview.net/pdf?id=5G7MRfPngt
- 项目地址:https://ical-learning.github.io/
- 代码地址:https://github.com/Gabesarch/ICAL
我们知道,人类具有非常出色的少样本学习能力,通过将观察到的行为与内部世界模型相结合,可以从单一任务演示快速泛化到相关的情况。人类能分辨出与成功相关或不相关的因素,并预测可能的失败。通过反复练习和反馈,人类能很快找到正确的抽象,从而帮助模仿和调整任务以适应各种情况。这个过程可促进在各种任务和环境中不断改进和迁移知识。
最近有研究探索了使用大型语言模型(LLM)和视觉 - 语言模型(VLM)来从轨迹和经验中提取高层级见解。这些见解是模型通过内省(introspection)产生的,而通过将它们附加到提示词之后,可以提升其性能 —— 这就用到了它们强大的上下文学习能力。
现有的方法通常更关注语言上的任务奖励信号、存储失败之后的人类更正、使用领域专家来人工编写或人工挑选示例(无需内省)、或使用语言来塑造策略和奖励。关键在于,这些方法通常都是基于文本的,并不包含任何视觉提示或演示,或者仅在失败的情况下使用自省,但这只是人类和机器整合经验和提取见解的几种方式之一。
而 CMU 和 DeepMind 这个研究团队的做法是:给定次优的演示和人类自然语言反馈,通过学习上下文经验抽象来让 VLM 学习解决新任务。这种方法被命名为 In-Context Abstraction Learning(ICAL),即上下文抽象学习。
上下文抽象学习究竟如何学习?
ICAL 这种方法可通过提示,让 VLM 创建用于不熟悉领域的多模态抽象。
我们知道,之前的研究工作通常仅存储和检索成功的动作规划或轨迹。但 ICAL 不一样,强调的是学习抽象(abstraction),而这种所谓的抽象实际上包含了有关任务的动态和关键知识,如图 1 所示。
具体来说,ICAL 可处理四种类型的认知抽象:
- 任务和因果关系,确定实现目标所需的基本原则或行动,以及要素如何通过因果关系相互关联;
- 对象状态的变化,描述对象将采取的各种形式或条件;
- 时间抽象,将任务分解为子目标;
- 任务建构(task construals),突出任务中的关键视觉细节。
当具有最优或次优演示时,ICAL 可通过提示 VLM 将这些演示转换为优化后的轨迹,同时创建相关的语言和视觉抽象。然后在人类的自然语言反馈的引导下,通过在环境中执行这些轨迹来优化这些抽象。
这个抽象生成过程的每一步都会使用之前推导出的抽象,让模型不仅可以提升自己的执行效果,还能提升自己的抽象能力。
图 2 给出了 ICAL 的概览。
其中,每一轮迭代都始于一个有噪声的轨迹。ICAL 会分两个阶段对其进行抽象:
- 抽象阶段(F_abstract):VLM 会借助语言评论来纠正错误,并让序列更加丰富。这一阶段处理的抽象前文已有介绍,而相关的具体提示词等请参看原论文附录部分。
- 有人类参与的阶段(human-in-the-loop,记为 F_hitl):在此阶段,序列会在环境中执行,其抽象过程由以自然语言传达的人类反馈指导。这一阶段的具体流程可分为 6 步:优化轨迹的执行、监控与干预、反馈整合与轨迹修正、环境重置与重试、成功标准与反馈限度、保存示例。具体详情请访问原论文。
在成功执行轨迹之后,它将被存档在一个持续增长的范例库中。这些范例会被用作智能体的上下文参考,用于在学习阶段和推理阶段为未曾见过的指令和环境提供参考。
总体而言,这种学习到的抽象可以总结有关动作序列、状态迁移、规则和关注区域的关键信息,并可通过自由形式的自然语言和视觉表征明确地表达出来。
学习得到 ICAL 样本之后,就可以使用检索增强式生成部署起来,用于新任务和新环境。
实验表明 ICAL 确实可行
研究者在 TEACh 和 VisualWebArena 中测试了 ICAL 的任务规划能力,并在 Ego4D 基准测试中测试其动作预测能力。其中,TEACh 针对的是家庭环境中的对话式教学,VisualWebArena 则是多模态自动化网络任务,Ego4D 则是用于视频动作预测。
首先,该团队发现,在家庭环境的指令遵循任务中,ICAL 优于固定的演示。
表 1 列出了在未曾见过的 TEACh 验证集上的研究结果,其中评估了在新指令、房屋和物体上的性能。
如图 4 所示,与模仿原始轨迹相比,ICAL 对有噪声的轨迹进行了修正,使训练任务的成功率更高,动觉演示和视觉演示的成功率分别提高了 42% 和 86%。这表明 ICAL 不仅增加了有用的抽象概念,还纠正了被动视频演示中的错误,提高了在原始演示环境中的成功率。
如表 1 所示,在未见过的任务上,ICAL 的表现优于作为上下文示例的未被处理的演示,其成功率比带有预测动作的原始演示提高了 17.9%,比带有真实动作注释的演示提高了 8.6%。这凸显了新提出的抽象方法在提高样本质量以改进上下文学习方面的有效性,这不同于之前的主要方法,即保存和检索成功的行动规划或轨迹但不进行抽象。
另外,在视觉网络任务上,ICAL 也获得了 SOTA 性能。在 VisualWebArena 上,新智能体超过了 GPT4 + Set of Marks 的组合,使用 GPT4V 时从 14.3% 提高到 22.7%,使用 GPT4o 时从 18.9% 提高到 23.4%。
在 Ego4D 设置中,ICAL 的表现优于使用思维链的少样本 GPT4V,分别将名词和动作编辑距离缩短了 6.4 和 1.7,并且与完全监督式方法相差无几 —— 但使用的领域内训练数据减少了 639 倍。
总体来说,新方法可显著减少对专家示例的依赖,并且相比于使用「缺乏此类抽象的动作规划和轨迹」的上下文学习,新方法始终更优。
此外,随着示例数量增长,ICAL 也能获得明显的提升。这表明这种新方法也能很好地 Scaling。
#LiNo
北大、港理工革新性LiNo框架:线性与非线性模式有效分离,性能全面超越Transformer
本文的通讯作者为北京大学计算机学院长聘副教授杨仝和香港理工大学助理教授王淑君。第一作者为香港理工大学 24 级博士生余国齐,以及联合作者北京大学 21 级软微学院博士生、每因智能创始人郭潇宇等。研究工作在北京大学计算机学院数据结构实验室和每因智能发起的研究课题中完成。
- 论文链接:https://arxiv.org/pdf/2410.17159
- 代码链接:https://github.com/Levi-Ackman/LiNo
时间序列数据,作为连续时间点的数据集合,广泛存在于医疗、金融、气象、交通、能源(电力、光伏等)等多个领域。有效的时间序列预测模型能够帮助我们理解数据的动态变化,预测未来趋势,从而做出更加精准的决策。然而,时间序列数据通常包含复杂的线性和非线性模式,这些模式往往相互交织 (见下图 Fig.1),给预测模型的设计和优化带来了巨大挑战。
Fig.1 现实世界的时间序列往往是多种线性和非线性的交叠。上图中红色的序列可以被表征为其下方的两种线性和两种非线性模式的加和。
现有的模型依赖于 Autoformer 中提出的基于残差的 Trend (线性) 和 seasonal (非线性) 分解 —— 先使用一个运动平均核 (Auto/FEDformer,DLinear) 或者可学习卷积 (Leddam) 来获取 Trend 项,然后使用原始序列减去 Trend 得到 Seasonal 项。但是这样只能获取简单的线性模式,而且得到的非线性模型或者说 Seasonal 项事实上是由未充分提取的线性模型,待提取的非线性模式,以及序列中的噪声所组成的,应该被称为 Residual(残差),而不是 Seasonal。
Fig.2 LiNo 在电力数据集中最后一个变量上的预测可视化,LP 指线性预测,NP 指非线性预测。左侧的 Prediction(预测值)被划分为 General 的线性和非线性预测,中间和右侧,线性和非线性预测进一步被划分为更细致的多种模式。
Fig.3 Fig2 中用于预测各个线性和非线性分量的抽象权重的可视化。可以看到每种模式的预测权重是各有差异的。
同时,观察 Fig2&3,我们可以看到线性模式更多关注序列的长期模式,而非线性更多关注短期浮动。另外,用于预测线性和非线性的权重,以及用于预测不同线性或者不同非线性的权重之间均存在差异。因此,高效地对这些线性和非线性模式进行分离,不仅可以帮助理解时间序列内部的特质,得到更具有解释性的预测结果,还能帮助我们设计更高效更鲁棒的预测算法。
正是在这样的背景下,北京大学联合香港理工大学以及每因智能的研究团队提出了 LiNo 框架。该框架通过递归残差分解(Recursive Residual Decomposition, RRD)技术,实现了对线性和非线性模式的显式提取。
Fig.4 LiNo 框架图
LiNo 框架的算法核心在于其递归残差分解(RRD)策略,该策略灵感来源于经验模态分解(Empirical Mode Decomposition, EMD)。LiNo 采用两个主要的模块:Li 块和 No 块,分别负责线性和非线性模式的提取。
- Li 块(Linear block):这一模块负责提取时间序列中的线性模式,如趋势和周期性成分。通过学习时间序列数据的自回归特性,Li 块可以捕捉长期依赖关系。Li 块可以采用移动平均核或其他线性滤波器,以捕捉数据中的线性结构。
- No 块(Nonlinear block):这一模块负责提取时间序列中的非线性模式,如突变和复杂的季节性变化。No 块可以采用 Transformer 编码器或 TSMixer 等其他非线性模型,以捕捉数据中的非线性动态。
- 通过交替和递归地应用 Li 块和 No 块,LiNo 框架能够逐步剥离并提取时间序列中的复杂模式,直到残差信号中不再包含有用的信息。在经过多个 LiNo 块的处理后,最终的预测结果是通过聚合所有 Li 块和 No 块的输出得到的。
这种方法不仅提高了模型对周期性特征的捕捉能力,而且增强了对非周期性特征的建模能力。
以下是算法的详细过程:
1.Li 块(Li Block)
Li 块的设计目的是提取时间序列中的线性模式。它通过一个可学习的自回归模型(AR)来实现,该模型具有完整的感受野,可以替代传统的移动平均(MOV)、可学习的一维卷积核(LD)和指数平滑函数(ESF)。
- 线性模式提取:
对于输入特征
,其中
,Li 块通过以下公式提取第 i 个线性模式
:
这里,
表示自回归系数,
表示偏置项。
- 卷积操作:
提取线性部分的过程可以通过卷积实现,其中卷积核的权重设置为
,偏置的权重设置为
。
- 填充和 Dropout:
在应用卷积之前,对输入特征 H_i 进行填充,以确保 H_i 和 L_i 具有相同的尺度。通过应用 Dropout 以增强模型的泛化能力。
- 线性预测:
- 通过映射提取的线性成分 L_i 得到该层的线性预测
。
2.No 块(No Block)
No 块的设计目的是同时处理时间序列中的时变模式、频率信息和序列间依赖性。
- 时变和频率模式提取:
- 通过线性投影在时域和频域提取时变模式
和频率信息模式
。
- 使用快速傅里叶变换(FFT)和逆快速傅里叶变换(IFFT)在时域和频域之间转换。
- 特征融合:
将时域和频域的特征融合并激活
。
- 序列间依赖性建模:
使用 softmax 函数对
进行通道维度的归一化,然后计算加权平均值以获得序列间依赖性信息
。
- 非线性模式整合:
将时变、频率和序列间依赖性信息整合,通过层归一化和 MLP 处理,得到整体非线性模式 N_i。
- 非线性预测:
通过映射提取的非线性部分 N_i 得到该层的非线性预测
。
3. 聚合方法
最终的预测结果是通过聚合所有 Li 块和 No 块的输出得到的:
这种方法不仅提高了模型对周期性特征的捕捉能力,而且增强了对非周期性特征的建模能力,从而在多个真实世界数据集上实现了优于现有最先进方法的性能。
在涵盖电力、金融、交通等 13 个广泛使用的真实世界数据集上,无论是单元时间序列预测还是多元时间序列预测,LiNo 均取得了优于现有最先进方法的性能,而且展现出优异的鲁棒性。
LiNO 框架在多变量时间序列预测中表现卓越(如表 1),尤其在 10 个基准数据集中的 9 个上实现了最低的 MSE 和 8 个上的最低 MAE,显著超越了包括 iTransformer 在内的先前模型。在高维度和复杂非线性的 PEMS 和 ECL 数据集上,LiNO 通过精细的非线性模式提取,平均 MSE 分别实现了 11.89% 和 7.87% 的降低。这些结果突出了 LiNO 在处理复杂时间序列数据时的高效能力,无论是在电力、交通还是金融领域,都展现了其在捕捉线性与非线性模式平衡中的重要性。
表 1 多变量时间序列预测
LiNO 框架在单变量时间序列预测任务中展现了顶尖的性能,根据表 2 的分析,它在所有 6 个数据集上都取得了最佳的预测结果。与先前的最先进方法 MICN 相比,LiNO 在六个数据集上将均方误差(MSE)降低了 19.37%,平均绝对误差(MAE)降低了 10.28%。特别是在 Weather、ETTh2 和 Traffic 数据集上,LiNO 分别实现了 47.11%、28.64% 和 12.97% 的 MSE 降低,这标志着预测精度的显著提升。LiNO 在单变量和多变量时间序列预测中的一致优越表现证明了它在不同场景下的广泛适用性。
表 2 单变量时间序列预测
LiNO 框架在单变量时间序列预测领域的表现极为出色,其设计基于 iTransformer 这一领先业界的变换器模型作为基础架构。如表 3 所示,通过与 'Raw'(传统设计)和 'Mu'(N-BEATS 中使用的递归表示分裂预测设计)的比较,LiNO 在 ETTm2、ECL 和 Weather 数据集上实现了 2.96%、6.34% 和 6.72% 的 MSE 降低,这一成就凸显了其在有效分离和处理线性与非线性模式方面的高效率。此外,LiNO 在面临不同噪声水平的挑战时,依然展现出了卓越的鲁棒性和可靠性,如图 5 所示,这不仅验证了其设计的稳健性,也进一步证实了在时间序列预测模型中区分线性与非线性模式对于提升预测鲁棒性的重要性。
表 3 LiNo 框架对 iTransformer Backbone 的预测精度提升
Fig 5 LiNo 框架对 iTransformer Backbone 的鲁棒性提升
LiNo 框架的提出,不仅推动了时间序列预测技术的发展,也为设计更有效、更鲁棒,更具有解释性的预测模型提供了新的思路和工具。
#CAD-GPT
多模态大语言模型空间智能新探索:仅需单张图片或一句话,就可以精准生成3D建模代码啦!
本文的主要作者来自上海交通大学电子信息与电气工程学院 i-WiN 中心团队,团队负责人是上海交通大学讲席教授关新平。本文的第一作者为上海交通大学博士生王思宇,研究方向涉及多模态大模型、大模型的可靠生成及其工业应用。本文的通讯作者和主要指导老师为i-WiN中心陈彩莲教授、乐心怡副教授和许齐敏副研究员。
计算机辅助设计(CAD)已经成为许多行业设计、绘图和建模的标准方法。如今,几乎每一个制造出来的物体都是从参数化 CAD 建模开始的。CAD 构造序列是 CAD 模型表示的一种类型,不同于 Mesh 类型的三角网格、B-rep 格式的点、线、面表示,它被描述为一系列建模操作,包括确定草图 3D 起点和 3D 草图平面方向、绘制 2D 草图、将草图拉伸成 3D 实体形状的完整参数和过程,以 JSON 代码格式储存和表示。这类表示方法与专业建模工程师构建 CAD 模型的过程最为近似,可以直接被导入 AutoDesk、 ProE 等建模软件。构建这些 CAD 模型需要领域专业知识和空间推理能力,也需要较高的学习成本。
图 1. CAD 建模代码示意图
作为空间智能的关键能力之一,空间建模能力对 MLLM 提出了严峻的挑战。尽管 MLLM 在生成 2D 网页布局代码等方面展现出了卓越的性能,这类方法在 3D 建模领域仍然存在问题,比如生成 4 个平行于车底方向车轮的小车。这是因为 MLLM 在推理 3D 草图角度和 3D 空间位置时受限于大语言模型的 1D 推理惯性,难以理解复杂数字背后真正的空间含义。
图 2. 原始多模态大模型 3D 建模效果差原因分析
近期,来自上海交通大学的 i-WiN 研究团队提出了专门用于 CAD 建模的多模态大语言模型 CAD-GPT,结合专门设计的 3D 建模空间定位机制,将 3D 参数映射到 1D 语言信息维度,提高了 MLLM 的空间推理能力,实现了基于单张图片或一句话描述的精准 CAD 建模构造序列生成。该项研究以《CAD-GPT: Synthesising CAD Construction Sequence with Spatial Reasoning-Enhanced Multimodal LLMs》为题,被 AAAI 2025 接收。
- 论文标题:CAD-GPT: Synthesising CAD Construction Sequence with Spatial Reasoning-Enhanced Multimodal LLMs
- 论文地址:https://arxiv.org/abs/2412.19663
- 项目地址:https://OpenIWIN.github.io/CAD-GPT/
方法介绍
3D 建模空间定位机制
我们把关键的 3D、2D 建模参数定义为大语言模型可以理解的建模语言,便于大模型理解和生成。具体来说,设计了 3 个系列的定位 token 来代替 3D 草图平面起点坐标、3D 草图平面角度和 2D 草图曲线坐标的参数。通过将全局空间 3D 坐标、草图平面 3D 旋转角度的特征展开到一维语言特征空间,将它们转换为两类不同的 1D 位置 tokens。此外,2D 草图被离散化并转换为特殊的 2D token。这些 token 被合并到原始 LLM 词表中。同时,纳入了 3 类适配 3 种 token 的自定义可学习的位置嵌入,以弥合语言和空间位置之间的差距。
数据集构建
基于 DeepCAD 数据集,生成了 160k 固定视角渲染的 CAD 模型图像和 18k 相应的自然语言描述数据集,构建专门用于训练多模态大语言模型的 CAD 建模数据集,便于后续其他工作训练大模型生成 CAD 模型建模序列。
训练策略与细节
我们采用 LLaVA - 1.5 7B 版本作为基础模型。训练包括两个阶段:首先在 image2CAD 任务上进行训练,然后在 text2CAD 任务上降低学习率进行微调。此外,因 CAD 建模序列长度较长,我们基于外推法,通过超参调整,扩展 LLM 的窗口长度到 8192。
图 3. CAD-GPT 原理框架图
实验效果展示
图 4. CAD-GPT 生成的各种 CAD 模型展示
图 4 中的模型展示了包含精准语义草图生成能力(如心形和字母 “E”)、带有类别的 CAD 生成能力(如桌子、椅子和钥匙)、空间推理能力(如桌子和相互垂直的圆柱体),以及生成不同尺寸的相同模型的能力(如三个有两个圆孔的不同尺寸连接器)。
基于单张图片的生成效果
将 CAD-GPT 与三种代表性方法进行了比较。第一个是 DeepCAD,它演示了 CAD 建模中的先进生成技术。第二个是 GPT-4,代表了闭源多模态大型模型的前沿。第三个是 Qwen2-VL-Max,这是领先的开源多模态大型模型之一。相比之下,CAD-GPT 产生的输出既准确又美观。
图 5. 基于图片的 CAD 生成效果对比
基于一句话描述生成效果展示
本文选择了两个有代表性的大型语言模型:领先的闭源模型 GPT-4 和最先进的开源模型 LLaMA-3.1(405B)。如图 6 所示,我们的模型始终生成高精度、美观的输出,并且展示出了与文本描述对应的语义信息。
图 6. 基于文本描述的 CAD 生成效果对比
消融实验
图 7 展示了是否添加 3D 建模空间定位机制训练模型的差异。如图所示,添加定位机制后,CAD-GPT 可以精准的推理空间角度、位置变化,以及生成准确的 2D 草图。
图 7. 消融实验效果展示
总结
本文提出 CAD-GPT,一种具有三维建模空间定位机制的多模态大模型,以提高空间推理能力。所提出模型擅长推断草图 3D 方向的变化、3D 空间位置的变化,并准确渲染 2D 草图。利用这些功能,CAD-GPT 在单张图像和文本输入条件下生成精确 CAD 模型方面表现出卓越的性能。
#全面认知视觉大语言模型
1. 架构总览
vLLM python 工程目录
如图标出的文件是vLLM python侧的工程目录中核心的组件,按照层次间的依赖关系,可以大致拆解为如下结构:
LLM 类为顶层用户应用, LLM 类控制 LLM Engine类 负责总管推理全流程,LLM Engine中包含 Scheduler 类和 Worker类。Scheduler 负责调度不同request,保证vLLM中的Cache Block资源足够现有的请求完成执行,否则对现有的request进行抢占。Scheduler 类 控制 Block Manager 来管理 Phyical Token Block。Worker 负责模型载入、模型执行,对于分布式推理,则通过创建多个worker在执行完整模型的一部分(Tensor Parallel)。其中Cache Engine 管理CPU/GPU上完整的KV Cache Tensor,执行Scheduler 调度的request的block数据搬运。Model Runner 拥有实际执行的Model 实例,并负责进行数据的pre-process/ post-process 及sampling。
vLLM架构总览
【更新】vLLM 代码进行了重构,和我之前看的code base有一些差异
commit:cc74b vllm架构
整体的架构与之前的改动不大,在Worker之上新增了Executor类的抽象,用于管理不同后端的device如 CPU、GPU、NPU、分布式GPU后端,根据不同的device 派生了特定的Executor、Worker、Model Runner。
2.Scheduler
Scheduler 的调度行为发生在每一个LLM Engine执行step 推理的最初。负责准备这一次step执行推理的SentenceGroup。Scheduler 负责管理3个队列 running waiting swapped,waitting 队伍内的元素为首次prompt phase或preempt recompute,swapped队伍中的元素从running中被抢占换出的,都处于decode phase。每当LLM Engine 添加一个新的request,Scheduler会把新的request创建的SentenceGroup 入队waiting。
Scheduler 每一次调度保证这一次step的数据全部是prompt(prefill) phase或全部是decode(auto-regressive) phase。核心的函数为_scheduler():函数中存在3个临时队列 scheduled、new running、 preempt
scheduler 核心调度
【prompt phase】(调度waiting)首先判断swapped队列是否为空,若为空则表示没有更早的未完成的request,则把waiting队列中的元素出队加入scheduled队列,直至超过block分配上限或vLLM系统最大seq 上限。_scheduler()返回scheduled队列
【decoding phase】:
如swapped不为空,则优先处理之前换出的请求。(调度running)首先对running中的请求依照FCFS的policy进行排序,decoding phase SentenceGroup 中的所有的Sentence由于sampling可能会产生不同的output token,需要对每个Sentence分配不同的新的slot存储新的token。若现有的free block不能满足为所有的Sentence,则running 队尾的sentence 被抢占出队加入preempt队列[recompute mode 则加入waitting 队列并释放block, swap mode 则加入swapped队列 并swap-out block],直至能够为running 队首的所有的sentence分配block,并将队首的元素出队加入new running。(调度swapped)再对swapped队列依照FCFS的policy进行排序,若preempt不为空,说明block资源紧张,_scheduler()直接返回 new running 和swap-out block索引。若preempt为空,block资源可能有富余,则尝试循环将swapped 队首的元素swap-in,若成功则加入new running,否则直接返回 new running 和swap-in 索引。
【Scheduler更新】commit:cc74b 的code base下,Scheduler 默认的调度逻辑(_schedule_default)基本不边,还是和上文描述的一致,保证本次调度的SetenceGroup全部是prompt phase或decode phase,只不过从完整的_scheduler() 函数对running waiting swapped 调度重构拆分为3个细粒度的函数_schedule_prefills、_schedule_running、_schedule_swapped。
此外Scheduler还新增了一种新的调度策略(_schedule_chunked_prefill),新的策略支持本次调度的SentenceGroup同时进行prompt phase和decode phase,能尽可能提高单次matmul的weight 搬运的利用率,提高request并行度以提高tps吞吐。该策略的主要流程是:先执行_schedule_running,保证running 队列中decode phase 的高优先级SentenceGroup 有足够的block给每个Sentence生成新的output token,否则preempt running队列中低优先级SentenceGroup。在执行_schedule_swapped,把满足free block资源的swapped SentenceGroup swap-in。最后执行_schedule_prefills,把waiting 队首的SentenceGroup调度直至超出block分配上限。把running、swapped、waiting 成功调度的请求组成新的running 队列输出。需要注意由于running队列中的SentenceGroup会处于prompt phase或decode phase,需要标记每个SentenceGroup所处的阶段,在执行Attention的时候会把prompt phase 和decode phase分开进行执行。
Attention 类对不同Scheduler 模式的处理
不同阶段的Seq分别计算Attention Kernel
vLLM的代码库有几个礼拜没更新,发现很多地方已经重构了,尴尬。。。
之后再更新存储管理和page attention相关 kernel解析。
#大模型六小虎和四大厂的2024
2024年国内大模型领域的主要进展。
2024最后一天,总是要写一写总结的。但大家都清楚,大模型相较于2023年来看,虽然模型的参数规模没有卷大太多,但火爆的创新却相较一年前有了从0到1的跨越。
今年既可以说是“大模型稳健前行”的一年,也可以说是“大模型落地探索”的元年。这两个维度少一个维度去讲,都不太完整。
所以索性,小编直接不从这两个维度入手,简单粗暴地先为大家梳理那些“理想丰满、现实骨感”的瞬间,再将一众科技巨头和创业者们的成绩单(和感悟)整理在此,以供诸位阅读。
“出道即巅峰”,打脸才是常态
1、英伟达逆袭成“斗帝”,B200是大招(不过产量低)
在大模型这片斗气大陆上,强者为尊。英伟达作为旱涝无忧的新晋斗帝,吸金能力足以撼动半个地球,市值一路从2022 年的3640 亿美元到2023年的年中的1万亿美元,再到如今的3.43万亿美元。然而恐怖如斯的GPU霸主,同样也有打脸的瞬间。
3月19日深夜,GTC全场高潮迭起,黄仁勋“轻咬着舌头、左手一个H100,右手一个B200”的照片,纷纷成为了业界媒体新闻的封面热图。Blackwell芯片作为黄教主预告的最强芯片,可谓吊足了全世界的胃口,包括一众投资人的预期,外界感叹:“太强了,抄无可抄!”
但可惜,临近年底,英伟达三季度财报公布前,就曝出了英伟达B200芯片因芯片设计缺陷不得不将Blackwell架构芯片的生产和交付推迟了至少一个季度的消息。
小编语:打脸肯定是打脸!但不耽误B200作为最强的GPU算力存在,没有一开始就完美的产品,英伟达也不例外!在探索中打脸本就是个常态。
2、一款小玩意,卖疯了,但很快被证伪。。。
新年伊始,1月中旬,一款口袋大小的橙色小设备,Rabbit R1迅速走红网络,这款设备在正式发布后的24小时内售出了10,000台,售罄。
这小东西外观大小如同“小霸王”掌中机,触摸屏、旋转式摄像头、滚动轮。然而指令上,优先考虑直观的手势和语音命令,而不是键盘和菜单。
该设备最大的亮点在于内置“大型操作模型(Large Action Model,LAM)”,堪称“万能应用控制器”,无需使用手机,就能集播放音乐、购物、发信息等多种功能于一身,甚至还能训练它学习操作特定应用。
不过,Rabbit R1很快就被用户反馈出不少毛病,虽然没有像老对手“AI Pin”那样乌泱泱地被退货,但也给现在做AI硬件的人提了醒:
一、被用户指责:买来基本没啥用,因为它能做事情,在安卓上同样能做,何苦交这个智商税。二、Rabbit R1 作为用户的个人助理,必然涉及到用户的敏感个人信息,而 Rabbitude 团队最新研究表明其 API 存在安全漏洞,导致用户数据泄露。
小编语:做AI产品,idea也许可以让你一夜爆红,但事实证明:“实用+安全”才是硬通货。
国内模型创业者们:努力留在牌桌上
1、下沉:中国大模型备案多达252款,超一半下沉到行业
大模型世界中,开宗立派的强者如林,截止到11月17日,网信办公开的通过备案的大模型就多达252款。较去年年底,猛增了190款。
这190款中,其实行业大模型数量多达145个,占比高达76%,主要是教育、文化娱乐两大核心场景。
而在去年,行业模型的占比仅为55%。上半年,总有103个大模型完成备案,其中1月、3月、5月的模型备案数量均超过20个;下半年,大模型备案数量为87个,其中10月更是备案数量更是创出历史新高,达到31家。
这与全球大模型的发展趋势有很大不同。根据lifearchitect.ai数据,今年2月,全球发布新模型的数量达到28个,达到历史最高峰。随后这个数字开始持续下滑,10月单月全球新模型的数量只有12个,这也是2023年上半年的水平。
小编语:145家行业大模型通过备案,说明了国内对于“让大模型下沉干实事
”是达成了事实上的共识,只是入场者需要注意到模型发展会慢慢进入饱和期,从全球模型发布数量以明显减少的趋势看,一定要注意:2025将会是一场大考,活下去才是关键。
2、活下去:六小虎定位愈发清晰,努力留在牌桌上
在大模型创业领域,各家公司定位和融资情况各异。先来看国内六小虎的一年:
- 智谱AI以To B定位,今年完成两轮融资,商业化收入增长超过100%。
- 月之暗面聚焦长文本领域,今年完成超十亿美金融资,估值达25亿美金。值得一提的是,kimi在月活表现上仅次于字节豆包,10月就达到了3600万。
- Minimax在C端应用上取得成功,今年ARR收入或达7000万美金,完成6亿美元B轮融资。
- 百川智能明确AI应用场景,完成A轮融资,估值200亿元。
- 零一万物经历高管团队动荡,但发布千亿参数模型,完成数亿美元融资。
- 阶跃星辰坚持AGI目标,12月完成数亿美元融资。
其他玩家也有取得不错的成绩。面壁智能作为端侧大模型玩家,完成数亿元融资;生数科技和爱诗科技在AI视频生成领域表现突出,爱诗科技完成近3亿元人民币融资。这些公司在大模型领域各有侧重,融资情况显示出市场对其技术和商业前景的认可。
小编语:大模型创业公司本身的进入门槛就很高,即便是已经成为独角兽估值的创业公司,也需要持续的融资才能在愈发激烈的竞争环境中找到属于自己的PMF。努力活下去,2025才是一场生死大考。
3、开源:资源限制倒逼出国产之光反超Llama
12月26日晚,中国OSS界的新星DeepSeek开源了其最新研发的前沿模型V3,根据公布的性能基准测试,DeepSeek-V3在众多其他开闭源模型中脱颖而出,表现优于Meta的旗舰产品——拥有4050亿个参数的Llama 3.1模型。“综合评估表明,DeepSeek-V3已成为当前可用的最强开源模型,其性能可与GPT-4o和Claude-3.5-Sonnet等领先的闭源模型相媲美。”
还有一点被人们津津乐道:2个月、2000张H800卡,就搞出了GPT-4o级别的模型。
小编语:如果说闭源是天花板,那么让GPT4o人人都能掌握、用得上的还得是开源。另外,开源也许不会是最顶尖的存在,但是会让大模型领域“书同文,车同轨,量同衡,行同伦”的必然之选。学术界、工程界需要这样的开源技术才能有共同交流进步的基础;此外,资源虽然可以限制想象,但同样也可以倒逼我们重塑自身。
国内大厂的大模型成绩单
国内几家大厂在AI大模型和产品领域各有侧重,百度和阿里在模型侧和应用场景上表现突出,腾讯在多模态能力上有所建树,而字节跳动则在应用端和智能硬件上展现出强劲的增长势头。
在大模型和产品领域,可以看到几家各自都有自己的年度kpi:
1. 百度文心一言:日均模型调用量15亿,用户规模4.3亿
百度作为早期入局AI大模型的互联网大厂,其文心大模型矩阵包括ERNIE 4.0 Turbo等旗舰大模型和轻量模型,日均调用量超15亿,用户规模达到4.3亿。
产品侧,文心一言App升级为“文小言”,定位“新搜索”智能助手,月活跃用户达到千万级别,累计调用量超过20亿次。
百度强调知识增强、检索增强及智能体技术,发布检索增强的文生图技术iRAG和多智能体应用秒哒和文心快码。
2. 阿里通义千问:将开源进行到底,夸克称AI搜索一霸
阿里云发布通义千问新一代开源模型Qwen2.5,性能超越Llama 405B,覆盖全场景,累计上架超100个模型,下载量突破4000万。
夸克作为“AI全能助手”,重点升级AI搜索、AI写作等功能,存量用户与AI应用用户画像高度吻合,是阿里AI战略的重要看点。
3. 腾讯混元:发力多模态,类Sora视频模型开源
腾讯混元在基座模型和产品应用上相对掉队,但多模态能力是亮点,特别是在视频生成领域。
腾讯混元大模型宣布正式上线视频生成能力,并开源130亿参数量视频生成大模型,是当前最大的视频开源模型。
4. 字节豆包:日活750万,断层领先,产品全系覆盖
字节跳动豆包系列已包含多种模型,覆盖文本、语音、图片及视频等多模态能力,近期加强视频识别与理解能力。
豆包大模型日均tokens使用量超过4万亿,豆包App日活达760万,成为日活断层领先的AI应用。
字节跳动打造了自己的AI应用舰队,覆盖AIGC、Agent等主流方向,并在AI耳机、AI眼镜等智能硬件上蓄势待发。
小编语:国内互联网大厂肯定希望用大模型的人多起来,但肯定也希望从中获得相应的业务增长。有人说百度再一次起大早赶晚集,字节算是最舍得投入的公司,但这往往取决于各大厂对于在大模型的“斗气大陆”中选择的哪一系的修炼方向。百度偏向深入企业端,字节要在C端击穿用户场景。腾讯目前看,应该还在打磨killer App,阿里同样也在重新布局中寻找AI时代的最强场景。
值得关注的几个方向
1、FSD全自动驾驶:马斯克跑通大模型Robotaxi
10月11日,马斯克在“载入人类史册”的发布会现场搭乘着完全无人驾驶的Robotaxi进入发布会现场,现场一阵欢呼!这一幕值得铭记。
这辆Cybercab极简的设计,强调了未来感。这是一辆没有方向盘、踏板和侧后视镜的车辆。当然这并不是重点,重点是这辆车的成本极低,马斯克表示,一定能把价格打下来:Cybercab的自动驾驶成本,会随着大规模的投产而持续降低,目标是从目前的每英里1美元,降低至0.2美元。
据悉,Cybercab将完全依赖特斯拉的全自动驾驶(FSD)软件、不排除是摄像头甚至是激光雷达的可能、交互则可能主要依赖Robotaxi APP。
也就是说,技术路线已经被马斯克验证跑通。马斯克所说的用无人驾驶来提高车的使用时长这一点也就行得通了。
,时长02:13
小编语:这也就不难理解,雷军和理想现在都不约而同的要实现“人车家”或者“硅基家人”,本质上都是要通过入局大模型,实现L4级的无人驾驶!
2、机器人or狗?
机器人赛道,同样是一个天然和大模型相匹配的赛道。而且业内已经验证了可行性,高端的有特斯拉在10月“We Robot”活动上亮相的擎天柱,推出了第三代机械手,有22个自由度,堪称霸榜。波士顿作为老玩家,e-Altas可以解锁很多疯狂的体操动作,实现360度的关节运转。量产方面,傅氏智能的GR-1是少有的实现1000台规模的大规模量产型号。此外,还有放生肌肉和肌腱设计的机器人开始涌现。
除了高端的赛道,廉价的家用机器人或机器狗,也开始得到业界的关注。这一类机器人比汽车便宜,可扩展性强,不难想象未来中产阶层都可以人手一台拉拉风。最近就有宇树科技B2-W四轮机器狗,翻山越岭过江,搭载主人如履平地,机动性远超现实世界的牛马。另外还有适合家居的斯坦福机器人ALOHA,两个夹爪可完成煎蛋、折叠衣物等复杂动作,价位也非常便宜。
小编语:人形机器人和机器狗看似两个方向,但最后都是为了节省人的时间,小编不相信大家会买来一台把它当拉风的工具或者宠物来炫耀。如果要进军这两条赛道,入门的话可以看看开源的机器人设计方案,但切记:据小编线下了解,这个赛道水同样很深,大模型、算法反而不是什么壁垒,壁垒更多在于算法之外的东西。
3、视频生成和世界建模
之所以最后提视频生成和世界建模,是因为小编想要闭环到最开始那个“出道即巅峰”的段落。
2024新春伊始,Sora横空引爆整个业界对于AGI的想象,然而最终一直拖到12月才发布。作为同类产品中第一个高分辨率长视频的生成产品,起大早赶晚集总是会让人们产生祛魅之意。不过,是Sora给业界带来了“文本调节的视觉世界模拟”的可能,更关键的是,这个模型还可以通过一些去燥和提督学习来学习更复杂的渲染和直观的物理模拟。
,时长00:59
此外,谷歌在这方面反而是推出了更精确的物理和细粒度的物体动力学的产品发布Veo。
值得关注的一个方向是,行动驱动的世界模型,比如GameGen、Genie-2等可以在扩散模型内使用操纵杆控制运行更多的游戏。
再有,就是华人大佬李飞飞领导创建的Worldlabs,非常有看头:它具有很强的几何一致性,一张图可以生成一整个3D世界,应用前景十分广阔。
,时长00:10
写在最后
2024,发生了太多值得回忆总结的内容,还有很多没有提及,比如OpenAI带头让强化学习回归到AGI的Scaling Law中来,再比如谷歌的量子芯片。大模型时代刚刚2年,就已经从底层到应用层涌现出了这么多令人难以置信的创新。
但小编想说的是,强如英伟达、OpenAI、苹果同样也会有在创新中打脸折戟的时刻,这是一个新时代从萌芽到繁荣的必经之路。这一过程也许不会像《黑神话悟空》那样打妖王升装备那么酣畅淋漓,但肯定的一点是:现实比游戏更为精彩,创业者努力前行,好产品终会到来!
共勉,敬每一位2025的坚持者!新年快乐!
#The One RING
华盛顿大学最新!一个策略搞定所有机器人室内导航
现代机器人在形状、尺寸以及用于感知和与环境交互的传感器配置上差异显著。然而,大多数导航策略都是针对特定机器人实体的;在一个机器人配置上学习的策略通常无法优雅地泛化到另一个机器人上。即使机器人实体的尺寸或摄像头视角发生微小变化,也可能导致导航失败。随着近年来定制硬件开发的激增,有必要学习一种可以迁移到其他机器人实体的单一策略,从而消除为每个特定机器人(重新)训练的需求。我们这里介绍了RING(Robotic Indoor Navigation Generalist,机器人室内导航通用系统),这是一种与机器人实体无关的策略,仅通过在大量具有不同随机初始化实体的模拟环境中进行训练而得出。这里增强了AI2-THOR模拟器的能力,使其能够实例化具有可控配置的机器人实体,这些配置在机器人尺寸、旋转中心点以及摄像头配置上各不相同。在视觉对象目标导航任务中,RING在真实环境中未见过的机器人平台(Stretch RE-1、LoCoBot、Unitree的Go1)上表现稳健,在模拟环境中的5个实体和真实世界中的4个机器人平台上分别实现了72.1%和78.9%的平均成功率。
行业介绍
机器人实体形态多样且不断进化,以更好地适应新环境和新任务。这种身体配置的多样性:包括尺寸、形状、轮式或腿式移动方式以及传感器配置的差异。这不仅决定了机器人如何感知世界,还决定了它们如何在世界中行动。具有宽视场(FoV)或多个相机的机器人可以快速扫描周围环境,而视野较窄的机器人可能需要更积极地探索房间。小型机器人可以穿过狭窄的空间,低矮的机器人可以躲在家具下方,而大型机器人可能需要遵循更保守的路线。实体对行为的影响意味着,针对一种甚至多种设计训练的策略,在领域外往往表现不佳。
当下在可扩展的跨实体训练和通用导航策略开发方面已取得了一些进展,虽然这些方法在某些未见过的实体上表现出一定的迁移能力,但它们需要构建拓扑地图或图,并且在实体发生相对较小变化(例如,同一机器人的摄像头位置调整)时性能会下降。这可能是由于这些方法依赖于公共数据集中可用的少量现实世界数据,总数仅约20个实体。这凸显了需要一种更全面的解决方案,该方案能够可靠地覆盖各种可能的实体,而无需重新训练或额外的适应。
这里介绍了RING,一个机器人室内导航通用系统。RING完全在模拟环境中进行训练,没有使用任何真实的机器人实体。换句话说,在评估时所使用的所有机器人平台(即Stretch RE-1、LoCoBot、Unitree的A1)在RING的训练过程中都是未见过的。利用模拟环境随机采样了100万个智能体身体配置,这些配置在机器人的摄像头参数、碰撞体大小和旋转中心上有所不同。每个实体由一个尺寸不同的碰撞盒以及随机视野和尺寸的摄像头组成,这些摄像头被随机放置在碰撞盒内。图1-A展示了我们在生成数据中3万个随机智能体的身体参数的t-SNE 可视化图。
我们的方法受到了最近在仅在大规模模拟环境中训练就能在真实世界实验中取得成功的启发。模拟训练能够充分利用AI2-THOR模拟器中庞大的场景(150,000个ProcTHOR房屋)和物体(来自Objaverse的40,000多个标注的3D物体)。通过对视觉观测进行广泛的域随机化并使用预训练的视觉编码器,使得在模拟环境中训练的策略能够弥合模拟与现实的差距。遵循FLaRe 中概述的训练程序,首先在从100万个随机实体中收集的专家轨迹上训练我们的策略,然后在模拟器内通过基于策略的强化学习(RL)对其进行微调。
结果表明,RING能够泛化到真正未见过的实体形态。尽管RING仅在模拟环境中进行训练,且无法访问真实的机器人配置,但它能够泛化到多种真实的机器人实体形态,而无需任何适应。在多种实体形态下,包括Stretch RE1、LoCoBot、Unitree的A1,甚至是“导航助手”(其中人类用户通过手机捕捉以ego为中心的观测,并提示RING策略预测导航动作)的零样本设置下评估了策略。RING在模拟环境和真实环境中均取得了平均72.1%和78.9%的成功率,显著优于最佳基线。
这里强调了RING的三个关键特性:1)它能够在未见过的实体形态上实现零样本泛化,并保持一致的高性能;2)它能够无需任何适应或针对真实世界的微调,即可实现零样本迁移到真实世界;3)通过极少的微调,它可以适应特定实体的策略,并获得更好的性能;4)在推理时,它能够根据实体形态动态调整其行为。RING可以直接部署到任何机器人平台上进行导航,安装简便,社区内的研究人员即可直接使用。后续将发布预训练模型、生成的数据和训练代码。
相关工作汇总
跨具身性。跨具身性训练已经引起了研究界的大量关注。可以说,Open-X-Embodiment(OXE)是近期大量研究工作中最具代表性的成果之一。OXE是多方合作努力的结晶,旨在涵盖多种机器人任务,特别是操作任务。与RT-2[5]相比,OXE在RT-X中的使用在突发技能评估中带来了显著的性能提升。尽管其数据集包含了22种具身形态中的150万条轨迹,但现实世界中数据收集的巨大成本使得进一步扩展变得具有挑战性。
CrossFormer在30个机器人的90万条轨迹上训练了一个基于Transformer的策略,其中包括OXE的一个子集、来自GNM的导航数据、来自DROID的操作数据以及其他收集的数据。由于训练期间观察到的具身形态数量相对较少,且目标为低级控制,因此它无法泛化到未见过的具身形态。GET-zero专注于灵巧操作,并提议通过连接图将具身形态的结构告知策略,以引导注意力。相比之下,我们为训练策略生成了任意数量的具身形态,使得能够在不访问具身形态结构的情况下,实现向新具身形态的零样本部署。
基础导航策略。随着近期在点目标导航、运动、敏捷控制、探索和social导航等领域取得的进展,由于在有效探索和语义理解能力方面的欠缺,在语义或目标物体导航(ObjectNav)等更细致的任务中取得可比结果仍然难以实现。最近,借助强大的预训练基础视觉模型和大规模程序生成的虚拟环境,通过从最短路径轨迹进行模仿学习(IL)、强化学习(RL)或其组合,在特定具身形态上的端到端ObjectNav策略学习方面取得了显著进展。在图像目标导航方面,NoMaD扩展了ViNT,使用扩散策略来控制单一具身形态。本着同样的目标,GNM使用模仿学习在6种具身形态上训练导航策略。相比之下,我们的策略通过强化学习的微调而受益,提高了对累积错误的抵抗力。此外,由于在模拟中使用了大规模随机化的具身形态进行训练,RING学会了一个能够导航任何具身形态的单一策略,并能够泛化到现实世界中真正未见过的机器人平台。此外,NoMaD、ViNT、GNM和Mobility VLA都需要进行拓扑地图或图重构以进行高级规划,而我们的策略是完全端到端的,能够在没有显式地图的情况下探索新场景。虽然有几项研究致力于使用大型语言模型(LLMs)或视觉语言模型(VLMs)来学习与具身形态无关的策略,但它们仅解决短期导航任务并进行单步预测。相比之下,RING通过Transformer解码器对时间信息进行建模。
RING方法介绍
随着研究实验室和现实世界应用中使用的机器人日益多样化,仍然需要一种能够操作各种具身形态并以零次或少数几次学习的方式迁移到未见过的机器人的策略。这里介绍了RING,一种用于室内视觉导航的通用策略,它能够从广泛的具身形态中学习,并且完全在模拟环境中进行训练,无需直接使用实际的机器人具身形态。我们证明,在大约100万种随机具身形态上进行训练可以产生稳健的导航策略,从而实现向未见过的现实世界机器人具身形态的零次迁移。为了训练RING,定义了随机具身形态的空间,使模拟环境中能够生成随机具身形态的专家轨迹,并使用最先进的架构设计结合模仿学习(IL)和强化学习(RL)方法进行训练。
问题表述
跨多个具身形态学习导航策略是一个多任务机器人问题。我们将可能的具身形态的空间定义为E,其中每个具身形态e ∈ E由其配置向量表征,该向量包括诸如相机设置、agent碰撞器大小、旋转中心等参数。每个任务都可以建模为部分可观察马尔可夫决策过程(POMDP),表示为,其中S和A分别是状态和动作空间。由于相机参数和传感器配置的差异,观察空间在不同的具身形态之间会有所不同。对于具身形态e在时间t的观察,它是状态和具身形态参数的函数。给定动作at,下一个状态遵循转移动态,这取决于具身形态,因为不同的具身形态以不同的方式与环境交互(由于碰撞器大小和旋转中心的差异)。图2显示了从两个不同具身形态开始的示例轨迹,它们从同一位置出发并遵循相同的动作序列。它们具有不同的视觉观察并遵循不同的转移动态:一个agent在桌子下移动,而另一个则与桌子发生碰撞。除非另有说明,我们假设所有具身形态共享相同的离散动作空间{MoveBase(±20cm), RotateBase(±6°, ±30°), Done},并在部署期间使用特定于机器人的低级控制器来执行这些动作。
大规模具身形态随机化
领域随机化是一类方法,其中策略是在广泛的模拟环境参数范围内进行训练的;其目标是使策略对未见过的环境具有鲁棒性。我们的方法是补充性的,但又是正交的;应用具身形态随机化,在多种机器人机体参数上训练策略,从而能够稳健地部署到未见过的真实世界机器人上。
在AI2-THOR模拟器中,将agent的机体建模为一个不可见的碰撞盒。每个agent可以在碰撞盒内以随机姿态放置1个或2个RGB相机。与机体和相机相对应的参数是从表1中指定的范围内随机采样的。我们还修改了生成专家轨迹的过程,以考虑具身形态的多样性。
下面详细说明在具身形态随机化中变化的参数。碰撞盒尺寸(αx, αy, αz)。agent的机体被建模为一个碰撞盒。我们使用三个缩放因子(αx, αy, αz)来沿x、y、z轴缩放碰撞盒。从范围[0.2, 0.5]m中均匀采样αx和αy,并从范围[0.3, 1.5]m中采样αz(agent的高度)。这些范围充分捕捉了大多数机器人之间的变异性。
旋转中心(ox, oy, oz)。这些坐标定义了agent的旋转中心点。虽然这个中心通常靠近(0,0),但在不同的机器人上可能会有所不同。从范围[−αx/3, αx/3]中采样ox,从范围[−αy/3, αy/3]中采样oy,采样范围由碰撞盒尺寸决定。
相机参数。每个agent都配备有两个放置在碰撞盒内的RGB相机。随机化了几个相机参数,包括位置、旋转、视野(FoV)和纵横比。这些参数的采样范围如表1所示。虽然第一个相机始终面向前方,但第二个相机可以在z轴上旋转多达360度,使其能够面向前方、侧面或后方。
为了可视化目的,为每个具身形态定义了一个19维的具身形态配置向量,用于表示相机和机体参数。图1-A展示了我们对30,000个随机具身形态的向量进行了t-SNE可视化,同时还展示了Stretch RE-1、LoCoBot和Unitree A1的相应向量。图中还包括了来自第一个相机的10个随机具身形态和这三个机器人的第一人称视角视图。这证明了随机化涵盖了广泛的可能具身形态,涵盖了感兴趣的真实世界机器人平台。总共在50,000栋房屋中收集了100万条轨迹,每栋房屋都有一个随机采样的具身形态。
结构说明
拥有这个丰富的随机具身形态专家轨迹数据集,一个深度且高容量的架构对于学习稳健的策略至关重要。如图3所示,在每个时间步,RING使用N张RGB图像(每个相机一张)和语言指令l来预测离散动作空间上的动作分布。为了考虑不同的维度,在将RGB观测值输入模型之前,会将其填充为正方形并调整为256 × 256的大小。RING的架构受PoliFormer启发,包括一个视觉编码器、一个目标编码器、一个Transformer状态编码器和一个具有线性actor-critic head的因果Transformer解码器。视觉编码器和目标编码器是冻结的预训练模型(分别是ViT和语言模型),它们将RGB观测值和指令l编码为视觉和目标token嵌入。这些嵌入的投影以及一个特殊的STATE token向量沿着token轴堆叠,并通过多层Transformer状态编码器进行处理,该编码器将每个时间步的观测值总结为与STATE token相对应的状态嵌入。最后,因果Transformer解码器在时间上进行显式记忆建模,通过对沿着时间轴堆叠的状态嵌入进行因果注意力操作来生成当前belief。线性actor-critic Head进一步预测动作空间上的动作对数几率以及价值估计。
训练范式
最近,SPOC表明,在模拟中对大规模专家轨迹进行行为克隆(Behavior Cloning)训练得到的策略,能够有效地泛化到真实世界中。FLaRe进一步介绍了一种鲁棒且可扩展的方法,用于通过在线策略强化学习(On-policy Reinforcement Learning)微调这些预训练策略。强化学习微调引入了错误恢复行为,并缓解了模仿学习中通常遇到的累积错误,从而显著提升了性能。我们采用了相同的策略:首先,在从随机具身形态收集的专家轨迹上预训练我们的策略,然后,使用AI2-THOR模拟器中的随机具身形态,通过在线策略强化学习进行微调。
大规模随机具身形态的模仿学习。在每个时间步,因果Transformer解码器中的线性actor-critic Head预测动作对数几率。我们计算对数几率π和专家动作之间的交叉熵损失。在训练时,使用240条轨迹的bs大小,每条轨迹具有100步的时间context window。使用8个H100 GPU(每个GPU 80 GB内存)和AdamW优化器(学习率为)训练模型,迭代80,000次。
随机具身形态的强化学习微调。遵循FLaRe中的训练方案,这里进一步使用AllenAct在模拟中的随机具身形态上进行了大规模的强化学习微调。我们的训练数据集包括100万个随机具身形态和5万个程序生成的PROCTHOR房屋,这些房屋中约有4万个标注的3D object。
强化学习微调对于策略学习通过试错法在各种具身形态中导航尤为重要。特别是,由于RING策略缺乏关于其具身形态的明确信息,因此它必须隐式地推断出这些信息,这需要广泛的探索和试错。使用DD-PPO算法,在4台机器(每台机器配备8个H100 GPU)上运行64个并行环境和128个展开步骤,并使用AdamW优化器(学习率为)进行了4000万步的训练。遵循FLaRe的做法,关闭了PPO损失中的熵项,以避免灾难性遗忘。
实验分析
实验表明,尽管RING仅在模拟环境中进行训练,且未直接接触任何真实机器人具身形态,但它仍能在包括实际机器人(如Stretch RE-1、LoCoBot和Unitree Go1)以及配备导航助手的真人评估在内的广泛具身形态上有效运行。主要结果如下:
- 尽管从未在这些具身形态上进行过训练,RING仍能实现零样本泛化至4种真正未见过的具身形态,并在多个基准测试中取得了最先进的性能。
- 我们的策略仅在模拟环境中对随机具身形态进行训练,便能直接迁移到现实世界,在3种真实机器人和导航助手(真人评估)上表现良好。
- RING通过最少的微调即可轻松适应特定具身形态的策略,并在每种特定机器人上实现了更好的性能。
- RING展现出具身自适应行为,能够根据智能体的身体调整其策略。
- 进行了消融研究,并探索了通过碰撞惩罚进行微调,以使策略采取更保守的行动。
RING 实现了对未见具身形态的零样本泛化
针对四种机器人实体(Stretch RE-1(配备1或2个camera)、LoCoBot和Unitree A1)在模拟环境中对所有策略进行了零样本评估。
基线。对于基线,选择了模仿学习(IL)和强化学习(RL)领域的先前工作。每个基线都在一个特定的实体上进行训练,并在四个不同的实体上以零样本设置进行评估。SPOC是一个监督模仿学习基线,它在AI2-THOR中的最短路径专家轨迹上进行训练。PoliFormer是物体目标导航领域最先进的基于Transformer的策略,它使用强化学习从头开始训练。FLaRe 是一种高效策略微调方法,结合了模仿学习和强化学习。SPOC 使用100k条专家轨迹在Stretch RE-1上通过模仿学习进行训练;SPOC-2.3M在更多的专家轨迹上进行训练;PoliFormer 在每个实体上分别进行了3亿步强化学习训练,从头开始;而FLaRe 在Stretch RE-1上对SPOC进行了额外的2000万步强化学习微调。
实验细节。RING首先在模拟中从随机实体收集的100万条专家轨迹上使用模仿学习进行训练,然后在随机实体上进行额外的4000万步强化学习微调(示例见图1-A和图2)。请注意,在训练过程中未见过所有四个目标实体,并且在评估期间不提供有关实体的信息。在CHORES-S 中的导航基准上进行了评估,CHORES-S是一个家用机器人模拟基准,包含200个场景中的200项任务。对于Unitree A1,创建了一个新的类似基准,根据机器人较低的身高调整了200项任务,以确保所有目标都是可行的。
结果。表2展示了四个实体上所有策略的零样本评估结果。我们比较了成功率(Success Rate)和按情节长度加权的成功率(SEL),后者是衡量效率的指标。结果表明,所有单一实体的基线都难以有效地泛化到新的实体,随着实体差异的增加,性能有所下降。例如,在Stretch RE-1上使用两个摄像头训练的SPOC,随着评估实体在表2顶部行从左到右的差异增大,其性能逐渐下降。在高度差异较大的Unitree A1上进行评估时,其表现最差。相比之下,RING在所有实体上都表现出强大的泛化能力,尽管它未在任何一个实体上进行训练,但在成功率上实现了16.7%的平均绝对提升。在某些情况下,它甚至超过了在目标实体上训练的基线:在LoCoBot上训练的PoliFormer(61.5% → 68.5%)和Unitree A1(55.3% → 72.0%)。这表明,RING通过在大规模随机实体上进行训练,获得了更有效的导航策略,甚至优于一些专门针对特定实体的策略。
尽管RING完全在模拟环境中进行训练,但它仍能迁移到现实世界中的实体
机器人评估:在真实公寓中的3个未见过的机器人上对我们的策略进行了零样本评估。所有评估均直接在一个大型公寓(图4)中进行,没有进行任何进一步的适应或针对真实世界的特定微调。分别为LoCoBot 使用了相同的15项任务评估集(3种不同的起始姿势对应5个不同的目标),为Stretch RE-1 使用了18项任务评估集(3种不同的起始姿势对应6种不同的目标规范)。我们为Unitree Go1创建了一个新的评估集,包含3种起始姿势和4个物体(马桶、沙发、电视、垃圾桶),这些物体的位置根据机器人较低的身高进行了调整,以确保从机器人较低的视角可以看到这些物体。
人类评估:为了进一步证明我们的策略在未见过实体上的泛化能力,我们将其作为导航助手与人类(作为新的、未见过的实体)一起进行评估。我们邀请5名参与者按照手机上的策略输出动作在真实厨房区域进行导航。每个人都有独特的特征,包括步长、身高、旋转角度和持相机姿势。每个人导航到三个不同的物体(杯子、苹果、室内植物),总共产生了15条轨迹。我们将RING与仅在Stretch RE-1上训练的FLaRe 进行了比较。表4显示,RING在目标物体和不同参与者上均一致优于FLaRe,图5展示了RING实现的两个定性结果。
RING能够在最小程度的微调下高效地适应特定实体的策略
尽管RING是一种能够在广泛实体上实现零样本迁移的通用策略,但往往在某些情况下,需要针对特定实体制定专门策略以达到最佳性能。这里我们证明了RING可以很容易地通过最小程度的微调适应为针对机器人的专门策略,从而在目标实体上实现更好的性能。
基线。使用FLaRe 作为基线。它已成功适应新任务和实体。该基线在Stretch RE-1上进行预训练,并在三个实体中的每一个上进行最多2000万次强化学习步骤的微调。
实现细节。对在随机实体上预训练的RING进行微调,在每个机器人上最多进行2000万次强化学习步骤的微调,同时保持所有超参数与FLaRe一致,以确保公平比较。遵循FLaRe的做法,我们将两个动作RotateBase(±6°)重新定义为TiltCamera(±30°),以允许LoCoBot的摄像头移动。请注意,在零样本评估期间不允许此移动。
结果。图7显示,RING通过最小程度的微调即可高效地适应特定实体,从而生成性能更佳的特定实体策略。对于LoCoBot和Unitree-A1,FLaRe的性能仍低于Stretch RE-1,这表明在一个实体上进行预训练并在多个实体上进行微调无法取得最佳结果。这凸显了需要一种能够通过轻量级微调持续适应任何实体的策略。
RING具有实体自适应行为
最优导航策略πθ的行为应受到智能体自身形体的强烈影响。例如,与视野更宽的智能体相比,视野较窄的智能体必须探索更多才能有效感知周围环境。较小的智能体可以通过狭窄的过道或在家具下导航,而较大的智能体可能需要采取更保守的路径。一个问题出现了:该策略是否在不同实体上表现出相同的导航行为,还是会相应地调整其策略?
定性结果证实了该策略具有实体自适应行为。在图6-A、B中,Stretch RE-1和Unitree A1都从床后的同一姿势开始。四足机器人由于其高度较低,直接移动到床下,而Stretch RE-1则绕过床。我们观察到,RING能够从视觉观察和转移动态中隐式推断出实体参数,并据此动态调整其导航策略。它无法获取关于当前形体的任何特权信息。
视觉观察可以揭示参数,如摄像头规格,在某些情况下还可以揭示智能体的高度。然而,仅凭视觉信息可能不足以让智能体推断出身形尺寸,导致其依赖碰撞来推断。在图6-C中,智能体的身高与Stretch RE-1相匹配,但摄像头的位置与四足机器人一样低。最初,它假设自己的高度较低,并试图钻到床下,但在发生碰撞后,它调整策略,绕床而行,与Stretch RE-1类似。这种实体自适应导航策略调整是一种有趣的涌现行为,如果不经过在大规模实体空间中进行的全面训练,是不可能实现的。
消融实验
更强大的预训练视觉编码器。策略中使用的默认视觉编码器是预训练的SIGLIP-VIT-B/16。我们研究了使用更强大的视觉编码器对RING性能的影响。使用OpenAI的VITL/14 336PX CLIP模型训练了RING-LARGE。表5比较了结果,显示更强大的视觉编码器在所有四个实体上的零样本性能都有显著提高(平均提高约9%)。在我们的策略中,更大的视觉编码器特别有益,因为随机化的摄像头参数导致视觉观察高度多样化。为确保与基线进行公平比较,并且由于VIT-L/14的计算要求更高,选择了使用VIT-B/16编码器进行我们的主要实验。将为那些对使用更大视觉编码器进行训练感兴趣的人发布训练代码,供社区使用。
加入碰撞惩罚以选择更安全的路线。由于我们的智能体具有随机的身体尺寸,并且没有明确告知其身体形态,它们可能会在了解自身正确尺寸之前偶尔发生碰撞。我们证明了在奖励函数中加入0.1的小碰撞惩罚可以减少50%的碰撞率(将碰撞率CR从7%降低到4%)。无论身体尺寸大小,由此产生的策略都更加保守。
为了量化这些结果,我们创建了一个类似于CHORES-S的自定义基准测试,该测试由2000个场景中的2000个随机身体形态组成。在这个基准测试上评估了我们策略的两个不同版本,比较了成功率、碰撞加权成功率(SC)、碰撞率(CR)和无碰撞片段百分比(没有任何碰撞的片段所占百分比)等指标。如表6所示,加入碰撞惩罚后,碰撞率(CR)从7.77%降低到4.03%,同时无碰撞轨迹的百分比从46.90%提高到60.57%。
#DeepSeek V3
最好的开源LLM
24年即将结束,就在刚刚,中国的 DeepSeek 发布了开源模型 DeepSeek-v3,其表现超越了所有主流模型,包括 Claude3.5 Sonnet、GPT-4o、Qwen2.5 Coder 等。模型表现看起来非常出色,我们可以清楚地说
有史以来最大的大语言模型之一
DeepSeek-V3 拥有 6850 亿个参数,是人工智能领域最大的模型之一。如此庞大的参数数量使人们能够更细致地理解和生成文本。
非常快
60 个 token/秒(比 DeepSeek V2 快 3 倍)
该图突出了 DeepSeek-V3在性价比和准确率(MMLU Redux ZeroEval 分数)方面的优势。以下是它最好的原因:
- 高精度:DeepSeek-V3 的得分接近90,超越了大多数开源模型,甚至与 Claude 3.5 和 GPT-4 等闭源模型相媲美。
- 最优成本:它属于性能/价格最优范围,与其他高性能模型相比,每百万令牌的 API 成本非常高效。
- 平衡的性能和可访问性:与昂贵的闭源模型不同,DeepSeek-V3 在开源的同时提供有竞争力的性能,确保了可负担性和灵活性。
DeepSeek-V3 的主要特点:
模型大小和效率:
- 总共 671B 参数,每个令牌激活 37B。
- 使用混合专家(MoE)来提高效率。
混合专家 (MoE) LLM是一种使用多个专业“专家”(较小的子模型)的 AI 模型。对于每个输入,只有少数专家被激活,这使得模型更快、更高效。这就像拥有一组专家,每个任务只咨询合适的专家,而不是询问每个人。
结构创新:
- 实现多头潜在注意力 (MLA)和DeepSeekMoE 架构,以 DeepSeek-V2 的进步为基础。
- 引入了一种无辅助损失的负载平衡策略。
- 采用多标记预测训练目标来提高性能。
训练数据集:
对14.8万亿个高质量token进行了预先训练,确保数据的多样性和丰富性。
训练过程:
- 包括监督微调和强化学习阶段。
- 仅需2.788M H800 GPU 小时,非常划算。
- 稳定的训练过程,没有无法恢复的损失峰值或回滚。
绩效和指标
总结结果,
MMLU-Pro(知识理解):
- DeepSeek-V3:75.9%(第二好)。
- 略微落后于GPT-4(78%),优于所有其他模型。
GPQA-Diamond(复杂 QA):
- DeepSeek-V3:59.1%
- 显著领先于GPT-4(49.9%)和其他算法。只有 Claude 更好
数学 500(数学推理):
- DeepSeek-V3:90.2%(最佳性能)。
- 远远优于 GPT-4 和其他模型。
AIME 2024(高级数学推理):
- DeepSeek-V3:39.2%(最佳性能)。
- 与 GPT-4 等相比领先超过23% 。
Codeforces(编程问题解决):
- DeepSeek-V3:51.6%(最佳性能)。
- 大大超过GPT-4和其他模型。
SWE-bench 验证(软件工程):
- DeepSeek-V3:42%(第二好)。
- 落后于Claude Sonnet (50.8%),但领先于大多数其他模型。
如何使用DeepSeek-V3?
模型权重是开源的,可以使用 HuggingFace 访问
https://huggingface.co/deepseek-ai/DeepSeek-V3-Base?source=post_page-----727d3421ae38--------------------------------
如果您只是想聊天,该模型可在 deepseek 的官方聊天中免费托管:
https: //www.deepseek.com/
#Rust语言遭遇水逆
接连被开源项目curl、Prisma弃用,网友:从狂热粉到后悔莫及
一时之间,Rust 编程语言陷入到了接连被弃用的窘境。
作为一门系统编程语言,Rust 专注于安全,尤其是并发安全。它支持函数式和命令式以及泛型等编程范式的多范式语言,在语法上和 C、C++ 类似。
图源:https://x.com/ThePrimeagen/status/1875592777440084416
就在刚刚过去的 12 月底,知名开源项目 curl 的创始人 Daniel Stenberg 宣布:将放弃支持基于 Rust 编写的 Hyper HTTP 后端,并彻底移除相关代码。此举引起了开发者社区的广泛关注。
旅程即将结束,实验结束了。我们努力过,但还是失败了。
2020 年,Stenberg 开始在 curl 中添加对另一种 HTTP 后端的支持,它使用了基于 Rust 编写的库,被称为 hyper。他的想法是引入一种替代的 HTTP 内部实现,从而可以让 curl/libcurl 使用它来代替本机实现。目标是借助 Rust 的内存安全性,为 curl 用户提供一个更安全的 HTTP 后端实现。
最初的工作得到了 ISRG 的慷慨赞助,它是「Let’s Encrypt」等出色工作的背后组织。期间 Stenberg 与 hyper 首席开发人员 Sean McArthur 密切合作,并取得了很大进展。到目前为止,Stenberg 已经在 curl 中以 EXPERIMENTAL 为标签提供了 hyper 支持,希望吸引用户的兴趣并激发他们的实验精神。
Stenberg 表示,他们已经完成了 95% 的工作,而且几乎整个测试套件都以相同的方式运行,无论构建 curl 时使用哪个后端。然而,正是那最后的百分之几却变成了最大的阻力,最终导致了项目失败、放弃并全部撤出。
为什么呢?总结起来,主要有以下两方面原因。
一方面,几乎没人有这样的需求,curl 的用户对 hyper 没有兴趣;现有的 hyper 用户也不关心它是否兼容 curl。
另一方面,libcurl 库是用 C 编写的,hyper 是用 rust 编写的,两者之间需要一个 C 粘合层。这就需要同时精通 C 和 Rust 语言的开发者来深入研究相关的架构和协议,来推动项目进展。现实却是缺乏这样的开发者。
因此,由于预计无法在短中期内完成 hpyer 工作,并且保留代码的成本实在太高,只能通过削减这些代码来提供灵活性并降低复杂性。
虽然 hyper 的实验本身失败了,Stenberg 认为他们从中吸取了一些教训,并在过程中改进了 curl。其实在 2020 年开始 hyper 项目的时候,Rust 语言本身并没有准备好。随着时间的推移,Rust 现在已经有所改进,成为一种更好的语言,并可以为类似 hyper 的项目提供更好的服务。
另外,在抛弃 hyper 之后,curl 仍然有两个 Rust 编写的实验性后端支持,分别是 rustls(用于 TLS)和 uiche(用于 QUIC 和 HTTP/3)。这两个后端在 crul 中使用了更好的内部 API,并以更干净的方式挂接到 libcurl 中,因而相较于 hyper 更易于支持,负担也更小。
目前,hyper 的超级后端代码已从 git 中删除,并且 2025 年 2 月发布的 curl 8.12.0 版本中将不会留下任何痕迹。
不过,虽然 hpyer 被移除了,Stenberg 对未来引入 Rust 或其他语言编写的安全后端持开放态度。未来会采用一些不一样的做法,毕竟与 2020 年开始 hyper 时相比,他们现在拥有了更好的内部架构。
无独有偶,在 12 月初,另一个开源数据库工具链项目 Prisma 也表态将从 Rust 迁移至 TypeScript,以追求更好的插件和扩展生态。
声明中写道:Prisma 的架构历来限制社区贡献,其核心功能(例如查询解析、验证和执行)由 Rust 引擎管理,而这对于专注于 TypeScript 的社区来说是不透明的。因此决定将 Prisma 的核心逻辑从 Rust 迁移到 TypeScript,并重新设计 ORM,以使定制和扩展更容易。
近几年 Rust 语言正在强势崛起,在一些编程语言排行榜中的排名一直在攀升,比如 2024 IEEE Top 编程语言榜单中,Rust 的排名就很靠前。另外,用 Rust 取代 C 和 C++ 的呼声也很高。
虽然 Rust 很强大且在安全性方面独树一帜,但它的学习成本也相对比较高。在一个关于「哪些原因阻止你在 2025 年学习 Rust」的调查中,有人抛出了一个有力的观点:他最常用的 C/C++ 库是同类中最好的,背后有数十年的开发经验。对于 Rust,他要么费尽心力地继续使用它,要么使用一些随机、不知名、没有血统的包。也有人认为,Rust 语法看起来很丑陋。
图源:https://x.com/kai_fall/status/1875549570513658212
用了 18 个月,我满满的都是后悔
其实,在 2024 年初,Medium 一篇文章讲述了作者花费了 18 月用 Rust 语言重建自己的算法交易平台的过程。虽然费了很多心思,但最终十分后悔。一起看看在这过程中,Austin Starks 到底经历了什么吧。
在文章开头 Austin 就表示了他曾经十分看好 Rust,甚至是 Rust 的狂热爱好者。Rust 看起来似乎是目前最快的、最安全编程语言之一。当然他发现不止自己一人这么认为。如果在网上阅读有关 Rust 编程语言的文章,你很可能会遇到压倒性的正面评价。每一篇 Medium 上的指南、每一篇 Reddit 上的帖子、每一个 Stack Overflow 上的回答 —— 一切都在赞美它。
这是故事的开始,或者说是「噩梦」的开始,Austin 决定放弃 TypeScript,将自己的整个开源算法交易系统重写成 Rust。
其实,这次不好的体验早有端倪。更早前,Austin 就写过一篇关于使用 Rust 的经历。他当时表示虽然非常喜欢 Rust 的速度和一些语言设计,但并不完全真正喜欢这门语言。不过文章一经发出,就遭到了猛烈的抨击。甚至有一条高赞评论指责 Austin 是用 ChatGPT 写的文章。这显然已经是 AI 时代人们对文字创作最大的批评了。
Austin 进行了反思,或许是自己没有给予 Rust 足够的机会。他决定再使用一段时间 Rust。使用过后,他终于能够自信地给出结论:
这门语言就是糟透了!!!
Rust 差在哪里?
Austin 用了几个词来形容来总结自己对 Rust 的厌恶:糟糕、冗长、难以理解的语法和语义。
一个复杂的 Rust 函数示例
Austin 吐槽道,说 Rust 语义不糟糕的人都是在撒谎。如果没有一个非常强大的大型语言模型,在写函数的时候就会有很多事情做不成。他不想花 90 分钟去弄清楚 run_transaction 函数中的 where 子句。最终,他完全放弃了使用辅助函数的想法,因为根本无法让代码编译通过。人们所说的 Rust 最大的优点(严格的编译器来消除错误)反而是 Rust 最大的缺点。
Austin 举了个例子,如果在 Go 中编写这个完全相同的函数,代码大概会下图这样。虽然函数的核心结构保持相对不变, 但代码能直接按照预期运行,不需要做过多复杂的调整、技巧或反复的尝试。
Go 实现的函数
Rust 在错误处理方面似乎有些优势。只要你避免使用不安全的 unwrap 来减少运行时错误(例如空指针异常),就可以确定代码会运行并持续运行。真的是这样吗?Austin:不!
他指出当数据出错或发生意外时,开发者很难快速诊断问题,因为错误信息往往不够直观,开发者可能很难弄明白错误的根本原因。他自嘲,可能自己没有找到启用堆栈跟踪的正确方法,这让调试变得更加困难。
Austin:我的堆栈跟踪在哪儿???
相比之下,Python 能够提供堆栈跟踪,精确告诉你发生了什么,甚至到行号。Austin 表示,就算是 Go 语言,也有 errors.Wrap (...),让你能够查看整个错误堆栈。显然,这是 Rust 的设计缺陷。
除了 Rust 的设计缺陷,社区氛围也是难评。Austin 表示,社区不能接受别人提出 Rust 有缺陷这个观点。发表的看法会遭到攻击,提出的问题也只能收获阴阳怪气。
Austin 在 Rust 社区中收到的「有用」回复
你有用过 Rust 吗?在评论区分享一下你的体验吧。
参考链接:
https://www.prisma.io/blog/prisma-orm-manifesto
https://daniel.haxx.se/blog/2024/12/21/dropping-hyper/
https://spectrum.ieee.org/top-programming-languages-2024
#ModernBERT
时隔6年,谷歌BERT终于有替代品了!更快更准更长,还不炒作GenAI
真正有用的主力模型。
BERT 于 2018 年发布,这个时间点,如果按照 AI 的纪事年代来说,可以说是一千年以前的事了!虽然过去了这么多年,但至今仍被广泛使用:事实上,它目前是 HuggingFace 中心下载量第二大的模型,每月下载量超过 6800 万次。
好消息是,六年后的今天,我们终于有了替代品!
近日,新型 AI 研发实验室 Answer.AI、英伟达等发布了 ModernBERT。
ModernBERT 是一个新的模型系列,具有两个型号:基础版 139M 、较大版 395M。在速度和准确率方面都比 BERT 及其同类模型有了显著改进。该模型采用了近年来在大型语言模型 (LLM) 方面的数十项进展,包括对架构和训练过程的更新。
除了速度更快、准确度更高外,ModernBERT 还将上下文长度增加到 8k 个 token,而大多数编码器只有 512 个 token,并且是第一个在训练数据中包含大量代码的仅编码器专用模型。
- 原文地址:https://huggingface.co/blog/modernbert
- 论文地址:https://arxiv.org/pdf/2412.13663
- 项目主页:https://github.com/huggingface/blog/blob/main/modernbert.md
Answer.AI 联合创始人 Jeremy Howard 表示,ModernBERT 不炒作生成式 AI(GenAI),而是真正的主力模型,可用于检索、分类,是真正有用的工作。此外还更快、更准确、上下文更长、更有用。
仅解码器模型
近期,GPT、Llama 和 Claude 等模型迅速崛起,这些模型是仅解码器模型,也可以说是生成模型。它们的出现催生出令人惊叹的新型领域 GenAI,例如生成艺术和交互式聊天。本文所做的,本质上就是将这些进展移植回仅编码器模型。
为什么要这么做?因为许多实际应用都需要一个精简的模型!而且它不需要是一个生成模型。
更直白地说,仅解码器模型对于许多工作来说太大、太慢、太私密、太昂贵。想想最初的 GPT-1 是一个 1.17 亿参数的模型。相比之下,Llama 3.1 模型有 4050 亿个参数,对于大多数公司来说,这种方法过于复杂和昂贵,无法复制。
GenAI 的流行热潮掩盖了仅编码器模型的作用。这些模型在许多科学和商业应用中发挥了巨大作用。
仅编码器模型
仅编码器模型的输出是数值列表(嵌入向量),其将「答案」直接编码为压缩的数字形式。该向量是模型输入的压缩表示,这就是为什么仅编码器模型有时被称为表示模型。
虽然仅解码器模型(如 GPT)可以完成仅编码器模型(如 BERT)的工作,但它们受到一个关键约束:由于它们是生成模型,因此从数学上讲它们「不允许窥视」后面的 token。这与仅编码器模型形成对比,后者经过训练,每个 token 都可以向前和向后(双向)查看。它们就是为此而构建的,这使得它们在工作中非常高效。
基本上,像 OpenAI o1 这样的前沿模型就像法拉利 SF-23,这显然是工程学的胜利,旨在赢得比赛。但仅是更换轮胎就需要专门的维修站,而且你无法自己购买。相比之下,BERT 模型就像本田思域,这也是一项工程学的胜利,但更微妙的是,它被设计成价格实惠、省油、可靠且极其实用的车型。因而无处不在。
我们可以从不同的角度看待这个问题。
首先是基于编码器的系统:在 GPT 出现之前,社交媒体和 Netflix 等平台中都有内容推荐。这些系统不是建立在生成模型上,而是建立在表征模型(如仅编码器模型)上。所有这些系统仍然存在,并且仍在大规模运行。
接着是下载量:在 HuggingFace 上,RoBERTa 是基于 BERT 的领先模型之一,其下载量超过了 HuggingFace 上 10 个最受欢迎的 LLM 的总下载量。事实上,目前,仅编码器模型每月的下载量总计超过 10 亿次,几乎是仅解码器模型(每月下载量为 3.97 亿次)的三倍。
最后是推理成本:按推理计算,每年在纯编码器模型上执行的推理要比纯解码器模型或生成模型多很多倍。一个有趣的例子是 FineWeb-Edu,团队选择使用仅解码器模型 Llama-3-70b-Instruct 生成注释,并使用经过微调的基于 BERT 的模型执行大部分过滤。此过滤耗时 6,000 H100 小时,按照每小时 10 美元的定价,总计 60,000 美元。另一方面,即使使用成本最低的 Google Gemini Flash 及其低推理成本(每百万个 token 0.075 美元),向流行的仅解码器模型提供 15 万亿个 token 也需要花费超过一百万美元!
性能
以下是 ModernBERT 和其他模型在一系列任务中的准确率比较 。ModernBERT 是唯一在每个类别中都获得最高分的模型:
如果你了解 Kaggle 上的 NLP 竞赛,那么你就会知道 DeBERTaV3 多年来一直是处于冠军位置。但现在情况已经变了:ModernBERT 不仅是第一个在 GLUE 上击败 DeBERTaV3 的模型,而且它使用的内存还不到 Deberta 的 1/5。
当然,ModernBERT 的速度也很快,它的速度是 DeBERTa 的两倍 —— 事实上,在输入混合长度的情况下,速度最高可提高 4 倍。它的长上下文推理速度比其他高质量模型(如 NomicBERT 和 GTE-en-MLM)快近 3 倍。
ModernBERT 的上下文长度为 8,192 个 token,比大多数现有编码器长 16 倍以上。
对于代码检索,ModernBERT 的性能是独一无二的,因为之前从未有过编码器模型在大量代码数据上经过训练。例如,在 StackOverflow-QA 数据集 (SQA) 上,这是一个混合了代码和自然语言的混合数据集,ModernBERT 的专业代码理解和长上下文使其成为唯一一个在此任务上得分超过 80 的模型。
与主流模型相比,ModernBERT 在检索、自然语言理解和代码检索这三大类任务中表现突出。虽然 ModernBERT 在自然语言理解任务上稍微落后于 DeBERTaV3,但其速度要快很多倍。
与特定领域的模型相比,ModernBERT 在大多数任务中都相当或更胜一筹。此外,ModernBERT 在大多数任务中都比大多数模型更快,并且可以处理多达 8,192 个 token 的输入,比主流模型长 16 倍。
效率
以下是 ModernBERT 和其他解码器模型在 NVIDIA RTX 4090 上的内存(最大批大小,BS)和推理(以每秒数千个 token 为单位)效率对比结果:
对于可变长度的输入,ModernBERT 比其他模型都快得多。
对于长上下文输入,ModernBERT 比第二快的模型快 2-3 倍。此外,由于 ModernBERT 的效率,它可以使用比几乎任何其他模型都大的批处理大小,并且可以在更小、更便宜的 GPU 上有效使用。特别是基础模型的效率可能会使新应用程序能够直接在浏览器、手机等上运行。
ModernBERT
接下来文章解释了为什么我们应该更加重视编码器模型。作为值得信赖、但被低估的主力模型,自 2018 年 BERT 发布以来,它们的更新速度出奇地慢!
更令人惊讶的是:自 RoBERTa 以来,还没有编码器能够提供整体的改进:DeBERTaV3 具有更好的 GLUE 和分类性能,但牺牲了效率和检索。其他模型(例如 AlBERT)或较新的模型(例如 GTE-en-MLM)都在某些方面比原始 BERT 和 RoBERTa 有所改进,但在其他方面有所退步。
ModernBERT 项目主要有三个核心点:
- 现代化的 transformer 架构;
- 特别重视注意力效率;
- 以及数据。
认识新的 Transformer
Transformer 架构已成为主流,如今绝大多数模型都在使用它。但值得注意的是,Transformer 不止一个,而是有很多种。其主要共同点是,都坚信注意力机制才是所需要的一切,因此围绕注意力机制构建了各种改进。
用 RoPE 替换旧的位置编码:这使得模型能够更好地理解单词之间的关系,并允许扩展到更长的序列长度。
- 将旧的 MLP 层替换为 GeGLU 层,改进原始 BERT 的 GeLU 激活函数;
- 通过删除不必要的偏置项来简化架构,从而更有效地使用参数预算;
- 在嵌入后增加一个额外的归一化层,有助于稳定训练。
全局和局部注意力
ModernBERT 最具影响力的功能之一是 Alternating 注意力机制,而不是全局注意力机制。
随着注意力计算复杂度随着每个额外的 token 而膨胀,这意味着 ModernBERT 可以比任何其他模型更快地处理长输入序列。实际上,它看起来像这样:
Unpadding 和序列 Packing
另一个有助于 ModernBERT 提高效率的核心机制是 Unpadding 和序列 Packing。
为了能够处理同一批次中的多个序列,编码器模型要求序列具有相同的长度,以便可以执行并行计算。传统上的做法是依靠 padding 来实现这一点:找出哪个句子最长,并添加无意义的 token 来填充序列。
虽然填充解决了这个问题,但它并不优雅:大量的计算最终被浪费在填充 token 上,而这些 token 不会提供任何语义信息。
比较 padding 和序列 packing。序列 packing(unpadding )避免了模型在填充 token 上的计算浪费。
Unpadding 解决了这个问题,其不会保留这些填充 token,而是将它们全部删除,并将它们连接到批大小为 1 的小批次中,从而避免了不必要的计算。如果你使用的是 Flash Attention,unpadding 甚至比以前的方法更快,比以前的方法加快 10-20%。
训练
编码器落后的一大方面在于训练数据。在通常的理解中,这仅指的是训练数据规模,但事实并非如此:以往的编码器(如 DeBERTaV3)经过足够长时间的训练,甚至可能突破了万亿 tokens 规模。
但问题在于数据多样性:很多旧模型在有限的语料库上进行训练,通常包括 Wikipedia 和 Wikibooks。很明显,这些混合数据是单一的文本模态:它们只包含高质量的自然文本。
相比之下,ModernBERT 的训练数据具有多种英语来源,包括网页文档、代码和科学文章。该模型训练了 2 万亿 tokens,其中大多数是唯一的,而不像以往编码器那样常常重复 20 到 40 次。这种做法的影响是显而易见的:在所有的开源编码器中,ModernBERT 在编码任务上实现了 SOTA。
流程
团队坚持原始 BERT 训练方法,并在后续工作的启发下进行了一些小的升级,包括删除了下一句(Next-Sentence)预测目标,原因是它在增加开销的情况下没有明显的收益,并将掩蔽率从 15% 提高了 30%。
两个模型都采用三段式训练流程。首先在序列长度为 1024 的情况下训练了 1.7T tokens 的数据,然后采用一个长上下文适应阶段,在序列长度为 8192 的情况下训练了 250B tokens 的数据,同时通过降低批大小来保持每个批次的总 tokens 数大体一致。最后按照 ProLong 中强调的长上下文扩展思路,对不同采样的 50B tokens 数据进行退火。
从结果来看,三段式训练可以确保模型运行良好,在长上下文任务上具有竞争力,也不会影响其处理短上下文的能力。
此外还有另一个好处:对于前两个阶段,团队在预热阶段完成之后使用恒定学习率来训练,只对最后的 50B tokens 执行学习率衰减,并遵循了梯形(预热 - 稳定 - 衰减)学习率。更重要的是:受到 Pythia 的启发,团队可以在这些稳定的阶段发布每一个直接中间检查点。这样做的主要原因是支持未来的研究和应用:任何人都可以从团队的预衰减检查点重新开始训练,并对适合自己预期用途的域数据进行退火。
技巧
最后,该团队使用了两个技巧来加快实现速度。
第一个技巧很常见:由于初始训练步骤更新了随机权重,因而采用批大小预热。首先从较小的批大小开始,这样相同数量的 token 会更加频繁地更新模型权重,接下来逐渐增加批大小直到达到最终的训练大小。这样做大大加快了初始阶段的模型训练速度,其中模型学习到了最基础的语言理解。
第二个技巧不太常见:通过对较大的模型平铺(tiling)来进行权重初始化,这一灵感来自微软的 Phi 系列模型。该技巧基于以下认知:当我们有一组非常好的 ModernBERT-base 权重时,为什么要利用随机数来初始化 ModernBERT-large 的初始权重呢?的确,事实证明了,将 ModernBERT-base 的权重平铺到 ModernBERT-large 要比随机权重的初始化效果好。此外,该技巧跟批大小预热一样可以在堆叠后带来额外好处,从而更快地进行初始训练。
总之,ModernBERT 成为新的小型、高效的仅编码器 SOTA 系列模型,并为 BERT 提供了亟需的重做。另外证明了仅编码器模型可以通过现代方法得到改进,并在一些任务上仍能提供非常强大的性能,并实现极具吸引力的尺寸 / 性能比。
参考内容:
https://huggingface.co/blog/modernbert
#SMAC-Hard
多智能体强化学习算法评估Hard模式来了!浙大、南栖仙策联手推出
本文作者来自浙江大学、中国科学技术大学、中科院自动化所和南栖仙策。作者列表:邓悦、喻言、马玮彧、王子瑞、朱文辉、赵鉴和张寅。第一作者邓悦是浙江大学计算机系博士生。通讯作者是南栖仙策赵鉴博士和浙江大学计算机系教授张寅。
在人工智能领域,具有挑战性的模拟环境对于推动多智能体强化学习(MARL)领域的发展至关重要。在合作式多智能体强化学习环境中,大多数算法均通过星际争霸多智能体挑战(SMAC)作为实验环境来验证算法的收敛和样本利用率。然而随着 MARL 算法的不断进步,很多算法在 SMAC 环境上均表现出接近最优的性能,这使得对算法的真实有效性的评估变得更为复杂。尽管 SMACv2 环境在任务初始化时采用概率生成的方式以削弱开环控制的特性,但是两个环境均是以默认的、单一的、且确定的脚本作为对手脚本。这使得智能体学习到的策略模型更容易过拟合到某一个对手策略,或利用对手策略的漏洞而拟合到取巧方法上。
图一:SMACv1(左)和 SMACv2(右)的默认脚本。分别为:“操控所有玩家 2 的角色攻击 Team1 位置” 和 “操控每个玩家 2 的角色攻击玩家 1 的最近角色”。
为说明默认脚本带来的影响,如下的三个视频回放分别来自 SMACv1、SMACv2 的默认对手策略和合适的对手策略。
,时长00:29
在 SMACv1 环境中,对手 zealot 被仇恨范围和脚本卡在 Team1 的位置,脱离其他角色的战斗。
,时长00:27
在 SMACv2 环境中,因为默认对手策略为攻击最近角色,对手 zealot 被 stalker 吸引,脱离其他角色的战斗。
,时长00:16
在 SMAC-HARD 中,丰富对手策略给智能体带来更正常更大的挑战。
近期,浙江大学和南栖仙策联合推出了基于 SMAC 模拟环境的 SMAC-HARD 环境。该环境支持可编辑的对手策略、随机化对手策略以及 MARL 自博弈接口,从而使智能体训练过程能够适应不同的对手行为进而提高模型的稳定性。此外,智能体还可以通过 SMAC-HARD 环境完成黑盒测试来评估 MARL 算法的策略覆盖性和迁移能力,即智能体在训练过程中仅通过与默认对手策略或自博弈模型进行推演,但在测试过程中与环境提供的脚本进行交互。
团队在 SMAC-HARD 上对广泛使用的先进算法进行了评估,展示了当前的 MARL 算法在面对混合可编辑对手策略时会得到更保守的行为价值,进而导致策略网络收敛到次优解。此外,黑盒策略测试也体现了将所学策略转移到未知对手身上的难度。团队希望通过推出 SMAC-HARD 环境来为后续 MARL 算法评估提出新的挑战,并促进多智能体系统社区中自博弈方法的发展。
- 论文标题:SMAC-Hard: Enabling Mixed Opponent Strategy Script and Self-play on SMAC
- 论文地址:https://arxiv.org/abs/2412.17707
- 项目地址:https://github.com/devindeng94/smac-hard
- 知乎链接:https://zhuanlan.zhihu.com/p/14397869903
环境介绍
就源代码而言,基于 Python 的 pysc2 代码包是对《星际争霸 II》二进制游戏文件中的 sc2_protocol 的抽象。通过 pysc2 对 sc2_protocolAPI 的抽象,玩家可以操控游戏的进程。而 SMAC 框架是通过将 pysc2 的原始观测数据转化为标准化、结构化、向量化的观测和状态表示,进一步封装了 pysc2 提供的 API。因此,《星际争霸 II》环境本身既支持来自 SMAC 的标准化动作,也支持由 pysc2 脚本生成的动作,这为对手可编辑脚本提供了支持。如图二所示,SMAC-HARD 修改了 SMAC 中的地图(SC2Map)以启用多玩家模式并禁用了默认攻击策略以防止默认脚本策略中的行动干扰。除了对地图的修改外,对原 SMAC 的 starcraft.py 文件也进行了修改,以容纳两个玩家进入游戏,检索两个玩家的原始观测数据,并同时处理两个玩家的行动。为了减轻行动执行顺序的影响,环境对两名玩家的行动步进过程进行了并行化处理。
图二:SMAC-HARD 环境、对手策略脚本、自博弈接口封装,与原始 SMAC、PySC2、StarCraftII 的关系示意图。
除了为对手提供了决策树建模外,当存在多个对手策略时,环境还引入了由预定义概率设置的随机策略选择功能以提升对手策略的丰富度。这些概率以浮点值列表的形式表示,默认设置为所有策略相等概率。此外,为了进一步扩大对手的策略丰富度,环境还根据智能体的观测、状态和可用行为等的封装,为对手提供了类似的对称接口以促进 MARL 自博弈模式的发展。用户可以通过 "mode" 参数来控制使用自博弈模式或决策树模式且该模式默认为决策树模式。以此为前提,用户将 import 中的 smac 更换为 smac_hard,即可将实验环境从 SMAC 无缝过渡到 SMAC-HARD。
图三:由大模型生成双方策略脚本过程。在对称的环境中,最终生成的双方策略均被采用为可选备受策略。
虽然决策树在面对不同对手策略时表现出更高的稳定性且可以提供更强的可解释性。参考最近的工作 LLM-SMAC,对手策略的生成可以通过代码大模型完成以辅助策略脚本编写。如图三所示:将角色信息、地图信息、与任务描述合成为环境提示,并利用规划大模型为双方规划策略架构。双方分别利用代码大模型实现各自的策略架构,并利用生成的代码在 SMAC-HARD 中进行测评。再利用大模型作为批评家多轮分析测评结果和代码,进而为规划大模型和代码大模型提供优化建议。
测试结果
经过对五个经典算法的测试,SMAC-HARD 环境表现出对基础 MARL 算法更大的挑战。在最初的 SMAC 任务中,几乎所有算法都能在 1000 万个时间步内实现接近 100% 的胜率,相比之下,SMAC-HARD 则引入了更高的难度和收敛挑战。例如,如图四和表一所示,2m_vs_1z 任务在原始 SMAC 环境中相对容易,但在 SMAC-HARD 中却变成了超难任务。在 SMAC-HARD 中,Zealot 始终以一名 Marine 为目标,这就要求一名 Marine 负责移动躲避伤害,而另一名则专注于攻击。这使得每个智能体需要连续做出正确的行为,这对 MARL 算法构成了巨大挑战。
图四:经典算法在 SMAC-HARD 环境中 10M 步的测试曲线。
表一:经典算法在 SMAC-HARD 环境中 10M 步的测试结果。
为测试 MARL 算法的策略覆盖率和迁移能力,SMAC-HARD 提供了黑盒测试模式。MARL 算法面向默认对手策略训练 10M 步后再针对混合对手策略进行测试,测试结果如表二所示。值得注意的是:与黑盒评估的胜率随着任务难度的增加而增加,在 3s_vs_3z、3s_vs_4z 和 3s_vs_5z 任务中产生了相反的趋势。在 Stalker 面对 Zealot 的时候,Stalker 角色可以通过更高的移速来 “风筝” Zealot 角色。3s_vs_5z 的环境更具挑战性,智能体必须采用严格的 “风筝” 机制这一最优的应对策略才能获胜。学习到了最佳应对策略的智能体更有可能在黑盒测试的对手脚本前取得成功。
表二:经典算法在 SMAC 环境中训练 10M 步后在 SMAC-HARD 的黑盒模式测试结果。
除此之外,原 SMAC 环境中对于对手血量和盾量回复的奖励结算错误,使得智能体容易陷入最大化奖励的最优解,但是是胜率结算的次优解。而 SMAC 作为实验环境已经测评了多个算法,所以虽然发现了 SMAC 的奖励结算错误,SMAC 也不方便修正使实验结果不具备可比性。由于提出了新的测评环境,SMAC-HARD 修正了这个来自 SMAC 的奖励结算 bug。
图五:SMAC 环境作者对奖励结算问题的回应。
总结
综上所述,论文针对 SMAC 中使用的单一默认对手策略缺乏策略空间的多样性问题,引入了支持对手脚本编辑、预定概率混合对手策略、和自博弈接口对齐的 SMAC-HARD 环境。研究结果展示,即使是在传统 SMAC 环境中性能近乎完美的流行的 MARL 算法,在 SMAC-HARD 环境中也难以保持高胜率。此外,环境还对使用 MARL 算法训练的模型进行了黑盒评估,强调在面对单一、脆弱的对手策略时,MARL 策略的可转移性有限。最后,环境将对手方的训练接口与智能体方的训练接口进行了对齐,为潜在的 MARL 自博弈领域研究提供了一个平台。希望 SMAC-HARD 可以作为一个可编辑的且具有挑战性的环境,为 MARL 社区研究做出贡献。
#Just keep scaling
思维链作者Jason Wei 40分钟讲座剖析LLM扩展范式
关注 AI 领域的人对 Jason Wei 这个名字一定不陌生。他是 OpenAI 的一位资深研究科学家,也常在 OpenAI 的发布活动中露脸。更重要的是,他是思维链概念开山之作《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》的第一作者。
他本科毕业就加入了谷歌。在那里,他推广了思维链提示概念,共同领导了指令微调的早期工作,并和 Yi Tay、Jeff Dean 等人合著了关于大模型涌现能力的论文。2023 年初,他加入了 OpenAI,参与了 ChatGPT 的构建以及 o1 等重大项目。他的工作使思维链提示、指令微调和涌现现象等技术和概念变得广为人知。
去年 11 月 20 日,Jason Wei 在宾夕法尼亚大学计算机与信息科学系 Mayur Naik 教授的「CIS 7000:大型语言模型(2024 秋季)」课程中进行了一场约 40 分钟的客座讲座,主题为「大型语言模型的扩展范式」。Jason Wei 从扩展(scaling)的定义谈起,介绍了 LLM 的扩展范式从规模扩展到以思维链和强化学习为代表的推理扩展的转变。真可谓内容丰富、干货满满!
近日,Naik 教授在自己的 YouTube 频道放出了 Jason Wei 的演讲视频和幻灯片。整理了其中的主要内容。
,时长40:09
视频地址:https://www.youtube.com/watch?v=yhpjpNXJDco
幻灯片:https://llm-class.github.io/slides/Jason_Wei.pdf
以下是演讲内容的概要:
一、扩展的定义与重要性
- 扩展一般是指通过增加模型规模、数据量和 GPU 数量来持续改进 AI 能力。不过,Jason Wei 给出了一个更具体的定义:扩展就是你把自己放在一个可以沿着连续轴移动并期望获得持续改进的情况下。
- 虽然扩展需要克服技术和心理挑战,但它是 AI 进步的关键引擎,并将继续主导这个领域的发展方向。
二、扩展范式一:下一词预测(2018 年至今)
- 下一词预测实际上是一个大规模多任务学习过程。
- 通过预测下一词,模型可以学习语法、世界知识、情感分析、翻译等多种能力。
- 你可以把下一词预测的准确率看作多个子任务的加权和,这样你就能理解为什么会有所谓的「涌现」现象。
- 仅仅通过下一词预测也许可以实现 AGI,但会非常困难,我们需要继续大量扩展。
三、扩展范式二:基于思维链扩展强化学习
- 纯粹的下一词预测在处理复杂任务时存在局限性。
- 思维链(CoT)让模型能够像人类一样展示推理过程。
- OpenAI 通过强化学习优化了模型的思维链能力,使其能更好地解决复杂问题。
四、AI 文化的变革
- 研究重点从改进算法转向改进数据质量。
- 基准测试被「饱和」的速度太快。
- 从单任务模型朝着高度多任务模型(highly multi-task models)的方向转变。
- 智能和用户体验是两个可以分别改进的维度。
- 需要更大的团队合作来推进 AI 发展。
五、未来展望
- AI 在科学和医疗健康方面的应用前景。
- 提高事实准确性,减少虚假信息。
- 发展多模态 AI 能力。
- 增强工具使用能力。
- 扩大 AI 应用范围。
Jason Wei 强调,尽管 AI 在过去五年取得了巨大进步,但通过持续扩展,未来五年还会有更大的发展空间。他用「just keep scaling」(继续扩展)作为演讲的结束语,表达了对扩展策略的信心。
以下是 Jason Wei 的演讲内容图文版。
扩展是 AI 进步的引擎
并且还将发挥主导作用
今天的主题是大型语言模型的扩展范式。首先我想说,在过去五年里,AI 取得了惊人的进步。就在 5 年前的 2019 年,AI 几乎无法写出连贯的段落,也无法进行任何推理。而今天,AI 可以写出几乎任何主题的文章,也成为了竞赛级别的程序员和数学家。那么我们是如何如此快速地达到这一步的呢?
我今天要阐述的观点是扩展一直是推动 AI 进步的引擎,并将继续主导这个领域的发展方向。
这里是一个简短的大纲 —— 我会讲大约 40 分钟,之后很乐意回答问题。首先我会讲什么是扩展以及为什么要做扩展。然后我会讲第一个扩展范式,即下一词预测。我会讲这个范式面临的挑战。接着我会讲我们最近进入的第二个范式,即在思维链上进行强化学习。最后我会总结 AI 文化是如何被扩展改变的,以及我们接下来想看到什么。
我想先花几分钟讲讲在第一个扩展范式之前我们在做什么。原因是,除非你研究过历史,否则你可能不会意识到当前时刻有什么特别之处。
我认为从 2010 年到 2017 年,也就是在 Transformer 之前的深度学习时代,AI 进展是这样的:你会有一个基准测试,比如 ImageNet,然后你会尝试各种方法来改进基线表现。比如可能添加更好的架构,添加一些归纳偏置,构建更好的优化器,进行超参数调优。所有这些东西叠加在一起,让你能够提升在基准测试上的表现。
比如你有一些要学习的 XY 关系,目标就是尽可能好地学习这个关系。在 2017 年之前,我们可能这样描述一项成功的研究:「在 ImageNet 数据集上,我们的方法用一半的计算量就把基线性能提升了 5%。」
但是随着 Transformer 的出现,我们有了一个很好的方法来学习各种不同类型的 XY 关系。如果我们不再受限于学习本身,那我们该做什么呢?
事实证明,答案就是扩展。扩展简单来说就是训练更大的模型,使用更多的数据和更多的 GPU。但我这里有一个更具体的定义:扩展就是你把自己放在一个可以沿着连续轴移动并期望获得持续改进的情况下。
这个定义中有一个重要的部分,即扩展是一个主动的过程。你必须把自己放在这个情况下,这通常涉及解决一些瓶颈或了解你的设置的一些细节,才能真正让扩展发挥作用。
这是一个典型的扩展图表。你的 x 轴通常是计算量、数据量或模型大小,y 轴是你试图改进的某种能力。你想看到的是这条蓝线,随着你沿 x 轴移动,性能持续提升。你想避免的是这条红线,在 x 轴的某个阈值之后,性能就饱和了,不再提升。
简单来说,就是这样:
如果你看大语言模型领域的论文,你会发现扩展无处不在。这里有一些来自 OpenAI、Google Brain、DeepMind 的论文,你可以在这些不同的论文中找到这些扩展图表。有时你需要把图表上下翻转才能找到它,因为画的是损失而不是性能。这些图表真的是扩展的标志,它们可以非常有力。至少在 OpenAI,如果你带着这样一个图表走进会议室,会议结束时你会得到你想要的。
需要注意的是,我们现在把扩展范式视为理所当然,但在当时扩展是非常不明显的。它之所以不明显有很多原因。
首先是伴随着规模而来的技术和运营挑战。首先,分布式训练需要大量专业知识,你需要雇佣很多基础设施工程师来构建这个分布式训练系统。其次,你需要机器学习研究人员来对抗可能出现的损失发散和硬件故障。第三点是计算非常昂贵。
除了技术挑战之外,还有一些心理挑战,这让扩展在当时变得相当困难。一个心理挑战是研究人员喜欢归纳偏置。对于如何改进算法有一个假设,然后真的看到任务性能提升,这其中有一种固有的快乐。所以研究人员喜欢做那种改变算法的工作。
第二,总是有一种论点说人类学习比扩展效率高得多。你知道,一个人不需要读 GPT-3 训练时读过的那么多文本就能学会写一段英语。所以有一个问题是:如果人类能做到,为什么机器需要从这么多数据中学习?
第三,长期以来,科学研究的激励机制和扩展所需的工程工作并不完全匹配。你知道,当你向会议提交论文时,他们想看到一些「创新」,而不仅仅是你把数据集做得更大或者用了更多 GPU。
那么,既然扩展如此具有挑战性,我们为什么要做扩展呢?
我想说,如果你不依赖扩展范式,那么几乎每一个改进都需要新的创造力。你必须投入研究人员来实现模型的进步,而且不一定能成功,这需要一定程度的创造力。
第二个挑战是,我们希望 AI 能做很多任务,如果你想在每个任务上单独训练 AI,那将是很大的挑战。
而在以扩展为中心的 AI 中,从定义上来说,你有一个可靠的方法来提升模型的能力。现在重要的是要注意,这通常非常昂贵。你会看到很多扩展图表中 x 轴是对数刻度的,所以提升性能实际上是极其昂贵的。但好消息是,如果你的能力度量(也就是 y 轴)非常通用,那么这种极端的财务投资通常可以证明是合理的。
当然,谈到扩展就不能不提 Rich Sutton 的这篇文章《The Bitter Lesson》。如果你还没读过,我推荐阅读,写得非常好。文章的主要观点是利用计算能力的通用方法是最有效的,能扩展的方法最终会胜出。
扩展范式一:预测下一词
现在我想谈谈第一个扩展范式,也就是预测下一词。这个范式始于 2018 年,我们今天仍在继续,它非常简单 —— 就是在预测下一词方面变得非常非常擅长。
我认为要完全理解这一点并不简单。问题是为什么仅仅通过预测下一词就能得到这么多?我的答案是:预测下一词实际上是一个大规模的多任务学习。
让我们快速回顾一下下一词预测是如何工作的。你有一个句子,比如「 On weekends, Dartmouth students like to ___ 」。然后语言模型对词汇表中的每个词 —— 从「a」、「aardvark」一直到「zucchini」—— 都分配一个概率。然后模型的好坏取决于其对实际下一词的预测有多接近 1.0。
在这个例子中,假设「drink」是实际的下一词。当语言模型从中学习时,它会试图增加「drink」的概率,并降低其他所有词的概率。
我想展示一些例子来说明仅仅通过在足够大的数据库上做下一词预测就能学到什么。
首先,模型肯定会很好地学习语法。比如在预训练数据中有一句话说「In my free time, I like to {code, banana} 」,下一词是「code」而不是「banana」,所以语言模型学会了在这里动词应该比名词有更高的权重。
模型会学到世界知识。比如互联网上可能有一句话说「The capital of Azerbaijan is {Baku, London} 」,然后模型学会了给「Baku」比「London」更高的权重,所以模型学到了一些关于这个世界的知识。
模型可以学习经典的自然语言处理任务,比如情感分析。互联网上某处可能有一句话说「I was engaged and on the edge of my seat the whole time. The movie was {good, bad} 」,然后通过学会给「good」比「bad」更高的权重,语言模型学到了一些关于情感分析的东西。
模型可以学习如何翻译。预训练中可能有一句话说「The word for “neural network” in Russian is {нейронная сеть, привет} 」,然后通过给正确的俄语单词更高的权重,模型学到了一些关于俄语的知识。
模型可以学习空间推理。互联网上可能有一句话说「Iroh went into the kitchen to make tea. Standing next to Iroh, Zuko pondered his destiny. Zuko left the {kitchen, store} 」,然后通过给「kitchen」比「store」更高的权重,模型学到了一些关于 Zuko 在哪里的空间推理。
最后,模型甚至可以期望学习数学这样的东西。训练中可能有一句「Arithmetic exam answer key: 3 + 8 + 4 = {15, 11} 」,然后通过学会正确预测 15,模型学到了一些数学知识。
你可以想象,还有数百万种类似的任务。通过在庞大的语料库上仅训练下一词的预测,模型实际上是在进行极其大量的多任务学习。
在 2020 年,Kaplan 等人发表的一篇论文普及了这种扩展范式。它普及了 scaling law 这个概念,这个概念主要是说,语言模型预测下一词的能力或性能会随着我们增加模型大小、数据集大小和训练计算量而平滑提升。
这里 x 轴是训练计算量,也就是你训练的数据量乘以模型大小,你可以看到模型预测下一词的能力在提升。
之所以称之为 scaling law,是因为他们可以看到这个趋势跨越了 7 个数量级。他们用 7 个数量级的计算量训练语言模型,发现这个趋势一直持续。
这里最重要的是它不会饱和。这点之所以重要,是因为如果你扩大计算量,你可以期望得到一个更好的语言模型。这某种程度上给了研究人员继续扩大规模的信心。
这里有一个自然的问题:为什么扩展效果这么好?作为一个领域,我认为我们还没有一个很好的答案,但我可以给出一个大致的解释,说明扩展可以带来的两个优势。
首先,如果是一个小型语言模型,那它的记忆是非常昂贵的。因为参数很少,你必须非常谨慎地选择要在参数中编码什么样的知识。而大型语言模型有很多参数,所以在学习长尾知识和记忆大量事实方面可以更慷慨。
其次,如果是一个小型语言模型,它在单次前向传播中的能力要低得多。所以它可能主要学习一阶相关性。而如果是一个大型语言模型,它在单次前向传播中会获得更多的计算能力,当它有额外的计算能力时,学习复杂性要容易得多。
现在你可能会说,如果 scaling law 如此可预测,为什么这么多人对 ChatGPT 在扩展范式中的成功感到惊讶?我的回答是,下一词预测实际上是大规模的多任务处理,而且在不同任务上的性能提升速度各不相同,所以一些能力的涌现可能会让人感到惊讶。
我建议你这样看待下一词预测的准确率:它是很多个体子任务的加权和。这些数字是我编的,但你可以把总体准确率计算为:某个小系数乘以语法准确率,加上某个小系数乘以世界知识准确率,加上情感分析、数学能力、推理等等。
当你这样看时,你可以问自己这个问题:如果准确率从 70% 提升到比如 80%,是所有任务都均匀提升吗?比如语法从 70 提升到 80,数学也从 70 提升到 80?
我认为可能不是这样。你可以这样看:总体能力在平滑提升。对于一些简单的任务,在某个点之后你实际上并没有提升性能。例如,GPT-3.5 基本上已经有完美的语法了,所以当你训练 GPT-4 时,你可能实际上并没有优化语法方面的损失。
另一方面,你可能有一些任务出现了能力的大幅提升。比如,你可以说 GPT-3 和 GPT-2 的数学能力都很差,甚至不能做算术,但 GPT-4 真的很擅长数学。所以你可能会看到数学能力以这种方式提升。
人们经常用「涌现能力」或「相变」这两个术语来描述这种现象。
可以看到,这里有两个阶段:在阈值之前,模型的性能不佳或增长平缓;而一旦超过某个阈值,模型的性能就会迅速提升。下面展示了一个简单示例。
这里的提示词是想要把一句话翻译成西班牙语。可以看到,图中展示了三个模型的输出结果。ada 和 babbage 只是重复了输入,因为它们并不真正理解这里应该执行翻译。而最大的模型 curie 突然就学会了完美地完成这个任务。
重点在于,如果你只训练了 ada 和 babbage,并试图预测 curie 能否完成这个任务,那么你可能会得到消极的答案,认为 curie 也无法做到。但实际情况却并非如此。
因此,我们可以绘制一张我们希望 AI 完成的任务图谱。一开始是最基础的任务(比如返回基本事实或保证语法正确),到翻译、写代码和写诗等中等难度任务,再到写小说或做科研等最难的任务。
随着模型增大,它们能完成的任务也越来越多,比如 GPT-2 只能做这些任务中的一小部分,GPT-3 能做更多任务,而 GPT-4 则涌现出了更多能力,比如调试代码、写诗等。
于是,问题来了:既然下一词预测效果这么好,那么能否仅仅通过扩展下一词预测就达到 AGI 呢?
我的回答是:也许可以,但会非常困难,我们需要继续大量扩展。
仅仅做下一词预测确实存在一个根本性的瓶颈:有些词非常难预测,需要大量工作。
比如下图左侧就给出了一个下一词预测效果很好的例子,这里很容易预测出最后一个词是 models。而对于右侧的数学题,仅仅通过下一词预测很难得到正确答案是 A、B、C 中的哪一个。
这里要强调的是,任务是有难度区分的。如果单纯使用下一词预测,那就是使用相同的计算量来解决非常简单的任务和非常困难的任务。
而我们想要的实际上是:对于简单的问题使用少量计算,对于困难的问题则使用大量计算(比如得到竞赛数学多选题的答案)。
一个方法是思维链提示,这是我们在过去几年一直在做的事情。这个方法很简单:只需要提示语言模型给出推理链,就像你向老师展示你的解题过程一样。然后语言模型就可以在给出最终答案之前实际输出这个推理链。
事实证明该方法的效果相当不错。如果你有一个数学应用题基准测试,你会看到如果使用思维链而不是直接回答,随着模型增大,性能会有巨大的提升。
另一个角度是基于这本书《思考,快与慢》,其中分出了所谓的 System 1 和 System 2 思维。
System 1 思维就是下一词预测,它是自动的、不费力的、直觉式的,比如重复一个基本事实或认出一张脸。
思维链则属于 System 2 思维,这是有意识的、费力的、受控的。
不过,思维链提示也有一个关键问题:当你在大多数互联网数据上训练模型时,模型训练的推理大多看起来是下图左侧这样的。这个例子来自一个大学数学作业,你可以需要花一个小时做题,然后再用 10 分钟将其转录成 LaTeX。格式上,可以看到,其一开始就给出了答案,之后是进行证明。所以这实际上是对内部推理过程的事后总结。
这是我的一个大学数学作业解答的例子。你会注意到,如果你想想这是从哪里来的,我可能花了一个小时在纸上做这个问题,然后花了 10 分钟把它转录成 LaTeX。你可以看到,你知道,证明在开头,答案在开头等等。所以它实际上是对实际内部推理过程的事后总结。
但实际上,思维链是想要模型像我们的内心独白一样思考。如上右图所示,我们希望模型说:「让我们先看看应该采用什么方法;我要试试这个;这个实际上不对,我再试试别的……」
扩展范式二:基于思维链扩展强化学习
这就引出了第二个范式:基于思维链扩展强化学习。这种范式的思路是训练语言模型,使之在给出答案之前会进行思考。
研究者发现,除了扩大训练的计算规模之外(这是过去几十年的主流做法),还有另一个可能性:延长语言模型在执行推理时的思考时间。
基于此思路,OpenAI 打造了 o1。其相关博客已经介绍了相关技术,值得一读,这里总结了其中几个关键点。
这篇博客展示了一些 o1 给出的思维链,从中我们可以学到不少东西。
如上图所示,o1 正在解决一个化学问题。首先它会说:「让我们理解一下问题是什么」,这是它在尝试正确理解问题。然后它会尝试确定有哪些离子以及哪些离子会对 pH 值产生影响。结果发现,其中既有弱酸,也有弱碱。于是 o1 又想出了一个策略,通过 Ka、Kb 值来计算 pH 值。然后它进行了一些回溯,发现使用 Kb 更好。它再继续思考:正确的公式是什么,如何计算它。最后,它得到了最终答案。
思维链大有作用的另一类问题是存在验证不对称的问题,即验证一个解比生成一个解容易得多的情况,比如填字游戏、数独或写一首符合某些约束条件的诗。下图给出了一个填字游戏例子。
另外,如果有些问题需要大量思考,思维链也会很有用,比如竞赛数学或竞赛编程。事实上,思维链带来的效果非常明显,GPT-4o 在竞赛数学和竞赛编程上只能达到百分之十几的水平,而 o1-preview 和 o1 能够解决大部分问题。所以这是「基本上不能完成任务」与「能够解决大多数问题」的差异。
o1 博客中还提到了在竞赛数学数据集上的一次通过准确率。随着训练计算量增多,一次通过准确率也会提升。而第二张图表明,如果给模型更多时间思考推理,那么在数学基准测试上也能有一个正向的扩展趋势。
现在我想谈谈为什么这种范式如此特别。我认为,对许多人来说,我们对 AI 如此兴奋的原因是,我们希望有一天 AI 能够帮助我们解决人类面临的最具挑战性的问题,比如医疗、疾病、环境等等。
因此,理想情况下,未来的方向是:你可以提出一个非常具有挑战性的问题(比如撰写一篇关于如何制造 AI 的研究论文),然后语言模型可以在推理时花费大量的计算资源来尝试解决这个问题。也许你提出问题后,成千上万的 GPU 运行一个月,最终它会返回一个完整的答案,比如这是关于如何制造 AI 的一整套研究成果。
我们想要推断的是,目前 AI 可能只能思考几秒或几分钟,但最终我们希望 AI 能够思考几小时、几天、几周甚至几个月,以帮助我们解决一些最具挑战性的问题。
扩展如何改变了 AI 研究文化
接下来,我想谈谈扩展如何改变了 AI 研究文化。其中一个重要的转变是对数据的重视。
过去,从 2010 年到 2017 年,甚至更早,目标是让神经网络尽可能好地学习某种 X 和 Y 的关系,也就是追求最佳的性能。而如今,目标变成了如何让 X 和 Y 尽可能好,因为我们已经有了一种有效的学习方法。
总结来说,AI 的潜力在于它能够通过大量的计算资源和时间来帮助我们解决复杂问题,而研究文化的转变则体现在从单纯优化模型转向优化数据本身。这种变化正在推动 AI 向更深远的方向发展。
这个例子很好地说明了现代机器学习研究重点的转变。过去,研究人员通常会专注于在现有数据集(如 ImageNet)上训练出最好的模型,以追求更高的评分(如准确率)。当时的目标是优化模型本身,而不是考虑扩展或改进数据集,比如将 ImageNet 扩大 10 倍,再训练模型。
然而,如今的研究趋势表明,通过改进数据集(X 和 Y)的质量或领域相关性,可以显著提升模型的表现。一个典型的例子是 Google 两年前发布的 Minerva 模型。Minerva 的研究团队并没有从头设计一个新的模型,而是基于现有的语言模型,通过在大量数学相关数据(如 arXiv 上的论文)上继续训练,显著提升了模型在数学任务上的表现。
AI 文化的另一个转变是,我们某种程度上存在一种滞后现象,即我们没有真正能够捕捉到语言模型能力极限的评估标准。这是我从 David Ryan 的一次演讲中提取的一张图表。这张图表基本上展示了基准测试被「饱和」的速度有多快。你可以看到,大约 8 年前,一个基准测试可能需要几年时间才会被饱和。而最近一些具有挑战性的基准测试,比如问答(QA),可能在大约 0.1 年(约 1 个月)内就被饱和了。当 David 被问到是否会设计一个更难的基准测试时,他的回答是,他正在着手设计一个最难的基准测试。这听起来非常有趣。
此外,人工智能文化的另一个变化是朝着高度多任务模型(highly multi-task models)的方向发展。过去,每个 NLP 任务都需要一个单独的模型。而现在,我们有一个单一的模型试图完成许多不同的任务。这导致了一些奇怪的现象,比如模型可能是一个竞赛级别的程序员和数学家,但当你问它 9.11 和 9.8 哪个更大时,它却会说 9.11 更大。
这里的挑战在于,我们需要从多个维度来衡量语言模型的表现。由于有如此多的评估基准和方法,模型的应用场景也非常广泛,因此很难说一个模型是否严格优于另一个模型。通常情况下,没有一个模型能在所有方面都严格优于其他模型。
有时候我听到的一种观点是,AI 无法做到某些事情,因此它没有用。但我的看法是,AI 并不需要在所有方面都达到人类水平。它只需要在少数几个用例中表现出色,就能对人类非常有用。
最后我想说的是,智能和用户体验是两个可以分别改进的维度。通常,人们会尝试通过让语言模型在数学和编码等方面表现更好来改进它,但这并不意味着你会得到一个用户体验更好的模型。
也许我们文化中的最后一个转变是朝着更大规模的团队合作发展。比如在 2015 年,两个人可以写出一篇开创性的论文,这篇论文甚至可能是被引用次数最多的之一。而如今,你需要一个团队来完成这样的工作。比如谷歌的 Gemini 开发团队,人员名单就占满了一整页。
未来展望
接下来我来谈谈人工智能未来会继续发展的方向。
其中一个让我非常兴奋的方向是 AI 在科学和医疗领域的应用。我认为,作为人类,我们在研究方面还算不错,但我们有很多局限性。
比如,我们无法记住互联网上的所有信息,我们会感到疲倦,会分心等等。我认为 AI 在科学和医疗创新方面确实有很大的潜力,因为它几乎可以学习任何东西,而且不会感到疲倦,可以长时间工作,对吧?
另一个方向是更加注重事实的 AI。目前,像 ChatGPT 这样的模型仍然会出现比我们预期更多的幻觉(即生成不准确或虚构的内容)。最终,我认为我们有可能开发出一种几乎不会产生幻觉的模型,它非常擅长引用来源,并且非常精确。
总的来说,AI 在科学、医疗以及提高事实准确性方面的潜力巨大,这些领域将继续推动 AI 技术的发展。
我认为我们将朝着多模态 AI 的方向发展。文本是一个非常好的学习媒介,因为它是对我们世界的高度压缩表示。但我们将朝着更融入我们世界的 AI 发展,比如 Sora 和高级语音模式。
我认为工具使用也将成为另一个重要的方向。
目前,AI 更像是一个聊天助手,你可以向它提问并获取答案。但我认为,最终我们希望达到的状态是 AI 能够代表用户执行操作,并且能够主动为用户提供服务。
最后,我认为我们将看到许多 AI 应用落地。我感觉在技术的研究阶段和实际部署之间总是存在一定的滞后。例如,Waymo 在旧金山这样的复杂驾驶环境中已经运行得很好,但谷歌还没有将 Waymo 推广到全球大部分地区。另一个例子是,我觉得现在的 AI 已经足够好,如在餐厅为你点餐,但这一应用还没有被广泛采用。
好的,接下来我将回到第一张图,也就是 2019 年和 2024 年,下面我们加上一个五年预测。过去 AI 的能力非常有限,但如今它已经非常强大。我对未来五年 AI 的发展感到非常兴奋,并鼓励大家都去思考这个问题。
最后,我想用这句话结束:当《海底总动员》中的 Nemo 不知道下一步该做什么并陷入困境时,Dory 说:你只需要继续游下去。我想说的是,你只需要继续 Scaling。