alt.freeweights.gemma / embeddinggemma-2-ONNX
From: onnx-community <huggingface.co/onnx-community>Newsgroups: alt.freeweights.gemmaSubject:

embeddinggemma-2-ONNX

Date: 2026-11-14Commit: daa72c5Signed: 2DC28CC7B26A283B ✓

Feature extraction model. Onnx weights, 6.17 GB in all. Published by onnx-community under Apache-2.0.

gemma6.17GBembeddinggemma-2-ONNXonnxpermissive
FactsParamsnot statedSize6.17 GBFormatsonnxTaskfeature extractionLicenseApache-2.0From sourcepermissive
$ fw get onnx-community/embeddinggemma-2-ONNX
# manifest sha256 9b6261840a84… · 6.17 GB · 39 files
$ fw verify ./embeddinggemma-2-ONNX onnx-community/embeddinggemma-2-ONNX
From sourceHosted (signed)onnx-community/embeddinggemma-2-ONNXLast check: 2026-11-14 21:31 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Quantized of embeddinggemma-2.

Works with

Runs with

Ranked by fit to this model (onnx), then by GitHub stars.

Convert with

Evaluate with

Scan with

Overview

Size
6.17 GB
Weights
97.8 MB (smallest of 15 ONNX variants)
Parameters
not stated
Formats
onnx
Task
feature extraction
License
Apache-2.0 (permissive)
Files
39, each with a sha256
Publisher
onnx-community
Added
2026-11-14
Section
alt.freeweights.gemma
Lineage

Original release from the publisher.

Base model: google/embeddinggemma-2

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-14 21:31 UTCpassed

Model card

From the publisher at commit daa72c5. Shown as plain text with links; images open at the publisher.

Image: image

Hugging Face | GitHub | Launch Blog | Documentation |

License: Apache 2.0 | Authors: Google DeepMind

EmbeddingGemma 2 is an open multimodal embedding model built by Google DeepMind which maps text (incl. code), images, video, and audio inputs—and combinations thereof—into a single, unified 768-dimensional vector space. The model has 740M total parameters, combining a 270M parameter text model with modular vision (170M) and audio (300M) encoders.

Designed to run on consumer hardware such as mobile devices and laptops, EmbeddingGemma 2 delivers low-latency semantic representations for on-device applications, like search, retrieval-augmented generation (RAG), classification, and clustering.

EmbeddingGemma 2 builds upon the architectural and capability advancements of Gemma 4, offering several core features:

  • Native multimodality: Unifies 4 modalities (text, images, video, and audio) in a single shared 768-dimensional embedding space.
  • Multilinguality and code: EmbeddingGemma 2 understands 100+ languages, and achieves a ~14% improvement on code tasks relative to its predecessor.
  • Flexible footprint: Combines a 270M parameter text backbone (130M transformer + 140M embedder) with selectively loadable vision (170M) and audio (300M) encoders, allowing developers to load only the modalities required for their use case.
  • Matryoshka Representation Learning (MRL): Native support for truncated embeddings across 128d, 256d, 512d, and 768d, enabling up to a 6x reduction in vector storage costs with minimal impact on quality.
  • Context length: 8K token context window, capable of processing minutes of audio or video.
  • Task-steered representations: Uses lightweight text instruction prefixes to optimize embeddings for different tasks (search, classification, clustering, semantic similarity, etc.).
Model Overview#
ParametersTotal740M
Backbone130M
Embedder140M
Modality EncodersVision: 170M Audio: 300M
ArchitectureLayers24
Model Dimension512
Hidden Dimension2048
Sliding Window1024 tokens
Vocabulary Size262,144
\# Heads4
\# KV-Heads (Local/Global)2/1
Local:Global5:1
AttentionGQA/MQA
ActivationGated FFN with GELU
PoolingMean Pooling
Projection Layer512→768
Input/OutputSupported ModalitiesText, Images, Video, Audio
Context Window8,192 tokens
Native Output Dimension768
MRL Truncation Dimensions128, 256, 512

Benchmark Results#

EmbeddingGemma 2 was evaluated across text, code, vision, visual document, video, and audio embedding benchmarks. All results reported below use the full-precision checkpoint.

