这款新引擎运行本地 AI,内存占用减少至 1/10!(Cactus)

BBetter Stack
Computing/SoftwareConsumer ElectronicsCell Phones

Transcript

00:00:00这就是 Cactus。它是一款低延迟推理引擎,旨在将移动和边缘设备
00:00:06视为“一等公民”。通常当我们尝试在边缘设备上运行 AI 模型时,它们
00:00:12会让人觉得很笨重、耗电,而且极易被移动操作系统的
00:00:18内存管理器强制杀掉。但 Cactus 正试图解决这个问题,因为它是专门
00:00:23针对神经网络处理单元(NPU)的限制和有限的 RAM 而构建的。所以今天我们将
00:00:28来了解 Cactus,看看它是如何工作的,并在边缘设备上进行测试以看其性能如何。
00:00:34那我们这就深入探讨一下。本地 AI 的最大瓶颈其实不是算力,而是
00:00:44内存开销。在标准的移动设备上,操作系统对于
00:00:50杀掉 RAM 使用率激增的应用是非常激进的。但 Cactus 通过使用零拷贝
00:00:57内存映射解决了这个问题。Cactus 不是采用传统的方法将所有内容加载到 RAM 中,而是
00:01:02直接从存储中映射模型权重。这是一个零拷贝系统,它只在需要时
00:01:08将特定的张量拉入活跃的计算周期。这样你就能获得大模型的
00:01:13推理能力,而不用冒着被操作系统关闭应用的风险。为了实现
00:01:19这一点,他们甚至放弃了传统的 GGUF 格式,并拥有自己
00:01:24专属的 .CACT 格式,从而让这种映射在边缘设备上能够高效运行。不过
00:01:31真正的重活是在 NPU(即神经网络处理单元)中完成的。虽然大多数本地
00:01:37引擎默认使用 GPU,但 Cactus 的构建理念是 NPU 优先。如果你关注过
00:01:43来自苹果、高通或联发科的现代芯片,它们都拥有专门用于神经网络的
00:01:50专用硬件。Cactus 直接与这些单元进行通信,绕过了通常会降低
00:01:55推理速度的传统转换层。而且他们实际上已经对特定模型进行了优化,以
00:02:00充分利用这些矩阵乘法单元。如果你前往 Cactus 的仪表盘,
00:02:07就会看到一个可供下载的 NPU 优化模型列表。Cactus 拥有的另一个酷炫功能
00:02:12是混合路由器。因为现实情况是,在边缘设备上,本地模型无论
00:02:18经过怎样的优化,最终都会触及推理能力的上限。而这就是混合路由器
00:02:23派上用场的地方。Cactus 不需要让你在快速但有限的本地模型与
00:02:29智能但昂贵的云端模型,Cactus 可以两者兼顾并灵活切换。它采用
00:02:35一种基于置信度的路由系统。如果你问它一个简单的问题,它会留在
00:02:40NPU 上运行,因为它速度快、保护隐私且不花任何成本。但如果本地模型察觉到
00:02:45该任务过于复杂或需要极大的上下文窗口,它就会自动将这个
00:02:51特定请求移交给云端的前沿大模型。你的代码完全不需要修改,
00:02:57引擎只会在后台管理这种故障转移。所以这是一种可以在情况变复杂时,
00:03:03既能保持低成本又不会牺牲用户体验的生产就绪型方案。现在,虽然这一切
00:03:08听起来很酷,但我还是想亲自测试一下。所以,在他们的落地页上,
00:03:13有这样一个演示,展示了如何在边缘设备上以大约 100 毫秒的延迟
00:03:19进行实时语音转文字。于是我凭感觉顺手写(vibe code)了一个小巧的 Swift 应用,使用了他们的
00:03:25Swift Cactus 包,它支持在本地使用他们的 parakeet
00:03:30语音模型运行实时转写,并在云端运行 Gemini 模型。那我们来试试看。正如你
00:03:36所见,在本地进行实时流式传输时,我们的平均延迟大约为 260 毫秒。请注意,
00:03:44我是在一款较旧的 iPhone 机型——iPhone 12 Pro 上运行的。所以对于像这样一款
00:03:50老机型来说,我认为这种边缘端的性能已经相当不错了。如果我们切换到云端,
00:03:55Cactus 会切换到 Gemini 2.5 Flash 作为云端替代方案。由于某些原因,
00:04:01他们的云端并没有提供相同的 parakeet 模型,所以我被迫使用了 Gemini。我们可以
00:04:06在这里看到,对于一个 3 秒的批量转写,其平均时间大约为 2000 毫秒。
00:04:12我想这也是预料之中的,因为需要往返数据服务器。但
00:04:17在现实中,大部分时间你最终还是会使用边缘端的转写,
00:04:23而云端选项对于其他任务非常有用,比如繁重的图像分析或其他
00:04:27更繁重的任务。以上就是这款 Cactus 引擎的
00:04:33简要概况。我认为他们在这里做了一些非常有趣的事情。我很喜欢他们
00:04:37利用定制的 NPU 友好型架构来进行边缘端优化的思路。而且我很喜欢
00:04:43他们为各种多模态任务提供了如此多的 SDK 和模型这一事实。
00:04:50我真的很想知道他们的产品会如何演进。所以我肯定会密切关注他们的
00:04:54最新进展。但大家对 Cactus 有什么看法呢?你们尝试过吗?请在
00:04:59下方的评论区让我们知道。各位,如果你喜欢这种类型的拆解分析,请
00:05:03通过狂按视频下方的点赞按钮来让我知道。还有,别忘了订阅
00:05:08我们的频道。我是来自 Better Stack 的 Andris,我们下期
00:05:13视频再见。

