原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你经营着一家拥有数千间客房(GPU)和数千名不同访客(AI 模型)的大型酒店。有些访客是名人,他们要求 24 小时全天候占用房间;而有些则是游客,他们每天只会在 10 分钟的入住时间里出现一次。
问题在于,运营这家酒店的成本非常高昂。如果你为了以防万一,给每个游客都分配一间私人房间,你会发现酒店有 90% 的空间都在浪费。但如果你试图把所有人挤进一间房,就会陷入混乱,名人也会因为不得不等待而感到愤怒。
Prism 是一个全新的智能酒店经理,它通过一种被称为**“内存气球化”(Memory Ballooning)**的小技巧解决了这个问题。
以下是其工作原理的简单拆解:
1. 问题所在:“静态房间”陷阱
在传统的 AI 运行方式中,如果一个模型(访客)被分配了一个房间,那么这个房间就永远属于它,即使它正在睡觉(闲置)。
- 空间共享(旧方法): 你尝试把多个访客放在一个房间里。如果他们都在清醒状态并进行交谈,效果很好。但如果其中一个访客离开了一周,他们占据的半个房间就会空置,而另一个访客无法使用这部分空间。
- 时间共享(另一种旧方法): 你通过踢走一个访客来让另一个进来。如果访客在不同的时间到达,这种方法很有效。但如果两个访客在同一秒钟到达,你就必须不断地把他们踢进踢出。这种“踢人”的过程很慢,会导致大家都在等待(延迟),从而导致他们错过截止日期。
现实世界的 AI 流量是非常杂乱的。有时一群模型会同时变得繁忙,有时又会集体安静下来。没有任何一种旧策略能够完美处理这种切换。
2. 解决方案:“气球化”技巧
Prism 引入了一个名为 kvcached(气球驱动器)的新型管理器。请将 GPU 内存想象成不是一组固定的房间,而是充气气球。
- 弹性气球: 当一个模型正忙于思考并需要更多空间时,管理器会为它充气,从其他正在睡觉的模型那里“偷取”空余的空气。
- 为他人放气: 当一个模型进入睡眠状态时,它的气球会缩小,释放出空间,以便一个新的、正在苏醒的模型能立即充气。
- 无需搬动家具: 最棒的是,模型甚至不知道这些正在发生。它们只看到房间神奇地扩张和收缩。管理器在幕后处理了所有的繁重工作。
3. 两步走策略
Prism 使用两条智能规则来决定谁能获得空气:
- 规则 1:全局调度器(酒店经理): 它观察整个酒店。它会询问:“目前哪些组的访客是活跃的?”然后将这些活跃的访客安排在同一个楼层(GPU)上,以便他们更容易地共享空间。如果一位访客正在睡觉,它会将他们移到储藏室(CPU)中,以腾出空间。它不断地重新排列酒店布局,以确保没有一个楼层过度拥挤而另一个楼层却空空如也。
- 规则 2:本地调度器(礼宾人员): 它关注的是此时此刻正在发生的具体请求。如果两名访客正在争夺最后一点空间,礼宾人员会检查谁的截止日期更紧迫。它会让紧急的访客先进入,并告诉不太紧急的那位稍等片刻。这确保了最重要的任务能按时完成。
4. 结果
论文在来自主要 AI 供应商的真实数据上测试了 Prism,发现:
- 服务更快: 它满足服务水平目标(SLO)的速度比以往的方法高出达 3.3 倍。
- 成本更低: 为了达到相同的性能水平,Prism 所需的 GPU 数量仅为一半(或者说在相同硬件下可以处理两倍数量的请求)。
- 现实证明: 它已经部署在拥有超过 10,000 个 GPU 的生产环境中,帮助公司通过将浪费的“闲置”时间转化为可计费的工作,显著提升了每块 GPU 的收入。
总结
Prism 就像是一个聪明且具有弹性的酒店经理。它不像传统方式那样将访客锁定在固定房间或不断地将他们踢走,而是使用充气气球来动态共享空间。它为繁忙的模型扩张空间,为睡眠中的模型缩小空间,确保酒店始终保持满员、高效且快速,且无需任何人排队等待。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。