Overall Evaluation Results (768d)#
ModalityBenchmarkMetricEmbeddingGemma 2EmbeddingGemma 1
TextMassive Text Embedding Benchmark (MTEB, multilingual, v2)Mean(Task), Multiple61.3661.15
Massive Text Embedding Benchmark (MTEB, code, v1)Mean(Task), NDCG@1078.6868.76
ImageMassive Image Embedding Benchmark (MIEB, lite)Mean(TaskType), Multiple64.64-
Massive Multimodal Embedding Benchmark (MMEB v2 - Image)Mean(Task), Hit@157.28-
Massive Multimodal Embedding Benchmark (MMEB v2 - VisDoc)Mean(Task), NDCG@567.84-
VideoMassive Multimodal Embedding Benchmark (MMEB v2 - Video)Mean(Task), Hit@150.67-
AudioMassive Sound Embedding Benchmark (MSEB, Retrieval)Mean(Task), MRR@1069.54-
Massive Audio Embedding Benchmark (MAEB) Hugging FaceMean(Task), Multiple49.39-
Evaluation Results with Vector Truncation#

With MRL, EmbeddingGemma 2 representations can be truncated below the native 768d to 128d, 256d, and 512d representations and re-normalized. With this, model users can reduce storage requirements, with minimal quality impact down to 256d. 128d is best suited to text-only workloads.

Output DimensionCompression RatioMTEB (multilingual, v2) Mean(Task)MTEB (eng, v2) Mean(Task)MTEB (code, v1) Mean(Task)MIEB (lite) Mean(TaskType)MMEB (v2) OverallMSEB (Retrieval) Mean(Task)MAEB Mean(Task)
768d (Full)1:161.3668.4678.6864.6459.0169.5449.39
512d1:1.561.1768.4177.2464.3258.3869.1849.21
256d1:360.4167.7876.1863.1356.2466.7648.91
128d1:657.8965.6871.4159.0645.6556.7146.92

Quick Start#

Install Transformers.js from NPM:

npm i @huggingface/transformers

The feature-extraction pipeline returns normalized embeddings, so the dot product of two embeddings is their cosine similarity:

import { pipeline, matmul } from "@huggingface/transformers";

const extractor = await pipeline("feature-extraction", "onnx-community/embeddinggemma-2-ONNX", {
  device: "webgpu", // or "wasm" (browser) / "cpu" (Node.js)
  dtype: "q4", // see "Choosing a dtype" below
});

const query = "task: search result | query: Which planet is known as the Red Planet?";
const documents = [
  "title: none | text: Venus is often called Earth's twin because of its similar size and proximity.",
  "title: none | text: Mars, known for its reddish appearance, is often referred to as the Red Planet.",
  "title: none | text: Jupiter, the largest planet in our solar system, has a prominent red spot.",
  "title: none | text: Saturn, famous for its rings, is sometimes mistaken for the Red Planet.",
];

const embeddings = await extractor([query, ...documents], { pooling: "mean", normalize: true });
const query_embedding = embeddings.slice([0, 1]);
const document_embeddings = embeddings.slice([1, null]);

const scores = (await matmul(query_embedding, document_embeddings.transpose(1, 0))).tolist()[0];
const ranking = scores.map((score, i) => ({ score, document: documents[i] })).sort((a, b) => b.score - a.score);
console.log(ranking);
// [
//   { score: 0.854, document: "title: none | text: Mars, known for its reddish appearance, ..." },
//   { score: 0.783, document: "title: none | text: Saturn, famous for its rings, ..." },
//   { score: 0.752, document: "title: none | text: Jupiter, the largest planet in our solar system, ..." },
//   { score: 0.684, document: "title: none | text: Venus is often called Earth's twin, ..." },
// ]
Images, audio and video#

For other modalities, use the processor and the model directly. Every input maps into the same embedding space, so any embedding can be compared with any other: here, text queries against an image, an audio clip and a video.

import { AutoModel, AutoProcessor, load_image, load_audio, load_video, cat, matmul } from "@huggingface/transformers";

const model_id = "onnx-community/embeddinggemma-2-ONNX";
const processor = await AutoProcessor.from_pretrained(model_id);
const model = await AutoModel.from_pretrained(model_id, { device: "webgpu", dtype: "q4" });

// The processor takes (text, images, audio, videos)
const embed = async (...inputs) => (await model(await processor(...inputs))).sentence_embedding;

