/ Модель

Характеристики

Контекст
262 144 токена
Лицензия
Apache 2.0
Архитектура
bidirlm_omni · dense
Библиотека
sentence-transformers
Опубликована
7 апр 2026

BidirLM-Omni-2.5B-Embedding

ЭмбеддингиТекст → embedding8 профессий

Мультимодальный энкодер для создания сопоставимых эмбеддингов текста, изображений и аудио, используемых в поиске и оценке сходства.

969скачиваний за 30 дней49лайковвеса обновлены12 мая 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки29

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

  • CommonVoiceMini21T2ARetrieval

    main_score

    Результат

    0,88

    Общий результат 0,87Общий результат 0,285
    MTEB

    Публичная таблицадругая ревизия

  • SIBFLEURS

    main_score

    Результат

    0,7051

    Общий результат 0,7067
    MTEB

    Публичная таблицадругая ревизия

  • SIB200ClusteringS2S

    main_score

    Результат

    0,2875

    Общий результат 0,6117Общий результат 0,4915Общий результат 0,4888
    MTEB

    Публичная таблицадругая ревизия

  • Shot2Story20KT2VARetrieval

    main_score

    Результат

    0,9816

    MTEB

    Публичная таблицадругая ревизия

  • SemRel24STS

    main_score

    Результат

    0,852

    MTEB

    Публичная таблицадругая ревизия

  • XM3600T2IRetrieval

    main_score

    Результат

    0,7023

    Общий результат 0,6346
    MTEB

    Публичная таблицадругая ревизия

  • AmazonCounterfactualClassification

    main_score

    Результат

    0,7079

    MTEB

    Публичная таблицадругая ревизия

  • MassiveIntentClassification

    main_score

    Результат

    0,7133

    MTEB

    Публичная таблицадругая ревизия

  • XNLI

    main_score

    Результат

    0,7744

    Общий результат 0,7552
    MTEB

    Публичная таблицадругая ревизия

  • Tatoeba

    main_score

    Результат

    0,8858

    MTEB

    Публичная таблицадругая ревизия

  • TRECCOVID

    main_score

    Результат

    0,8089

    MTEB

    Публичная таблицадругая ревизия

  • BLINKIT2IMultiChoice

    main_score

    Результат

    0,7736

    MTEB

    Публичная таблицадругая ревизия

  • MassiveScenarioClassification

    main_score

    Результат

    0,8132

    Общий результат 0,7875Общий результат 0,7857Общий результат 0,7675
    MTEB

    Публичная таблицадругая ревизия

  • FleursT2ARetrieval

    main_score

    Результат

    0,6218

    Общий результат 0,7209Общий результат 0,4838
    MTEB

    Публичная таблицадругая ревизия

  • IndicGenBenchFloresBitextMining

    main_score

    Результат

    1

    Общий результат 0,9332Общий результат 0,4968
    MTEB

    Публичная таблицадругая ревизия

  • AudioCapsAVV2TRetrieval

    main_score

    Результат

    0,3032

    MTEB

    Публичная таблицадругая ревизия

  • MSRVTTV2A

    main_score

    Результат

    0,3076

    MTEB

    Публичная таблицадругая ревизия

  • MIRACLRetrievalHardNegatives

    main_score

    Результат

    0,5913

    MTEB

    Публичная таблицадругая ревизия

  • MLQARetrieval

    main_score

    Результат

    0,0158

    MTEB

    Публичная таблицадругая ревизия

  • Kinetics600VZeroShot

    main_score

    Результат

    0,5706

    MTEB

    Публичная таблицадругая ревизия

  • RAVDESSAVVAPairClassification

    main_score

    Результат

    0,6239

    MTEB

    Публичная таблицадругая ревизия

  • WebLINXCandidatesReranking

    main_score

    Результат

    0,1148

    Общий результат 0,1036
    MTEB

    Публичная таблицадругая ревизия

  • STS22.v2

    main_score

    Результат

    0,8183

    MTEB

    Публичная таблицадругая ревизия

  • MultiEURLEXMultilabelClassification

    main_score

    Результат

    0,0487

    MTEB

    Публичная таблицадругая ревизия

  • UCF101VideoClustering

    main_score

    Результат

    0,9405

    MTEB

    Публичная таблицадругая ревизия

  • ImdbClassification

    main_score

    Результат

    0,9309

    MTEB

    Публичная таблицадругая ревизия

  • MasakhaNEWSClassification

    main_score

    Результат

    0,7477

    MTEB

    Публичная таблицадругая ревизия

  • OpusparcusPC

    main_score

    Результат

    0,9122

    MTEB

    Публичная таблицадругая ревизия

  • CTKFactsNLI

    main_score

    Результат

    0,7848

    MTEB

    Публичная таблицадругая ревизия

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

