要想让 AI 跑得更快,可以给大模型找个替身队友?这是上海交通大学教授戚正伟团队的最新成果。你有没有玩过这样的游戏:一个团队里每个人都有自己的特长,但有时候某个队员临时来不了,如果找个技能相似的替补队员顶上,整个团队也能顺利完成任务。现在,AI 大模型也遇到了类似情况。
想象一下,AI 大模型就像一个由成千上万个小专家组成的超级团队。每个小专家都擅长处理不同类型的问题,有的擅长数学、有的擅长写作、有的擅长编程。
但神奇的是,每当你问 AI 一个问题,它并不需要请出所有专家来回答。就像你问 AI 一道数学题的时候,只需要请出来数学专家工作就可以,不需要惊动写作专家和绘画专家。这种设计让 AI 能够保持较高效率,同时其还拥有海量的知识。
不过问题来了:虽然每次只用到少数专家,但是所有专家都必须随时待命准备被召唤。为了解决这个“太胖装不下”的问题,人们想了一个办法:把不常用的专家搬到电脑的普通内存里待命,就像把不常用的物品放到仓库一样。当需要某个专家的时候,再临时把它从仓库请回来。
但是这个方法存在一个大问题:从仓库搬东西太慢了,把一位专家从普通内存请到显卡上工作,需要花费 10 毫秒左右的搬运时间。而专家在显卡上的工作时间却只需要不到 1 毫秒。也就是说,搬运时间比工作时间长了 10 倍。
戚正伟团队在仔细观察这些 AI 专家之后发现,很多专家其实长得特别像,功能也差不多。比如,在处理“苹果”这个词语的时候,可能同时有好几个专家都能理解它,有的专家将苹果理解为水果,有的专家将苹果理解为苹果公司,但它们在某些情况之下可以互相替代。为此,他和团队通过绘制专家关系热力图,厘清了哪些专家经常一起工作、哪些专家的能力很相似。
基于此,戚正伟团队提出一款名为 BuddyMoE 的智能系统(Buddy 就是好朋友的意思)。这个系统的核心思想很简单:当需要某个专家但它又不在显卡上的时候,不是急着去仓库搬运,而是立即找一个已经在显卡上的、能力相似的伙伴专家来临时顶替。
BuddyMoE 的专家预取流程。当 GPU 正在处理第 i 层的计算时,CPU 会提前预测并预加载第 i+1 层所需的专家(Prefetch),将数据的搬运与计算并行进行,从而降低延迟。