Cloudflare 构建了高效的 LLM 推理引擎 Infire,以优化全球边缘网络 AI 工作负载
Cloudflare推出Rust编写的AI推理引擎Infire,优化边缘计算性能。相比Python版vLLM,Infire通过异步内存传输、智能批处理和定制CUDA内核,将Llama3模型加载时间缩短至4秒,GPU利用率提升至80%,同时降低75%CPU负载。其创新分页键值缓存技术支持更多并发请求,使推理速度提升6%,能耗显著降低。该方案充分利用Cloudflare覆盖全球95%用户的边缘网络优势
在 Cloudflare,我们最近一直在思考 AI 推理。它支持聊天机器人、欺诈检测,甚至帮助自动驾驶汽车做出决策。但问题是:如果您使用大型云服务提供商,您可能最终需要从遥远的数据中心租用昂贵的 GPU。这不符合我们的模式——Cloudflare 的网络遍布全球,全球 95% 的互联网用户在我们服务器的 50 毫秒范围内。我们需要一种能够在边缘计算上比其他任何人都更快、更高效地运行 AI 推理的方法。
现有工具的问题
几年前,我们开始使用 vLLM,这是一款适用于大多数情况的开源推理引擎。它在配备专用 GPU 的大型数据中心运行良好,能够处理特定模型。但随着 AI 模型规模不断扩大(例如 Llama 4 和 GPT 模型),以及我们的工作负载变得更加动态化,vLLM 也出现了一些局限性。
例如,vLLM 是用 Python 编写的,这增加了额外的步骤并降低了速度。我们还需要在同一 GPU 上运行多个模型,而无需依赖多实例 GPU (MIG) 等昂贵的工具。此外,安全性对我们至关重要——我们无法在边缘节点上运行不受信任的 Python 代码,因此我们不得不将 vLLM 封装在沙盒中,这又增加了额外的开销。
构建 Infire:我们的定制解决方案
因此,我们构建了 Infire——一个用 Rust 编写的全新推理引擎,旨在完美适配我们的边缘网络。Rust 使我们能够控制底层细节,这对于速度和效率至关重要。让我们来详细了解一下它的工作原理。
如何快速启动
当模型首次在边缘服务器上运行时,我们需要快速加载它。我们从 R2 存储中获取权重,缓存它们,并使用异步内存传输等技术将模型迁移到 GPU 上。例如,加载 Llama 3.1 8B(约 16GB 数据)只需不到 4 秒。我们还会在加载模型的同时编译 GPU 内核,以便在需要时随时可用。
使用智能批处理器处理流量
推理最重要的部分是确保 GPU 得到高效利用。Infire 使用 批处理器 将多个请求(例如聊天提示)分组并并行处理。这样,我们就能充分利用 GPU 强大的 Tensor Core 和内存带宽,这比一次运行一个请求要高效得多。
- 预填充:当新的提示符出现时,我们会一次性处理所有标记符(因为它们都是预先已知的)。
- 连续批处理:我们持续向批处理中填充新的提示符,直到它们填满为止,这样 GPU 就不会闲置。
- 分页键值缓存:我们不再为每个请求预先分配大块内存,而是将缓存拆分成更小的“页面”。这使我们能够处理更多请求,而不会耗尽内存,即使是长时间的对话也是如此。
优化的 GPU 内核
由于我们掌控硬件(我们使用 Nvidia Hopper GPU),因此我们可以根据其优势编写自定义内核。例如,我们使用 CUDA 图形对内核启动进行分组,从而降低开销。我们还使用 cuBLASlt 进行快速矩阵乘法,并正在开发 Flash Attention 3 来加速注意力机制——这对于处理长对话的模型至关重要。
成果:更快、更便宜、更环保
我们在实际条件下测试了 Infire 和 vLLM。以下是我们的发现:
指标 | Infire | vLLM(裸机) | vLLM(gvisor) | vLLM(gvisor + CPU 限制) |
---|---|---|---|---|
请求数/秒 | 40.9 | 38.4 | 37.1 | 22.0 |
令牌数/秒 | 17.2k | 16.2k | 15.6k | 9.3k |
CPU 负载 | 25% | 140% | 250% | 100% |
Infire 每秒处理更多请求和令牌,并且 CPU 使用率显著降低。在生产环境中,这意味着所需的 GPU 更少,能源成本更低,并为其他服务提供更多资源。GPU 利用率提升至 80%,这是一个巨大的进步。
下一步是什么?
这仅仅是个开始。我们正在努力为更大规模的模型提供更好的多 GPU 支持、量化(运行速度更快的小型模型)以及真正的多租户功能,以便开发者可以安全地共享 GPU。我们的目标是让 Cloudflare 成为构建 AI 应用的最佳平台——快速、安全、高效。
归根结底,Infire 致力于解决一个简单的问题:如何让 AI 推理更贴近用户,让用户真正理解它。通过构建与我们网络量身定制的解决方案,我们不仅简化了自身的工作,还为开发者提供了构建下一代 AI 产品所需的工具。
阅后请思考
- Infire相比vLLM的核心优化点是什么?
- 如何实现Infire的全球边缘网络部署?
- 低级别CUDA内核对性能提升有多大?
更多推荐
所有评论(0)