BidirLM-Omni-2.5B — мультимодальная модель семейства BidirLM, представленная разработчиком BidirLM. Это двунаправленный энкодер на 2,5 млрд параметров, который кодирует текст, изображения и аудио в общее пространство эмбеддингов размерностью 2048. Модель предназначена для поиска между разными модальностями, оценки семантического сходства, кластеризации и классификации. Для текстовых задач её также можно дообучать для классификации последовательностей, разметки токенов и регрессии.

Модель поддерживает более 119 языков; контекст для текста — до 32 тысяч токенов. Для работы с аудио принимаются массивы отсчётов с разной частотой дискретизации, которые приводятся к 16 кГц. В README отмечены среднее пулингование и необходимость загружать пользовательский код репозитория. Для ускорения обучения и инференса требуется cuDNN версии выше 9.20.0: более ранние версии могут существенно замедлять работу из-за ошибки NVIDIA Conv3D. Распространяется по лицензии Apache-2.0.

Сценарии применения

  • поиск изображений по текстовому запросу
  • поиск аудиозаписей по тексту и наоборот
  • сравнение семантической близости текстов, изображений и аудио
  • кластеризация мультимодальных данных по эмбеддингам
  • классификация текстов и разметка токенов после дообучения

Ограничения

Требуется cuDNN версии выше 9.20.0; более ранние версии могут значительно замедлять работу. Загрузка модели требует разрешения на пользовательский код репозитория.

Для каких профессий подходит8

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

BidirLM-Omni-2.5B

BidirLM-Omni is the omnimodal variant of the BidirLM family — a 2.5B bidirectional encoder that jointly embeds text, images, and audio into a shared representation space, enabling state-of-the-art embedding performance.

Omnimodal model performance: MTEB Multilingual V2, MIEB (lite), MAEB (beta)

[!WARNING] This model should be run with cuDNN > 9.20.0. Earlier versions trigger a Conv3D NVIDIA bug that significantly slows down inference or training.

Supported Tasks

Multimodal embeddings (via Sentence Transformers): cross-modal retrieval (text ↔ image, text ↔ audio), multimodal semantic similarity, clustering, and classification across text, image, and audio modalities.

Text-only downstream fine-tuning (via Transformers): sequence classification (e.g. MNLI, XNLI), token classification (e.g. NER), sequence regression.

Supported Languages Multilingual support across over 119 languages, inherited from the Qwen3 base model and reinforced through contrastive training with 87 languages.

Usage

Sentence Transformers

Pass inputs directly to encode(). All modalities produce embeddings in the same 2048-dimensional space and can be compared cross-modally.

ModalityInput typeNotes
TextstrAny language; no length limit (model context is 32k tokens)
ImagePIL.Image.ImageAny size and aspect ratio; resized internally
Audionp.ndarray, list[float], or dict with "array" (np.ndarray) and "sampling_rate" (int)Any sample rate; resampled to 16 kHz internally via librosa
Mixedlist[dict] conversation (role/content)Interleave text + image or text + audio in a single prompt — see Chat Template below
import numpy as np
import PIL.Image
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("BidirLM/BidirLM-Omni-2.5B-Embedding", trust_remote_code=True)

# Text queries
texts = [
    "An image with a red background.",
    "An image with a blue background.",
    "A deep bass sound.",
    "A high-pitched sound.",
]

# Images, synthetic solid-color 256x256 images
images = [
    PIL.Image.fromarray(np.full((256, 256, 3), (220, 30, 30), dtype=np.uint8)),  # red
    PIL.Image.fromarray(np.full((256, 256, 3), (30, 30, 220), dtype=np.uint8)),  # blue
]

# Audio, synthetic sine waves at 16kHz, 2 seconds each
sr = 16000
t  = np.linspace(0, 2.0, sr * 2, endpoint=False, dtype=np.float32)
audios = [
    {"array": np.sin(2 * np.pi *   80 * t), "sampling_rate": sr},  #   80 Hz — bass
    {"array": np.sin(2 * np.pi * 7500 * t), "sampling_rate": sr},  # 7500 Hz — high
]

