/ Модель

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

Контекст
512 токенов
Параметры
434 млн
Лицензия
Apache 2.0
Архитектура
bert · dense
Библиотека
sentence-transformers
Опубликована
7 мар 2024

mxbai-embed-large-v1

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

Англоязычная BERT-модель Mixedbread AI для создания эмбеддингов текста, семантического поиска и сравнения предложений.

1,9 млнскачиваний за 30 дней833лайкавеса обновлены23 янв 2026

Бенчмарки

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

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

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

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

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

  • NusaTranslationBitextMining

    main_score

    Результат

    0,3824

    MTEB

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

  • STSBenchmarkMultilingualSTS

    main_score

    Результат

    0,7603

    MTEB

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

  • MIRACLRetrievalHardNegatives

    main_score

    Результат

    0,0075

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

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

  • MLQARetrieval

    main_score

    Результат

    0,3716

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

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

  • VaccinChatNLClassification

    main_score

    Результат

    0,4717

    MTEB

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

  • BrazilianToxicTweetsClassification

    main_score

    Результат

    0,2025

    MTEB

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

  • SemRel24STS

    main_score

    Результат

    0,4177

    MTEB

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

  • SIB200ClusteringS2S

    main_score

    Результат

    0,1695

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

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

  • NusaX-senti

    main_score

    Результат

    0,4908

    MTEB

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

  • ProceduralMemBench

    main_score

    Результат

    0,5696

    MTEB

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

  • XNLI

    main_score

    Результат

    0,5825

    MTEB

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

  • PawsXPairClassification

    main_score

    Результат

    0,5016

    MTEB

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

  • MassiveIntentClassification

    main_score

    Результат

    0,3944

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

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

  • MassiveScenarioClassification

    main_score

    Результат

    0,4625

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

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

  • PublicHealthQA

    main_score

    Результат

    0,2711

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

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

  • IndicGenBenchFloresBitextMining

    main_score

    Результат

    0,0562

    MTEB

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

  • CodeSearchNetCCRetrieval

    main_score

    Результат

    0,3811

    MTEB

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

  • CQADupstackMathematicaRetrieval

    main_score

    Результат

    0,3225

    MTEB

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

  • CodeEditSearchRetrieval

    main_score

    Результат

    0,503

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

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

  • Tatoeba

    main_score

    Результат

    0,0041

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

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

  • AfriSentiClassification

    main_score

    Результат

    0,4931

    MTEB

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

  • OpusparcusPC

    main_score

    Результат

    0,8703

    MTEB

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

  • MSMARCO

    main_score

    Результат

    0,6938

    MTEB

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

  • STS22.v2

    main_score

    Результат

    0,5821

    MTEB

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

  • NorwegianCourtsBitextMining

    main_score

    Результат

    0,9057

    MTEB

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

  • MemGovern

    main_score

    Результат

    0,844

    MTEB

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

  • LongMemEval

    main_score

    Результат

    0,7163

    MTEB

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

  • STS22

    main_score

    Результат

    0,6904

    MTEB

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

  • MIRACLReranking

    main_score

    Результат

    0,5629

    MTEB

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

  • AmazonCounterfactualClassification

    main_score

    Результат

    0,7458

    MTEB

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

  • MasakhaNEWSClassification

    main_score

    Результат

    0,7726

    MTEB

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

  • EPBench

    main_score

    Результат

    0,212

    MTEB

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

  • AlloProfClusteringS2S

    main_score

    Результат

    0,3904

    MTEB

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

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

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

mxbai-embed-large-v1 — модель Mixedbread AI для построения векторных представлений предложений и текстов. Это плотная BERT-модель на 433,9 млн параметров с контекстом до 512 токенов; она принимает текст и выдаёт эмбеддинги для поиска и сопоставления текстов. Карточка указывает английский язык и библиотеку sentence-transformers.

Модель предназначена для семантического поиска, извлечения релевантных фрагментов и оценки сходства предложений. Для поисковых запросов README рекомендует добавлять префикс «Represent this sentence for searching relevant passages:». Поддерживаются Matryoshka Representation Learning и бинарная квантизация, позволяющие уменьшать размер эмбеддингов и затраты на их хранение. В заявленной авторами оценке на MTEB модель показывает сильные результаты среди моделей размера BERT-large.

Модель распространяется по лицензии Apache-2.0. Ограничения включают окно контекста в 512 токенов и необходимость использовать рекомендованный префикс для запросов в сценариях поиска; авторы также отмечают наличие ограничений, которые планировали исправить в версии v2, не уточняя их в этой карточке.

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

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

