Documentation

Démo Snake partageable

Aperçu de Snake Core ML

Le README s’ouvre sur un GIF de 15 secondes d’une vraie exécution Core ML dans un terminal. Le MP4 correspondant de 20 secondes en 1920×1080 convient à une publication sur les réseaux sociaux. Les deux rejouent l’enregistrement d’origine à vitesse d’horloge murale d’origine (1×).

Ce qui a été enregistré

La wheel laya-coreml installée a tourné dans un vrai pseudo-terminal de 112 colonnes × 38 lignes sur un M3 Max. Le modèle a été téléchargé depuis l’instantané Hub public et épinglé ANE FP16 avant le début de la partie. Le jeu a tourné hors ligne avec le runtime Core ML, sans Torch, Transformers ni MLX installés dans cet environnement.

Réglage ou résultat Valeur
Plateau / graine 24×16 / 7
Longueur initiale du serpent 6
Débit de présentation demandé 12 décisions/s
Durée réelle de l’exécution 75.034 s
Appels de décision fraîche / coups exécutés 855 / 855
Débit de décision observé 11.395/s
Score / longueur finaux 26 / 32
Morts / interventions de sécurité 0 / 0
predict à trois questions P50 / P95 26.63 / 28.09 ms
Tokens de sortie du modèle 0
Extrait MP4 Secondes 45–65, 30 images vidéo/s
Extrait GIF Secondes 45–60, 10 images vidéo/s
Aperçu fixe Seconde 55

Les images vidéo échantillonnent les décisions d’origine. Elles ne déclenchent pas de prédictions supplémentaires et n’accélèrent pas le serpent. Le moteur de rendu utilise la même composition de cellules de terminal que l’interface en direct et étiquette les exports RECORDED RUN · 1×. Le GIF fait environ 1.6 MB ; le MP4 environ 0.7 MB.

Le modèle reçoit des caractéristiques exactes de planificateur. Une couche de sécurité de cycle est activée et son compteur d’interventions reste visible, même si cette exécution n’a eu besoin d’aucune correction. Les zéros morts ici sont une observation bornée, pas une preuve d’un jeu illimité sans assistance. Le risque affiché et l’accessibilité de la nourriture sont des estimations du modèle.

Le chronomètre d’inférence de l’interface inclut trois questions typées séquentielles. Le benchmark séparé de 4.98 ms mesure une question courte sous charge soutenue. Ces charges de travail, cadences et frontières de mesure diffèrent. Les tests de débit complets de la boucle de jeu sont dans SNAKE_BENCHMARKS.md.

Reproduire l’enregistrement

Installe laya-coreml[demo]==0.1.0, télécharge le modèle épinglé depuis RELEASE.md, et lance :

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

Pour une capture scriptée d’un vrai terminal, le checkout source inclut 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

Texte de publication suggéré

Anglais :

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

Pour un suivi centré sur la performance, utilise l’affirmation exacte : 4.98 ms P50 pour une courte décision multilingue, avec une énergie système estimée par décision 2.78× plus faible que MLX FP16 compilé dans l’expérience appariée sur M3 Max. Lie la méthode de mesure, conserve sa qualification de charge de travail, et ne l’étiquette pas comme un temps par image Snake ni comme un résultat de 10×.