BaseRT ускорил запуск ИИ на Mac до 1,56 раза за счет прямой работы с Metal
Слои абстракции в популярных движках съедают до 56% скорости работы малых моделей на чипах Apple Silicon. Новый инструмент BaseRT обходит эти потери прямым доступом к Metal, делая локальный ИИ на Mac значительно отзывчивее для бизнес-задач.
Компания Base Compute представила BaseRT — движок для запуска больших языковых моделей (LLM) на процессорах Apple Silicon, который демонстрирует рекордную скорость обработки. В отличие от популярных решений вроде llama.cpp или MLX, новый инструмент написан с нуля и работает напрямую с графическим API Metal, минуя промежуточные слои абстракции. Тесты на чипах M3 и M4 Pro показали ускорение декодирования до 1,56 раза по сравнению с llama.cpp и до 1,35 раза против MLX.
Важный нюанс: Максимальный прирост производительности наблюдается на компактных моделях, где накладные расходы на управление программным обеспечением обычно «съедают» значительную часть времени.
Архитектура без лишнего веса
Основная проблема существующих решений заключается в универсальности: они пытаются работать на разных устройствах и с разными моделями через общие слои кода, что создает задержки. BaseRT отказался от этого подхода в пользу жесткой специализации под железо Apple.
Ключевые изменения в архитектуре:
- Прямая работа с Metal: Движок не зависит от PyTorch, CoreML или MLX. Код написан на C++ и обращается к видеокарте напрямую, что устраняет лишние преобразования данных.
- Описание моделей как данных: Вместо того чтобы писать отдельный код для каждой архитектуры (например, для Llama или Qwen), движок использует компактный дескриптор. Это позволяет обрабатывать разные модели одинаковым кодом, не меняя логику выполнения.
- Отсутствие выделения памяти во время работы: После загрузки модели движок больше не запрашивает память у системы. Все буферы для вычислений, включая кэш контекста, выделяются один раз при старте и переиспользуются.
- Специализированные ядра: Для каждого типа операции (умножение матриц, внимание, нормализация) созданы отдельные оптимизированные функции. Декомпрессия данных происходит прямо в процессе вычислений, не требуя загрузки полных весов в память.
Результаты тестирования и сравнение
Испытания проводились на процессоре M4 Pro (16 ядер GPU, 24 ГБ памяти) и M3 (8 ядер GPU). В тесте участвовали модели семейств Qwen3, Llama 3.2 и Gemma 4 с квантованием Q4 и Q8.
| Модель | Квантование | BaseRT (токенов/с) | llama.cpp (токенов/с) | Прирост к llama.cpp | MLX (токенов/с) | Прирост к MLX |
|---|---|---|---|---|---|---|
| Qwen3 0.6B | Q4 | 464.5 | 297.4 | 1.56× | 343.6 | 1.35× |
| Qwen3 0.6B | Q8 | 321.2 | 219.8 | 1.46× | 255.3 | 1.26× |
| Llama 3.2 1B | Q4 | 295.4 | 230.4 | 1.28× | 257.8 | 1.15× |
| Llama 3.2 3B | Q4 | 117.3 | 102.4 | 1.15× | 112.1 | 1.05× |
| Gemma 4 26B | Q4 | 62.2 | 58.0 | 1.07× | 69.3 | 0.90× |
| Qwen3 30B | Q4 | 84.1 | 80.7 | 1.04× | 83.1 | 1.01× |
Данные показывают четкую закономерность: чем меньше модель, тем выше преимущество BaseRT. На малых моделях (например, Qwen3 0.6B) ускорение достигает 56%. На крупных моделях с миксом экспертов (MoE) преимущество сохраняется, но снижается, так как узким местом становится пропускная способность памяти, а не скорость программного кода.
В режиме предобработки (prefill), когда модель анализирует длинный запрос, BaseRT показал значительный отрыв на моделях MoE — до 1,81 раза быстрее llama.cpp. Это стало возможным благодаря использованию алгоритмов, похожих на FlashAttention, которые снижают потребление памяти.
Стоит учесть: На этапе предобработки для небольших моделей разрыв между решениями минимален, так как видеокарта загружена на 100% вычислениями, и программные оптимизации не могут ускорить физический предел скорости чипа.
Практическое применение и интеграция
Движок доступен как командная строка, библиотека C и модули для Python, Node, Rust и Swift. Установка занимает одну команду, а загрузка моделей происходит напрямую из репозитория Hugging Face.
Операционные последствия для внедрения:
- Снижение задержек для локальных агентов: Ускорение декодирования делает взаимодействие с ИИ на ноутбуках Apple более отзывчивым, что критично для кодинга-ассистентов и чат-ботов, работающих без интернета.
- Экономия ресурсов: Отсутствие выделения памяти во время генерации снижает риск фрагментации памяти и повышает стабильность работы при длительных сессиях.
- Гибкость развертывания: Поддержка формата OpenAI API позволяет использовать BaseRT как локальный бэкенд для существующих приложений без переписывания кода.
- Зависимость от архитектуры: Текущая версия работает только на GPU Apple. Использование нейронного движка (Neural Engine) пока не реализовано, в отличие от конкурента uzu, который может задействовать его для отдельных операций.
На фоне этого: Для крупных моделей, ограниченных скоростью памяти, переход на BaseRT даст меньший прирост, чем для легких моделей, где важна скорость запуска операций.
Выводы для рынка
Появление BaseRT сигнализирует о том, что эра универсальных, но медленных движков для локального ИИ на Mac подходит к концу. Специализация под конкретное железо позволяет выжимать из чипов M3 и M4 потенциал, который ранее оставался недостижимым из-за слоев абстракции. Для разработчиков, создающих приложения под экосистему Apple, это открывает возможность запускать более сложные модели на потребительском оборудовании без потери скорости.
Источник: huggingface.co