EmbeddingGemma 2 получила нативный MLX-путь для локального поиска на Mac
На странице · 3 разделов
6 октября 2026 года в основную ветку MLX-VLM вошла поддержка EmbeddingGemma 2: локальный энкодер и процессор для текста, изображений, аудио, видео и смешанных запросов на Apple Silicon. Полный публичный BF16-чекпойнт уже доступен в mlx-community; есть и 8-битный вариант. Это изменение кода в main, а не выпущенный стабильный MLX-VLM 0.7.7. Численные сравнения с исходным PyTorch — данные разработчиков, не испытание Modelium и не замер качества поиска.
Что изменилось 6 октября
В основную ветку MLX-VLM влит PR №2446 с реализацией EmbeddingGemma 2 для Apple Silicon: энкодер и собственный процессор принимают текст, изображения, аудио, видео и их сочетания, возвращая нормализованные векторы размерности 768. Merge-коммит fec3f50379bb2cb0760ef3c8a68ebce9585e4d97 датирован 6 октября 2026 года. Это код в main, версия в исходниках 0.7.7, а не опубликованный стабильный релиз 0.7.7: последним проверенным GitHub release остаётся 0.7.6. Не переносите рецепт на установленную 0.7.6 без обновления реализации. s1 s2 s3
Для локального семантического поиска практический выигрыш — возможность индексировать разные типы контента в общем векторном пространстве на Mac, не отправляя запросы в облачный inference API. Исходная EmbeddingGemma 2 создана Google; это новый MLX-путь для уже представленной модели, а не новая базовая модель. В Google-карточке указаны текстовый блок и отдельно подключаемые зрительный и звуковой энкодеры, а также укороченные векторы 128/256/512 измерений. Для индекса и запроса выбирайте одну размерность и нормализуйте обрезанный вектор заново. s4 s2
Какие веса доступны и как начать
Публичный mlx-community/embeddinggemma-2-bf16 при закреплённой ревизии 1a4ffddb7905d3f63486748deabe091a01fb6201 содержит model.safetensors, индекс весов, конфигурацию энкодеров и процессора. Карточка связывает конверсию с Google-ревизией 914f7f89142e33e77833254d9c9b90c3cef7303b; оба репозитория маркированы Apache-2.0. Публичен и mlx-community/embeddinggemma-2-8bit с ревизией 7505ef2f8ddef45efef6d060865f27989b3c9cec. Это открытые веса и разрешительная лицензия; реализация MLX-VLM отдельно распространяется по MIT. Размер файла весов не является требованием к RAM. s4 s5 s6 s7
Для изучения API закрепите исходники MLX-VLM на указанном merge-коммите и используйте пример из mlx_vlm/models/embedding_gemma2/README.md: mlx_vlm.load получает модель и локальный процессор, apply_chat_template(..., return_tensors="mlx") готовит пакет, а model(**inputs).text_embeds возвращает векторы. В примерах разработчиков ID nativ-community/embeddinggemma-2 сейчас недоступен без авторизации (HF API отвечает 401); не копируйте этот ID как публичный рецепт. Вместо него опубликован полный BF16-пакет mlx-community/embeddinggemma-2-bf16 с model_type=embedding_gemma2, однако Modelium не выполнял запуск на Mac и не удостоверял совместимость этой подстановки end-to-end. Начните с text-only проверки на собственном устройстве, затем проверьте обработку изображения/аудио/видео и норму результата. Карточка конверсии написана для более ранней ветки с внешним EmbeddingGemma2Processor и предупреждает о несовместимости stock Transformers 5.18.0; в уже влитом PR реализован локальный процессор. Поэтому закрепляйте именно ревизию реализации, не смешивая инструкции разных коммитов. s2 s5 s8
Если нужен меньший файл весов, 8-bit конверсия имеет примерно 1,234 млрд байт против 1,489 млрд у BF16 по индексам моделей; это объём артефактов на диске, а не оценка оперативной памяти. Карточка сообщает, что 8-bit квантует текстовый энкодер и аудиопроекцию, оставляя другие части BF16. Для задач, где ранжирование чувствительно к малым разницам, сначала сравните на своём наборе BF16 и 8-bit. s5 s6
Что означают тесты разработчиков
По данным авторов PR, 363 теста процессора, 64 специализированных теста без Torch и девять ячеек ноутбука прошли; 51 видеосравнение на их проверенной конфигурации дало минимум косинусного сходства 0,999531 с FP32-эталоном. README указывает Apple M5 Max, MLX 0.32.3, stock Transformers 5.14.0 для локального процессора, а для эталона — предоставленную сборку Transformers 5.18.0.dev0 и FFmpeg 8.1.2. Для неподдерживаемых видеосборок предусмотрен fallback OpenCV: цвет и тайминг кадров могут отличаться. Это численная близость в выбранных примерах, а не независимый MTEB-результат или гарантия точности поиска на ваших данных; Modelium модель не тестировал. Авторы также предупреждают, что стандартная 4-bit конверсия не прошла их пороги точности — не выбирайте её только по размеру. s1 s2
Следующий шаг: возьмите закреплённые коммит реализации и BF16-ревизию, соберите небольшой набор своих русскоязычных запросов и документов, затем проверьте совпадение размерностей, повторную нормализацию и качество top-k до перехода на 8-bit или мультимодальный индекс. Для выбора альтернативного локального runtime этой же модели см. отдельный материал о LiteRT-LM 0.18.0; возможности двух движков нельзя смешивать. s2 s9
Источники
- MLX-VLM PR #2446: EmbeddingGemma 2 support. Получено 07.10.2026.
- MLX-VLM EmbeddingGemma 2 README at merged commit fec3f503. Получено 07.10.2026.
- MLX-VLM latest published releases. Получено 07.10.2026.
- Google EmbeddingGemma 2 at pinned HF revision. Получено 07.10.2026.
- MLX community BF16 conversion and model card. Получено 07.10.2026.
- MLX community 8-bit conversion and model card. Получено 07.10.2026.
- MLX-VLM MIT LICENSE at merged commit. Получено 07.10.2026.
- MLX-VLM embedded EmbeddingGemma 2 processor source. Получено 07.10.2026.
- LiteRT-LM 0.18.0 release. Получено 07.10.2026.