// Text queries, with a task prefix (see "Task Instruction Prefixes" below)
const queries = [
  "task: search result | query: cats sleeping on a couch",
  "task: search result | query: a president's speech about serving your country",
  "task: search result | query: a turtle swimming in the ocean",
];
const query_embeddings = await embed(queries);

// An image, an audio clip (mono, 16 kHz) and a video (1 frame per second)
const url = "https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main";
const image = await load_image(`${url}/cats.jpg`);
const audio = await load_audio(`${url}/jfk.wav`, 16000);
const video = await load_video(`${url}/sea-turtle.mp4`, { fps: 1 });

const media_embeddings = cat([
  await embed(null, image),
  await embed(null, null, audio),
  await embed(null, null, null, video),
]);

// Embeddings are normalized: the dot product is the cosine similarity
const scores = (await matmul(media_embeddings, query_embeddings.transpose(1, 0))).tolist();
["image", "audio", "video"].forEach((name, i) => console.log(name, scores[i].map((x) => x.toFixed(3))));
// Each input scores highest with its own query:
//          cats     speech   turtle
// image ["0.740", "0.462", "0.508"]
// audio ["0.504", "0.763", "0.487"]
// video ["0.505", "0.500", "0.731"]

To embed several items of a modality at once, pass one list per input: processor(null, [[image1], [image2]]) returns two image embeddings, while a flat list of images, processor(null, [image1, image2]), is a single input made of both images.

Note. load_audio and load_video decode media with browser APIs. In Node.js, decode the media yourself and pass the audio as a mono 16 kHz Float32Array, and a video as new RawVideo(frames, duration), where frames is an array of RawImage and duration is in seconds.

Best Practices#

For optimal embedding quality and runtime efficiency, follow these configurations and best practices:

1. Task Instruction Prefixes#

EmbeddingGemma 2 is trained with short task instruction prefixes prepended to text inputs. Using the right prefix improves quality; omitting it still works but reduces precision. Prefixes apply to text only. Pass images, video, and audio without any prefix.

Documents with a real title should be formatted as title: {title} | text: {content}. Use title: none when no title is available.

Prefix Notation & Usage

We offer two types of task prefixes, depending on how embeddings are used in the task. There are two types of tasks:

  • Asymmetric Tasks (e.g. retrieval): Use a query prefix for queries and a document prefix for corpus items.
  • Symmetric Tasks (e.g. classification, similarity): Apply the same task prefix to all inputs being compared.
Use CaseTask TypeQuery Task InstructionDocument Task Instruction (use none if no title)
Web / document searchAsymmetric`task: search result \query: {query}``title: {title} \text: {content}`
Question answeringAsymmetric`task: question answering \query: {question}``title: {title} \text: {passage}`
Fact checkingAsymmetric`task: fact checking \query: {claim}``title: {title} \text: {evidence}`
Code searchAsymmetric`task: code retrieval \query: {query}``title: {title or filename} \text: {code}`
Text classificationSymmetric`task: classification \query: {content}`N/A
ClusteringSymmetric`task: clustering \query: {content}`N/A
Measuring similaritySymmetric`task: sentence similarity \query: {content}`N/A

For example:

const query = (text) => `task: search result | query: ${text}`;
const document = (text, title = "none") => `title: ${title} | text: ${text}`;

const texts = [
  query("What causes the northern lights?"),
  document("Charged particles from the sun excite gases in the upper atmosphere.", "Aurora"),
];
console.log(texts);
// ["task: search result | query: What causes the northern lights?",
//  "title: Aurora | text: Charged particles from the sun excite gases in the upper atmosphere."]
2. Selective Encoder Loading#

The vision and audio encoders are independent components. To reduce memory consumption and download size when deploying text-only or single-modality pipelines, remove the configs of the unused encoders before loading the model:

import { AutoConfig, AutoModel, AutoTokenizer } from "@huggingface/transformers";

const model_id = "onnx-community/embeddinggemma-2-ONNX";
const config = await AutoConfig.from_pretrained(model_id);
config.vision_config = config.audio_config = null; // text only
const model = await AutoModel.from_pretrained(model_id, { config, device: "webgpu", dtype: "q4" });

const tokenizer = await AutoTokenizer.from_pretrained(model_id);
const { sentence_embedding } = await model(await tokenizer(["task: search result | query: What causes the northern lights?"]));
console.log(sentence_embedding.dims); // [1, 768]
Active ModalitiesConfigs to removeEffective Size
Text onlyvision_config, audio_config270M
Text and imageaudio_config440M
Text and audiovision_config570M
Full multimodalnone740M

