1块GPU同跑50个大模型:2秒切换快照

我们搞了个AI模型"闪电启动器",让大模型像Windows休眠功能一样秒开秒关!

以前跑AI大模型特别麻烦——每次用都要重新加载,像开电脑等系统启动一样慢,而且显卡内存根本塞不下几个模型。现在我们搞出了新方法,2-5秒就能唤醒一个AI(130亿到650亿参数都行),还能让一块显卡轮流跑50多个模型,不用一直占着内存。

这技术就像给显卡装了个"休眠功能"

  1. 不用时把模型整个"拍张照"存起来(包括参数、计算状态、内存安排)
  2. 等有人要用时,直接把"照片"贴回显卡内存
  3. 跳过了所有重新加载、编译的步骤,跟游戏读档一样快

三大好处直接起飞
✅ 省钱:模型不用时就休眠,不交"显卡房租"
✅ 灵活:能随时切换不同模型接单,像滴滴司机同时接多个平台订单
✅ 高效:让显卡像高峰期的外卖小哥,接单量翻倍

对比传统方法(比如vLLM/llama.cpp):
旧方法就像每次做饭都要现买锅碗瓢盆——要重新布置内存、编译计算流程。我们则是把整桌菜提前做好放冰箱(存快照),想吃时微波炉"叮"一下:

  • 120亿参数的模型:0.5秒热好
  • 650亿参数的大模型:2-5秒上桌

存储问题怎么解决?
家用固态硬盘(SSD)可能扛不住,但我们用了企业级SSD+内存双保险:
常用模型放内存——速度堪比DDR5赛车(最高67GB/s)
其他放NVMe固态硬盘——速度也有15GB/s(相当于把最爱的游戏装SSD,其他放移动硬盘)

虽然2-5秒看着不如"秒开",但实际用起来真香

  • 传统方法加载大模型要几分钟
  • 我们能同时管理几十个模型随叫随到
  • 特别适合需要多个AI协同工作的场景(比如让写作AI+绘图AI+数据分析AI接力干活)

这技术最厉害的地方就像给每个AI模型发了"复活卡"——不用时冻结保存,用时直接满血复活。

现在团队正在想办法让它和现有系统(如vLLM)兼容,未来可能做成通用工具,让所有AI开发者都能用上这套"闪电启动术"!

为何比冷启动更快?
序列化到磁盘确实慢一些,但关键的区别在于序列化的内容和方式。

我们不仅仅保存模型权重并重新初始化(冷启动会这样做),还在模型加载和预热后对整个 GPU 执行状态(包括内存布局、KV 缓存缓冲区和运行时上下文)进行快照。

当我们恢复时,我们使用固定内存 + 直接内存映射将该快照直接映射回 GPU 内存,因此无需从头开始重新加载,无需重新初始化权重,也无需重建注意层。

这让我们跳过了冷启动必须做的所有事情 —— 这就是我们如何将 12B 模型的恢复时间控制在约 0.5 秒,将 70B 大型模型的恢复时间控制在约 2 秒。

网友:
看看它在实际使用案例中的表现如何,以及复杂性、成本和性能权衡是否比获得更多 GPU 资源更值得,这将会很有趣。
我家用机能达到的最高速度是 9GB/秒(ddr4 2666),但对于 Q4 70B 型号来说,加上 llama.cpp 的开销,大约需要 5 秒。总的来说,大约需要 10 秒。
有两个疑问:

  • 可靠的交换是首要任务,性能其次。
  • 我想知道在流行的推理引擎中,初始化性能有多少唾手可得的成果?
在大多数运行时中,初始化开销仍然相当未优化。我们通过对热态后的数据进行快照来减少大部分开销,这样图形、缓冲区、布局,甚至一些注意力上下文都已经融入其中。完全同意,可靠的交换机制才是真正的优势。如果我们能做到这点,性能自然会随之提升。