ドキュメント

Snake の速度と安定性:M3 Max

最後の トゥルーカラー キャンペーンは、死亡ゼロ、安全介入 4 回で 8,160 手を完了しました。既定のモデルは FP16 の aac6fef/laya-multilingual-mlx で、簡潔なプランナ記述、24 × 16 の盤面、初期の長さ 6 を使いました。これらの計測は既定の eager ランタイムを使います。オプトインのコンパイルは Snake の最適化で別に評価しています。

持続的な上限なしスループット:2,400 手を通して全体で毎秒 63.61 手。 4 つのシードがそれぞれ 600 手を完了しました。レートは毎秒 46.32 から 76.37 手の範囲でした。すべてのゲームが生き残り、胴体の循環順序を保ち、餌に到達し続けました。このエピソードで、安全層はモデルの生の提案を 2 回修正しました。

合格したテスト済みのペーシング計算予算の最高値:20 FPS。 4 つのシードすべてが、アクティブティックの少なくとも 99% が 50 ms 以内に収まるという要件を満たしました。OS のスリープによるオーバーシュートを含む実際の実時間レートは、毎秒 18.69–18.94 手でした。これは予算の設定であり、毎秒ちょうど 20 フレームを描画したという主張ではありません。

持続的な最高速度

シード 手数 実際の手/秒 アクティブティック p50 / p99 (ms) スコア / 長さ 介入
101 600 46.32 15.52 / 39.67 20 / 26 1
102 600 67.91 13.84 / 22.96 24 / 30 0
103 600 74.20 12.27 / 21.42 23 / 29 1
104 600 76.37 11.98 / 21.00 16 / 22 0

上限なしのモデル推論を統合した p50 / p95 / p99 は 10.08 / 31.68 / 33.61 ms でした。アクティブティック全体の p50 / p99 は 12.70 / 37.21 ms でした。アクティブティックには、計画、同期推論、Rich の構築、トゥルーカラーの ANSI シリアライズ、ゲームの更新が含まれます。ペーシングの遅延は挿入しません。

固定予算での安定性

シード 目標 FPS 手数 実際の手/秒 アクティブティック p99 (ms) 予算超過
101 20.0 600 18.69 39.93 0 (0.00%)
102 20.0 600 18.86 45.09 0 (0.00%)
103 20.0 600 18.94 48.66 6 (1.00%)
104 20.0 600 18.85 44.53 0 (0.00%)

合格したテストでは、2,400 手のうち遅れたアクティブティックが 6 回(全体で 99.75% が予算内) でした。最も悪いシードは 600 手のうち 6 回で、事前に定義した 1% の上限ちょうどでした。すべての手は新しいモデル結果を待つので、推論が遅いと古いアクションを実行するのではなく、ゲームのレートが下がります。

短いスイープ

以下の各候補はシード 7 で 120 手を実行しました。短い合格プローブは、より長い 4 シードテストのために候補を選ぶもので、それだけでは安定性を主張するのに十分ではありません。タイミングの失敗を含め、すべてのゲームが生き残りました。

目標 FPS 実際の手/秒 アクティブティック p99 (ms) 予算超過 短いスイープ
10.0 9.60 52.13 0.00% 合格
12.0 11.39 42.07 0.00% 合格
15.0 14.10 48.69 0.00% 合格
18.0 16.95 58.10 2.50% 不合格
20.0 18.84 43.84 0.00% 合格
25.0 24.23 45.66 5.83% 不合格
30.0 28.60 40.04 97.50% 不合格
35.0 28.69 40.12 100.00% 不合格
40.0 28.16 44.15 100.00% 不合格
45.0 26.70 45.56 100.00% 不合格
50.0 28.67 40.23 100.00% 不合格
60.0 28.89 40.97 100.00% 不合格

短いスイープは単調ではなく、計測されるレイテンシは時間とともにかなり変わります。ペーシングありと上限なしの実行では、デバイスのアイドル期間が異なります。通常のデスクトップ操作、スケジューリング、クロックの挙動は実験的に分離していません。データは単一の原因や普遍的な速度の天井を特定しません。達成レート、すべてのサンプル、合格した テスト済み 設定の最高値を報告します。

安定性の結果に含まれるもの