Video frames go through the vision encoder, so video needs vision_config. The feature-extraction pipeline loads every encoder.

3. Matryoshka Dimension Truncation#

EmbeddingGemma 2 is trained with Matryoshka Representation Learning, so the 768-dimensional output vector can be shortened by keeping only its leading dimensions. The supported dimensions are 768, 512, 256, and 128. Shorter vectors reduce storage and speed up similarity search at some cost to quality.

At runtime, please adhere to the following guidelines:

  • Re-normalize after truncating: slicing a unit-length vector does not preserve unit length. The shortened vector must be L2-normalized before it is used for cosine similarity. Skipping this step degrades ranking quality silently—it produces plausible-looking scores rather than an error.
  • Queries and documents must share a dimension. A 768-dimensional query cannot be scored against a 128-dimensional corpus.

For example, continuing the text search example above:

const dim = 256; // or 512, 128
const truncated = embeddings.slice(null, [0, dim]).normalize(2, -1);

const truncated_scores = (await matmul(truncated.slice([0, 1]), truncated.slice([1, null]).transpose(1, 0))).tolist()[0];
console.log(truncated_scores);
// [0.706, 0.871, 0.775, 0.807]: Mars is still first (Venus, Mars, Jupiter, Saturn)

Model quality at each dimension is reported in the truncation table in the Benchmark Results section above. Quality is close to lossless down to 256 dimensions. 128 dimensions degrades multimodal quality substantially and should be validated against your own workload before adoption.

4. Choosing a dtype#

The model is available in several precisions. Pick one with dtype, either for every component or per component (model is the text model):

import { AutoModel } from "@huggingface/transformers";

const model = await AutoModel.from_pretrained("onnx-community/embeddinggemma-2-ONNX", {
  device: "webgpu",
  dtype: { model: "q4", vision_encoder: "q4", audio_encoder: "q8" },
});
dtypeText modelVision encoderAudio encoderTotalCosine similarity to fp32 (worst case)
fp321085 MB671 MB1173 MB2929 MB1
fp16543 MB336 MB587 MB1465 MB0.9998
q8314 MB195 MB340 MB850 MB0.9997
q4175 MB109 MB189 MB473 MB0.975 (text: 0.988)
q4f16157 MB98 MB171 MB426 MB0.975 (text: 0.988)

In the browser, we recommend q4 on WebGPU: it is a sixth of the full-precision download, with good quality. Use q8 (or fp16 on WebGPU) when quality matters most, for example for audio, the modality that 4-bit quantization affects the most.

5. Multimodal Input#
Interleaving#

A single input may mix text with images, video, and audio, using a single shared 8,192-token context.

The position of each media item within the sequence is marked in the text using placeholder tokens from the model's vocabulary:

  • <|image|> marks the position of image input
  • <|video|> marks the position of video input
  • <|audio|> marks the position of audio input

For example, a social media post with a photo and a video might be encoded as:

import { AutoModel, AutoProcessor, load_image, load_video, matmul } from "@huggingface/transformers";

const model_id = "onnx-community/embeddinggemma-2-ONNX";
const processor = await AutoProcessor.from_pretrained(model_id);
const model = await AutoModel.from_pretrained(model_id, { device: "webgpu", dtype: "q4" });

const url = "https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main";
const text = ["My two cats while I'm away <|image|> and what I'm up to on my diving trip: <|video|>"];
const images = [[await load_image(`${url}/cats.jpg`)]];
const videos = [await load_video(`${url}/sea-turtle.mp4`, { fps: 1 })];
const { sentence_embedding: post_embedding } = await model(await processor(text, images, null, videos));

const queries = [
  "task: search result | query: vacation in the ocean",
  "task: search result | query: pets at home",
  "task: search result | query: a cooking recipe",
];
const { sentence_embedding: query_embeddings } = await model(await processor(queries));
console.log((await matmul(post_embedding, query_embeddings.transpose(1, 0))).tolist()[0]);
// [0.734, 0.672, 0.603]: the post matches both the vacation and the pets, and not the recipe

