Tinkerbox - приложение разработчика WeGoToMars, которое запускает decision-модели на Apple Neural Engine (ANE) и отдаёт их в Shortcuts как обычные действия. Событие в системе запускает короткий запрос к локальной модели, модель возвращает решение, шорткат выполняет действие: ставит метку, шлёт уведомление, перемещает файл. Код писать не нужно, сценарий собирается в визуальном редакторе Shortcuts (публикация автора).
Внутри работает LiquidAI d1-3B. На момент публикации модель держится на Pareto-фронте индекса Decision Index 0.3.2, а замеры на M5 Pro дают около 40 мс на тёплое короткое решение. Исходники открыты на GitHub (WeGoToMars/tinkerbox), AOT-скомпилированные веса для CoreAI/ANE выложены на Hugging Face (wegotomars/d1-3B-CoreAI-ANE), сборки приложения лежат в разделе releases того же репозитория.
Tinkerbox не чат-бот и не замена ChatGPT. Это узкий инструмент под конкретный класс задач: принять решение по небольшому фрагменту текста или по событию, причём локально, без обращения к облаку. Писать статьи, вести диалог или генерировать код он не станет.
Чем decision-модель отличается от обычной LLM
Обычная LLM выдаёт ответ токен за токеном. Каждый следующий токен требует нового прохода по сети и нового чтения весов из памяти. Decision-модель устроена иначе: она получает состояние (текст события) и оценивает варианты ответа за один проход, возвращая решение, а не развёрнутый текст. Число вычислений не растёт с длиной «ответа», потому что ответа в привычном смысле нет.
Отсюда два практических следствия. Задержка предсказуема и слабо зависит от формулировки задачи. Модель бесполезна там, где нужен свободный текст. d1-3B - ровно такой случай: она отвечает на вопросы по входным данным, а не сочиняет.
Почему ANE и decision-модели хорошо совместимы
Apple Neural Engine рассчитан на плотные вычисления с заранее известной формой тензоров. Авторегрессионное декодирование плохо ложится на такую архитектуру по двум причинам: относительно низкая пропускная способность памяти и ограничения статических буферов, под которые приходится подгонять динамические структуры вроде растущего кеша attention. На каждом шаге генерации веса и промежуточные состояния читаются заново, и узким местом становится обмен с памятью, а не арифметика (разбор от автора проекта).
Decision-модели обходят это ограничение. Пошагового декодирования нет, сеть делает один проход и выдаёт распределение по вариантам. Формы тензоров известны заранее, нагрузка на память предсказуема, вычисления раскладываются по блокам ANE без перестроений на ходу.
| Свойство | Авторегрессионная LLM | Decision-модель |
|---|---|---|
| Формат вывода | текст токен за токеном | решение по заданным вариантам |
| Число проходов | растёт с длиной ответа | один проход |
| Нагрузка на память | постоянное чтение весов и кеша | предсказуемая, статичные формы |
| Совместимость с ANE | ограничена пропускной способностью памяти и статическими буферами | высокая |
Древовидная оценка решений за один проход
Реализация d1-3B в Tinkerbox использует древовидную структуру: несколько вариантов решения считаются в одном проходе, а не последовательными запросами. Нужно понять, срочное письмо или нет, и сразу решить, кому его переслать, - обе ветки оцениваются вместе. Экономия не в арифметике, а в числе обращений к памяти и в отсутствии повторного прохода по одним и тем же весам.
Для авторегрессионных моделей на Apple Silicon применяют другие приёмы: спекулятивное декодирование с драфтером, квантование, специализированные рантаймы. Пример такого подхода разобран в материале про ускорение Qwen3.8-27B на Apple Silicon: выигрыш даёт верификация черновика, а узкое место остаётся тем же - обмен с памятью.
Задержка и что означают ~40 мс на M5 Pro
Публичная цифра по скорости одна: около 40 мс на тёплое короткое решение с контекстом менее 256 токенов, замер на M5 Pro. 40 мс - это примерно два-три кадра при 60 Гц. Для триггера в Shortcuts такая задержка незаметна: пользователь видит результат действия, а не процесс ожидания.
Что значит «тёплое» решение и короткий контекст
«Тёплое» означает, что модель уже загружена в память и прогрета. Холодный старт в эту цифру не входит. «Короткий контекст» ограничивает вход 256 токенами, это примерно абзац текста или тема письма с парой предложений. Что происходит за пределами этих границ, автор не измерял: цифр нет ни для длинных писем, ни для запуска сразу после перезагрузки Mac.
Независимых прогонов на других машинах тоже нет. Автор прямо пишет, что доступа к другим Mac у него нет, и просит присылать результаты и сообщения о проблемах. Чужие цифры стоит читать с поправкой на методику: что именно считали задержкой и как грели модель. Насколько сильно это меняет итог, видно на примере разбора 18 токенов в секунду на Mac Studio.
Как попробовать: сборки, модели и исходники
Три точки входа. Исходный код: репозиторий WeGoToMars/tinkerbox на GitHub. Готовые веса: репозиторий wegotomars/d1-3B-CoreAI-ANE на Hugging Face. Сборки приложения: раздел releases в репозитории Tinkerbox. Прямые ссылки на всё перечисленное автор собрал в своей публикации.
AOT-компиляция в названии репозитория означает, что модель собрана заранее под конкретный бэкенд, здесь CoreAI/ANE. Практический смысл: на устройстве ничего не нужно компилировать или конвертировать, веса уже приведены к нужному формату.
Что нужно для запуска на своём Mac
Официальных требований и списка поддерживаемых чипов в публикации нет. Известно только, что автор тестировал на M5 Pro, других Mac у него не было. Рабочий ориентир: Apple Silicon с Neural Engine, то есть Mac на M-чипах, и собственная проверка. Приготовьтесь к тому, что на старых чипах или в нестандартных конфигурациях возможны сюрпризы, и напишите о них автору: он об этом просит прямо.
Сценарии автоматизации через Shortcuts без кода
Список триггеров из публикации: входящая почта и iMessages, изменения папок и файлов, время суток, будильники. Каждый можно связать с решением, которое модель принимает по короткому контексту.
- Почта: решение «срочное / не срочное» по теме и первым строкам письма, дальше метка, уведомление или перемещение в папку.
- iMessages: реакция на сообщение, например пометка или ответ по заранее заданному правилу.
- Файлы и папки: пометить изменённый файл, разложить по категориям, запустить следующий шаг обработки.
- Время суток и будильники: включить сценарий в нужный момент, скажем утреннюю сводку или вечернее напоминание.
Пример: сортировка входящих писем по срочности
Цепочка выглядит так: приходит письмо, Shortcuts передаёт в Tinkerbox текст и вопрос, модель возвращает решение, шорткат применяет действие. Решение бывает бинарным (срочно / не срочно) или многовариантным, если оценивать несколько ветвей сразу.
Ограничение то же, что и в замерах: 40 мс относятся к контексту менее 256 токенов. Длинная переписка с историей и вложениями в этот режим не влезет, её придётся сокращать до темы и первых абзацев. Готовых шорткатов автор не выкладывал: сценарии собираются самостоятельно.
Что за модель LiquidAI d1-3B и что показывает Decision Index
d1-3B - decision-модель от LiquidAI, та самая, что лежит в основе Tinkerbox. На момент публикации она находится на Pareto-фронте индекса Decision Index 0.3.2. Индекс специализированный: он оценивает качество решений, а не общие способности модели, поэтому сопоставлять его результаты с MMLU или рейтингами чат-моделей бессмысленно.
Как читать Pareto-фронт Decision Index
Pareto-фронт - набор моделей, которые не доминируются другими по комбинации метрик. Чтобы обойти такую модель, конкуренту нужно выиграть хотя бы по одному показателю, не проиграв по остальным. Попадание на фронт означает удачный компромисс, а не первое место в таблице. Конкретных значений индекса и позиций в публикации нет, так что приводить цифры d1-3B по отдельным метрикам не из чего.
Оговорка по времени: положение на фронте зафиксировано на момент публикации. Выйдут новые decision-модели, и расклад изменится. Актуальность стоит проверять по свежим версиям индекса.
Ограничения и насколько проект зрелый
Проект ранний, и это видно по деталям. Тестирование шло только на Mac автора. Требований к системе, версии macOS и списка поддерживаемых чипов нет. Цифра 40 мс получена в одном режиме на одной машине. Модель одна, выбор ограничен d1-3B.
Автор отвечает на это прямо: Tinkerbox не разовый репозиторий, собранный на вайб-кодинге, проект он намерен поддерживать и довести до полноценного фреймворка для инференса, оптимизированного под ANE. Это заявленное намерение, а не гарантия. Для оценки того, как вообще фильтровать такие анонсы и не менять рабочий стек под каждый релиз, пригодится практический чек-лист по новым AI-моделям.
Кому Tinkerbox подойдёт, а кому нет
Подойдёт владельцам Mac на Apple Silicon, которым нужна локальная автоматизация по событиям без кода и без отправки данных в облако: письма, сообщения, файлы, расписание. Понравится тем, кто уже живёт в Shortcuts и хочет добавить в шорткаты настоящую модель, а не набор условий.
Не подойдёт тем, кто ищет генерацию текста или чат: d1-3B не пишет ответы. Не подойдёт и тем, кто работает не на Apple: ANE есть только в чипах Apple, на Windows и Linux приложение не запустится.
Что дальше: роадмап и интеграция Qwen3.5
В планах модели эмбеддингов, TTS, STT и сегментации изображений. Отдельный пункт - интеграция моделей vLLM d3 на базе Qwen3.5. Автор пишет, что это также позволит использовать большинство других файнтюнов Qwen3.5 с минимальными изменениями, а варианты 0.8B (lite), 2B (nano) и 4B (mini) должны появиться скоро. Сроков нет.
Что даст интеграция Qwen3.5 и файнтюнов
Сейчас Tinkerbox привязан к одной модели. Поддержка Qwen3.5 расширит набор: 0.8B под лёгкие задачи на слабом железе, 2B и 4B под более тяжёлые проверки. Формулировка про «большинство файнтюнов с минимальными изменениями» важна для практики: сообщество дообучает Qwen3.5 под свои домены, и такие веса получится подхватить без переписывания движка.
Эмбеддинги, TTS, STT и сегментация изображений меняют рамку: из инструмента для решений приложение вырастет в набор локальных ANE-инференсов под разные модальности. Пока это анонсы. Проверять их стоит по мере выхода, а доступное можно попробовать без ожидания: сборка, веса и исходники открыты, обратную связь автор ждёт.