abtonmoy commited on
Commit
3cff2e1
·
verified ·
1 Parent(s): 02c954d

Card: restore banner, add RunPod deploy

Browse files
Files changed (1) hide show
  1. README.md +138 -122
README.md CHANGED
@@ -14,6 +14,10 @@ tags:
14
  base_model: Qwen/Qwen3-VL-Embedding-2B
15
  ---
16
 
 
 
 
 
17
  # fusion-embedding-2-2b-preview
18
 
19
  <div align="center">
@@ -21,7 +25,8 @@ base_model: Qwen/Qwen3-VL-Embedding-2B
21
  [![Python](https://img.shields.io/badge/python-3.11+-blue.svg)](https://github.com/Eximius-Labs/fusion-embedding)
22
  [![PyTorch](https://img.shields.io/badge/PyTorch-2.x-ee4c2c.svg)](https://github.com/Eximius-Labs/fusion-embedding)
23
  [![Weights](https://img.shields.io/badge/weights-CC--BY--NC--4.0-green.svg)](#license)
24
- [![Status](https://img.shields.io/badge/status-research%20preview%20v0.1-orange.svg)](#)
 
25
  [![Code](https://img.shields.io/badge/code-GitHub-black.svg)](https://github.com/Eximius-Labs/fusion-embedding)
26
  [![Deploy on RunPod](https://api.runpod.io/badge/Eximius-Labs/fusion-embedding)](https://www.runpod.io/console/hub/Eximius-Labs/fusion-embedding)
27
 
@@ -29,12 +34,13 @@ base_model: Qwen/Qwen3-VL-Embedding-2B
29
 
30
  `fusion-embedding-2-2b-preview` is the second generation of Eximius Labs' unified
31
  multimodal embedding models: **text, images, video, and audio in one vector space**.
32
- It extends the first generation with modality-gated deep adapters — in-layer audio
33
- capacity added to a byte-frozen base. For the first-generation architecture, see
 
34
  [fusion-embedding-1-2b-preview](https://huggingface.co/EximiusLabs/fusion-embedding-1-2b-preview)
35
  (that line is final at v0.3).
36
 
37
- [GitHub](https://github.com/Eximius-Labs/fusion-embedding) | [fusion-embedding-1](https://huggingface.co/EximiusLabs/fusion-embedding-1-2b-preview) | Technical report: in preparation
38
 
39
  ## Model Overview
40
 
@@ -42,127 +48,116 @@ capacity added to a byte-frozen base. For the first-generation architecture, see
42
  <img src="assets/fe2_model_overview.png" alt="fusion-embedding-2 architecture: frozen Qwen3-VL-Embedding base with modality-gated adapters inside; frozen audio tower and trained FusionResampler on the audio branch; one shared embedding space" width="820px">
43
  </p>
44
 
45
- `fusion-embedding-2-2b-preview` embeds all four modalities with a
46
  [Qwen3-VL-Embedding-2B](https://huggingface.co/Qwen/Qwen3-VL-Embedding-2B) base that is
47
- **byte-identical to its original release** its text, image, and video behaviour (and
48
- benchmark scores) carry over exactly. Audio is added by training 60.6M parameters
49
- (~2.3% of the stack): a perceiver-resampler that translates frozen
50
  [Qwen2.5-Omni](https://huggingface.co/Qwen/Qwen2.5-Omni-7B) audio-tower features into
51
- the base's input space, and — new in this generation — **28 gated adapters** (44.2M)
52
- that give the frozen language model in-layer capacity to process audio. The adapters
53
- are active only while encoding audio; every other forward pass returns the frozen
54
- layers' output untouched, so the invariance is bitwise, not approximate
55
- (`base_drift == 0` is asserted on every training run, and this model reproduces the
56
- base's text→image retrieval scores to four decimal places). Trained on 518K
57
- audio–caption pairs with a full-corpus frozen-text negative bank, it leads every
58
- unified embedding model we measured on audio↔text retrieval ahead of ImageBind,
59
- LanguageBind, and Gemini Embedding 2 in both directions — and improves on
60
- fusion-embedding-1 v0.3 in 8 of 12 release-protocol cells, including every
61
- recorded text→audio direction. Audio↔image alignment is emergent (zero
62
- audio–image pairs in training).
 
 
 
 
 
 
 
 
 
 
63
 
64
  | Feature | Value |
65
  | --- | --- |
66
  | Parameters | ~2.06B frozen base + 640M frozen audio tower; **60.6M trained** |
67
  | Modalities | text, image, video, audio |
68
- | Supported tasks | `retrieval` (all modality pairs), `zero-shot classification` |
69
- | Max input | 254 text tokens · 30 s audio per window (up to 8 windows) |
70
- | Embedding dimension | 2048 |
71
- | Matryoshka dimensions | 64, 128, 256, 512, 1024, 1536, 2048 |
72
- | Pooling strategy | Last-token pooling |
73
  | Base model | Qwen/Qwen3-VL-Embedding-2B (byte-frozen) |
74
  | Audio tower | Qwen/Qwen2.5-Omni-7B audio encoder (frozen) |
75
- | Trained components | FusionResampler 16.4M + 28× gated adapters 44.2M |
76
- | Distribution | ~250 MB trained components; frozen towers download from their original repos |
77
 
78
- ## Training and Evaluation
79
 
80
- Contrastive training (InfoNCE over the Matryoshka ladder, symmetric) against the
81
- frozen base's native chat-template text embeddings: 518,183 audio–caption pairs from
82
- six sources (73,716 clips with content-free metadata excluded), a full-corpus
83
- frozen-text negative bank, soft labels 0.3, false-negative masking 0.98, bf16, 3,900
84
- steps at effective batch 1,024, then a 400-step in-domain fine-tune on the AudioCaps
85
- train split. All evaluation-set audio (Clotho, ESC-50, UrbanSound8K, VGGSound,
86
- AudioCaps test/val) is excluded from training by ID blacklists at ingestion. A
87
- technical report is in preparation.
88
 
89
- All numbers below use the release protocol (bf16 base precision, native chat-template
90
- text). Bold marks the better value per row/column.
 
 
 
91
 
92
- <p align="center">
93
- <img src="assets/fe_positioning.png" alt="Positioning: VGGSound-696 cross-modal retrieval versus trained parameters; the fusion-embedding family leads unified models on audio-text and leads the emergent audio-image cluster (ImageBind's supervised pair annotated)" width="860px">
94
- </p>
95
-
96
- <details open>
97
- <summary><b>Versus fusion-embedding-1 v0.3</b></summary>
98
-
99
- | Board / direction | fusion-embedding-1 v0.3 | fusion-embedding-2 (this repo) |
100
- |---|---|---|
101
- | AudioCaps A→T R@1 | **0.332** | 0.302 |
102
- | AudioCaps A→T R@10 | 0.741 | **0.743** |
103
- | AudioCaps T→A R@1 | 0.280 | **0.292** |
104
- | AudioCaps T→A R@10 | 0.746 | **0.775** |
105
- | Clotho (zero-shot) A→T R@1 | **0.135** | 0.127 |
106
- | Clotho (zero-shot) A→T R@10 | **0.433** | 0.421 |
107
- | Clotho (zero-shot) T→A R@1 | 0.136 | **0.151** |
108
- | Clotho (zero-shot) T→A R@10 | 0.460 | **0.482** |
109
- | VGGSound audio→text R@1 | **0.213** | 0.211 |
110
- | VGGSound audio→text R@10 | 0.625 | **0.665** |
111
- | VGGSound text→audio R@1 | 0.213 | **0.266** |
112
- | VGGSound text→audio R@10 | 0.645 | **0.681** |
113
- | VGGSound audio→image R@10 (emergent) | **0.407** | 0.392 |
114
-
115
- fusion-embedding-2 takes the majority of cells, with its largest gains in the
116
- text→audio direction (searching audio with a text query) and on the cross-modal
117
- audio↔text pair. fusion-embedding-1 v0.3 retains the AudioCaps and Clotho A→T R@1
118
- cells and a ~1.5-point edge on emergent audio→image at this fine-tuned operating
119
- point; the pre-fine-tune fusion-embedding-2 checkpoint scores 0.443 on that cell — the
120
- project record — and may be released separately as the emergent-alignment operating
121
- point.
122
 
123
  </details>
124
 
125
  <details>
126
- <summary><b>Cross-modal retrieval — versus unified embedding models</b> (VGGSound-AV, 696 pairs, chance R@10 = 0.014)</summary>
127
-
128
- R@10 shown as audio-side other / other → audio-side:
129
-
130
- | Model | audio↔image | audio↔text | text↔image |
131
- |---|---|---|---|
132
- | ImageBind-Huge | **0.718 / 0.720** | 0.404 / 0.348 | 0.243 / 0.282 |
133
- | LanguageBind | 0.365 / 0.415 | 0.547 / 0.331 | 0.221 / 0.283 |
134
- | Gemini Embedding 2 (API, 2026-07-09) | 0.312 / 0.316 | 0.379 / 0.374 | 0.273 / **0.366** |
135
- | fusion-embedding-1-2b-preview v0.3 | 0.407 / 0.428 | 0.625 / 0.645 | **0.331** / 0.319 |
136
- | **fusion-embedding-2-2b-preview** | 0.392 / 0.430 | **0.665 / 0.681** | **0.331** / 0.319 |
137
-
138
- ImageBind trains directly on audio–image pairs, so that pair is its supervised
139
- direction; its audio–text alignment is emergent. LanguageBind trains audio against
140
- language; its audio↔image is emergent. Both fusion-embedding generations train on
141
- audio–text only; their audio–image alignment is emergent. All models evaluated with
142
- identical clips, frames, and scoring, using the released imagebind_huge checkpoint and
143
- revision-pinned LanguageBind checkpoints. Gemini Embedding 2 is Google's natively
144
- multimodal embedding API, evaluated at its documented default invocation on the date
145
- shown; API models may change after that date. fusion-embedding-2's text↔image cells
146
- are identical to fusion-embedding-1's by construction — text and images never touch
147
- the trained components and this is verified: its own readout run reproduces
148
- fusion-embedding-1 v0.3's text→image scores to four decimal places.
 
 
 
 
 
149
 
150
  </details>
151
 
152
  <details>
153
- <summary><b>Audio–text retrieval versus specialist CLAP models</b></summary>
154
 
155
- Specialist CLAP models fine-tune their text towers on audio captions — the direct
156
- trade this architecture declines in order to keep one shared space for all four
157
- modalities. They remain ahead on the audio-caption boards (e.g., AudioCaps T→A R@1:
158
- M2D-CLAP 41.4 vs 29.2 here); this model family is the strongest option we measured
159
- when one model must serve text, images, video, and audio together. See the
160
- [fusion-embedding-1 card](https://huggingface.co/EximiusLabs/fusion-embedding-1-2b-preview)
161
- for the full CLAP comparison tables; fusion-embedding-2 improves on fusion-embedding-1
162
- in the text→audio direction on every board.
163
 
164
  </details>
165
 
 
 
 
 
 
 
 
 
 
 
 
166
  ## Usage
167
 
168
  <details>
@@ -182,7 +177,8 @@ from inference import FusionEmbedder
182
 
183
  fe = FusionEmbedder.from_pretrained(
184
  "EximiusLabs/fusion-embedding-2-2b-preview",
185
- revision="v0.1-preview", # pin a tag if you build on this model
 
186
  )
187
 
188
  a = fe.embed_audio("dog.wav") # audio file or (array, sr=...)
@@ -195,11 +191,9 @@ print((a @ t).item(), (a @ i).item()) # cosine similarities in the shared spa
195
  t_small = fe.embed_text("a dog barks", dim=256)
196
  ```
197
 
198
- The checkpoint contains the gated adapters and the loader refuses to run without them
199
- an adapter checkpoint can never be silently executed as the first-generation
200
- architecture. All inputs use the base model's chat-template format; embedding quality
201
- is sensitive to this formatting, so use the templates provided by `FusionEmbedder`
202
- rather than constructing your own.
203
 
204
  </details>
205
 
@@ -207,8 +201,7 @@ rather than constructing your own.
207
  <summary>Cross-modal ranking tip</summary>
208
 
209
  When ranking a gallery of one modality against queries of another, per-modality
210
- mean-centering of the gallery improves cross-modal recall by roughly two points across
211
- modality pairs:
212
 
213
  ```python
214
  gallery = FusionEmbedder.center(gallery_embeddings)
@@ -216,32 +209,42 @@ gallery = FusionEmbedder.center(gallery_embeddings)
216
 
217
  </details>
218
 
219
- ### Deploy as an API on RunPod
 
 
 
 
 
 
 
 
 
 
 
 
220
 
221
  One-click deploy the endpoint from the
222
- [RunPod Hub](https://www.runpod.io/console/hub/Eximius-Labs/fusion-embedding)
223
- (serverless, scales to zero when idle). Once it is running, call it:
224
 
225
  ```bash
226
- curl -s https://api.runpod.ai/v2/<ENDPOINT_ID>/runsync \
227
- -H "Authorization: Bearer $RUNPOD_API_KEY" \
228
- -H "Content-Type: application/json" \
229
- -d '{"input": {"text": "a dog on a beach"}}'
230
  ```
231
 
232
- The endpoint embeds all four modalities. Swap `text` for `image`, `video`, or
233
- `audio` (the value is an https URL, a data URI, or base64). Audio needs the audio
234
- tower, so set `FE2_ENABLE_AUDIO=1` on the endpoint and use a 24 GB or larger GPU.
235
- Returns 1024-d embeddings; add `"dim": 512` to truncate.
236
 
237
  ## License
238
 
239
- Code is Apache-2.0 ([GitHub](https://github.com/Eximius-Labs/fusion-embedding));
240
- model weights in this repository are **CC BY-NC 4.0** (research preview). The frozen
241
- base and audio tower retain their original licenses.
242
 
243
  ## Citation
244
 
 
 
245
  ```bibtex
246
  @software{fusion_embedding_2_2026,
247
  title = {Fusion Embedding 2: Modality-Gated Deep Adapters for a
@@ -251,3 +254,16 @@ base and audio tower retain their original licenses.
251
  url = {https://huggingface.co/EximiusLabs/fusion-embedding-2-2b-preview}
252
  }
253
  ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  base_model: Qwen/Qwen3-VL-Embedding-2B
15
  ---
16
 
17
+ <p align="center">
18
+ <img src="assets/fusion-embedding-2-banner.png" alt="Fusion Embedding 2 (2B-Preview) — Eximius Labs" width="100%">
19
+ </p>
20
+
21
  # fusion-embedding-2-2b-preview
22
 
23
  <div align="center">
 
25
  [![Python](https://img.shields.io/badge/python-3.11+-blue.svg)](https://github.com/Eximius-Labs/fusion-embedding)
26
  [![PyTorch](https://img.shields.io/badge/PyTorch-2.x-ee4c2c.svg)](https://github.com/Eximius-Labs/fusion-embedding)
27
  [![Weights](https://img.shields.io/badge/weights-CC--BY--NC--4.0-green.svg)](#license)
28
+ [![Status](https://img.shields.io/badge/status-research%20preview%20v0.3-orange.svg)](#)
29
+ [![Paper](https://img.shields.io/badge/paper-arXiv%3A2607.18666-b31b1b.svg)](https://arxiv.org/abs/2607.18666)
30
  [![Code](https://img.shields.io/badge/code-GitHub-black.svg)](https://github.com/Eximius-Labs/fusion-embedding)
31
  [![Deploy on RunPod](https://api.runpod.io/badge/Eximius-Labs/fusion-embedding)](https://www.runpod.io/console/hub/Eximius-Labs/fusion-embedding)
32
 
 
34
 
35
  `fusion-embedding-2-2b-preview` is the second generation of Eximius Labs' unified
36
  multimodal embedding models: **text, images, video, and audio in one vector space**.
37
+ Audio is added to a byte-frozen vision-language base through modality-gated deep
38
+ adapters, so gaining audio never changes a single existing text, image, or video
39
+ vector. For the first-generation architecture see
40
  [fusion-embedding-1-2b-preview](https://huggingface.co/EximiusLabs/fusion-embedding-1-2b-preview)
41
  (that line is final at v0.3).
42
 
43
+ [GitHub](https://github.com/Eximius-Labs/fusion-embedding) | Technical report: [arXiv:2607.18666](https://arxiv.org/abs/2607.18666)
44
 
45
  ## Model Overview
46
 
 
48
  <img src="assets/fe2_model_overview.png" alt="fusion-embedding-2 architecture: frozen Qwen3-VL-Embedding base with modality-gated adapters inside; frozen audio tower and trained FusionResampler on the audio branch; one shared embedding space" width="820px">
49
  </p>
50
 
51
+ `fusion-embedding-2-2b-preview` embeds all four modalities on a
52
  [Qwen3-VL-Embedding-2B](https://huggingface.co/Qwen/Qwen3-VL-Embedding-2B) base that is
53
+ **byte-identical to its original release**: its text, image, and video behaviour, and
54
+ its benchmark scores, carry over exactly. Audio is added by training 60.6M parameters
55
+ (about 2.3% of the stack): a perceiver-resampler that maps frozen
56
  [Qwen2.5-Omni](https://huggingface.co/Qwen/Qwen2.5-Omni-7B) audio-tower features into
57
+ the base's input space, plus **28 gated adapters** (44.2M) that give the frozen
58
+ language model in-layer capacity for audio. The adapters run only while audio is being
59
+ encoded; every other forward pass returns the frozen layers' output untouched, so the
60
+ invariance is bitwise, not approximate. Adding audio never invalidates an index you
61
+ have already built.
62
+
63
+ This v0.3 release ships two revisions of the same model. The default is tuned for
64
+ audio-text retrieval; a keyword-tuned revision is available for spoken-command use.
65
+
66
+ ## Versions in this release
67
+
68
+ | Revision | Use it for | AudioCaps a2t R@10 | SpeechCommands |
69
+ | --- | --- | --- | --- |
70
+ | **`v0.3-preview`** (default) | general audio-text retrieval, RAG, clustering | **0.785** | 0.894 |
71
+ | `v0.3-kw-preview` | spoken-keyword and command retrieval | 0.749 | **0.929** |
72
+
73
+ The default (`v0.3-preview`) is the recommended model for almost all use. The
74
+ keyword-tuned revision trades audio-text retrieval quality for higher zero-shot
75
+ keyword-spotting accuracy; use it only when spoken-command matching is the priority,
76
+ and use the default otherwise.
77
+
78
+ ## Highlights (v0.3-preview)
79
 
80
  | Feature | Value |
81
  | --- | --- |
82
  | Parameters | ~2.06B frozen base + 640M frozen audio tower; **60.6M trained** |
83
  | Modalities | text, image, video, audio |
84
+ | AudioCaps 883 (audio-to-text) | R@1 0.333 · R@5 0.646 · R@10 **0.785** · mAP@10 0.255 |
85
+ | AudioCaps 883 (text-to-audio) | R@1 0.297 · R@5 0.653 · R@10 0.782 · mAP@10 0.445 |
86
+ | MAEB(audio-only), 19 tasks | mean **0.454**; leads the board on IEMOCAP speaker-gender (0.938) |
87
+ | Non-audio preservation | text, image, video outputs bit-for-bit the base model's |
88
+ | Embedding dimension | 2048 (Matryoshka: 64, 128, 256, 512, 1024, 1536, 2048) |
89
  | Base model | Qwen/Qwen3-VL-Embedding-2B (byte-frozen) |
90
  | Audio tower | Qwen/Qwen2.5-Omni-7B audio encoder (frozen) |
 
 
91
 
92
+ ## Evaluation
93
 
94
+ <details open>
95
+ <summary>AudioCaps retrieval (883-clip test, min-rank over references)</summary>
 
 
 
 
 
 
96
 
97
+ | Model | a2t R@10 | t2a R@10 |
98
+ | --- | --- | --- |
99
+ | fusion-embedding-2 v0.2 | 0.743 | 0.775 |
100
+ | **v0.3-preview** | **0.785** | 0.782 |
101
+ | v0.3-kw-preview | 0.749 | 0.771 |
102
 
103
+ The v0.3 default improves audio-to-text retrieval by 4.2 points over v0.2.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
 
105
  </details>
106
 
107
  <details>
108
+ <summary>MAEB(audio-only), full 19-task board v0.3-preview</summary>
109
+
110
+ Mean 0.4536. Scores are the main metric per task.
111
+
112
+ | Task | Score |
113
+ | --- | --- |
114
+ | IEMOCAPGender | 0.938 |
115
+ | BeijingOpera | 0.924 |
116
+ | NMSQAPairClassification | 0.794 |
117
+ | GTZANAudioReranking | 0.717 |
118
+ | JamAltArtistA2ARetrieval | 0.687 |
119
+ | GTZANGenre | 0.644 |
120
+ | VoxPopuliLanguageID | 0.616 |
121
+ | MInDS14 | 0.578 |
122
+ | CREMADPairClassification | 0.543 |
123
+ | MridinghamTonic | 0.540 |
124
+ | VoxPopuliAccentPairClassification | 0.509 |
125
+ | CREMA_D | 0.277 |
126
+ | VoxCelebSA | 0.273 |
127
+ | BirdCLEF | 0.184 |
128
+ | CommonLanguageAgeDetection | 0.171 |
129
+ | SIBFLEURS | 0.115 |
130
+ | VoxPopuliGenderClustering | 0.079 |
131
+ | VehicleSoundClustering | 0.025 |
132
+ | CREMA_DClustering | 0.006 |
133
+
134
+ IEMOCAP speaker-gender classification is the strongest cell relative to the field.
135
+ Clustering tasks are the weakest and are a target for the next release.
136
 
137
  </details>
138
 
139
  <details>
140
+ <summary>Non-audio preservation and other modalities</summary>
141
 
142
+ Text, image, and video outputs are bit-for-bit identical to the frozen
143
+ Qwen3-VL-Embedding-2B base (the adapter gate is closed on those inputs). Their
144
+ benchmark scores are therefore the base model's own, unchanged by anything added for
145
+ audio. Audio-to-image retrieval is emergent: the model is trained on audio-text pairs
146
+ only, with no audio-image supervision.
 
 
 
147
 
148
  </details>
149
 
150
+ ## Notes and limitations
151
+
152
+ - **Emotion recognition regressed** relative to v0.2. On RAVDESS zero-shot emotion the
153
+ score is 0.21 (v0.2: 0.35). The v0.3 training mix improved spoken-content
154
+ understanding at the cost of vocal-prosody sensitivity. If speech-emotion is central
155
+ to your use, evaluate before adopting.
156
+ - One evaluation cell, `CommonLanguageAgeDetection`, derives from Common Voice, which is
157
+ part of the training data. It scores low (0.171) and does not inflate the reported
158
+ mean, but the potential overlap is noted for completeness.
159
+ - These are research previews under CC-BY-NC-4.0.
160
+
161
  ## Usage
162
 
163
  <details>
 
177
 
178
  fe = FusionEmbedder.from_pretrained(
179
  "EximiusLabs/fusion-embedding-2-2b-preview",
180
+ revision="v0.3-preview", # default, retrieval-tuned
181
+ # revision="v0.3-kw-preview", # keyword-tuned alternative
182
  )
183
 
184
  a = fe.embed_audio("dog.wav") # audio file or (array, sr=...)
 
191
  t_small = fe.embed_text("a dog barks", dim=256)
192
  ```
193
 
194
+ The checkpoint contains the gated adapters and the loader refuses to run without them.
195
+ All inputs use the base model's chat-template format; embedding quality is sensitive to
196
+ this formatting, so use the templates provided by `FusionEmbedder`.
 
 
197
 
198
  </details>
199
 
 
201
  <summary>Cross-modal ranking tip</summary>
202
 
203
  When ranking a gallery of one modality against queries of another, per-modality
204
+ mean-centering of the gallery improves cross-modal recall:
 
205
 
206
  ```python
207
  gallery = FusionEmbedder.center(gallery_embeddings)
 
209
 
210
  </details>
211
 
212
+ ## Changelog
213
+
214
+ - **v0.3-preview** (default): retrieval-tuned flagship. AudioCaps a2t R@10 0.785
215
+ (+0.042 over v0.2); MAEB(audio-only) mean 0.454; leads IEMOCAP speaker-gender.
216
+ RAVDESS emotion regressed to 0.21.
217
+ - **v0.3-kw-preview**: keyword-tuned revision. SpeechCommands zero-shot 0.929;
218
+ AudioCaps a2t R@10 0.749.
219
+ - **v0.2-preview**: AudioCaps 2.0 fine-tune. a2t R@10 0.743.
220
+ - **v0.1-preview**: first modality-gated-adapter release.
221
+
222
+ ## Deploy on RunPod
223
+
224
+ [![Deploy on RunPod](https://api.runpod.io/badge/Eximius-Labs/fusion-embedding)](https://www.runpod.io/console/hub/Eximius-Labs/fusion-embedding)
225
 
226
  One-click deploy the endpoint from the
227
+ [RunPod Hub](https://www.runpod.io/console/hub/Eximius-Labs/fusion-embedding) (serverless,
228
+ scales to zero when idle). Once it is running, call it:
229
 
230
  ```bash
231
+ curl -s https://api.runpod.ai/v2/<ENDPOINT_ID>/runsync -H "Authorization: Bearer $RUNPOD_API_KEY" -H "Content-Type: application/json" -d '{"input": {"text": "a dog on a beach"}}'
 
 
 
232
  ```
233
 
234
+ The endpoint embeds all four modalities. Swap `text` for `image`, `video`, or `audio`
235
+ (the value is an https URL, a data URI, or base64). Audio needs the audio tower, so set
236
+ `FE2_ENABLE_AUDIO=1` on the endpoint and use a 24 GB or larger GPU. Returns 1024-d
237
+ embeddings; add `"dim": 512` to truncate.
238
 
239
  ## License
240
 
241
+ Weights (all revisions): **CC-BY-NC-4.0** (research preview). The code is Apache-2.0.
242
+ The frozen base and audio tower retain their original licenses.
 
243
 
244
  ## Citation
245
 
246
+ Model:
247
+
248
  ```bibtex
249
  @software{fusion_embedding_2_2026,
250
  title = {Fusion Embedding 2: Modality-Gated Deep Adapters for a
 
254
  url = {https://huggingface.co/EximiusLabs/fusion-embedding-2-2b-preview}
255
  }
256
  ```
257
+
258
+ Technical report:
259
+
260
+ ```bibtex
261
+ @article{tonmoy2026fusion,
262
+ title = {Fusion Embedding: A Unified Embedding Space for Text, Image,
263
+ Video, and Audio},
264
+ author = {Tonmoy, Abdul Basit and Hoque, Kazi Fardinul and
265
+ Arham, Md. Shahrier Islam and Luthra, Arman},
266
+ journal = {arXiv preprint arXiv:2607.18666},
267
+ year = {2026}
268
+ }
269
+ ```