Each placeholder in text is filled from the corresponding media list, in order. The call returns a single embedding that represents the text, image and video together. This embedding can be compared directly against any other EmbeddingGemma 2 embedding, such as the text-only queries above.

Context Limits#

All modalities share a single 8,192-token context window. Each modality consumes that budget at a fixed rate:

ModalityToken CostMax Input
Text1 token per subword8,192 tokens
Image280 tokens per image (default)~29 images
Video140 tokens per frame (default)~58 frames
Audio25 tokens per second~327 seconds

The maximums above assume a single modality with no accompanying text. Interleaved inputs draw from the same budget, so mixing modalities reduces the amount of each that fits. Note also max input for images and video can be as high as ~114 images or frames when using a lower vision token budget (described below).

Warning. On WebGPU, keep each batch under about 2,700 tokens in total, counting the tokens of images, video frames and audio. Above that, some ONNX Runtime WebGPU kernels exceed a GPU dispatch limit. This includes video longer than about 19 seconds at 1 frame per second: sample fewer frames with load_video(url, { num_frames: 16 }), or run on wasm or cpu.

Vision Token Budget#

Model users can forgo the default sequence length for input images / video frames to represent images with “soft token” amounts ranging from 70 to 1120. Increasing the vision budget for input images trades latency and token count for quality.

In general, higher input sequence lengths capture more information. Scaling up input sequence length means more expressive input representations; so, increasing input sequence length will improve fine-grained visual understanding, uplifting embedding quality and performance in downstream use cases.

The budget is a setting of the image processor (280 by default; 70, 140, 280, 560 or 1120):

import { AutoProcessor, load_image } from "@huggingface/transformers";

const processor = await AutoProcessor.from_pretrained("onnx-community/embeddinggemma-2-ONNX");
const image = await load_image("https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cats.jpg");

for (const budget of [70, 280, 1120]) {
  processor.image_processor.max_soft_tokens = budget;
  const { num_soft_tokens_per_image } = await processor(null, image);
  console.log(budget, num_soft_tokens_per_image);
}
// 70 [63]
// 280 [266]
// 1120 [1064]
// The tokens used: at most the budget, depending on the image's aspect ratio
Input Sampling Defaults#

Audio and video inputs have the following default sampling rates:

  • By default, video is processed as sampled frames through the vision encoder at 1 frame per second, as with load_video(url, { fps: 1 }). Videos with more than 32 frames are subsampled uniformly to 32 frames.
  • Audio should be supplied as mono at 16 kHz, as with load_audio(url, 16000).

Model Data#

Our pre-training dataset is a large-scale, diverse collection of data encompassing a wide range of domains and modalities, which includes web documents, code, images, video, and audio, with a cutoff date of January 2025. These include:

  • Web Documents: A diverse collection of web text ensures the model is exposed to a broad range of linguistic styles, topics, and vocabulary. The training dataset includes content in over 140 languages.
  • Code: Exposing the model to code helps it to learn the syntax and patterns of programming languages, which improves its ability to understand code-related semantics.
  • Images: A wide range of images enables the model to perform image analysis and visual data extraction tasks.
  • Video: Video sequences and clips covering diverse visual scenes, human actions, and temporal dynamics.
  • Audio: Speech recordings across multiple languages, environmental sounds, and acoustic events.
  • Cross-modality Samples: Paired text, image, video, and audio data to align representations across different modalities.
Data Processing#

Several data cleaning and filtering methods were applied to the training data:

  • CSAM Filtering: Rigorous CSAM (Child Sexual Abuse Material) filtering was applied at multiple stages in the data preparation process to ensure the exclusion of harmful and illegal content.
  • Sensitive Data Filtering: As part of making Gemma pre-trained models safe and reliable, automated techniques were used to filter out certain personal information and other sensitive data from training sets.
  • Additional Methods: Filtering based on content quality and safety in line with our policies.
Ethics & Safety#

EmbeddingGemma 2 is a pre-trained embedding model. Unlike generative models, it does not undergo post-training alignment, safety tuning, or output-level moderation. Safety mitigations during development were focused on pre-training data filtering to reduce exposure to harmful content and severe biases in the learned embedding space, in alignment with Google's AI Principles.

Since embedding models produce representations rather than user-facing text, safety risks manifest downstream in how those representations are used.

Developers and deployers are responsible for evaluating and implementing application-level safeguards, like retrieval filtering and fairness testing, appropriate to their specific production use case.