Laya は、合法な方向や餌への最良の許容進行を含むプランナ特徴量を受け取ります。実際の確率を計算します。サイクル安全層は、生の確率バーを保持し、すべての介入を数えつつ、実行を修正することがあります。このチェックポイントはここでは Snake で訓練していません。UI 指標の正確な意味とポリシーの挙動。

別の生の top-1 対照は、実行シールドを無効にしてシード 101–103 をそれぞれ 600 手実行しました。3 つとも生き残り、スコアは 9、24、19 で、シールドありの対応する 20、24、23 と比べられました。生の対照も依然としてプランナ特徴量を与えられます。この範囲での生存は、無期限のシールドなし生存や、支援なしの盤面推論を確立するものではありません。

公開されたショーケースは、別の 100.005 秒の実際の TTY 実行で、12 FPS 目標でした:1,144 手、スコア 40、長さ 46、死亡ゼロ、介入ゼロ。達成スループットは毎秒 11.44 手でした。記録されたすべての盤面とアクションは、テストスイートの決定論的リプレイで検査されます。表示される推論値はその実行から得たもので、都合のよいベンチマーク値に差し替えてはいません。

別の最適化した最高速 TTY 録画は、20.01 秒で 1,296 手(毎秒 64.77 手) を完了し、スコア 44、長さ 50、死亡ゼロ、介入ゼロでした。これには実際のターミナルストリームの書き込みが含まれます。その 15 秒の元の速度の動画と完全な録画は、より遅いプレゼンクリップと並べて同梱されています。

計測の境界と来歴

  • Apple M3 Max、GPU コア 40、統合メモリ 128 GiB、macOS 27.2、Python 3.12.13。
  • MLX 0.32.2、NumPy 2.5.3、Rich 15.0.0、tokenizers 0.23.2、huggingface-hub 1.32.0。
  • 元の FP16 の重みで、量子化もカスタムカーネルもなし。上流のモデルリビジョン:052592a15d198d9ad47da779604259b10b47b7aa。
  • 以前に検証済みの公開マニフェストによる重みの SHA-256:7fc5834af4d8fdfb268d272a9d1a66e5819a0daac98241651c4c888cc43adff1。
  • 各手は Agent.predict を 3 つのバッチ化した質問で 1 回呼び出します。推論時間にはトークナイズ、同期された MLX 評価、出力変換が含まれます。
  • ベンチマークは NO_COLOR とは無関係にトゥルーカラーを明示的に有効にし、Rich の出力をメモリ上のストリームへシリアライズします。ターミナルエミュレータの画面描画、モデルのロード、ウォームアップは除外します。実際のターミナル操作とクリーンアップは別にテストしました。
  • レポートは構成、環境、ソースのフィンガープリント、および各ステップの確率、実行判断、タイミングをすべて保存します。後から加えた出力トークンのラベルとオプトインの最適化は、ベースラインのモデルやゲームポリシーを変えません。

以前の実行も保持

最初の詳細プロンプトと簡潔プロンプトのキャンペーンは、ツール環境から NO_COLOR=1 を引き継ぎました。これらはモノクロのシリアライズを計測したもので、最終的なカラー計測の代わりではなく、探索的な結果として保持されます。以前の簡潔プロンプトのキャンペーンは死亡なしで 12,360 手を完了し、上限なしで全体毎秒 52.55 手を計測しました。合格したテスト済み予算の最高値は 18 FPS でした。最終実行との差は、カラーを有効にしたことには 帰属しません:マシンの計測値は大きく変動します。

詳細プロンプトの 20 FPS ソークは、すべてのゲームが生き残ったものの、4 シードすべてでタイミング基準に失敗しました。以前の簡潔プロンプトキャンペーンのより高いレートでの失敗も保持されています。完了した失敗エピソードは、それらのファイルから一つも削除していません。

ファイルと再現

uv run --extra demo laya-snake benchmark \
  --rates 10,12,15,18,20,25,30,35,40,45,50,60 \
  --raw-steps 600 --sweep-steps 120 --soak-steps 600 \
  --seeds 101,102,103,104 --output artifacts/snake/benchmark.json

中断の後は、同じ出力パスで --resume を使ってください。ライブのプレゼンは既定で読みやすい 12 FPS 目標になり、--max-speed は現在の連続的な判断レートを計測します。