文件導航

Core ML Snake 釋出基準

ANE FP16 演示在三個不設上限的 600 步回合中持續達到 49.1–50.0 次新鮮決策/秒,零死亡。 其合併吞吐量為 49.66/秒。每一步包含三個順序的模型問題、規劃器工作和 truecolor 終端序列化。這是完整的活動遊戲迴圈,不是那個單獨的單問題約 5 ms 微基準。

對於限速執行,請求 20 次決策/秒是通過活動計算截止時間準則的最高被測設定。觀察到的牆鐘速率為 18.39–18.42/秒,其中包含真實的 sleep 和排程開銷。這一結果不能證明有一個計時完美的 20 FPS 顯示。README 的錄製為可讀性使用請求 12 次決策/秒,在其真實終端中觀察到 11.39/秒。

環境與方法

  • Apple M3 Max,40 核 GPU,128 GiB,macOS 27.2,Python 3.12.13。
  • 在全新環境中安裝 laya-coreml==0.1.0 wheel;Core ML Tools 9.0、NumPy 2.1.3、Rich 15.0.0;未安裝 Torch、MLX 或 Transformers。
  • 公開的 ANE FP16 包,版本 39d6a9b3d0f67f06da74fbade6121ea134cbdb21,在執行前下載。
  • B1/L96/K32,每個遊戲決策三個順序問題,緊湊 prompt,24×16 棋盤,六個初始蛇格。排除二十次預熱決策。
  • 預設可見的迴圈安全層;原始 top-1 也單獨測量。
  • 計時包含同步的 predict、遊戲特徵、Rich 合成、truecolor ANSI 序列化和遊戲更新。載入、預熱和終端模擬器繪製不計入。限速執行包含真實的 sleep 呼叫。

通過要求輸出有限、零死亡、保持迴圈順序和食物推進,並且在每個限速回閤中最多 1% 的活動 tick 超出請求的時間預算。不受限模式在每步等待一次新鮮預測,沒有固定截止時間。沒有其他模型基準同時執行。

執行時、checkpoint、包雜湊、prompt 雜湊和逐 tick 的測量記錄在 coreml-snake.json。

不受限的穩定性

種子 步數 觀察到的決策/秒 分數 / 最終長度 死亡 安全乾預
101 600 49.10 20 / 26 0 1
102 600 49.89 24 / 30 0 0
103 600 49.99 23 / 29 0 1

在這 1,800 次決策中,三問題 API 延遲為 P50 16.32 ms / P95 21.33 ms。完整的活動 tick 延遲為 P50 19.07 ms / P95 25.96 ms。這是在顯式輔助下的有邊界存活證據,不是聲稱模型可以在沒有安全層的情況下無限期遊玩。

限速掃描與確認

每次掃描都使用種子 7,跑 120 步。失敗的速率被保留:

請求的決策/秒 觀察到的決策/秒 活動截止時間錯失 結果
20 18.55 0.83% 通過;下方已確認
30 28.67 10.83% 失敗
40 37.22 37.50% 失敗
50 44.21 53.33% 失敗
60 50.68 100.00% 失敗

在 20/秒設定下的更長時間確認:

種子 步數 觀察到的決策/秒 活動截止時間錯失 分數 結果
101 600 18.39 4 / 600, 0.67% 20 通過
102 600 18.42 4 / 600, 0.67% 24 通過
103 600 18.42 3 / 600, 0.50% 23 通過

在這些限速回閤中,三問題 API 的 P50 約為 26.3 ms,而不受限回合中為 16.3 ms。該實驗確立了依賴限速的差異,但沒有分離出原因。排程和裝置電源狀態轉換是可能的解釋,需要單獨剖析;本報告並未證明它們。因此,持續吞吐量的結果不得被宣傳為固定幀截止時間的保證。

原始 top-1 與可分享的錄製

在停用安全覆蓋的情況下,種子 101/102/103 各自完成 200 步,得分 7/6/7,零死亡。模型仍然收到相同的確切規劃器特徵,所以這些執行並未測試從未處理的棋盤出發的推理。它們也不能證明長局存活。

在所有基準模式中,共有 4,920 次決策、零死亡和四次安全乾預。另外,真實終端展示在 75.034 秒內記錄了 855 次決策,最終分數 26、長度 32、零死亡和零干預。其原始時間戳、狀態和動作由精確的確定性回放來測試。GIF、MP4 和來源見 LAUNCH.md。

復現

pip install 'laya-coreml[demo]==0.1.0'
hf download aac6fef/laya-multilingual-coreml-ane \
  --revision 39d6a9b3d0f67f06da74fbade6121ea134cbdb21 \
  --local-dir models/ane
laya-coreml-snake benchmark --model ./models/ane \
  --rates 20,30,40,50,60 --sweep-steps 120 --soak-steps 600 \
  --seeds 101,102,103 --raw-steps 200 --output snake-benchmark.json

要以觀察到的無約束速率遊玩,請使用 laya-coreml-snake --model ./models/ane --max-speed。實際的終端繪製可能使速率低於序列化基準。單獨的 Snake GPU 包會批處理全部三個問題;本釋出報告只測量 ANE FP16 包。歷史的配對模型比較仍留在 ANE_BENCHMARKS.md 和 BENCHMARKS.md。