Deployments must adhere to the Gemma Prohibited Use Policy.

Usage and Limitations#

EmbeddingGemma 2 has certain limitations that users should be aware of.

Intended Usage#

EmbeddingGemma 2 generates embeddings from input content, which can be used for a number of downstream applications.

The following list of potential uses is not comprehensive. The purpose of this list is to provide contextual information about the possible use-cases that the model creators considered as part of model training and development.

  • Retrieval: Embeddings for semantic search across text, code, images, video, and audio, such as document search, RAG over enterprise knowledge bases, code search from natural language queries, or spoken-query search over audio archives.
  • Classification: Embeddings to classify inputs according to preset labels, like sentiment analysis, content moderation, audio event detection, or image categorization.
  • Clustering: Embeddings to group inputs based on semantic similarity, like organizing document collections, clustering customer feedback by theme, or discovering near-duplicate content across modalities.
  • Semantic Similarity: Embeddings to measure pairwise similarity between inputs, such as recommendation systems, duplicate detection, paraphrase identification, or cross-lingual content alignment.
  • Fact Verification: Embeddings for retrieving evidence documents given a claim, like automated fact-checking systems or source attribution pipelines.
Limitations#
  • Training Data: The quality and diversity of the training data significantly influence the model's capabilities. Biases or gaps in the training data can lead to limitations in the model's responses.
    • The scope of the training dataset determines the subject areas the model can handle effectively.
    • For example, while EmbeddingGemma 2 supports 100+ languages, the model may not exhibit equal performance across languages.
  • Context and Task Complexity: Models perform well on tasks that can be framed with clear prompts and instructions.
    • Open-ended or highly complex tasks might be challenging.
    • A model's performance can be influenced by the amount of context provided (longer context generally leads to better outputs, up to a certain point).
  • Language Ambiguity and Nuance: Natural language is inherently complex. Models might struggle to grasp subtle nuances, sarcasm, or figurative language.
  • Task Instruction Usage: For text tasks, omitting the recommended task prefix may lead to sub-optimal embedding quality.
Ethical Considerations and Risks#

In creating an open embedding model, we have carefully considered the following:

  • Bias and Fairness
    • Models trained on large-scale, real-world text and image data can reflect socio-cultural biases embedded in the training material.
    • Training data used for EmbeddingGemma 2 underwent safety filtering to mitigate the risk of these biases.
  • Misinformation and Misuse
    • Embedding representations can be misused to retrieve, classify, or otherwise organize embedded content in false, misleading or harmful ways.
    • Guidelines are provided for responsible use with the model, see the Responsible Generative AI Toolkit.
  • Transparency and Accountability
    • This model card summarizes details on the model's architecture, capabilities, limitations, and evaluation processes.
    • A responsibly developed open model offers the opportunity to share innovation by making Vision-Language Model (VLM) technology accessible to developers and researchers across the AI ecosystem.
Risks Identified and Mitigations#
  • Misuse for malicious purposes: Technical limitations and developer and end-user education can help mitigate against malicious applications of embedding models. Educational resources and reporting mechanisms for users to flag misuse are provided.
  • Privacy violations: Models were trained on data filtered for removal of certain personal information and other sensitive data. Developers are encouraged to adhere to privacy regulations with privacy-preserving techniques.
  • Perpetuation of biases: It's encouraged to perform continuous monitoring (using evaluation metrics, human review) and the exploration of de-biasing techniques during model training, fine-tuning, and other use cases.
Benefits#

EmbeddingGemma 2 is among the strongest multimodal embedding models under 1B parameters. We’re excited to see how developers will use and adapt this model for on-device or edge AI applications.

The model is designed from the ground up for responsible AI development, like other Gemma-family models.

Files

