Documentación

Demo de Snake compartible

Vista previa de Core ML Snake

El README abre con un GIF de 15 segundos de una ejecución real de Core ML en terminal. El MP4 correspondiente de 20 segundos y 1920×1080 es apto para una publicación en redes sociales. Ambos reproducen la grabación original a velocidad de reloj de 1×.

Qué se grabó

La wheel instalada de laya-coreml se ejecutó en un pseudo-terminal real de 112 columnas × 38 filas en un M3 Max. El modelo se descargó de la instantánea pública y fijada del Hub de ANE FP16 antes de que empezara el juego. La partida se ejecutó sin conexión con el runtime de Core ML, sin Torch, Transformers ni MLX instalados en ese entorno.

Ajuste o resultado Valor
Tablero / semilla 24×16 / 7
Longitud inicial de la serpiente 6
Ritmo de presentación solicitado 12 decisiones/s
Duración real de la ejecución 75.034 s
Llamadas de decisión nuevas / movimientos ejecutados 855 / 855
Ritmo de decisión observado 11.395/s
Puntuación final / longitud 26 / 32
Muertes / intervenciones de seguridad 0 / 0
predict de tres preguntas P50 / P95 26.63 / 28.09 ms
Tokens de salida del modelo 0
Extracto del MP4 Segundos 45–65, 30 fotogramas de vídeo/s
Extracto del GIF Segundos 45–60, 10 fotogramas de vídeo/s
Vista previa fija Segundo 55

Los fotogramas de vídeo muestrean las decisiones originales. No activan predicciones adicionales ni aceleran la serpiente. El renderizador usa la misma composición de celdas de terminal que la interfaz en vivo y etiqueta las exportaciones como RECORDED RUN · 1×. El GIF pesa unos 1.6 MB; el MP4, unos 0.7 MB.

El modelo recibe características exactas del planificador. La capa de seguridad de ciclo está activada y su contador de intervenciones permanece visible, aunque esta ejecución no necesitó ninguna anulación. Las cero muertes de aquí son una observación acotada, no una prueba de una partida ilimitada sin asistencia. El riesgo mostrado y la accesibilidad de la comida son estimaciones del modelo.

El temporizador de inferencia de la interfaz incluye tres preguntas tipadas secuenciales. El benchmark aparte de 4.98 ms mide una pregunta corta bajo carga sostenida. Estas cargas de trabajo, el ritmo y los límites de medición son distintos. Las pruebas completas de ritmo del bucle de juego están en SNAKE_BENCHMARKS.md.

Reproducir la grabación

Instala laya-coreml[demo]==0.1.0, descarga el modelo fijado desde RELEASE.md y ejecuta:

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

Para una captura de terminal real con script, el checkout del código fuente incluye 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

Texto sugerido para la publicación

Inglés:

Un modelo de decisión de 322M jugando a Snake en el Neural Engine de mi Mac. Cero tokens generados. Inferencia sin conexión, probabilidades en vivo y una capa de seguridad visible. Runtime de Core ML, pesos abiertos, benchmarks reproducibles: https://github.com/mizorewww/laya-coreml

中文:

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

Para un seguimiento centrado en el rendimiento, usa la afirmación exacta: 4.98 ms P50 para una decisión multilingüe corta, con una energía de sistema estimada por decisión 2.78× menor que MLX FP16 compilado en el experimento emparejado de M3 Max. Enlaza el método de medición, conserva su acotación de carga de trabajo y no lo etiquetes como tiempo de fotograma de Snake ni como resultado de 10×.