分享AI模型部署提速的方法。
这两周都在研究AI模型的移植和优化,昨天晚上认真分析了一下部署模型的耗时,主要是三块:
- 模型权重加载
- KV Cache 初始化
- 编译 CUDA 内核
权重加载和 KV Cache 初始化没有太多优化空间
加载权重和 KV Cache 初始化更多是模型从磁盘到显存的搬运和初始化过程,没有太多优化策略。
编译 CUDA 内核这一步完全没有必要
反而是 CUDA 内核编译却没有必要,所以我先在 T5000 芯片上编译 CUDA 内核,然后把编译好的 cache、triton、nv 等生成目录合成一个 CUDA 缓存包,用户只需要下载缓存包就可以加载 CUDA 内核,而不是每次加载模型都需要重新编译 CUDA 内核。
优化前后的耗时对比
| 阶段 | 优化前 | 优化后 | 节省 |
|---|---|---|---|
| 加载模型权重 | 2分30秒 | 2分30秒 | 0 |
| 初始化 KV Cache | 7分钟 | 5分37秒 | 1分23秒 |
| 编译 CUDA 内核 | 10分钟 | 2秒 | 9分58秒 |
| 缓存恢复及健康检查 | 未记录 | 约8秒 | – |
| 镜像导入后到部署完成 | 至少20分钟 | 8分47秒 | 至少11分13秒 |
通过这样的方式,我把整个重新部署的时间从 40 分钟,压缩到 16 分钟,大大节省了部署 AI 模型的时间。