Documentação

Demonstração compartilhável do Snake

Prévia 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 de 20 segundos, 1920×1080 correspondente é adequado para uma publicação em rede social. Ambos reproduzem a gravação original a velocidade de relógio de parede de 1×.

O que foi gravado

A wheel laya-coreml instalada rodou em um pseudo-terminal real de 112 colunas × 38 linhas em um M3 Max. O modelo foi baixado do snapshot público e fixado do ANE FP16 no Hub antes de o jogo começar. A jogabilidade rodou offline com o runtime Core ML, sem Torch, Transformers ou MLX instalados naquele ambiente.

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

Os quadros de vídeo amostram as decisões originais. Eles não disparam predições adicionais nem aceleram a cobra. O renderizador usa a mesma composição de células de terminal da interface 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 recursos exatos do planejador. Uma camada de segurança de ciclo está habilitada e seu contador de intervenções permanece visível, mesmo que esta execução não tenha precisado de nenhuma substituição. Zero mortes aqui é uma observação limitada, não evidência de jogabilidade ilimitada sem assistência. O risco exibido e a alcançabilidade da comida são estimativas do modelo.

O cronômetro de inferência da interface inclui três perguntas tipadas sequenciais. O benchmark separado de 4.98 ms mede uma pergunta curta sob carga sustentada. Essas cargas de trabalho, cadências e fronteiras de medição diferem. Os testes completos de taxa do laço de jogo estão em SNAKE_BENCHMARKS.md.

Reproduza a gravação

Instale laya-coreml[demo]==0.1.0, baixe o modelo fixado de RELEASE.md e execute:

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 roteirizada de terminal real, 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 sugerido para publicação

Inglês:

Um modelo de decisão de 322M jogando Snake no Neural Engine do meu Mac. Zero tokens gerados. Inferência offline, probabilidades ao vivo e uma camada de segurança visível. Runtime Core ML, pesos abertos, benchmarks reproduzíveis: https://github.com/mizorewww/laya-coreml

中文:

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

Para um desdobramento focado em desempenho, use a afirmação exata: 4.98 ms de P50 para uma decisão multilíngue curta, com energia de sistema por decisão estimada 2.78× menor do que o MLX FP16 compilado no experimento pareado no M3 Max. Aponte para o método de medição, mantenha sua qualificação de carga de trabalho e não o rotule como tempo de quadro do Snake nem como resultado de 10×.