Key Takeaway

Cactus 推理引擎通过专属 .CACT 格式的零拷贝内存映射与 NPU 优先架构,将本地 AI 内存占用降至十分之一,并通过混合路由器在本地与云端大模型间无缝切换以保障边缘端性能。

Highlights

  • Cactus 推理引擎将本地 AI 的内存占用减少至十分之一,解决了移动设备因内存激增而被操作系统杀掉应用的问题。

  • 该引擎放弃传统的 GGUF 格式并采用专属的 .CACT 格式,通过零拷贝内存映射直接从存储中映射模型权重。

  • 系统采用 NPU 优先的设计理念,直接与苹果、高通和联发科等芯片的矩阵乘法单元通信以绕过传统转换层。

  • 混合路由器基于置信度自动分流任务,简单请求保留在本地 NPU 运行,复杂任务则在后台无缝切换至云端 Gemini 模型。

  • 在 iPhone 12 Pro 这种旧款设备上,使用 Swift Cactus 包运行本地 parakeet 语音模型可实现 260 毫秒的实时流式转写延迟。

Timeline

边缘端 AI 的内存瓶颈与零拷贝解决方案

  • 传统本地 AI 模型在边缘设备运行上面临耗电、笨重以及易被操作系统内存管理器强制关闭的限制。
  • 本地 AI 的最大瓶颈在于内存开销,而非芯片的算力限制。
  • Cactus 放弃了标准的 GGUF 格式,改用专属的 .CACT 格式来实现高效的零拷贝内存映射。

移动操作系统在面对应用内存 RAM 使用率暴涨时会采取极其激进的强制关闭策略。传统方法倾向于将模型全部内容加载到 RAM 中,而 Cactus 改变了这一路径。它通过零拷贝系统直接从存储中映射模型权重,只有在活跃的计算周期需要时才会将特定张量拉入,从而在极低的内存占用下赋予边缘设备大模型的推理能力。

NPU 优先架构与矩阵乘法优化

  • 多数本地推理引擎默认依赖 GPU,而 Cactus 采用 NPU 优先的构建理念。
  • 该引擎直接与现代芯片的专用硬件通信,绕过了会降低推理速度的传统转换层。
  • 官方仪表盘提供了针对特定矩阵乘法单元进行了深度优化的模型下载列表。

苹果、高通和联发科等现代芯片制造商都在硬件中集成了专门用于神经网络处理的专用 NPU。Cactus 放弃了通用的 GPU 兼容路线,选择直接向这些 NPU 写入数据。这种底层的直接通信消除了中间转换带来的延迟,使硬件的矩阵乘法单元能够发挥出最高的运算效率。

混合路由器与本地云端弹性切换机制

  • 本地模型受限于边缘设备的物理硬件,必然会触及推理能力的上限。
  • 混合路由器基于置信度建立路由系统,在本地模型与云端模型之间灵活切换。
  • 任务的分流与故障转移全在后台自动管理,开发人员无需修改任何既有代码。

为了在不牺牲用户体验的前提下控制成本,引擎设计了双轨运行机制。当用户提出简单问题时,系统将其锁定在本地 NPU 上运行,以确保高速度、零成本并保护隐私。一旦本地模型检测到任务过于复杂或超出了当前的上下文窗口,系统会自动将该特定请求移交给云端的前沿大模型,实现了生产环境下的平滑过渡。

旧款 iPhone 上的实时语音转写性能测试

  • 官方落地页技术演示表明,边缘设备可实现大约 100 毫秒的实时语音转文字延迟。
  • 在 iPhone 12 Pro 上使用 Swift Cactus 包进行本地流式转写,实际录得平均延迟为 260 毫秒。
  • 云端切换至 Gemini 2.5 Flash 进行 3 秒的批量转写时,受网络往返影响其平均时间为 2000 毫秒。

通过一个集成 Swift Cactus 包的轻量级 Swift 应用,可以对边缘端和云端的性能进行量化评估。测试环境采用较旧的 iPhone 12 Pro 硬件,本地运行 parakeet 语音模型时展现出了适合边缘端部署的低延迟响应。由于数据传输存在服务器往返开销,云端转写耗时显著增加,因此在实际应用中,大部分基础转写工作由边缘端承担,而云端则保留用于高负载的图像分析或复杂任务。

Community Posts

No posts yet. Be the first to write about this video!

Write about this video