# Giga Embeddings 0826: выбрать 480M или 3B для русского поиска

Источник: https://modelium.tech/zhurnal/giga-embeddings-0826/

Giga Embeddings 0826 — два опубликованных варианта текстовой embedding-модели ai-sage: 480M с вектором 1024 измерений и 3B с вектором 2048 измерений. Для первого пилота поиска сравните оба на одинаковых русских вопросах: авторские оценки не доказывают преимущество на ваших документах. Запросу нужна инструкция, документ кодируется без неё; веса доступны, но Modelium не проверял запуск, качество и расход памяти.

Проверено 2 октября 2026 года по ai-sage/480M `1763d603` и ai-sage/3B `b7116808`. Российская частотность запроса не измерялась. Modelium не запускал модели и не измерял качество, скорость или потребление RAM/VRAM.

## Что именно сравниваем?

Giga Embeddings 0826 — **две конкретные текстовые модели** из репозиториев `ai-sage/Giga-Embeddings-instruct-480M-0826` и `ai-sage/Giga-Embeddings-instruct-3B-0826`. В карточках автор описывает двунаправленное внимание на архитектуре Qwen3 и выдачу плотных векторов для retrieval, сравнения текстов и кластеризации; это не чат-модели, которые сами составляют ответ с цитатами [s1](#src-s1) [s2](#src-s2). Для RAG последовательность такова: разбить документы на фрагменты, закодировать их embedding-моделью, найти релевантные фрагменты по вектору вопроса, затем передать отобранное отдельной генеративной модели. Прикладная задача — найти правильный фрагмент на русском, а не получить красивый произвольный вектор.

**480M:** по карточке около 480 млн параметров, а модуль пулинга возвращает 1024-мерный вектор. В `config.json` указаны `hidden_size=1024`, `is_causal=false` и `max_position_embeddings=8192` [s1](#src-s1) [s3](#src-s3) [s5](#src-s5). **3B:** по карточке около 3 млрд параметров; пулинг задаёт 2048 измерений, конфигурация — `hidden_size=2048`, `is_causal=false` и те же 8192 позиций [s2](#src-s2) [s4](#src-s4) [s6](#src-s6). Последнее — настройка артефакта, не доказательство хорошего извлечения из любого документа длиной 8192 токена и не обещание, что такой запрос поместится на вашем GPU.

На закреплённых ревизиях HTTP HEAD для `model.safetensors` показал **967 470 272 байта** у 480M и **6 301 256 584 байта** у 3B [s1](#src-s1) [s2](#src-s2). Это размеры файлов весов *на диске*, а не минимальный объём RAM/VRAM: размещение, загрузка, пакетная обработка, длина ввода и runtime влияют на потребление памяти. Векторы двух вариантов имеют разную размерность; не смешивайте их в одной коллекции индекса и при смене модели перестройте документные векторы [s5](#src-s5) [s6](#src-s6).

## Как правильно кодировать вопрос и документы?

Для **асимметричного поиска** авторы требуют инструкцию перед *вопросом* в форме `Instruct: {задача}` + перевод строки + `Query: {вопрос}`. Пример задачи из карточки — `Given a query, retrieve relevant passages`; документы подаются без инструкции. Для симметричного сравнения двух текстов автор допускает общий запрос или отсутствие инструкции; этот режим не следует молча переносить на поиск фрагментов в RAG [s1](#src-s1) [s2](#src-s2). Сохраните фактическую строку вопроса и правило разделения документов вместе с версией индекса: иначе сравнение вариантов теряет контроль условий.

Модули обеих моделей задают **mean pooling**; авторские карточки требуют затем L2-нормализацию и предупреждают против CLS/last-token pooling для этих весов [s1](#src-s1) [s2](#src-s2) [s5](#src-s5) [s6](#src-s6). Их пример с Sentence Transformers использует `normalize_embeddings=True`. В чистом Transformers из карточки берут среднее по непаддинговым токенам с маской внимания и отдельно нормализуют вектор [s1](#src-s1) [s2](#src-s2). При сравнении нормированных векторов используйте косинусную близость либо скалярное произведение уже нормированных векторов; не сравнивайте величину отдельной координаты как оценку релевантности [s1](#src-s1) [s2](#src-s2).

## Как выбрать локальный runtime без ложного обещания совместимости?

Карточки показывают путь `SentenceTransformer(..., trust_remote_code=True)` и отдельный путь vLLM с `runner="pooling"`, `convert="embed"`, переопределением `is_causal=false`, `architectures=["Qwen3ForCausalLM"]` и `pooling_type="MEAN"` [s1](#src-s1) [s2](#src-s2). Это *описанные автором* конфигурации, не результат нашего запуска. vLLM в карточке настраивается специально: не ожидайте правильного embedding-пути от произвольного чат-сервера или слепого `vllm serve` без параметров. Для понимания базового API и проверки формы вектора сначала откройте [гайд по vLLM Embeddings API](/zhurnal/vllm-embeddings-api/), но его пример Qwen нельзя выдавать за проверенный запуск Giga Embeddings.

Для `SentenceTransformer` авторский пример включает исполнение пользовательского кода из модельного репозитория. Документация Hugging Face рекомендует просмотр кода и фиксацию ревизии при использовании `trust_remote_code`; используйте только проверенный SHA, установленную вами версию библиотек и тестовую среду, прежде чем загружать корпоративные файлы [s1](#src-s1) [s2](#src-s2) [s7](#src-s7). Наличие кода не доказывает автоматическую поддержку любого локального инструмента; на карточках приведён ещё экспериментальный путь SGLang с отдельным PR и патчем, его не следует принимать за штатную установку из стабильного пакета [s1](#src-s1) [s2](#src-s2). Собственный CPU/GPU-бенчмарк и расход памяти у Modelium отсутствуют.

## Что известно о качестве русского поиска и лицензии?

Авторы приводят для 480M показатель **70,98 MTEB rus v1.1**, а для 3B — **74,57 MTEB rus** в другой таблице. Это *их* опубликованные оценки; рядом не описаны все условия так, чтобы объявлять разницу гарантированным выигрышем 3B на ваших русских договорах или каталогах [s1](#src-s1) [s2](#src-s2). В таблице 3B скорости указана H100 и batch 16: такое оборудование — **условие авторского замера, не минимальное требование** [s2](#src-s2). Не сравнивайте эти строки с тестом на иной длине ввода, железе или правилах разметки.

Обе карточки помечены лицензией **MIT**; её общий текст разрешает использование, копирование и модификацию при сохранении уведомления об авторском праве и лицензии, но не даёт гарантий пригодности [s1](#src-s1) [s2](#src-s2) [s8](#src-s8). Это метка и условия опубликованного материала, а не заключение по вашей цепочке данных, зависимостей или правам на исходные документы: перед коммерческой установкой сверяйте файл лицензии поставляемого артефакта и требования каждого компонента. Открытые веса не равны доказанному качеству, бесплатной инфраструктуре или отсутствию сетевых загрузок.

## Как проверить выбор на своём RAG-пилоте?

- Возьмите небольшой набор **обезличенных** русских фрагментов с размеченными правильными ответами: счета, регламенты и несколько похожих, но нерелевантных отрывков. Для каждого вопроса заранее запишите ожидаемый `document_id` и фрагмент; отдельные вопросы по артикулам потребуют сравнения с точным или [гибридным поиском](/zhurnal/gibridnyy-poisk-rag/). Это предлагаемый протокол, не проведённый Modelium эксперимент.

- На одном и том же наборе по очереди кодируйте документы и вопросы **одной** из двух моделей; сохраняйте полный SHA, runtime, подготовку текста, инструкцию только на запросе, pooling, нормализацию и длину фрагмента [s1](#src-s1) [s2](#src-s2) [s5](#src-s5) [s6](#src-s6). Для второго варианта постройте *отдельный* индекс с его размерностью. Не подставляйте векторы от 480M в поиск по 3B.

- Сравните, попал ли нужный фрагмент в первые результаты для каждого вопроса, где ошибается каждая модель, какова наблюдаемая задержка и реальный расход памяти на вашем железе. Затем проверьте цитаты генерируемого ответа по исходному фрагменту: высокий retrieval score не гарантирует правильной генерации. Если документы с разными правами, [контролируйте доступ до retrieval](/zhurnal/korporativnyy-poisk-prava-dostupa/), а не просите модель скрыть запрещённый фрагмент.

**Следующий шаг:** [составьте протокол оценки качества RAG](/zhurnal/ocenka-kachestva-rag/) с известными ответами и сравните два индекса на одинаковых вопросах. Выбирайте 480M или 3B только после такой проверки, оценки доступного железа и условий реального применения: у Modelium нет собственного замера, который назначал бы победителя.

## Источники

1. [ai-sage — Giga Embeddings instruct 480M 0826: карточка ревизии](https://huggingface.co/ai-sage/Giga-Embeddings-instruct-480M-0826/blob/1763d603adac8057bd6482a708001b0ed2e0a903/README.md) — получено 2026-10-02
2. [ai-sage — Giga Embeddings instruct 3B 0826: карточка ревизии](https://huggingface.co/ai-sage/Giga-Embeddings-instruct-3B-0826/blob/b71168088212f0a13688514e4fc288a86106c4e4/README.md) — получено 2026-10-02
3. [ai-sage — config.json для 480M](https://huggingface.co/ai-sage/Giga-Embeddings-instruct-480M-0826/blob/1763d603adac8057bd6482a708001b0ed2e0a903/config.json) — получено 2026-10-02
4. [ai-sage — config.json для 3B](https://huggingface.co/ai-sage/Giga-Embeddings-instruct-3B-0826/blob/b71168088212f0a13688514e4fc288a86106c4e4/config.json) — получено 2026-10-02
5. [ai-sage — модуль mean pooling модели 480M](https://huggingface.co/ai-sage/Giga-Embeddings-instruct-480M-0826/blob/1763d603adac8057bd6482a708001b0ed2e0a903/1_Pooling/config.json) — получено 2026-10-02
6. [ai-sage — модуль mean pooling модели 3B](https://huggingface.co/ai-sage/Giga-Embeddings-instruct-3B-0826/blob/b71168088212f0a13688514e4fc288a86106c4e4/1_Pooling/config.json) — получено 2026-10-02
7. [Hugging Face — пользовательские модели и доверие к коду](https://huggingface.co/docs/transformers/custom_models) — получено 2026-10-02
8. [Open Source Initiative — текст лицензии MIT](https://opensource.org/license/mit) — получено 2026-10-02