39 files · 6.17 GBWeights 97.8 MB (smallest of 15 ONNX variants). Sizes and sha256 from the signed manifest.
Show all 39 files with their sha256
FileSizesha256
.gitattributes2.58 KB08e0d15aeae55bf011f0a68d3e6ab8c818317c8d107e23f49cbed46fbf24c053
README.md28.7 KB4fe21bf1b86938ac62c7cd2d1511822e4ea6e8654e015e00b06a72676b5420e6
chat_template.jinja1.02 KB4b852efc0b9960283e735363331e6f325b33bc74bdbaa076f595bc4e9b94d85e
config.json5.03 KB8d011bfe08b5e345bbe0b81e5c6fd02c381920b345b986047bc2a33ce7b90d1d
config_sentence_transformers.json1.56 KB031e56a498d33c349ab489a21885bcfe25b4fcba841149dc99e1e90d4a7c28f5
onnx/audio_encoder.onnx205 KBe0a62590c49949fe0b1410f5dc52c92a185abb4c4e69e2c50a4e316103fdbc09
onnx/audio_encoder.onnx_data1.17 GB6943b910d1d1e9b5dffd4ccad63f61aa308ad10b70ed128bb61886b119da1e3a
onnx/audio_encoder_fp16.onnx211 KB06237e04855d57053c3880f70f2575016dec1b1ce22f262fa76c6bd010616799
onnx/audio_encoder_fp16.onnx_data587 MB3a9417444f3cb7bb868525b66859cc1d4b7a00128ea0b111f7aee2843739cd3b
onnx/audio_encoder_q4.onnx246 KBc4cce3370e72262280d00293cac038896050a03a8e9a27e10b061ca97510296e
onnx/audio_encoder_q4.onnx_data189 MBba9328e6341360974083085b44b2bba265003bda564740f7c4c23ed9928f17e2
onnx/audio_encoder_q4f16.onnx253 KBe61ee0d27a4ee2b13cfa4f6492d6bc9e18d23f998992b31e9c7355be6c028d58
onnx/audio_encoder_q4f16.onnx_data170 MB356991f24ed4daee4728997a71fe11b72ebf5c053410ac29c7ce27d0f3fc7655
onnx/audio_encoder_quantized.onnx249 KB04a9a9094ba76fb169e4c69be45a4b621580188654d6be59eab860eadcd42d3c
onnx/audio_encoder_quantized.onnx_data340 MBaa6361d898e1f1d6303f8dd2b5fabf4fd3629e15fd709e9cb06ac5cb9416a030
onnx/model.onnx421 KBbc47de15f81208a5c99e5ab10f746d5e33b51ea228b7dc0bef9c133a94f1c1c3
onnx/model.onnx_data1.08 GB9fd452bfc6916e5a92f080f8dada35598ca4512b21c65897d4c5974d5f9630a2
onnx/model_fp16.onnx426 KBa49e227d7e0e5f4ee606d79879d084264366367bc6318f344ab179e35d4fd6a4
onnx/model_fp16.onnx_data542 MBb9dbe09415d77c8686ba6e216a244086f4ada1608238c13f2bfaa587ba627207
onnx/model_q4.onnx491 KBf9eeba97acddf139b8ee2ddf04bc30dceafa88de93fadf74d7644e0d61a477a9
onnx/model_q4.onnx_data174 MBc3975f2d1ab7a1878ae31a7d7a9b7804a827aff3800b60dfceafce21cac3df49
onnx/model_q4f16.onnx495 KB53feeced79582d661e30adeaa9829cea90d92b1c78347e26fd123773580f71d0
onnx/model_q4f16.onnx_data157 MBc39fbaa1fb4221f04beb82786a06b81999c514fd39e84fcd58ef79413c87fa56
onnx/model_quantized.onnx495 KBd06edd601f851c633a2519304cbeb8dc6170d7ceb61b436625c17fb9b6e74953
onnx/model_quantized.onnx_data314 MB278a7ff1248c3618e4bd11a607fc54f7bdc7778854230f3956d3f86bd9db4f3b
onnx/vision_encoder.onnx121 KBa3fb44f8b5b152cfee6afe16e2cd69e774b7e1d3b822d1db1190ddf7b08b575e
onnx/vision_encoder.onnx_data671 MBca8d28c99feb8129618f141978a27adae25090e0dadb68a30c235e191c01e37e
onnx/vision_encoder_fp16.onnx112 KB3e2b6d5648a3ae61b572cc3ec0a23b13ebfda3b63e3c9c343c593636392a879c
onnx/vision_encoder_fp16.onnx_data336 MB9f374070808b8b96252f7d04c9c4eae34df60283473fde5a3fbf4d9205495e19
onnx/vision_encoder_q4.onnx159 KB7ea284226d4938f0ad921ab091f1d80a9ca699aa802984ef5cd5eec4f4761d96
onnx/vision_encoder_q4.onnx_data109 MB0a9d6c927334f152a33dd90874f65d6ea5228999abe6a450d3f7813677fa704c
onnx/vision_encoder_q4f16.onnx151 KB55975fba53928162eee37e9eea2a69965c10c0411ed14c24ea149efa55a8aa68
onnx/vision_encoder_q4f16.onnx_data97.6 MB842f996aff092e300c966266ae0cc60771c6ca16282fee04ca83f0f159bc6b33
onnx/vision_encoder_quantized.onnx162 KBbb0de2df53a2448a32dc7908a187c168c8afd514d4d6f674f7f46024875fa4e3
onnx/vision_encoder_quantized.onnx_data195 MB3dabd69c0a36e9a8771ad82030dde74daa5a0e02b7047a5d3f3382b1137bab89
preprocessor_config.json560 B9344893f8d0573a46ebb2ca54c03f56d044cea194c8dcfb1f4d652240ac21daa
processor_config.json1.79 KB168f6a08522f3ce5dea596d94d003af2fd691742d4f41fe1f9d8cce76bfbf69c
tokenizer.json32.2 MB4d777ef5bdc1aa36227abdfb77c3e49e7b9c892d16e1b6bda41c393504828be4
tokenizer_config.json1.60 KB17bd5d6e9364ca49a534e1502076593317c298d4a663623091ed45388f004874
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
daa72c5124 pinned now manifest updated, same commit2026-11-14 21:31 UTC39 files · 6.17 GB
daa72c51242026-11-14 21:31 UTC39 files · 6.17 GB

