ai-babai's picture
Link the GGUF collection
04c5a2d verified
|
Raw
History Blame Contribute Delete
15.2 kB

Giga Embeddings 0826 3B GGUF — русские текстовые эмбеддинги для llama.cpp и Ollama

English · Коллекция GGUF · Исходная модель · Компактная GGUF-версия 480M · Оригинальная статья

Русские текстовые эмбеддинги для семантического поиска, RAG, сравнения текстов, кластеризации и классификации на русском и английском языках. В репозитории лежат эталонный BF16 и три прямых кванта двунаправленной модели Giga Embeddings 3B 0826 для stock llama.cpp и Ollama.

Это только embedding-модель: используйте llama-server --embeddings или Ollama POST /api/embed. Она не предназначена для чата или генерации текста.

Начинайте с Q8_0. Это рекомендуемый баланс качества и размера. Q4_K_M стоит выбирать, только если важнее всего размер загрузки и память: это явно экспериментальный лёгкий вариант. BF16 — высокоточный reference. Q6_K сохранён для исследований, но не является лучшим default вместо Q8 или Q4.

Это независимая GGUF-конверсия ai-babai, а не официальный релиз ai-sage.

Выбор GGUF-кванта по размеру файла, памяти, скорости и качеству

Выбор кванта за 10 секунд

Вариант Для чего Размер файла Экономия к BF16 Память Metal Peak VRAM CUDA
BF16 высокоточный reference 6,31 ГБ 8,00 ГБ не измерялось
Q8_0 рекомендуемый default 3,35 ГБ 46,8% 5,04 ГБ 5,38 ГБ
Q6_K исследование / owner review 2,59 ГБ 58,9% 4,28 ГБ 4,62 ГБ
Q4_K_M лёгкий / экспериментальный 1,96 ГБ 68,9% 3,65 ГБ 3,99 ГБ

На Apple Silicon unified memory общая: Metal allocation и RSS — разные срезы одной памяти, их нельзя складывать. Peak RSS в тех же Mac-тестах составил 8,21 / 5,20 / 4,45 / 3,84 ГБ для BF16 / Q8_0 / Q6_K / Q4_K_M. В этом разделе используются десятичные гигабайты (1 ГБ = 10^9 байт); исходные измерения в MiB пересчитаны в ГБ.

SHA256SUMS · Машиночитаемый manifest

Быстрый старт

hf download ai-babai/giga-embeddings-0826-3b-gguf \
  giga-embeddings-0826-3b-q8_0.gguf \
  --local-dir .
llama-server \
  -m giga-embeddings-0826-3b-q8_0.gguf \
  --embeddings \
  -c 2048 -b 2048 -ub 2048 -np 1 \
  --cache-type-k f32 --cache-type-v f32 \
  --flash-attn auto -ngl 99 \
  --host 127.0.0.1 --port 8080

Для запуска только на CPU замените -ngl 99 на -ngl 0.

В retrieval-задачах инструкция добавляется только к запросу, а документы кодируются без префикса:

curl http://127.0.0.1:8080/v1/embeddings \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "giga-embeddings-0826-3b-q8_0.gguf",
    "input": [
      "Instruct: Given a query, retrieve relevant passages\nQuery: Где находится Москва?",
      "Москва — столица Российской Федерации.",
      "Париж — столица Франции."
    ]
  }'

Результат — L2-нормированные векторы размерности 2048. Их можно сравнивать скалярным произведением, эквивалентным cosine similarity. Для симметричных задач вроде STS или дедупликации используйте одну инструкцию с обеих сторон или не используйте её. В GGUF уже записан правильный mean pooling; CLS или last-token pooling дадут неверный результат.

Быстрый старт с Ollama

После загрузки giga-embeddings-0826-3b-q8_0.gguf создайте рядом Modelfile:

FROM ./giga-embeddings-0826-3b-q8_0.gguf

Импортируйте embedding-модель и вызовите API:

ollama create giga-embeddings-0826-3b-q8 -f Modelfile

curl http://127.0.0.1:11434/api/embed \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "giga-embeddings-0826-3b-q8",
    "input": [
      "Instruct: Given a query, retrieve relevant passages\nQuery: Где находится Москва?",
      "Москва — столица Российской Федерации."
    ]
  }'