# Encode all modalities and compute similarities
text_embeddings  = model.encode(texts)
image_embeddings = model.encode(images)
audio_embeddings = model.encode(audios)

# Pass a custom instruction via prompt= (applies to all items in the batch)
# text_embeddings  = model.encode(texts, prompt="Retrieve semantically similar text.")

print(model.similarity(text_embeddings, image_embeddings))
print(model.similarity(text_embeddings, audio_embeddings))

# Text-Image similarity             red img   blue img
# "An image with a red background." [ 0.6928,   0.3103]  ← high red match
# "An image with a blue background."[ 0.4278,   0.6436]  ← high blue match
# "A deep bass sound."              [ 0.1519,   0.2272]  ← low (text/image mismatch)
# "A high-pitched sound."           [ 0.1418,   0.1812]  ← low (text/image mismatch)

# Text-Audio similarity             80Hz bass  7500Hz high
# "An image with a red background." [ 0.0010,   0.0410]  ← low (image/audio mismatch)
# "An image with a blue background."[ 0.0526,   0.0642]  ← low (image/audio mismatch)
# "A deep bass sound."              [ 0.5456,   0.4243]  ← higher bass match
# "A high-pitched sound."           [ 0.4004,   0.5177]  ← higher high-pitch match

Transformers - Fine-tuning for Downstream Tasks

import numpy as np
import PIL.Image
from transformers import AutoProcessor, AutoModelForSequenceClassification, AutoModelForTokenClassification

processor = AutoProcessor.from_pretrained(
    "BidirLM/BidirLM-Omni-2.5B-Embedding", trust_remote_code=True
)

sr = 16000
conversation = [
    {
        "role": "user",
        "content": [
            {"type": "image", "image": PIL.Image.fromarray(np.zeros((256, 256, 3), dtype=np.uint8))},
            {"type": "audio", "audio": {"array": np.zeros(sr, dtype=np.float32), "sampling_rate": sr}},
            {"type": "text",  "text": "Your text."},
        ],
    }
]
processor.apply_chat_template(conversation, tokenize=True, add_generation_prompt=False)


# Sequence classification (e.g., NLI)
seq_model = AutoModelForSequenceClassification.from_pretrained(
    "BidirLM/BidirLM-Omni-2.5B-Embedding",
    trust_remote_code=True,
    num_labels=3,
)

# Token classification (e.g., NER)
tok_model = AutoModelForTokenClassification.from_pretrained(
    "BidirLM/BidirLM-Omni-2.5B-Embedding",
    trust_remote_code=True,
    num_labels=7,
)

Requirements

transformers>=5.5.0
sentence-transformers>=5.4.0
librosa>=0.10.0

FAQ

1. What pooling strategy does this model use?

The model uses mean pooling across all modalities. This is handled automatically when using Sentence Transformers.

2. Do I need trust_remote_code=True?

Yes. BidirLM-Omni uses a custom bidirectional omnimodal architecture that requires loading custom code from the repository.

3. Can I compare embeddings across modalities?

Yes. Text, image, and audio embeddings live in the same 2048-dimensional space and can be compared directly using cosine similarity.

4. What audio formats and sample rates are supported?

Any sample rate is accepted — the model resamples internally using librosa when the source rate differs from the native 16 kHz. Three input formats are supported:

  • np.ndarray — a 1-D float32 array of raw samples
  • list[float] — a plain Python list of samples
  • dict with "array" (np.ndarray) and "sampling_rate" (int) — the format returned by HuggingFace datasets Audio features

Any audio format readable by standard libraries (WAV, MP3, FLAC, etc.) can be used by loading it into a NumPy array first (e.g. with librosa.load or soundfile.read).

Citation

@misc{boizard2026bidirlmtextomnimodalbidirectional,
      title={BidirLM: From Text to Omnimodal Bidirectional Encoders by Adapting and Composing Causal LLMs}, 
      author={Nicolas Boizard and Théo Deschamps-Berger and Hippolyte Gisserot-Boukhlef and Céline Hudelot and Pierre Colombo},
      year={2026},
      eprint={2604.02045},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2604.02045}, 
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · sentence-transformers

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Ревизия весов
447a6e3

0 моделей