abtonmoy commited on
Commit
1720d8b
·
verified ·
1 Parent(s): 70d7728

v0.3-preview: retrieval-tuned flagship

Browse files

AudioCaps a2t R@10 0.743 -> 0.785 over v0.2; t2a R@10 0.782. MAEB(audio-only)
19-task mean 0.454; leads IEMOCAP speaker-gender (0.938). RAVDESS zero-shot
emotion regressed to 0.21. Non-audio (text/image/video) outputs remain
bit-for-bit the frozen base model's, verified on this artifact before push.
Ships a second keyword-tuned revision on branch v0.3-kw-preview.

Files changed (4) hide show
  1. README.md +114 -162
  2. config.json +15 -23
  3. fusion-embedding-2-2b-preview.pt +2 -2
  4. model.safetensors +2 -2
README.md CHANGED
@@ -21,22 +21,21 @@ 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.2-orange.svg)](#)
25
- [![Code](https://img.shields.io/badge/code-GitHub-black.svg)](https://github.com/Eximius-Labs/fusion-embedding)
26
  [![Paper](https://img.shields.io/badge/paper-arXiv%3A2607.18666-b31b1b.svg)](https://arxiv.org/abs/2607.18666)
 
27
 
28
  </div>
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
- Sense packs extend the model to new sensors as separable, optional artifacts: [Ember](https://huggingface.co/EximiusLabs/fusion-embedding-2-ember), the thermal sense, is the first (thermal infrared in, all other outputs bit-for-bit unchanged).
38
-
39
- [GitHub](https://github.com/Eximius-Labs/fusion-embedding) | [fusion-embedding-1](https://huggingface.co/EximiusLabs/fusion-embedding-1-2b-preview) | Technical report: in preparation
40
 
41
  ## Model Overview
42
 
@@ -44,172 +43,115 @@ Sense packs extend the model to new sensors as separable, optional artifacts: [E
44
  <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">
45
  </p>
46
 
47
- `fusion-embedding-2-2b-preview` embeds all four modalities with a
48
  [Qwen3-VL-Embedding-2B](https://huggingface.co/Qwen/Qwen3-VL-Embedding-2B) base that is
49
- **byte-identical to its original release** its text, image, and video behaviour (and
50
- benchmark scores) carry over exactly. Audio is added by training 60.6M parameters
51
- (~2.3% of the stack): a perceiver-resampler that translates frozen
52
  [Qwen2.5-Omni](https://huggingface.co/Qwen/Qwen2.5-Omni-7B) audio-tower features into
53
- the base's input space, and — new in this generation — **28 gated adapters** (44.2M)
54
- that give the frozen language model in-layer capacity to process audio. The adapters
55
- are active only while encoding audio; every other forward pass returns the frozen
56
- layers' output untouched, so the invariance is bitwise, not approximate
57
- (`base_drift == 0` is asserted on every training run, and this model reproduces the
58
- base's text→image retrieval scores to four decimal places). Trained on 518K
59
- audio–caption pairs with a full-corpus frozen-text negative bank, it leads every
60
- unified embedding model we measured on audio↔text retrieval ahead of ImageBind,
61
- LanguageBind, and Gemini Embedding 2 in both directions — and improves on
62
- fusion-embedding-1 v0.3 in 8 of 12 release-protocol cells, including every
63
- recorded text→audio direction. Audio↔image alignment is emergent (zero
64
- audio–image pairs in training).
 
 
 
 
 
 
 
 
 
 
65
 
66
  | Feature | Value |
67
  | --- | --- |
68
  | Parameters | ~2.06B frozen base + 640M frozen audio tower; **60.6M trained** |
69
  | Modalities | text, image, video, audio |
70
- | Supported tasks | `retrieval` (all modality pairs), `zero-shot classification` |
71
- | Max input | 254 text tokens · 30 s audio per window (up to 8 windows) |
72
- | Embedding dimension | 2048 |
73
- | Matryoshka dimensions | 64, 128, 256, 512, 1024, 1536, 2048 |
74
- | Pooling strategy | Last-token pooling |
75
  | Base model | Qwen/Qwen3-VL-Embedding-2B (byte-frozen) |
76
  | Audio tower | Qwen/Qwen2.5-Omni-7B audio encoder (frozen) |
77
- | Trained components | FusionResampler 16.4M + 28× gated adapters 44.2M |
78
- | Distribution | ~250 MB trained components; frozen towers download from their original repos |
79
-
80
- ## Training and Evaluation
81
-
82
- Contrastive training (InfoNCE over the Matryoshka ladder, symmetric) against the
83
- frozen base's native chat-template text embeddings: 518,183 audio–caption pairs from
84
- six sources (73,716 clips with content-free metadata excluded), a full-corpus
85
- frozen-text negative bank, soft labels 0.3, false-negative masking 0.98, bf16, 3,900
86
- steps at effective batch 1,024, then an in-domain fine-tune on an 86,394-pair
87
- AudioCaps pool: the original train split plus the 41,416 additional training clips
88
- introduced by AudioCaps 2.0 (v0.2: 1,600 steps at batch 128; v0.1 used the original
89
- 45K split for 400 steps). AudioCaps 2.0 keeps the original validation and test
90
- splits unchanged; we re-verified that its train pool is disjoint from them before
91
- ingestion. All evaluation-set audio (Clotho, ESC-50, UrbanSound8K, VGGSound,
92
- AudioCaps test/val) is excluded from training by ID blacklists at ingestion. A
93
- technical report is in preparation.
94
-
95
- AudioCaps and AudioCaps 2.0 are by Kim et al. (AudioCaps: Generating Captions for
96
- Audios in The Wild, NAACL-HLT 2019; the 2.0 release, February 2025, in the AudioCaps
97
- repository) and are used for academic purposes per their terms; raw audio obtained
98
- via the authors' request form.
99
-
100
- All numbers below use the release protocol (bf16 base precision, native chat-template
101
- text). Bold marks the better value per row/column.
102
 
103
- <p align="center">
104
- <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">
105
- </p>
106
 
107
  <details open>
108
- <summary><b>Versus fusion-embedding-1 v0.3</b></summary>
109
-
110
- | Board / direction | fusion-embedding-1 v0.3 | fusion-embedding-2 (this repo, v0.2) |
111
- |---|---|---|
112
- | AudioCaps A→T R@1 | **0.332** | 0.310 |
113
- | AudioCaps A→T R@10 | 0.741 | **0.759** |
114
- | AudioCaps T→A R@1 | 0.280 | **0.303** |
115
- | AudioCaps T→A R@10 | 0.746 | **0.785** |
116
- | Clotho (zero-shot) A→T R@1 | 0.135 | 0.135 |
117
- | Clotho (zero-shot) A→T R@10 | **0.433** | 0.414 |
118
- | Clotho (zero-shot) T→A R@1 | 0.136 | **0.146** |
119
- | Clotho (zero-shot) T→A R@10 | 0.460 | **0.485** |
120
- | VGGSound audio→text R@1 | 0.213 | **0.216** |
121
- | VGGSound audio→text R@10 | 0.625 | **0.645** |
122
- | VGGSound text→audio R@1 | 0.213 | **0.257** |
123
- | VGGSound text→audio R@10 | 0.645 | **0.697** |
124
- | VGGSound audio→image R@10 (emergent) | 0.407 | **0.408** |
125
-
126
- fusion-embedding-2 v0.2 takes the large majority of cells, with its largest gains
127
- on AudioCaps (the expanded fine-tuning pool) and in the text→audio direction
128
- (searching audio with a text query). fusion-embedding-1 v0.3 retains the AudioCaps
129
- A→T R@1 and Clotho A→T R@10 cells; emergent audio→image is at parity at this
130
- operating point (0.408 vs 0.407). The pre-fine-tune fusion-embedding-2 checkpoint
131
- scores 0.443 on that cell — the project record — and may be released separately as
132
- the emergent-alignment operating point.
133
 
134
- </details>
 
 
 
 
135
 
136
- <details>
137
- <summary><b>Cross-modal retrieval — versus unified embedding models</b> (VGGSound-AV, 696 pairs, chance R@10 = 0.014)</summary>
138
-
139
- R@10 shown as audio-side → other / other → audio-side:
140
-
141
- | Model | audio↔image | audio↔text | text↔image |
142
- |---|---|---|---|
143
- | ImageBind-Huge | **0.718 / 0.720** | 0.404 / 0.348 | 0.243 / 0.282 |
144
- | LanguageBind | 0.365 / 0.415 | 0.547 / 0.331 | 0.221 / 0.283 |
145
- | Gemini Embedding 2 (API, 2026-07-09) | 0.312 / 0.316 | 0.379 / 0.374 | 0.273 / **0.366** |
146
- | fusion-embedding-1-2b-preview v0.3 | 0.407 / 0.428 | 0.625 / 0.645 | **0.331** / 0.319 |
147
- | **fusion-embedding-2-2b-preview** (v0.2) | 0.408 / 0.443 | **0.645 / 0.697** | **0.331** / 0.319 |
148
-
149
- ImageBind trains directly on audio–image pairs, so that pair is its supervised
150
- direction; its audio–text alignment is emergent. LanguageBind trains audio against
151
- language; its audio↔image is emergent. Both fusion-embedding generations train on
152
- audio–text only; their audio–image alignment is emergent. All models evaluated with
153
- identical clips, frames, and scoring, using the released imagebind_huge checkpoint and
154
- revision-pinned LanguageBind checkpoints. Gemini Embedding 2 is Google's natively
155
- multimodal embedding API, evaluated at its documented default invocation on the date
156
- shown; API models may change after that date. fusion-embedding-2's text↔image cells
157
- are identical to fusion-embedding-1's by construction — text and images never touch
158
- the trained components — and this is verified: the v0.2 readout run reproduces
159
- fusion-embedding-1 v0.3's text→image scores to four decimal places.
160
 
161
  </details>
162
 
163
  <details>
164
- <summary><b>Audio–text retrieval versus specialist CLAP models</b></summary>
165
 
166
- Specialist CLAP models fine-tune their text towers on audio captions — the direct
167
- trade this architecture declines in order to keep one shared space for all four
168
- modalities. They remain ahead on the audio-caption boards (e.g., AudioCaps T→A R@1:
169
- M2D-CLAP 41.4 vs 29.2 here); this model family is the strongest option we measured
170
- when one model must serve text, images, video, and audio together. See the
171
- [fusion-embedding-1 card](https://huggingface.co/EximiusLabs/fusion-embedding-1-2b-preview)
172
- for the full CLAP comparison tables; fusion-embedding-2 improves on fusion-embedding-1
173
- in the text→audio direction on every board.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
174
 
175
  </details>
176
 
177
  <details>
178
- <summary><b>MAEB (public leaderboard) nine sound-event tasks</b></summary>
179
-
180
- Both generations are on the public MAEB(beta) leaderboard through the mteb registry.
181
- The v0.2 rescore (revision `9451b840f0d1`, `mteb==2.18.x`, identical protocol to the
182
- v0.1 submission):
183
-
184
- | Task | v0.2 | v0.1 |
185
- |---|---:|---:|
186
- | BeijingOpera | **.907** | .898 |
187
- | ClothoT2ARetrieval | .278 | **.285** |
188
- | GTZANAudioReranking | **.731** | .723 |
189
- | GTZANGenre | **.665** | .647 |
190
- | MACST2ARetrieval | .158 | .158 |
191
- | RavdessZeroshot | **.348** | .304 |
192
- | SpeechCommandsZeroshotv0.02 | .133 | **.141** |
193
- | UrbanSound8KT2ARetrieval | **.010** | .009 |
194
- | VehicleSoundClustering | **.024** | .018 |
195
- | Mean | **.361** | .354 |
196
-
197
- Six of nine tasks improve; the two dips (Clotho task protocol, speech commands) are
198
- within the noise band of these task sizes. Speech-content and fine-grained
199
- classification remain the corpus's known weak axes — the training pool is
200
- sound-event-centric, and speech is a roadmap item, not a claim.
201
 
202
  </details>
203
 
204
- ## Changelog
205
 
206
- - **v0.2** (2026-07-20): fine-tuned on the expanded AudioCaps 2.0 training pool
207
- (86,394 pairs, 1,600 steps). AudioCaps A→T R@10 0.743 0.759, T→A R@10 0.775
208
- 0.785; Clotho and VGGSound within noise of v0.1, emergent audio→image up ~1.5
209
- points. All comparisons run against v0.1 under identical protocols. Non-audio
210
- outputs remain bit-for-bit the base model's (verified on this artifact).
211
- - **v0.1** (2026-07-12): initial release (`v0.1-preview` tag; the revision pinned
212
- by the MTEB/MAEB leaderboard submission).
 
213
 
214
  ## Usage
215
 
@@ -230,7 +172,8 @@ from inference import FusionEmbedder
230
 
231
  fe = FusionEmbedder.from_pretrained(
232
  "EximiusLabs/fusion-embedding-2-2b-preview",
233
- revision="v0.2-preview", # pin a tag if you build on this model
 
234
  )
235
 
236
  a = fe.embed_audio("dog.wav") # audio file or (array, sr=...)
@@ -243,11 +186,9 @@ print((a @ t).item(), (a @ i).item()) # cosine similarities in the shared spa
243
  t_small = fe.embed_text("a dog barks", dim=256)
244
  ```
245
 
246
- The checkpoint contains the gated adapters and the loader refuses to run without them
247
- an adapter checkpoint can never be silently executed as the first-generation
248
- architecture. All inputs use the base model's chat-template format; embedding quality
249
- is sensitive to this formatting, so use the templates provided by `FusionEmbedder`
250
- rather than constructing your own.
251
 
252
  </details>
253
 
@@ -255,8 +196,7 @@ rather than constructing your own.
255
  <summary>Cross-modal ranking tip</summary>
256
 
257
  When ranking a gallery of one modality against queries of another, per-modality
258
- mean-centering of the gallery improves cross-modal recall by roughly two points across
259
- modality pairs:
260
 
261
  ```python
262
  gallery = FusionEmbedder.center(gallery_embeddings)
@@ -264,31 +204,43 @@ gallery = FusionEmbedder.center(gallery_embeddings)
264
 
265
  </details>
266
 
 
 
 
 
 
 
 
 
 
 
267
  ## License
268
 
269
- Code is Apache-2.0 ([GitHub](https://github.com/Eximius-Labs/fusion-embedding));
270
- model weights in this repository are **CC BY-NC 4.0** (research preview). The frozen
271
- base and audio tower retain their original licenses.
272
 
273
  ## Citation
274
 
275
- To cite the model:
276
 
277
  ```bibtex
278
  @software{fusion_embedding_2_2026,
279
- title = {fusion-embedding-2},
 
280
  author = {Tonmoy, Abdul Basit},
281
  year = {2026},
282
  url = {https://huggingface.co/EximiusLabs/fusion-embedding-2-2b-preview}
283
  }
284
  ```
285
 
286
- To cite the paper:
287
 
288
  ```bibtex
289
  @article{tonmoy2026fusion,
290
- title = {Fusion Embedding: A Unified Embedding Space for Text, Image, Video, and Audio},
291
- author = {Tonmoy, Abdul Basit and Hoque, Kazi Fardinul and Arham, Md. Shahrier Islam and Luthra, Arman},
 
 
292
  journal = {arXiv preprint arXiv:2607.18666},
293
  year = {2026}
294
  }
 
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.3-orange.svg)](#)
 
25
  [![Paper](https://img.shields.io/badge/paper-arXiv%3A2607.18666-b31b1b.svg)](https://arxiv.org/abs/2607.18666)
26
+ [![Code](https://img.shields.io/badge/code-GitHub-black.svg)](https://github.com/Eximius-Labs/fusion-embedding)
27
 
28
  </div>
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
+ Audio is added to a byte-frozen vision-language base through modality-gated deep
33
+ adapters, so gaining audio never changes a single existing text, image, or video
34
+ vector. For the first-generation architecture see
35
  [fusion-embedding-1-2b-preview](https://huggingface.co/EximiusLabs/fusion-embedding-1-2b-preview)
36
  (that line is final at v0.3).
37
 
38
+ [GitHub](https://github.com/Eximius-Labs/fusion-embedding) | Technical report: [arXiv:2607.18666](https://arxiv.org/abs/2607.18666)
 
 
39
 
40
  ## Model Overview
41
 
 
43
  <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">
44
  </p>
45
 
46
+ `fusion-embedding-2-2b-preview` embeds all four modalities on a
47
  [Qwen3-VL-Embedding-2B](https://huggingface.co/Qwen/Qwen3-VL-Embedding-2B) base that is
48
+ **byte-identical to its original release**: its text, image, and video behaviour, and
49
+ its benchmark scores, carry over exactly. Audio is added by training 60.6M parameters
50
+ (about 2.3% of the stack): a perceiver-resampler that maps frozen
51
  [Qwen2.5-Omni](https://huggingface.co/Qwen/Qwen2.5-Omni-7B) audio-tower features into
52
+ the base's input space, plus **28 gated adapters** (44.2M) that give the frozen
53
+ language model in-layer capacity for audio. The adapters run only while audio is being
54
+ encoded; every other forward pass returns the frozen layers' output untouched, so the
55
+ invariance is bitwise, not approximate. Adding audio never invalidates an index you
56
+ have already built.
57
+
58
+ This v0.3 release ships two revisions of the same model. The default is tuned for
59
+ audio-text retrieval; a keyword-tuned revision is available for spoken-command use.
60
+
61
+ ## Versions in this release
62
+
63
+ | Revision | Use it for | AudioCaps a2t R@10 | SpeechCommands |
64
+ | --- | --- | --- | --- |
65
+ | **`v0.3-preview`** (default) | general audio-text retrieval, RAG, clustering | **0.785** | 0.894 |
66
+ | `v0.3-kw-preview` | spoken-keyword and command retrieval | 0.749 | **0.929** |
67
+
68
+ The default (`v0.3-preview`) is the recommended model for almost all use. The
69
+ keyword-tuned revision trades audio-text retrieval quality for higher zero-shot
70
+ keyword-spotting accuracy; use it only when spoken-command matching is the priority,
71
+ and use the default otherwise.
72
+
73
+ ## Highlights (v0.3-preview)
74
 
75
  | Feature | Value |
76
  | --- | --- |
77
  | Parameters | ~2.06B frozen base + 640M frozen audio tower; **60.6M trained** |
78
  | Modalities | text, image, video, audio |
79
+ | AudioCaps 883 (audio-to-text) | R@1 0.333 · R@5 0.646 · R@10 **0.785** · mAP@10 0.255 |
80
+ | AudioCaps 883 (text-to-audio) | R@1 0.297 · R@5 0.653 · R@10 0.782 · mAP@10 0.445 |
81
+ | MAEB(audio-only), 19 tasks | mean **0.454**; leads the board on IEMOCAP speaker-gender (0.938) |
82
+ | Non-audio preservation | text, image, video outputs bit-for-bit the base model's |
83
+ | Embedding dimension | 2048 (Matryoshka: 64, 128, 256, 512, 1024, 1536, 2048) |
84
  | Base model | Qwen/Qwen3-VL-Embedding-2B (byte-frozen) |
85
  | Audio tower | Qwen/Qwen2.5-Omni-7B audio encoder (frozen) |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
 
87
+ ## Evaluation
 
 
88
 
89
  <details open>
90
+ <summary>AudioCaps retrieval (883-clip test, min-rank over references)</summary>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
 
92
+ | Model | a2t R@10 | t2a R@10 |
93
+ | --- | --- | --- |
94
+ | fusion-embedding-2 v0.2 | 0.743 | 0.775 |
95
+ | **v0.3-preview** | **0.785** | 0.782 |
96
+ | v0.3-kw-preview | 0.749 | 0.771 |
97
 
98
+ The v0.3 default improves audio-to-text retrieval by 4.2 points over v0.2.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
 
100
  </details>
101
 
102
  <details>
103
+ <summary>MAEB(audio-only), full 19-task board v0.3-preview</summary>
104
 
105
+ Mean 0.4536. Scores are the main metric per task.
106
+
107
+ | Task | Score |
108
+ | --- | --- |
109
+ | IEMOCAPGender | 0.938 |
110
+ | BeijingOpera | 0.924 |
111
+ | NMSQAPairClassification | 0.794 |
112
+ | GTZANAudioReranking | 0.717 |
113
+ | JamAltArtistA2ARetrieval | 0.687 |
114
+ | GTZANGenre | 0.644 |
115
+ | VoxPopuliLanguageID | 0.616 |
116
+ | MInDS14 | 0.578 |
117
+ | CREMADPairClassification | 0.543 |
118
+ | MridinghamTonic | 0.540 |
119
+ | VoxPopuliAccentPairClassification | 0.509 |
120
+ | CREMA_D | 0.277 |
121
+ | VoxCelebSA | 0.273 |
122
+ | BirdCLEF | 0.184 |
123
+ | CommonLanguageAgeDetection | 0.171 |
124
+ | SIBFLEURS | 0.115 |
125
+ | VoxPopuliGenderClustering | 0.079 |
126
+ | VehicleSoundClustering | 0.025 |
127
+ | CREMA_DClustering | 0.006 |
128
+
129
+ IEMOCAP speaker-gender classification is the strongest cell relative to the field.
130
+ Clustering tasks are the weakest and are a target for the next release.
131
 
132
  </details>
133
 
134
  <details>
135
+ <summary>Non-audio preservation and other modalities</summary>
136
+
137
+ Text, image, and video outputs are bit-for-bit identical to the frozen
138
+ Qwen3-VL-Embedding-2B base (the adapter gate is closed on those inputs). Their
139
+ benchmark scores are therefore the base model's own, unchanged by anything added for
140
+ audio. Audio-to-image retrieval is emergent: the model is trained on audio-text pairs
141
+ only, with no audio-image supervision.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
 
143
  </details>
144
 
145
+ ## Notes and limitations
146
 
147
+ - **Emotion recognition regressed** relative to v0.2. On RAVDESS zero-shot emotion the
148
+ score is 0.21 (v0.2: 0.35). The v0.3 training mix improved spoken-content
149
+ understanding at the cost of vocal-prosody sensitivity. If speech-emotion is central
150
+ to your use, evaluate before adopting.
151
+ - One evaluation cell, `CommonLanguageAgeDetection`, derives from Common Voice, which is
152
+ part of the training data. It scores low (0.171) and does not inflate the reported
153
+ mean, but the potential overlap is noted for completeness.
154
+ - These are research previews under CC-BY-NC-4.0.
155
 
156
  ## Usage
157
 
 
172
 
173
  fe = FusionEmbedder.from_pretrained(
174
  "EximiusLabs/fusion-embedding-2-2b-preview",
175
+ revision="v0.3-preview", # default, retrieval-tuned
176
+ # revision="v0.3-kw-preview", # keyword-tuned alternative
177
  )
178
 
179
  a = fe.embed_audio("dog.wav") # audio file or (array, sr=...)
 
186
  t_small = fe.embed_text("a dog barks", dim=256)
187
  ```
188
 
189
+ The checkpoint contains the gated adapters and the loader refuses to run without them.
190
+ All inputs use the base model's chat-template format; embedding quality is sensitive to
191
+ this formatting, so use the templates provided by `FusionEmbedder`.
 
 
192
 
193
  </details>
194
 
 
196
  <summary>Cross-modal ranking tip</summary>
197
 
198
  When ranking a gallery of one modality against queries of another, per-modality
199
+ mean-centering of the gallery improves cross-modal recall:
 
200
 
201
  ```python
202
  gallery = FusionEmbedder.center(gallery_embeddings)
 
204
 
205
  </details>
206
 
207
+ ## Changelog
208
+
209
+ - **v0.3-preview** (default): retrieval-tuned flagship. AudioCaps a2t R@10 0.785
210
+ (+0.042 over v0.2); MAEB(audio-only) mean 0.454; leads IEMOCAP speaker-gender.
211
+ RAVDESS emotion regressed to 0.21.
212
+ - **v0.3-kw-preview**: keyword-tuned revision. SpeechCommands zero-shot 0.929;
213
+ AudioCaps a2t R@10 0.749.
214
+ - **v0.2-preview**: AudioCaps 2.0 fine-tune. a2t R@10 0.743.
215
+ - **v0.1-preview**: first modality-gated-adapter release.
216
+
217
  ## License
218
 
219
+ Weights (all revisions): **CC-BY-NC-4.0** (research preview). The code is Apache-2.0.
220
+ The frozen base and audio tower retain their original licenses.
 
221
 
222
  ## Citation
223
 
224
+ Model:
225
 
226
  ```bibtex
227
  @software{fusion_embedding_2_2026,
228
+ title = {Fusion Embedding 2: Modality-Gated Deep Adapters for a
229
+ Unified Text, Image, Video, and Audio Embedding Space},
230
  author = {Tonmoy, Abdul Basit},
231
  year = {2026},
232
  url = {https://huggingface.co/EximiusLabs/fusion-embedding-2-2b-preview}
233
  }
234
  ```
235
 
236
+ Technical report:
237
 
238
  ```bibtex
239
  @article{tonmoy2026fusion,
240
+ title = {Fusion Embedding: A Unified Embedding Space for Text, Image,
241
+ Video, and Audio},
242
+ author = {Tonmoy, Abdul Basit and Hoque, Kazi Fardinul and
243
+ Arham, Md. Shahrier Islam and Luthra, Arman},
244
  journal = {arXiv preprint arXiv:2607.18666},
245
  year = {2026}
246
  }
config.json CHANGED
@@ -23,29 +23,19 @@
23
  },
24
  "benchmarks": {
25
  "audiocaps_883_minrank5": {
26
- "eval_shard": "audiocaps_test816",
27
- "n_clips": 883,
28
- "n_captions": 4411,
29
- "dim": 1024,
30
- "n_total_clips": 883,
31
- "split_filtered": false,
32
- "caption_index": -1,
33
- "caption_field": "",
34
- "protocol": "min-rank-over-refs",
35
- "a2t_R@1": 0.31030577421188354,
36
- "a2t_R@5": 0.6217440366744995,
37
- "a2t_R@10": 0.7587769031524658,
38
- "a2t_mAP@10": 0.24294079840183258,
39
- "t2a_R@1": 0.3028791546821594,
40
- "t2a_R@5": 0.6472455263137817,
41
- "t2a_R@10": 0.7846293449401855,
42
- "t2a_mAP@10": 0.44739025831222534
43
  },
44
- "in_domain_eval": {
45
- "a2t_R@1": 0.4449999928474426,
46
- "a2t_R@10": 0.8899999856948853,
47
- "a2t_mAP@10": 0.6005654335021973
48
- }
49
  },
50
  "d_audio": 3584,
51
  "resampler_depth": 6,
@@ -68,5 +58,7 @@
68
  "auto_map": {
69
  "AutoConfig": "configuration_fusion_embedding.FusionEmbeddingConfig",
70
  "AutoModel": "modeling_fusion_embedding.FusionEmbeddingModel"
71
- }
 
 
72
  }
 
23
  },
24
  "benchmarks": {
25
  "audiocaps_883_minrank5": {
26
+ "a2t_R@1": 0.333,
27
+ "a2t_R@5": 0.646,
28
+ "a2t_R@10": 0.785,
29
+ "a2t_mAP@10": 0.255,
30
+ "t2a_R@1": 0.297,
31
+ "t2a_R@5": 0.653,
32
+ "t2a_R@10": 0.782,
33
+ "t2a_mAP@10": 0.445
 
 
 
 
 
 
 
 
 
34
  },
35
+ "maeb_audio_only_19_mean": 0.4536,
36
+ "maeb_rank": "8 of 14 (full-coverage)",
37
+ "speechcommands_zeroshot": 0.894,
38
+ "ravdess_zeroshot": 0.211
 
39
  },
40
  "d_audio": 3584,
41
  "resampler_depth": 6,
 
58
  "auto_map": {
59
  "AutoConfig": "configuration_fusion_embedding.FusionEmbeddingConfig",
60
  "AutoModel": "modeling_fusion_embedding.FusionEmbeddingModel"
61
+ },
62
+ "base_4bit": false,
63
+ "version": "v0.3-preview"
64
  }
fusion-embedding-2-2b-preview.pt CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:d3fba2dd774caa688fd28f1b9368d6b76e99968aa665a72da65f27fdaab65784
3
- size 242315846
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8e59e13b3706fb2d7e5892c1e36f1ce1f64daea4fdaead291eeff6990e6a9864
3
+ size 242315590
model.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:9f708155f58f24a2a3aaa732392a9bcb3f1943a8ff282af3703226fd3d83a4f9
3
- size 242252933
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bf68dfe2dd41c39989526134751dc7a401967c049ef105424105d2b8ea3bb399
3
+ size 242252925