BF16, Q8_0, Q6_K и Q4_K_M проверены с Ollama 0.33.3 на Apple M4 Pro Metal. Каждый файл импортируется как embedding-only Qwen3 и возвращает конечные L2-нормированные 2048-мерные векторы. Это compatibility smoke test, а не Ollama-бенчмарк качества или скорости.

Качество

Авторы исходной модели приводят 74,57 Russian MTEB, 71,93 English MTEB, 76,93 code MTEB и 63,9 multilingual MTEB. Это метрики оригинального BF16; полный MTEB для этих GGUF мы не перезапускали.

Наш giga-embeddings-external-retrieval-v1 использовал полные зафиксированные test splits RuBQ (e19b6ffa60b3bc248e0b41f4cc37c26a55c2a67b) и SciFact (d56462d0e63a25450459c4f213e49ffdb866f7f9), instruction-prefixed queries, документы в формате title + "\n" + text и лимит 512 токенов. Ниже — равный macro-average двух задач. Это не полный MTEB, не leaderboard submission и не сравнение разных моделей.

Вариант NDCG@10 MRR@10 Recall@10 Изменение NDCG к BF16
BF16 0,778758 0,767285 0,895762 reference
Q8_0 0,778431 0,767302 0,893750 −0,0327 points
Q6_K 0,779334 0,768964 0,895146 +0,0576 points¹
Q4_K_M 0,778297 0,769349 0,888652 −0,0461 points

¹Небольшой положительный delta не доказывает улучшение Q6_K. Отдельное сравнение сохранения представлений выявило один воспроизводимый длинный пример с кодом, на котором Q6_K отклоняется сильнее.

Более строгий frozen multilingual/code holdout сравнивал кванты с нашим BF16:

Вариант Min / mean cosine Top-1 Mean top-10 overlap
Q8_0 0,993540 / 0,999734 100,00% 99,06%
Q6_K 0,974783 / 0,997845 99,61% 97,07%
Q4_K_M 0,950085 / 0,982052 96,88% 91,37%

Все четыре файла прошли функциональную runtime-проверку. Q4 помечен экспериментальным из-за большего отклонения представлений, хотя его потеря полного RuBQ+SciFact NDCG невелика. Более низкий минимум Q6_K относится к одному воспроизводимому длинному примеру с кодом.

Измеренная скорость

Median total throughput после двух прогревов и по пяти повторам, context 2048, parallelism 1:

Backend / нагрузка BF16 Q8_0 Q6_K Q4_K_M
Apple M4 Pro Metal, 1×512 976 tok/s 834 tok/s 907 tok/s 799 tok/s
Apple M4 Pro Metal, 16×1024 864 tok/s 788 tok/s 661 tok/s 732 tok/s
Apple M4 Pro CPU, 1×512 243 tok/s 345 tok/s 149 tok/s 189 tok/s
Apple M4 Pro CPU, 16×1024 298 tok/s 275 tok/s 140 tok/s 205 tok/s
RTX PRO 4500 CUDA, 1×512 не измерялось 10 031 tok/s 8 460 tok/s 9 393 tok/s
RTX PRO 4500 CUDA, 16×1024 не измерялось 11 185 tok/s 9 141 tok/s 10 263 tok/s

Mac — Apple M4 Pro с 48 ГБ unified memory. На Metal BF16 оказался быстрее всех квантов: здесь квантизация нужна прежде всего для экономии хранения и памяти. Q6_K также оказался необычно медленным на проверенных CPU и CUDA.

Проверенные runtime

Валидация выполнена на чистом stock ggml-org/llama.cpp commit e750b887a82719c27200b71545f63ed78ec24719 (Linux build 10763).

Runtime/backend BF16 Q8_0 Q6_K Q4_K_M
macOS Apple Silicon / Metal, CLI + server проверено проверено проверено проверено
macOS Apple Silicon / CPU, server resource API проверено проверено проверено проверено
Clean stock Linux / CUDA, CLI + server проверено проверено проверено проверено
Clean stock Linux x86 CPU, CLI + server не проверено проверено не проверено проверено
Ollama 0.33.3 / Apple Metal проверено проверено проверено проверено

Все Linux-lanes прошли llama-embedding, llama-server --embeddings, single, batch, repeat, permutation, dimension, finiteness и unit-norm checks. Отдельный перезапуск server process повторил те же восемь эмбеддингов на каждом проверенном Linux backend: cosine 1,0 и максимальная покомпонентная delta 0.