Use it

$ fw get onnx-community/embeddinggemma-2-ONNX
# manifest sha256 9b6261840a84… · 6.17 GB · 39 files
$ fw verify ./embeddinggemma-2-ONNX onnx-community/embeddinggemma-2-ONNX
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/onnx-community/embeddinggemma-2-ONNX.json --dir ./embeddinggemma-2-ONNX $ python3 fw.py verify ./embeddinggemma-2-ONNX ./onnx-community__embeddinggemma-2-ONNX.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download onnx-community/embeddinggemma-2-ONNX --revision daa72c51243991dfcaf9f9137d2c573d8f7790c0 --local-dir ./embeddinggemma-2-ONNX

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-14
Text in
README.md
Text sha256
4fe21bf1b86938ac62c7cd2d1511822e4ea6e8654e015e00b06a72676b5420e6
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: onnx-community <huggingface.co/onnx-community>Newsgroups: alt.freeweights.gemmaSubject: embeddinggemma-2-ONNXDate: 2026-11-14Commit: daa72c5Signed: 2DC28CC7B26A283B ✓
Upstream
onnx-community/embeddinggemma-2-ONNX
Pinned commit
daa72c51243991dfcaf9f9137d2c573d8f7790c0
Manifest
embeddinggemma-2-ONNX.json · .minisig
Manifest sha256
9b6261840a84642ea967899f29f852fa4b95692ffe9ddded16d6e22bbe1917ab
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-14 21:31 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/onnx-community/embeddinggemma-2-ONNX.json $ curl -O https://freeweights.allternit.com/manifests/onnx-community/embeddinggemma-2-ONNX.json.minisig $ minisign -Vm embeddinggemma-2-ONNX.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

google/embeddinggemma-2 · this model is a quantization of it

No model in the catalog names this one as its parent.

Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download onnx-community/embeddinggemma-2-ONNX
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. embeddinggemma-2-ONNX.json. Provenance. Takedown history: none.
From: laion <huggingface.co/laion>Subject: Alexandria-Gemma-4-12B-it-Ornith9-Summaries-LoRA-r128
From: laion <huggingface.co/laion>Subject: Alexandria-Gemma-4-12B-it-Ornith9-Summaries-LoRA-r64
From: laion <huggingface.co/laion>Subject: Alexandria-Gemma-4-12B-it-Qwen27-Knowledge-Units-LoRA-r128
From: laion <huggingface.co/laion>Subject: Alexandria-Gemma-4-12B-it-Qwen27-Summaries-LoRA-r128
From: laion <huggingface.co/laion>Subject: Alexandria-Gemma-4-12B-it-Qwen27-Summaries-LoRA-r64
From: laion <huggingface.co/laion>Subject: Alexandria-Gemma-4-E4B-it-Qwen27-Knowledge-Units-LoRA-r128