Open-weight model
embeddinggemma2-global-birds-2000-litert
by Jeffrey jaichang/embeddinggemma2-global-birds-2000-litert
embeddinggemma2-global-birds-2000-litert is an open-weight model from Jeffrey, released under Creative Commons Attribution-ShareAlike 4.0. Its published files total 145.5 MB.
This repository provides the knowledge-distilled, ultra-compact on-device encoders (LiteRT.tflite and ONNX Runtime WebGPU.onnx) and precomputed Float32 binary vector databases (.f32) distilled from the full 740M teacher model…
Model Card
By Jeffrey, published under cc-by-sa-4.0, revision f2f0b9a11fdd.
This repository provides the knowledge-distilled, ultra-compact on-device encoders (LiteRT.tflite and ONNX Runtime WebGPU.onnx) and precomputed Float32 binary vector databases (.f32) distilled from the full 740M teacher model (jaichang/embeddinggemma2-global-birds-2000). Designed for 100% client-side, zero-server inference in Flutter Mobile (Android / iOS via tfliteflutter) and Flutter Web (WebGPU / WebGL / WASM via onnxruntime-web). Instead of downloading the 1.2 GB model.safetensors onto a phone or browser, we trained lightweight student networks to directly regress the exact 768-dimensional L2-normalized embedding coordinates of EmbeddingGemma 2 (740M) using Cosine + InfoNCE Distillation…
Read Jeffrey's full model card
EmbeddingGemma 2 — Global 2,000 Bird Species On-Device (LiteRT .tflite + WebGPU .onnx) & Binary Index
English | 한국어
English Overview
This repository provides the knowledge-distilled, ultra-compact on-device encoders (LiteRT .tflite and ONNX Runtime WebGPU .onnx) and precomputed Float32 binary vector databases (.f32) distilled from the full 740M teacher model (jaichang/embeddinggemma2-global-birds-2000).
Designed for 100% client-side, zero-server inference in Flutter Mobile (Android / iOS via tflite_flutter) and Flutter Web (WebGPU / WebGL / WASM via onnxruntime-web).
Knowledge Distillation Architecture & Accuracy
Instead of downloading the 1.2 GB model.safetensors onto a phone or browser, we trained lightweight student networks to directly regress the exact 768-dimensional L2-normalized embedding coordinates of EmbeddingGemma 2 (740M) using Cosine + InfoNCE Distillation Loss:
| Student Encoder | Backbone Architecture | Input Tensor Shape | Output Tensor | File Size | Retrieval Accuracy (vs. Teacher Space) |
|---|---|---|---|---|---|
embeddinggemma2_vision_768d.onnx |
MobileNetV3-Small + 768-d L2 Projection (Distilled Student) |
float32[1, 3, 160, 160] ([-1, 1] RGB) |
float32[1, 768] (L2-norm) |
9.24 MB | 100.0% Top-1 (mean_cos = 0.8841) |
embeddinggemma2_audio_768d.onnx |
1D Multi-Scale Spectral ConvNet + 768-d L2 Projection (Distilled Student) |
float32[1, 80000] (5s @ 16kHz) |
float32[1, 768] (L2-norm) |
14.70 MB | 99.1% Top-1 (mean_cos = 0.9086) |
embeddinggemma2_undistilled_vision_int8.{onnx,tflite} |
Un-distilled Gemma4Vision Transformer Tower (model.safetensors INT8) |
float32[1, 3, 160, 160] ([-1, 1] RGB) |
float32[1, 768] (L2-norm) |
22.38 MB | 93.5% Top-1 (100% on field test set) |
embeddinggemma2_undistilled_audio_int8.{onnx,tflite} |
Un-distilled Gemma4Audio Conformer Tower (model.safetensors INT8) |
float32[1, 80000] (5s @ 16kHz) |
float32[1, 768] (L2-norm) |
30.90 MB | 100.0% Top-1 on field audio test set |
File Inventory
| Filename | Target Platform / Runtime | Purpose & Size |
|---|---|---|
embeddinggemma2_vision_768d.onnx |
Flutter Web (WebGPU $\rightarrow$ WebGL $\rightarrow$ WASM) & ONNX Runtime |
Knowledge-distilled 160x160 RGB bird photo $\rightarrow$ 768-d embedding encoder (9.24 MB) |
embeddinggemma2_audio_768d.onnx |
Flutter Web (WebGPU $\rightarrow$ WebGL $\rightarrow$ WASM) & ONNX Runtime |
Knowledge-distilled 16kHz bird audio $\rightarrow$ 768-d embedding encoder (14.70 MB) |
embeddinggemma2_undistilled_vision_int8.onnx / .tflite |
ONNX Runtime (WASM SIMD) & LiteRT (tflite_flutter) |
Un-distilled Fine-Tuned Gemma4Vision Tower INT8 (22.38 MB) |
embeddinggemma2_undistilled_audio_int8.onnx / .tflite |
ONNX Runtime (WASM SIMD) & LiteRT (tflite_flutter) |
Un-distilled Fine-Tuned Gemma4Audio Conformer Tower INT8 (30.90 MB) |
embeddinggemma2_vision_768d.tflite |
Android / iOS (tflite_flutter) & LiteRT |
Mobile LiteRT vision encoder (160x160 RGB $\rightarrow$ 768-d) |
embeddinggemma2_audio_768d.tflite |
Android / iOS (tflite_flutter) & LiteRT |
Mobile LiteRT audio encoder (16kHz $\rightarrow$ 768-d) |
global_2000_birds_audio_index.f32 |
Mobile & Web (Float32List) |
Precomputed 768-d audio reference vectors for 2,000 species (5.8 MB) |
global_2000_birds_photo_index.f32 |
Mobile & Web (Float32List) |
Precomputed 768-d photo reference vectors for 2,000 species (5.8 MB) |
global_2000_birds_catalog.json |
Mobile & Web | Offline encyclopedia metadata (Korean/English/Scientific names, descriptions, image & audio URLs) |
Quick Start (ONNX Runtime in Python / Web)
import json
import numpy as np
import onnxruntime as ort
from PIL import Image
from huggingface_hub import hf_hub_download
repo_id = "jaichang/embeddinggemma2-global-birds-2000-litert"
onnx_path = hf_hub_download(repo_id=repo_id, filename="embeddinggemma2_vision_768d.onnx")
f32_path = hf_hub_download(repo_id=repo_id, filename="global_2000_birds_photo_index.f32")
cat_path = hf_hub_download(repo_id=repo_id, filename="global_2000_birds_catalog.json")
# 1. Load catalog & flat Float32 vector index
catalog = json.load(open(cat_path, encoding="utf-8"))["species"]
photo_index = np.fromfile(f32_path, dtype=np.float32).reshape(len(catalog), 768)
# 2. Preprocess image to [1, 3, 160, 160] in [0, 1]
img = Image.open("bird.jpg").convert("RGB").resize((160, 160))
x = (np.asarray(img, dtype=np.float32) / 255.0).transpose(2, 0, 1)[None, ...]
# 3. Run distilled ONNX encoder & cosine similarity search
sess = ort.InferenceSession(onnx_path)
emb = sess.run(None, {"image_rgb": x})[0][0]
sims = photo_index @ emb
top1 = int(np.argmax(sims))
print(f"#1: {catalog[top1]['en_name']} ({catalog[top1]['kr_name']}) — similarity={sims[top1]:.4f}")
한국어 안내 (Korean Overview)
본 모델(jaichang/embeddinggemma2-global-birds-2000, 740M)의 768차원 임베딩 공간을 지식증류(Knowledge Distillation)하여, Flutter 모바일 앱(tflite_flutter)과 Flutter Web 브라우저(WebGPU / WebGL / WASM)에서 서버 없이 100% 온디바이스로 구동할 수 있도록 경량화한 전용 레포지토리입니다.
지식증류(Knowledge Distillation) vs 무증류 원본 타워(Un-distilled 740M Tower)
1.2GB에 달하는 전체 model.safetensors 중 티어 1(초경량 지식증류 학생 모델, 합계 23.9 MB)과 티어 2(무증류 원본 740M 파인튜닝 서브타워 INT8 직변환, 합계 53.3 MB) 두 가지를 모두 제공합니다:
- 티어 1 — 지식증류 학생 모델 (embeddinggemma2_{vision,audio}_768d.onnx/.tflite, 합계 23.9 MB): 비전 Top-1 100.0%, 오디오 Top-1 99.1%, WebGPU 초고속 추론(~30-80ms)
- 티어 2 — 무증류 원본 740M 파인튜닝 타워 (embeddinggemma2_undistilled_{vision,audio}_int8.onnx/.tflite, 합계 53.3 MB): model.safetensors 내 실제 Gemma4Vision Transformer(22.38 MB) 및 Gemma4Audio Conformer(30.90 MB) 가중치를 지식증류 없이 그대로 추출하여 INT8 양자화한 원본 서브타워 모델
파일 구성
| 파일명 | 대상 플랫폼 / 런타임 | 용도 및 크기 |
|---|---|---|
embeddinggemma2_vision_768d.onnx / .tflite |
Flutter Web (WebGPU) & 모바일 (LiteRT) |
[티어 1: 경량 증류] 비전 인코더 (160x160 RGB $\rightarrow$ 768-d, 9.24 MB) |
embeddinggemma2_audio_768d.onnx / .tflite |
Flutter Web (WebGPU) & 모바일 (LiteRT) |
[티어 1: 경량 증류] 오디오 인코더 (16kHz 파형 $\rightarrow$ 768-d, 14.70 MB) |
embeddinggemma2_undistilled_vision_int8.onnx / .tflite |
ONNX Runtime (WASM SIMD) & 모바일 (LiteRT) |
[티어 2: 무증류 원본] 파인튜닝된 Gemma4Vision 원본 타워 INT8 (22.38 MB) |
embeddinggemma2_undistilled_audio_int8.onnx / .tflite |
ONNX Runtime (WASM SIMD) & 모바일 (LiteRT) |
[티어 2: 무증류 원본] 파인튜닝된 Gemma4Audio Conformer 원본 타워 INT8 (30.90 MB) |
global_2000_birds_audio_index.f32 |
모바일 & 웹 공용 (Float32List) |
조류 2,000종 오디오 기준 벡터 (5.8 MB) |
global_2000_birds_photo_index.f32 |
모바일 & 웹 공용 (Float32List) |
조류 2,000종 새 사진 기준 벡터 (5.8 MB) |
global_2000_birds_catalog.json |
모바일 & 웹 공용 | 조류 2,000종 국명·영문명·학명·설명·사진·소리 URL 도감 메타데이터 |
Identity and Version
- Repository
- jaichang/embeddinggemma2-global-birds-2000-litert
- Publisher
- Jeffrey
- Task
- Not stated by the source
- Modality
- Other
- Library
- litert
- Parameters
- Not stated by the source
- Languages
- en, ko
- Revision
- f2f0b9a11fdd56814b1f22f36a57bfc3aff2bd17
- First published
- 2026-10-11
- Last updated
- 2026-10-11
Files and Weights
11 files, 145.5 MB in total. The weights are 6 files totalling 130.5 MB in onnx, tflite.
Every file
| File | Type | Size | SHA-256 |
|---|---|---|---|
| embeddinggemma2_audio_768d.onnx | Weights | 14.7 MB | 663068cd1ee6 |
| embeddinggemma2_undistilled_audio_int8.onnx | Weights | 30.9 MB | 5e4a0aee8e8c |
| embeddinggemma2_undistilled_audio_int8.tflite | Weights | 30.9 MB | 5e4a0aee8e8c |
| embeddinggemma2_undistilled_vision_int8.onnx | Weights | 22.4 MB | 545e51f8eb08 |
| embeddinggemma2_undistilled_vision_int8.tflite | Weights | 22.4 MB | 545e51f8eb08 |
| embeddinggemma2_vision_768d.onnx | Weights | 9.2 MB | 71f4defd074a |
| global_2000_birds_catalog.json | Configuration | 2.8 MB | — |
| README.md | Documentation | 8.3 KB | — |
| global_2000_birds_audio_index.f32 | Other | 6.1 MB | 71acc0e52f51 |
| global_2000_birds_photo_index.f32 | Other | 6.1 MB | de1188faef5d |
| .gitattributes | Repository | 1.7 KB | — |
License and Download
- License
- cc-by-sa-4.0
- Access
- Open weights, no gate
- Download size
- 130.5 MB
Released by Jeffrey through its official repository on Hugging Face. Read the license.
Built From
- Derived from jaichang/embeddinggemma2-global-birds-2000
- Quantized from jaichang/embeddinggemma2-global-birds-2000
Memory Requirements
| Precision | Weights in memory |
|---|---|
| As published | 130.5 MB |
Weights only, from the published parameter count; the key-value cache and runtime add to this.
Questions About embeddinggemma2-global-birds-2000-litert
Can I use embeddinggemma2-global-birds-2000-litert commercially?
Yes. embeddinggemma2-global-birds-2000-litert is released under Creative Commons Attribution-ShareAlike 4.0. CC BY-SA 4.0 permits sharing and adapting, including commercially, with credit to the creator, and requires adaptations to be released under the same license.