/ Модель

Характеристики

Контекст
2 048 токенов
Параметры
303 млн
Лицензия
Gemma
Архитектура
gemma3_text · dense
Базовая модель
embeddinggemma-300m
Опубликована
25 июн 2026

embeddinggemma-300m-code-8L-distill-int8

ЭмбеддингиТекст → embedding7 профессий

Компактная дистиллированная модель эмбеддингов для поиска кода по англоязычным запросам и сопоставления текста с кодом.

38скачиваний за 30 дней0лайковвеса обновлены25 июн 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

sensiarion/embeddinggemma-300m-code-8L-distill-int8 — компактная модель эмбеддингов кода, созданная на основе Google EmbeddingGemma-300M. Это двунаправленный энкодер типа bi-encoder: он преобразует английский текстовый запрос или фрагмент кода в средний L2-нормированный вектор размерности 768. Вариант содержит 8 из 24 слоёв исходной модели и около 303 млн параметров по метаданным; доступны веса ONNX и SafeTensors, а README также описывает вариант MLX. Контекст — 2048 токенов.

Модель предназначена для поиска фрагментов кода по запросам на естественном английском языке и для сопоставления запросов с кодом. Она дообучена и дистиллирована на парах документация-код CodeSearchNet для Python, Go, Java, JavaScript, PHP и Ruby; автор README сообщает о сохранении примерно 96% качества базовой модели при ускорении примерно в три раза. Для кодирования следует подавать исходный текст запроса и кода без инструкционных префиксов.

По сравнению с базовой моделью она быстрее и компактнее, но специализация на поиске кода ограничивает её применение для общего поиска по текстам и задач вопросов и ответов. Качество может немного отличаться от полноточной базовой модели из-за int8-квантизации, а для языков программирования вне обучающего набора качество не заявлено. Лицензия — Gemma.

Сценарии применения

  • поиск функций и фрагментов кода по описанию на английском языке
  • поиск примеров реализации в репозитории
  • ранжирование фрагментов кода по релевантности запросу
  • сопоставление документации с соответствующим кодом

Ограничения

Модель специализирована на поиске кода и может хуже работать с общим текстом и поиском для задач вопросов и ответов; инструкционные префиксы ухудшают ранжирование. Обучение охватывает шесть языков программирования, а int8-квантизация может вызывать небольшие различия в ранжировании относительно базовой модели.

Для каких профессий подходит7

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

embeddinggemma-300m-code-8L-distill-int8

A distilled, pruned, int8 variant of google/embeddinggemma-300m for code retrieval (natural-language query → code). 8 of 24 transformer layers, 768-d, mean pooling. ~96% of the base model's code-search quality at ~3× the speed and ~1/6 the size.

Model Details

  • Base model: google/embeddinggemma-300m
  • Model type: bi-encoder sentence/code embedding
  • Output: 768-dim, mean-pooled, L2-normalized
  • Size: 235M params — 237 MB (ONNX int8) / 265 MB (MLX int8), vs ~1.6 GB base
  • Languages: code (Python, Go, Java, JavaScript, PHP, Ruby) with English NL queries
  • License: Gemma

Method

  1. Curvature layer pruning — keep 8 of 24 transformer layers by diagonal-Fisher loss curvature (not first/last-N), following the loss-curvature memorization/reasoning spectrum (arXiv:2510.24256). Kept: [0,1,2,3,4,5,22,23]. This is the speedup (~3× fewer FLOPs/token).
  2. int8 quantization — affine, group-wise (MLX) / dynamic (ONNX), on the transformer weights and the full token-embedding table (201M params, kept whole — it's a lookup, so int8 shrinks it 4× with no quality loss). This is the size reduction.
  3. Distillation + fine-tune — self-distill the pruned backbone to the teacher's embeddings, then contrastive fine-tune on CodeSearchNet docstring↔code pairs (in-batch negatives). This recovers code-retrieval quality.

Usage

Do not add a task/instruction prefix to queries or documents. Unlike the base EmbeddingGemma (task: ... | query: ...), this model takes raw text. It is mean-pooled and has no Dense projection head, so a fixed prefix adds a constant vector that collapses query embeddings together and wrecks ranking (measured: CSN-python NDCG 0.76→0.42, ruby 0.42→0.05 with a prefix). Embed the bare query and the bare code.

MLX (Apple Metal) — uses the bundled mlx_encoder.py (bidirectional forward; required):

from mlx_encoder import load_encoder, embed_texts
from transformers import AutoTokenizer

model, layer_types, sw, hidden = load_encoder("mlx")
tok = AutoTokenizer.from_pretrained("mlx")
emb = embed_texts(model, layer_types, sw, hidden, tok, ["def add(a, b): return a + b"], max_len=256)

ONNX (CPU) — graph outputs token embeddings; mean-pool + normalize:

import onnxruntime as ort, numpy as np
from transformers import AutoTokenizer

tok = AutoTokenizer.from_pretrained(".")
sess = ort.InferenceSession("model.onnx")

def embed(texts, max_len=256):
    e = tok(texts, padding=True, truncation=True, max_length=max_len, return_tensors="np")
    h = sess.run(None, {"input_ids": e["input_ids"].astype(np.int64),
                        "attention_mask": e["attention_mask"].astype(np.int64)})[0]
    m = e["attention_mask"][:, :, None]
    v = (h * m).sum(1) / np.clip(m.sum(1), 1, None)
    return v / np.linalg.norm(v, axis=1, keepdims=True)

Evaluation

CodeSearchNet (Python test, 5000 corpus / 200 queries, gold = same index), Apple M5 Pro.

Fair same-backend comparison — this model vs the base, both int8, same backend, seq 256. The distillation lets the 8-layer model keep ~96% of NDCG while running ~3× faster:

backendmodelNDCG@10MRR@10R@1docs/sspeedup
ONNX int8 CPUthis0.9020.8810.830833.0×
ONNX int8 CPUembeddinggemma-300m0.9420.9300.900271×
MLX int8 Metalthis0.9100.8900.8454852.8×
MLX int8 Metalembeddinggemma-300m0.9460.9350.9051751×

Per-language (CodeSearchNet, 5000/200 per language, NDCG@10):

pythongojavaphprubyjsavg
this0.9580.9390.8220.8430.7630.7590.847
base0.9720.9260.9350.9350.8780.7230.895

Within 0.05 of the full base model on average; ahead on Go and JavaScript.

Limitations

  • Code-search specialist. Weak on general text and instruction/QA retrieval; it has no Dense projection head or prompt support, so instruction prefixes degrade it (use none).
  • Tuned on the 6 CodeSearchNet languages; other languages rely on the base model's coverage.
  • int8 — small ranking differences vs the fp32 base.

Files

  • model.onnx — int8 ONNX (CPU)
  • mlx/ — int8 MLX weights + tokenizer
  • mlx_encoder.py — bidirectional MLX forward (required for the MLX path)

References

License

Gemma. This is a Model Derivative of google/embeddinggemma-300m.

Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms

Use and redistribution are governed by the Gemma Terms of Use and the Gemma Prohibited Use Policy, which carry through to all downstream users. See the NOTICE file.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

MLX-модели работают только на Apple Silicon.

Класс архитектуры
Gemma3TextModel
Ревизия весов
5937b27

0 моделей