Ограничения

  • Назначение: dense retrieval/RAG, semantic similarity, clustering и classification на русском и английском. Это не генеративная модель и не cross-encoder reranker.
  • BF16 прошёл строгий Mac Metal → CUDA numerical parity gate. Q8_0 и Q6_K сохранили 8/8 top-1, но едва не прошли frozen mean-cosine порог: наблюдалось около 0,99987 при требовании 0,99990. У Q4_K_M drift больше: mean cosine около 0,99929–0,99937, top-1 от 6/8 до 8/8 между lanes.
  • Portability sample содержит восемь exact prompts. Все within-backend repeat, permutation и fresh-process проверки прошли: это backend arithmetic drift, а не признак повреждения GGUF.
  • Resource-тесты ограничены context 2048; workload 4096 и настоящий cold-cache startup не измерялись.
  • Во внешнем retrieval использовался лимит 512 токенов; 10,3% документов SciFact были обрезаны.
  • Ollama сохраняет Q8_0/Q6_K/Q4_K_M как побайтово идентичные GGUF model layers. При импорте BF16 он выполняет внутреннюю COPY-перезапись того же размера с сохранением типа модели и metadata: функциональная совместимость подтверждена, но после импорта BF16 исполняется не byte-for-byte.
  • Windows, Linux Ollama, LM Studio, Jan и старые версии llama.cpp/Ollama не тестировались.

Целостность и происхождение

Файл Байты SHA-256
giga-embeddings-0826-3b-bf16.gguf 6 307 610 848 61820afd79134c8b3691fba0442aa203916d9a0c6101438a5e0a0bee61217919
giga-embeddings-0826-3b-q8_0.gguf 3 354 067 168 429f2d04a968ffe73137fe65c2e458a08236056168b905d208b4d81ecab08c22
giga-embeddings-0826-3b-q6_k.gguf 2 591 068 384 e7956ee5c0f0e6f776cc67c643f1cd99575697b928c373b644a31fb34b3dc247
giga-embeddings-0826-3b-q4_k_m.gguf 1 960 915 168 9f81d6e5015fc981d1c4ac9d66b8179efa4af21c7b2ce6d39acf04d0cdc9f5b5
  • Исходник: ai-sage/Giga-Embeddings-instruct-3B-0826
  • Exact revision: ed7db5c91b900b39381b27b6e9c0a3d31137cd29
  • Лицензия исходника: MIT
  • Source model.safetensors SHA-256: de8519bef7ee360043970b0081088c5294e2a9196ad2d0570a33c4f51bb2e134
  • Source tokenizer.json SHA-256: 6fb1280bd7fd529f425929b5df823a5a44485cd7fa9679d1ec1acaac4962e8ca
  • Source tokenizer_config.json SHA-256: 843eeba481465c1485a5b5f24bd24d6c12c4e502c16f093c3ab6a0f058c2c5f2
  • Converter: локальный bidirectional-model patch 409723a88b12071974ed5924a2dc1c8b2b2064f7 поверх upstream llama.cpp e750b887a82719c27200b71545f63ed78ec24719
  • Clean stock Linux validation runtime: ggml-org/llama.cpp@e750b887a82719c27200b71545f63ed78ec24719, build 10763
  • Validation harness: 7ba4e00e76b27316b1b3709476d807958bcd1e9d
  • Q8_0, Q6_K и Q4_K_M квантованы напрямую из принятого BF16 GGUF, без cascade или requantization
  • Сохранены bidirectional Qwen3, 398/398 tensors, mean pooling и dimension 2048

Машиночитаемые provenance и хеши лежат в manifest.json и SHA256SUMS.

Цитирование

Пожалуйста, указывайте и этот GGUF-релиз, и оригинальную работу Giga-Embeddings:

@software{popkov2026gigaembeddingsgguf,
  author  = {Maksim Popkov},
  title   = {Giga Embeddings 0826 GGUF},
  year    = {2026},
  url     = {https://huggingface.co/ai-babai/giga-embeddings-0826-3b-gguf}
}

@misc{kolodin2026gigaembeddings,
  title         = {Giga-Embeddings: Mixture-of-Experts Encoders for High-Throughput Text Embeddings},
  author        = {Egor Kolodin and Egor Krasnoperov and Evgeniy Kosarev and Fyodor Minkin},
  year          = {2026},
  eprint        = {2608.23806},
  archivePrefix = {arXiv},
  url           = {https://arxiv.org/abs/2608.23806}
}