Views
No views yet
OEA-Nemo3B-AC is a LoRA + projection-head checkpoint for the Omni-Embed-Audio (OEA) retrieval encoder presented in:Omni-Embed-Audio: Leveraging Multimodal LLMs for Robust Audio-Text Retrieval HaeJun Yoo, Yongseop Shin, Insung Lee, Myoung-Wan Koo, Du-Seong Chang (Sogang University) Proceedings of ACL 2026 (Oral) Code & UIQ benchmark: https://github.com/JudeJiwoo/Omni-Embed-Audio Web demo: https://omni-embed-audio.github.io
| Field | Value |
|---|---|
| Base model | nvidia/omni-embed-nemotron-3b (Omni-Embed-Nemotron-3B, ~3B params) |
| Trained on | AudioCaps (train split) |
| Embedding dim | 512 (L2-normalized) |
| Audio sample rate | 16 kHz mono |
| Trainable parameters | LoRA adapters + 2 projection heads (~11–16M) |
| Backbone | Frozen |
| Checkpoint file | step_40.pt (PyTorch state dict) |
| License (this checkpoint) | MIT — the underlying base model is governed by its own license |
step_40.pt1ckpt = torch.load("step_40.pt", map_location="cpu")
2ckpt.keys()
3# dict_keys(['lora_state_dict', 'audio_head', 'text_head', ...])lora_state_dict — LoRA adapters (r=16, α=32, dropout=0.05) attached to
q_proj, k_proj, v_proj, o_proj, qkv, out_proj of the Omni-Embed-Nemotron-3B backbone.audio_head, text_head — modality-specific 512-d ProjectionHead
(Linear → Dropout → LayerNorm → L2-normalize).nvidia/omni-embed-nemotron-3b on first use.pip install torch torchaudio transformers peft huggingface_hub soundfile librosa1import torch
2from types import SimpleNamespace
3from huggingface_hub import hf_hub_download
4
5# Cloned from https://github.com/JudeJiwoo/Omni-Embed-Audio
6from AudioRetrieval.models.omni_embed_adapter import OmniEmbedAdapter
7from AudioRetrieval.training.oea.train_omniembed_lora import ProjectionHead, attach_lora
8
9device = "cuda" if torch.cuda.is_available() else "cpu"
10
11ckpt_path = hf_hub_download("JudeJiwoo/OEA-Nemo3B-AC", filename="step_40.pt")
12
13adapter = OmniEmbedAdapter(
14 repo_id="nvidia/omni-embed-nemotron-3b",
15 device=device,
16 passage_prefix="passage:",
17 query_prefix="query:",
18)
19
20lora_cfg = SimpleNamespace(
21 lora_rank=16, lora_alpha=32, lora_dropout=0.05,
22 lora_targets=["q_proj","k_proj","v_proj","o_proj","qkv","out_proj"],
23)
24peft_model = attach_lora(adapter.get_underlying_model(), lora_cfg)
25adapter.set_underlying_model(peft_model)
26
27ckpt = torch.load(ckpt_path, map_location=device)
28peft_model.load_state_dict(ckpt["lora_state_dict"], strict=False)
29
30hidden = peft_model.config.text_config.hidden_size
31audio_head = ProjectionHead(hidden, 512, 0.1).to(device).eval()
32text_head = ProjectionHead(hidden, 512, 0.1).to(device).eval()
33audio_head.load_state_dict(ckpt["audio_head"])
34text_head.load_state_dict(ckpt["text_head"])
35
36with torch.inference_mode():
37 a = adapter.encode_audio(["sample.wav"])
38 t = adapter.encode_text(["A clock ticks once a second as it runs."])
39 a_emb = audio_head(torch.from_numpy(a).to(device)).cpu().numpy()
40 t_emb = text_head(torch.from_numpy(t).to(device)).cpu().numpy()
41print(a_emb.shape, t_emb.shape) # (1, 512) (1, 512)
42print((t_emb @ a_emb.T).item()) # cosine similarity (already L2-normalized)examples/encode_example.py
(or the matching .ipynb) in the public repo — it encodes five bundled Clotho
clips and one query per UIQ type out of the box.| Repo | Base model | Trained on |
|---|---|---|
| JudeJiwoo/OEA-Qwen3B-Cl | Qwen2.5-Omni-3B | Clotho |
| JudeJiwoo/OEA-Qwen3B-AC | Qwen2.5-Omni-3B | AudioCaps |
| JudeJiwoo/OEA-Qwen7B-Cl | Qwen2.5-Omni-7B | Clotho |
| JudeJiwoo/OEA-Qwen7B-AC | Qwen2.5-Omni-7B | AudioCaps |
| JudeJiwoo/OEA-Nemo3B-Cl | Omni-Embed-Nemotron-3B | Clotho |
| JudeJiwoo/OEA-Nemo3B-AC | Omni-Embed-Nemotron-3B | AudioCaps |
-Cl checkpoints are recommended for evaluation on Clotho, and -AC
checkpoints for AudioCaps (Section 4 of the paper).nvidia/omni-embed-nemotron-3b) is governed by its own license —
review the upstream model card before redistribution.1@inproceedings{yoo2026omniembedaudio,
2 title = {Omni-Embed-Audio: Leveraging Multimodal LLMs for Robust Audio-Text Retrieval},
3 author = {Yoo, HaeJun and Shin, Yongseop and Lee, Insung and Koo, Myoung-Wan and Chang, Du-Seong},
4 booktitle = {Proceedings of the 64th Annual Meeting of the Association for Computational Linguistics (ACL)},
5 note = {Oral presentation},
6 year = {2026}
7}