Ограничения

Контекст ограничен 512 токенами; для поисковых запросов README рекомендует добавлять специальный префикс. Авторы упоминают ограничения модели, которые предполагалось исправить в версии v2, но не конкретизируют их.

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

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

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

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

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

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

Открыть на Hugging Face

mixedbread-ai/mxbai-embed-large-v1

Here, we provide several ways to produce sentence embeddings. Please note that you have to provide the prompt Represent this sentence for searching relevant passages: for query if you want to use it for retrieval. Besides that you don't need any prompt. Our model also supports Matryoshka Representation Learning and binary quantization.

Quickstart

Here, we provide several ways to produce sentence embeddings. Please note that you have to provide the prompt Represent this sentence for searching relevant passages: for query if you want to use it for retrieval. Besides that you don't need any prompt.

sentence-transformers

python -m pip install -U sentence-transformers
from sentence_transformers import SentenceTransformer
from sentence_transformers.util import cos_sim
from sentence_transformers.quantization import quantize_embeddings

# 1. Specify preffered dimensions
dimensions = 512

# 2. load model
model = SentenceTransformer("mixedbread-ai/mxbai-embed-large-v1", truncate_dim=dimensions)

# The prompt used for query retrieval tasks:
# query_prompt = 'Represent this sentence for searching relevant passages: '

query = "A man is eating a piece of bread"
docs = [
    "A man is eating food.",
    "A man is eating pasta.",
    "The girl is carrying a baby.",
    "A man is riding a horse.",
]

# 2. Encode
query_embedding = model.encode(query, prompt_name="query")
# Equivalent Alternatives:
# query_embedding = model.encode(query_prompt + query)
# query_embedding = model.encode(query, prompt=query_prompt)

docs_embeddings = model.encode(docs)

# Optional: Quantize the embeddings
binary_query_embedding = quantize_embeddings(query_embedding, precision="ubinary")
binary_docs_embeddings = quantize_embeddings(docs_embeddings, precision="ubinary")

similarities = cos_sim(query_embedding, docs_embeddings)
print('similarities:', similarities)

Transformers

from typing import Dict

import torch
import numpy as np
from transformers import AutoModel, AutoTokenizer
from sentence_transformers.util import cos_sim

# For retrieval you need to pass this prompt. Please find our more in our blog post.
def transform_query(query: str) -> str:
    """ For retrieval, add the prompt for query (not for documents).
    """
    return f'Represent this sentence for searching relevant passages: {query}'

# The model works really well with cls pooling (default) but also with mean pooling.
def pooling(outputs: torch.Tensor, inputs: Dict,  strategy: str = 'cls') -> np.ndarray:
    if strategy == 'cls':
        outputs = outputs[:, 0]
    elif strategy == 'mean':
        outputs = torch.sum(
            outputs * inputs["attention_mask"][:, :, None], dim=1) / torch.sum(inputs["attention_mask"], dim=1, keepdim=True)
    else:
        raise NotImplementedError
    return outputs.detach().cpu().numpy()

# 1. load model
model_id = 'mixedbread-ai/mxbai-embed-large-v1'
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModel.from_pretrained(model_id).cuda()


docs = [
    transform_query('A man is eating a piece of bread'),
    "A man is eating food.",
    "A man is eating pasta.",
    "The girl is carrying a baby.",
    "A man is riding a horse.",
]

# 2. encode
inputs = tokenizer(docs, padding=True, return_tensors='pt')
for k, v in inputs.items():
    inputs[k] = v.cuda()
outputs = model(**inputs).last_hidden_state
embeddings = pooling(outputs, inputs, 'cls')

similarities = cos_sim(embeddings[0], embeddings[1:])
print('similarities:', similarities)

Transformers.js

If you haven't already, you can install the Transformers.js JavaScript library from NPM using:

npm i @huggingface/transformers

You can then use the model to compute embeddings like this:

import { pipeline, cos_sim } from "@huggingface/transformers";

// Create a feature extraction pipeline
const extractor = await pipeline("feature-extraction", "mixedbread-ai/mxbai-embed-large-v1", {
    dtype: "fp32", // Options: "fp32", "fp16", "q8"
});

// Generate sentence embeddings
const docs = [
    "Represent this sentence for searching relevant passages: A man is eating a piece of bread",
    "A man is eating food.",
    "A man is eating pasta.",
    "The girl is carrying a baby.",
    "A man is riding a horse.",
]
const output = await extractor(docs, { pooling: "cls" });

