EmbeddingGemma: 308M-мерный on-device текстовый эмбеддинг от Google с топовыми результатами на MTEB
Что такое EmbeddingGemma
EmbeddingGemma — компактная открытая модель текстовых эмбеддингов от Google, оптимизированная для работы на устройстве. Модель сочетает эффективность и высокое качество поиска, позволяя выполнять вычисления локально на мобильных устройствах и в офлайн-сценариях.
Компактность и низкая задержка
С объёмом всего 308 миллионов параметров EmbeddingGemma достаточно лёгкая, чтобы работать на потребительских устройствах и в условиях отсутствия подключения к сети. Несмотря на небольшой размер, она показывает конкурентный уровень качества поиска по сравнению с гораздо более крупными моделями. Время инференса низкое — менее 15 мс для 256 токенов на EdgeTPU — что делает модель пригодной для реального времени и интерактивных приложений.
Многоязычность и результаты на MTEB
Модель обучалась более чем на 100 языках и заняла первое место в рейтинге Massive Text Embedding Benchmark (MTEB) среди моделей с объёмом параметров до 500M. Особенно сильны её возможности для кросс-лингвального поиска и семантического поиска, в ряде задач она соперничает с моделями почти вдвое большего размера.
Архитектура и характеристики эмбеддингов
EmbeddingGemma использует энкодер на базе Gemma 3 с операцией mean pooling. В отличие от мультимодальных версий Gemma 3, где применяются двунаправленные attention-слои для изображений, здесь используется стандартный стек трансформеров с self-attention по всей последовательности — типичное решение для текстовых эмбеддингов. Модель выдаёт векторы размерности 768 и поддерживает последовательности до 2048 токенов, что удобно для RAG и поиска по длинным документам. Шаг mean pooling обеспечивает фиксированную длину вектора независимо от длины входа.
Matryoshka Representation Learning (MRL)
EmbeddingGemma реализует Matryoshka Representation Learning (MRL), что позволяет уменьшать размер эмбеддингов с 768 до 512, 256 или 128 измерений с минимальной потерей качества. Это даёт разработчикам возможность настраивать компромисс между объёмом хранения/вычислений и точностью поиска без дообучения.
Оффлайн и конфиденциальность
Модель специально спроектирована для работы на устройстве и офлайн-режимов. Поскольку она использует тот же токенизатор, что и Gemma 3n, эмбеддинги можно напрямую применять в компактных локальных RAG-пайплайнах, что улучшает приватность за счёт отказа от облачных вызовов.
Интеграции и инструменты
EmbeddingGemma интегрируется с популярными инструментами и фреймворками, что облегчает внедрение:
- Hugging Face (transformers, Sentence-Transformers, transformers.js)
- LangChain и LlamaIndex для RAG
- Weaviate и другие векторные базы данных
- ONNX Runtime для оптимизированного развёртывания на разных платформах
Такое окружение позволяет быстро встроить модель в существующие рабочие процессы.
Практическая реализация
(1) Load and Embed
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("google/embeddinggemma-300m")
emb = model.encode(["example text to embed"])
(2) Adjust Embedding Size Используйте полные 768 измерений для максимальной точности или усеките до 512/256/128 для экономии памяти и ускорения поиска.
(3) Integrate into RAG Запустите локальный similarity search (косинусная схожесть) и передайте лучшие результаты в Gemma 3n для генерации. Это позволяет построить полностью офлайн-пайплайн RAG.
Зачем это важно
EmbeddingGemma показывает, что небольшие модели эмбеддингов могут достигать уровня лучших в своём классе по задачам retrieval, оставаясь при этом достаточно лёгкими для on-device развёртывания. Модель сочетает эффективность, многоязычную точность, регулируемые размеры эмбеддингов и преимущества приватности для офлайн-пайплайнов. Открытые веса и широкая поддержка экосистемы делают её доступной для разработчиков.