Documentação

Demonstração do Snake partilhável

Pré-visualização do Snake em Core ML

O README abre com um GIF de 15 segundos de uma execução real do terminal Core ML. O MP4 correspondente de 20 segundos, 1920×1080 é adequado para uma publicação em redes sociais. Ambos reproduzem a gravação original a velocidade de relógio de parede 1×.

O que foi gravado

O wheel laya-coreml instalado correu num pseudo-terminal real de 112 colunas × 38 linhas num M3 Max. O modelo foi descarregado do snapshot público e fixado do Hub ANE FP16 antes de o jogo começar. O jogo correu offline com o runtime Core ML, sem Torch, Transformers nem MLX instalados nesse ambiente.

Definição ou resultado Valor
Tabuleiro / semente 24×16 / 7
Comprimento inicial da snake 6
Taxa de apresentação pedida 12 decisões/s
Duração real da execução 75.034 s
Chamadas de decisão novas / movimentos executados 855 / 855
Taxa de decisão observada 11.395/s
Pontuação / comprimento finais 26 / 32
Mortes / intervenções de segurança 0 / 0
P50 / P95 de predict com três perguntas 26.63 / 28.09 ms
Tokens de saída do modelo 0
Excerto MP4 Segundos 45–65, 30 fotogramas de vídeo/s
Excerto GIF Segundos 45–60, 10 fotogramas de vídeo/s
Pré-visualização estática Segundo 55

Os fotogramas de vídeo amostram as decisões originais. Não desencadeiam predições adicionais nem aceleram a snake. O renderizador usa a mesma composição de células de terminal que a UI ao vivo e rotula as exportações como RECORDED RUN · 1×. O GIF tem cerca de 1.6 MB; o MP4 tem cerca de 0.7 MB.

O modelo recebe características exatas do planeador. Uma camada de segurança de ciclo está ativada e o seu contador de intervenções permanece visível, embora esta execução não tenha precisado de nenhuma substituição. Zero mortes aqui é uma observação limitada, não evidência de jogo ilimitado sem assistência. O risco apresentado e a alcançabilidade da comida são estimativas do modelo.

O temporizador de inferência da UI inclui três perguntas tipadas sequenciais. O benchmark separado de 4.98 ms mede uma pergunta curta sob carga sustentada. Estas cargas de trabalho, ritmos e fronteiras de temporização diferem. Os testes completos de taxa do ciclo de jogo estão em SNAKE_BENCHMARKS.md.

Reproduzir a gravação

Instala laya-coreml[demo]==0.1.0, descarrega o modelo fixado de RELEASE.md e executa:

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 uma captura real de terminal em script, o checkout do código-fonte inclui 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 de publicação sugerido

Inglês:

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

Chinês:

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

Para uma publicação de acompanhamento focada no desempenho, usa a afirmação exata: 4.98 ms P50 para uma decisão multilingue curta, com uma energia de sistema estimada por decisão 2.78× mais baixa do que o MLX FP16 compilado na experiência pareada num M3 Max. Liga o método de medição, mantém a sua qualificação de carga de trabalho e não a rotules de tempo de fotograma do Snake nem de resultado de 10×.