// Compute similarity scores
const [source_embeddings, ...document_embeddings ] = output.tolist();
const similarities = document_embeddings.map(x => cos_sim(source_embeddings, x));
console.log(similarities); // [0.7919578577247139, 0.6369278664248345, 0.16512018371357193, 0.3620778366720027]

Using API

You can use the model via our API as follows:

from mixedbread_ai.client import MixedbreadAI, EncodingFormat
from sklearn.metrics.pairwise import cosine_similarity
import os

mxbai = MixedbreadAI(api_key="{MIXEDBREAD_API_KEY}")

english_sentences = [
    'What is the capital of Australia?',
    'Canberra is the capital of Australia.'
] 

res = mxbai.embeddings(
     input=english_sentences,
     model="mixedbread-ai/mxbai-embed-large-v1",
     normalized=True,
     encoding_format=[EncodingFormat.FLOAT, EncodingFormat.UBINARY, EncodingFormat.INT_8],
     dimensions=512
)

encoded_embeddings = res.data[0].embedding
print(res.dimensions, encoded_embeddings.ubinary, encoded_embeddings.float_, encoded_embeddings.int_8)

The API comes with native int8 and binary quantization support! Check out the docs for more information.

Infinity

docker run --gpus all -v $PWD/data:/app/.cache -p "7997":"7997" \
michaelf34/infinity:0.0.68 \
v2 --model-id mixedbread-ai/mxbai-embed-large-v1 --revision "main" --dtype float16 --engine torch --port 7997

Evaluation

As of March 2024, our model archives SOTA performance for Bert-large sized models on the MTEB. It ourperforms commercial models like OpenAIs text-embedding-3-large and matches the performance of model 20x it's size like the echo-mistral-7b. Our model was trained with no overlap of the MTEB data, which indicates that our model generalizes well across several domains, tasks and text length. We know there are some limitations with this model, which will be fixed in v2.

ModelAvg (56 datasets)Classification (12 datasets)Clustering (11 datasets)PairClassification (3 datasets)Reranking (4 datasets)Retrieval (15 datasets)STS (10 datasets)Summarization (1 dataset)
mxbai-embed-large-v164.6875.6446.7187.260.1154.3985.0032.71
bge-large-en-v1.564.2375.9746.0887.1260.0354.2983.1131.61
mxbai-embed-2d-large-v163.2574.1446.0785.8958.9451.4284.931.55
nomic-embed-text-v162.3974.1243.9185.1555.6952.8182.0630.08
jina-embeddings-v2-base-en60.3873.4541.7385.3856.9847.8780.731.6
Proprietary Models
OpenAI text-embedding-3-large64.5875.4549.0185.7259.1655.4481.7329.92
Cohere embed-english-v3.064.4776.4947.4385.8458.0155.0082.6230.18
OpenAI text-embedding-ada-00260.9970.9345.9084.8956.3249.2580.9730.80

Please find more information in our blog post.

Matryoshka and Binary Quantization

Embeddings in their commonly used form (float arrays) have a high memory footprint when used at scale. Two approaches to solve this problem are Matryoshka Representation Learning (MRL) and (Binary) Quantization. While MRL reduces the number of dimensions of an embedding, binary quantization transforms the value of each dimension from a float32 into a lower precision (int8 or even binary). The model supports both approaches!

You can also take it one step further, and combine both MRL and quantization. This combination of binary quantization and MRL allows you to reduce the memory usage of your embeddings significantly. This leads to much lower costs when using a vector database in particular. You can read more about the technology and its advantages in our blog post.

Community

Please join our Discord Community and share your feedback and thoughts! We are here to help and also always happy to chat.

License

Apache 2.0

Citation

@online{emb2024mxbai,
  title={Open Source Strikes Bread - New Fluffy Embeddings Model},
  author={Sean Lee and Aamir Shakir and Darius Koenig and Julius Lipp},
  year={2024},
  url={https://www.mixedbread.ai/blog/mxbai-embed-large-v1},
}

@article{li2023angle,
  title={AnglE-optimized Text Embeddings},
  author={Li, Xianming and Li, Jing},
  journal={arXiv preprint arXiv:2309.12871},
  year={2023}
}

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

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

GPU в ailist

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

Можно запустить

Подбираем GPU…

Класс архитектуры
BertModel
Ревизия весов
b33106f

0 моделей