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 应用程序成为可能,且无需担心网络延迟或数据隐私问题。
如何亲自尝试
- 先决条件: 在 Apple Silicon (M1/M2/M3/M4) 上运行 macOS 27.0(或更高版本)。安装
uv包管理器 (pip install uv)。 - 克隆仓库:
git clone https://github.com/mizorewww/laya-coreml.git。 - 按照脚本操作: 执行上述“快速启动脚本”部分中的命令。
- 实验: 用您自己的 CoreML 兼容推理循环替换贪吃蛇演示,或者像 Cloudflare 示例中那样通过本地 HTTP 服务器公开模型。
局限性和悬而未决的问题
- 模型大小: Laya 拥有约 3 亿参数,远小于最先进的模型(例如 7B+)。预计语言理解的广度会降低。
- 微调: 公开演示不包含针对贪吃蛇环境微调的版本;对特定任务性能感兴趣的用户需要微调基础模型并重新导出为 CoreML。
- 硬件依赖: 性能提升依赖于苹果的神经网络引擎;在非苹果硬件或缺乏最新神经网络引擎的旧款 Mac 机型上,结果可能会有所不同。
总结
laya-coreml 演示证明了一个 3 亿参数的多语言 LLM 可以在 Apple Silicon M4 上离线运行,利用 CoreML 将内存保持在 800 MiB 以下并将计算卸载到神经网络引擎,从而在桌面上实现低延迟、保护隐私的 AI 应用。
Sources
相关
- 项目
- 项目
- Dispatch
- Dispatch
- Dispatch