Демо Snake для публикации

README открывается 15-секундным GIF реального прогона Core ML в терминале. Соответствующий 20-секундный MP4 в 1920×1080 подходит для поста в соцсети. Оба воспроизводят исходную запись на скорости 1× реального времени.
- Скачать MP4
- Скачать GIF
- Превью PNG
- Происхождение медиа и хеши рендерера
- Исходная 75-секундная запись решений
Что было записано
Установленное колесо laya-coreml работало в настоящем псевдотерминале 112 столбцов × 38 строк
на M3 Max. Модель была скачана из публичного закреплённого снимка ANE FP16 в Hub до начала игры.
Игра шла офлайн в рантайме Core ML, без установленных в том окружении Torch, Transformers или MLX.
| Настройка или результат | Значение |
|---|---|
| Поле / seed | 24×16 / 7 |
| Начальная длина змейки | 6 |
| Запрошенная частота показа | 12 решений/с |
| Фактическая длительность прогона | 75.034 с |
| Новые вызовы решений / выполненные ходы | 855 / 855 |
| Наблюдаемая частота решений | 11.395/с |
| Итоговый счёт / длина | 26 / 32 |
| Смерти / вмешательства системы безопасности | 0 / 0 |
P50 / P95 для predict с тремя вопросами |
26.63 / 28.09 мс |
| Выходные токены модели | 0 |
| Фрагмент MP4 | Секунды 45–65, 30 видеокадров/с |
| Фрагмент GIF | Секунды 45–60, 10 видеокадров/с |
| Статичное превью | Секунда 55 |
Видеокадры выбираются из исходных решений. Они не вызывают дополнительных предсказаний и не
ускоряют змейку. Рендерер использует ту же композицию ячеек терминала, что и живой интерфейс, и
помечает экспорты RECORDED RUN · 1×. GIF весит около 1.6 МБ; MP4 — около 0.7 МБ.
Модель получает точные признаки планировщика. Слой защиты от циклов включён, и его счётчик вмешательств остаётся видимым, хотя этому прогону не потребовалось переопределений. Ноль смертей здесь — ограниченное наблюдение, а не доказательство неограниченной игры без помощи. Показанные риск и достижимость еды — это оценки модели.
Таймер инференса в интерфейсе включает три последовательных типизированных вопроса. Отдельный бенчмарк на 4.98 мс измеряет один короткий вопрос под устойчивой нагрузкой. Эти рабочие нагрузки, темп и границы измерения различаются. Полные тесты частоты игрового цикла — в SNAKE_BENCHMARKS.md.
Воспроизведите запись
Установите laya-coreml[demo]==0.1.0, скачайте закреплённую модель из
RELEASE.md и выполните:
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
Для скриптованной записи настоящего терминала в исходной копии есть
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
Предлагаемый текст поста
Английский:
Модель принятия решений на 322M играет в Snake на Neural Engine моего Mac. Ноль сгенерированных токенов. Офлайн-инференс, живые вероятности и видимый слой защиты. Рантайм Core ML, открытые веса, воспроизводимые бенчмарки: https://github.com/mizorewww/laya-coreml
中文:
把一个 3.22 亿参数的决策模型搬到了 Mac 的 Neural Engine 上,用它实时玩贪吃蛇。 概率实时变化,0 个生成 token,下载模型后完全离线。视频是原速实录,安全层和干预 次数直接显示在界面上。代码、权重、PyPI 包和完整 benchmark 都已开放: https://github.com/mizorewww/laya-coreml
Для продолжения с акцентом на производительность используйте точную формулировку: 4.98 мс P50 для одного короткого многоязычного решения, при оценке энергии всей системы на решение в 2.78× ниже, чем у скомпилированного MLX FP16, в парном эксперименте на M3 Max. Ссылайтесь на метод измерения, сохраняйте оговорку о рабочей нагрузке и не называйте это временем кадра Snake или результатом 10×.