文件導航

可分享的 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× 結果。