Laya CoreML 在 Apple Silicon M4 上的演示 – 通过 CoreML 运行离线贪吃蛇游戏

Laya CoreML 在 Apple Silicon M4 上离线运行,CPU 负载极低

要点: laya-coreml 软件包可以在配备 M4 芯片的 Mac 上本地执行多语言 LLM,利用 CoreML 将推理任务卸载到神经网络引擎(Neural Engine),在运行贪吃蛇游戏演示时内存占用保持在 800 MiB 以下。


快速启动脚本

该 gist 的作者发布了一个可复现的 shell 脚本 (laya.sh),用于设置全新的 Python 环境、安装演示程序、下载预转换的 CoreML 模型并启动贪吃蛇演示:

mkdir test-laya
cd test-laya
uv init                     # create an isolated Python environment
uv add 'laya-coreml[demo]'   # install the library and demo extras
hf download aac6fef/laya-multilingual-coreml-ane --local-dir models/snake
uv run laya-coreml-snake --model models/snake

在 macOS 27.0 (Apple Silicon M4) 上运行该脚本会弹出一个窗口,LLM 在其中实时控制贪吃蛇代理。


作者提供的性能指标

作者在演示运行期间捕获了 Python 进程的 sample 快照:

Physical footprint:         560.4 MiB
Physical footprint (peak):  778.0 MiB

报告显示该进程的内存占用从未超过 800 MiB,证实了该模型可以轻松适配典型 M 系列 Mac 的统一内存池。


CoreML 卸载至神经网络引擎

一位评论者 (speedping) 观察到推理几乎完全在神经网络引擎上运行,而不是 GPU:

"太酷了。我启动了 pumas(能源监控器),它似乎几乎完全在神经网络引擎上运行,而不是 GPU,所以它与 CoreML 的配合非常好。" — @speedping

这证实了 laya-coreml 利用了苹果的硬件加速堆栈,降低了 CPU 负载和功耗。


通过 Cloudflare 使用 API 的示例

另一位社区成员 (coezbek) 将本地 Laya 模型封装在 Cloudflare Workers 端点 (typesafe/jev API) 之后,并演示了一个简单的 JSON 请求:

curl https://laya.inference.zaitlabs.com/ai/run \
  -H "Content-Type: application/json" \
  -d '{
    "state": "Help! My payouts have been failing for 3 days.",
    "questions": {
      "is_urgent": {"type": "noul", "instructions": "Does this convey urgency?"}
    }
  }'

响应返回了一个紧急程度的概率分数 (0.7894),表明该模型可以作为低延迟推理服务对外提供。


社区观点

  • 确定性任务: imranq 的评论指出,Laya 在具有一定训练数据的任务上表现出色,其确定性行为非常有价值,但对于纯粹的新颖查询,可能落后于像 Jev 这样的零样本模型。
  • 本地 LLM 的未来: PaulRobinson 对控制问题领域的本地 LLM 表示了热情,认为硬件加速推理(如演示所示)可以推动更广泛的采用。
  • 内存好奇心: altano 询问了在拥有 128 GB 统一内存的 M3 Max 上的内存消耗情况。作者的样本数据(峰值约 778 MiB)表明,即使在低端 M 系列芯片上,其占用空间也很小。
  • 模型范围: 几位评论者 (tentacleuno, frag) 询问贪吃蛇演示是否使用了微调过的 Laya 模型。该 gist 未说明微调;它使用的是 Hugging Face 上预发布的 laya-multilingual-coreml-ane 模型。

什么是 Laya-CoreML

laya-coreml 是一个 Python 软件包,它封装了一个多语言 LLM(约 3 亿参数)并提供了一个 CoreML 转换流水线。该仓库 (https://github.com/mizorewww/laya-coreml) 包括:

  • 用于苹果 CoreML 格式的模型转换脚本。
  • 一个演示 CLI (laya-coreml-snake),在强化学习风格的贪吃蛇游戏中运行该模型。
  • 可选的额外功能 ([demo]),用于安装演示所需的依赖项。

为什么这很重要

在消费级 Apple Silicon 上完全离线运行语言模型证明了复杂的 AI 工作负载不再需要云端 GPU。极低的内存占用和神经网络引擎加速使得将 LLM 驱动的功能(如意图分类、紧急程度检测或游戏代理)直接嵌入 macOS 应用程序成为可能,且无需担心网络延迟或数据隐私问题。


如何亲自尝试

  1. 先决条件: 在 Apple Silicon (M1/M2/M3/M4) 上运行 macOS 27.0(或更高版本)。安装 uv 包管理器 (pip install uv)。
  2. 克隆仓库: git clone https://github.com/mizorewww/laya-coreml.git。
  3. 按照脚本操作: 执行上述“快速启动脚本”部分中的命令。
  4. 实验: 用您自己的 CoreML 兼容推理循环替换贪吃蛇演示,或者像 Cloudflare 示例中那样通过本地 HTTP 服务器公开模型。

局限性和悬而未决的问题

  • 模型大小: Laya 拥有约 3 亿参数,远小于最先进的模型(例如 7B+)。预计语言理解的广度会降低。
  • 微调: 公开演示不包含针对贪吃蛇环境微调的版本;对特定任务性能感兴趣的用户需要微调基础模型并重新导出为 CoreML。
  • 硬件依赖: 性能提升依赖于苹果的神经网络引擎;在非苹果硬件或缺乏最新神经网络引擎的旧款 Mac 机型上,结果可能会有所不同。

总结

laya-coreml 演示证明了一个 3 亿参数的多语言 LLM 可以在 Apple Silicon M4 上离线运行,利用 CoreML 将内存保持在 800 MiB 以下并将计算卸载到神经网络引擎,从而在桌面上实现低延迟、保护隐私的 AI 应用。

Sources

相关

  • 项目
  • 项目
  • Dispatch
  • Dispatch
  • Dispatch