自优化推理引擎让本地代理运行得更快了,Magnitude能完成这点?

PromptCube 高级 8小时前 585 浏览 5 点赞 约 3 分钟

在 Hacker News 上,Anders 和 Tom 宣布了他们正在开发的 Magnitude 项目。这是一个自优化推理引擎,专为代理设计,旨在在你的硬件上运行得尽可能快。它支持 Mac、Linux 和 Windows,并且在任何硬件上运行时,速度比 llama.cpp 快 2 倍。

Anders 和 Tom 都是软件工程师,之前他们开发了一个开源浏览器代理,获得了 4000+ GitHub 星和 100,000+ 下载。他们越来越想在本地模型上运行这个代理,但发现现有的推理引擎都无法满足他们的需求。

现有的推理引擎通常在性能上做出妥协。它们要么是为数据中心硬件上的批量推理而设计,牺牲了单次会话的性能(如 vLLM、SGLang);要么是为了广泛兼容性而设计,而不是针对特定硬件进行优化(如 llama.cpp、Ollama);要么是专为特定硬件或模型设计,但缺乏引擎的完整性(如 oMLX、ds4)。此外,没有一个引擎是专为在本地运行代理设计的。会话时间长,通常有多个会话同时运行,而你仍然希望使用计算机进行其他任务。

Magnitude 旨在在你的硬件上实现最大性能,并支持本地代理运行:

  • 设备上的编译和调优:内核是用灵活的参数编写的,在模型运行之前在你的实际设备上进行调优。这使得它具有广泛的硬件兼容性,同时达到与硬件特定内核相同的性能上限。
  • 关注最佳架构:我们为最受欢迎的开放权重系列编写了可调整的、高效的内核。这使我们能够实现并超越硬件或模型专用引擎的性能,而不会在性能上过度通用化。
  • 动态内存分配:Magnitude 只预留足够的内存来保存模型权重。随着代理会话的增长,内存堆动态增加,并在代理停止时释放。这样,在代理运行时,你的硬件仍然可以用于其他任务。
  • 混合分页注意力:我们借鉴了 SGLang 等引擎的最佳想法,允许并发会话共享前缀缓存,但优化了内存邻近性,以确保单次会话的性能不会受到影响。

Magnitude 是完全开源的(Apache 2.0 许可)。它用 Rust 编写,包括自定义的 GPU 内核运行时和自动调优器。我们从学术界(如 FlashAttention、FlashInfer、TurboQuant)和其他引擎(如 SGLang 的基数注意力)的最佳创新中汲取灵感,以达到性能极限。

在与 llama.cpp 进行基准测试时,使用 Qwen 3.6 35B A3B(4 位)、64k 上下文和无推测解码:

  • Metal(Mac M4 Pro 48 GB):

- 解码速度提高 92%(30 tok/s → 57 tok/s)
- 预填充速度提高 9%(466 tok/s → 507 tok/s)
- 每个代理的内存使用量减少 28%

  • CUDA(DGX Spark):

- 解码速度提高 19%(49 tok/s → 58 tok/s)
- 预填充速度提高 23%(2,033 tok/s → 2,507 tok/s)
- 每个代理的内存使用量减少 27%

Magnitude 以桌面应用程序的形式发布,你可以轻松地将其连接到你已经使用的任何代理(如 Pi、OpenCode、Hermes、Codex 等)。它会在代理实际需要模型时自动运行模型,并在不活动时关闭它们。

我们计划进一步推动 Magnitude,让你能够在相同的硬件上运行更大的模型,并继续提高性能。我们的计划包括:

  • 专家流式传输:将专家存储在 RAM 或磁盘上,并在需要时按需加载。这使你能够运行比 GPU 容量更大的模型。
  • 内核编译器:我们当前的内核调整了一些参数以适应你的硬件。我们可以通过一个完全自定义的编译器进一步推动这一点,该编译器会自动选择如何融合内核以及使用哪些实现,以使其更好地适应你的硬件。
rustGPUMagnitudeInference EngineMac M4 Pro

全部回复 (1)

想当场把话说完?进全球 AI 聊天室,登录就能开口。

在
在深圳设计师 中级 8小时前

比 llama.cpp 快 2 倍也太猛了,赶紧把这项目跑起来试试!

0 回复

发表回复

支持 Markdown 格式
各类AI落地变现的详细拆解见AI赚钱方法实操指南,有不少直接可参考的案例。