文档导航

可分享的 Snake 演示

Core ML Snake 预览

README 以一个 15 秒的 GIF 开场,内容是一次真实的 Core ML 终端运行。与之配套的 20 秒、1920×1080 的 MP4 适合用作社交平台帖子。两者都以 1× 墙钟速度回放原始录制。

录制了什么

安装好的 laya-coreml wheel 在 M3 Max 上一个真实的 112 列 × 38 行伪终端里运行。模型在游戏开始前从公开、固定的 ANE FP16 Hub 快照下载。游戏过程用 Core ML 运行时离线进行,该环境里没有安装 Torch、Transformers 或 MLX。

设置或结果 值
棋盘 / 种子 24×16 / 7
初始蛇长 6
请求的呈现速率 12 次决策/秒
实际运行时长 75.034 s
新鲜决策调用 / 执行的步数 855 / 855
观察到的决策速率 11.395/秒
最终分数 / 长度 26 / 32
死亡 / 安全干预 0 / 0
三问题 predict 的 P50 / P95 26.63 / 28.09 ms
模型输出 token 0
MP4 片段 第 45–65 秒,30 视频帧/秒
GIF 片段 第 45–60 秒,10 视频帧/秒
静帧预览 第 55 秒

视频帧对原始决策进行采样。它们不会触发额外的预测,也不会让蛇加速。渲染器使用与实时 UI 相同的终端单元格合成,并把导出标记为 RECORDED RUN · 1×。GIF 约 1.6 MB;MP4 约 0.7 MB。

模型收到确切的规划器特征。启用了循环安全层,其干预计数器始终可见,尽管这次运行无需任何覆盖。这里的零死亡是一个有边界的观察,不能证明可以无限期地无人辅助游玩。显示的风险和食物可达性是模型估计值。

UI 的推理计时包含 三个顺序的类型化问题。单独的 4.98 ms 基准在持续负载下测量 一个简短问题。这些工作负载、节奏和计时边界各不相同。完整的游戏循环速率测试见 SNAKE_BENCHMARKS.md。

复现这段录制

安装 laya-coreml[demo]==0.1.0,从 RELEASE.md 下载固定的模型,然后运行:

laya-coreml-snake --model ./models/ane --seed 7 --fps 12 \
  --duration 75 --record snake.jsonl
laya-coreml-snake export snake.jsonl --start 45 --seconds 20 \
  --output snake-demo.mp4 --gif snake-demo.gif --gif-seconds 15
laya-coreml-snake export snake.jsonl --start 55 --output snake-preview.png

要做脚本化的真实终端捕获,源码 checkout 里包含 scripts/record_terminal.py:

python scripts/record_terminal.py --log artifacts/session.ansi -- \
  laya-coreml-snake --model ./models/ane --seed 7 --fps 12 \
  --duration 75 --record snake.jsonl

建议的帖子文案

英语:

A 322M decision model playing Snake on my Mac’s Neural Engine. Zero generated tokens. Offline inference, live probabilities, and a visible safety layer. Core ML runtime, open weights, reproducible benchmarks: https://github.com/mizorewww/laya-coreml

中文:

把一个 3.22 亿参数的决策模型搬到了 Mac 的 Neural Engine 上,用它实时玩贪吃蛇。 概率实时变化,0 个生成 token,下载模型后完全离线。视频是原速实录,安全层和干预 次数直接显示在界面上。代码、权重、PyPI 包和完整 benchmark 都已开放: https://github.com/mizorewww/laya-coreml

对于以性能为重点的后续帖子,请使用这个确切说法:一次简短的多语言决策 P50 为 4.98 ms,在配对的 M3 Max 实验中每个决策的估计系统能耗比编译后的 MLX FP16 低 2.78×。链接 测量方法,保留其工作负载限定条件,不要把它标成 Snake 帧时间或 10× 结果。