Views
No views yet
query: {query} for the query and passage: {doc} for the document| Model | Avg. Performance (NDCG@10) | Binary Support | MRL Support |
|---|---|---|---|
| deepset-mxbai-embed-de-large-v1 | 51.7 | ✅ | ✅ |
| multilingual-e5-large | 50.5 | ❌ | ❌ |
| jina-embeddings-v2-base-de | 50.0 | ✅ | ❌ |
| Closed Source Models | |||
| Cohere Multilingual v3 | 52.4 | ✅ | - |
| Model | Avg. Performance (MAP@10) |
|---|---|
| deepset-mxbai-embed-de-large-v1 | 90.25 |
| voyage-law-2 | 84.80 |
query: {query} for the query and passage: {doc} for the document.pip install -U mixedbread-ai1import { MixedbreadAIClient } from "@mixedbread-ai/sdk";
2
3# 1. Create Client
4const mxbai = new MixedbreadAIClient({
5 apiKey: "YOUR_API_KEY"
6});
7
8# 2. Encode
9query = 'query: Warum sollte man biologisches Brot kaufen?'
10
11docs = [
12 query,
13 "passage: In unserer Bäckerei bieten wir auch glutenfreies Brot an, das für Menschen mit Zöliakie geeignet ist.",
14 "passage: Kuchen und Gebäck sind ebenfalls Teil unseres Angebots, wobei wir auf höchste Qualität und Frische achten.",
15 "passage: Wir haben auch eine Auswahl an herzhaften Snacks und Sandwiches, die perfekt für die Mittagspause sind."
16 "passage: Biologisches Brot wird aus natürlichen Zutaten hergestellt und enthält keine künstlichen Zusatzstoffe. Es ist gesünder und umweltfreundlicher.",
17 "passage: Unsere Bäckerei bietet eine Vielzahl von Brotsorten an, darunter auch biologisches Brot. Es schmeckt besser und ist frei von chemischen Konservierungsstoffen.",
18 "passage: Kunden bevorzugen zunehmend biologisches Brot, da es nicht nur gut für die Gesundheit ist, sondern auch einen positiven Beitrag zur Umwelt leistet."
19]
20
21const res = await mxbai.embeddings({
22 model: 'mixedbread-ai/deepset-mxbai-embed-de-large-v1',
23 input: docs,
24 normalized: true,
25 encoding_format: 'float' # or 'binary' for binary embeddings
26})
27
28console.log(res.data[0].embedding)pip install -U haystack-ai mixedbread-ai-haystack 1from haystack.components.embedders import SentenceTransformersTextEmbedder, SentenceTransformersDocumentEmbedder
2
3text_embedder = SentenceTransformersTextEmbedder(model="mixedbread-ai/deepset-mxbai-embed-de-large-v1")
4
5document_embedder = SentenceTransformersDocumentEmbedder(model="mixedbread-ai/deepset-mxbai-embed-de-large-v1")
6
7# Or use the Mixedbread API with binary embeddings
8from mixedbread_ai_haystack import MixedbreadAITextEmbedder, MixedbreadAIDocumentEmbedder
9from mixedbread_ai import EncodingFormat
10
11text_embedder = MixedbreadAITextEmbedder( model="mixedbread-ai/deepset-mxbai-embed-de-large-v1",
12 encoding_format=EncodingFormat.BINARY)
13
14document_embedder = MixedbreadAIDocumentEmbedder(model="mixedbread-ai/deepset-mxbai-embed-de-large-v1",
15 encoding_format=EncodingFormat.BINARY)pip install -U angle-emb1from angle_emb import AnglE
2from angle_emb.utils import cosine_similarity
3
4# 1. Specify preferred dimensions
5dimensions = 1024
6
7# 2. Load model and set pooling strategy to avg
8model = AnglE.from_pretrained(
9 "mixedbread-ai/deepset-mxbai-embed-de-large-v1",
10 pooling_strategy='avg').cuda()
11
12query = 'query: Warum sollte man biologisches Brot kaufen?'
13
14docs = [
15 query,
16 "passage: In unserer Bäckerei bieten wir auch glutenfreies Brot an, das für Menschen mit Zöliakie geeignet ist.",
17 "passage: Kuchen und Gebäck sind ebenfalls Teil unseres Angebots, wobei wir auf höchste Qualität und Frische achten.",
18 "passage: Wir haben auch eine Auswahl an herzhaften Snacks und Sandwiches, die perfekt für die Mittagspause sind."
19 "passage: Biologisches Brot wird aus natürlichen Zutaten hergestellt und enthält keine künstlichen Zusatzstoffe. Es ist gesünder und umweltfreundlicher.",
20 "passage: Unsere Bäckerei bietet eine Vielzahl von Brotsorten an, darunter auch biologisches Brot. Es schmeckt besser und ist frei von chemischen Konservierungsstoffen.",
21 "passage: Kunden bevorzugen zunehmend biologisches Brot, da es nicht nur gut für die Gesundheit ist, sondern auch einen positiven Beitrag zur Umwelt leistet."
22]
23
24# 3. Encode
25embeddings = model.encode(docs, embedding_size=dimensions)
26
27for doc, emb in zip(docs[1:], embeddings[1:]):
28 print(f'{query} ||| {doc}', cosine_similarity(embeddings[0], emb))python -m pip install -U sentence-transformers1from sentence_transformers import SentenceTransformer
2from sentence_transformers.util import cos_sim
3
4# 1. Specify preferred dimensions
5dimensions = 1024
6
7# 2. Load model
8model = SentenceTransformer("mixedbread-ai/deepset-mxbai-embed-de-large-v1", truncate_dim=dimensions)
9
10query = 'query: Warum sollte man biologisches Brot kaufen?'
11
12docs = [
13 query,
14 "passage: In unserer Bäckerei bieten wir auch glutenfreies Brot an, das für Menschen mit Zöliakie geeignet ist.",
15 "passage: Kuchen und Gebäck sind ebenfalls Teil unseres Angebots, wobei wir auf höchste Qualität und Frische achten.",
16 "passage: Wir haben auch eine Auswahl an herzhaften Snacks und Sandwiches, die perfekt für die Mittagspause sind."
17 "passage: Biologisches Brot wird aus natürlichen Zutaten hergestellt und enthält keine künstlichen Zusatzstoffe. Es ist gesünder und umweltfreundlicher.",
18 "passage: Unsere Bäckerei bietet eine Vielzahl von Brotsorten an, darunter auch biologisches Brot. Es schmeckt besser und ist frei von chemischen Konservierungsstoffen.",
19 "passage: Kunden bevorzugen zunehmend biologisches Brot, da es nicht nur gut für die Gesundheit ist, sondern auch einen positiven Beitrag zur Umwelt leistet."
20]
21
22
23# 3. Encode
24embeddings = model.encode(docs)
25
26similarities = cos_sim(embeddings[0], embeddings[1:])
27print('similarities:', similarities)pip install -U transformers1from typing import Dict
2
3import torch
4import numpy as np
5from transformers import AutoModel, AutoTokenizer
6from sentence_transformers.util import cos_sim
7
8def pooling(outputs: torch.Tensor, inputs: Dict) -> np.ndarray:
9 outputs = torch.sum(
10 outputs * inputs["attention_mask"][:, :, None], dim=1) / torch.sum(inputs["attention_mask"])
11 return outputs.detach().cpu().numpy()
12
13# 1. Load model
14model_id = 'mixedbread-ai/deepset-mxbai-embed-de-large-v1'
15tokenizer = AutoTokenizer.from_pretrained(model_id)
16model = AutoModel.from_pretrained(model_id).cuda()
17
18query = 'query: Warum sollte man biologisches Brot kaufen?'
19
20docs = [
21 query,
22 "passage: In unserer Bäckerei bieten wir auch glutenfreies Brot an, das für Menschen mit Zöliakie geeignet ist.",
23 "passage: Kuchen und Gebäck sind ebenfalls Teil unseres Angebots, wobei wir auf höchste Qualität und Frische achten.",
24 "passage: Wir haben auch eine Auswahl an herzhaften Snacks und Sandwiches, die perfekt für die Mittagspause sind."
25 "passage: Biologisches Brot wird aus natürlichen Zutaten hergestellt und enthält keine künstlichen Zusatzstoffe. Es ist gesünder und umweltfreundlicher.",
26 "passage: Unsere Bäckerei bietet eine Vielzahl von Brotsorten an, darunter auch biologisches Brot. Es schmeckt besser und ist frei von chemischen Konservierungsstoffen.",
27 "passage: Kunden bevorzugen zunehmend biologisches Brot, da es nicht nur gut für die Gesundheit ist, sondern auch einen positiven Beitrag zur Umwelt leistet."
28]
29
30# 2. Encode
31inputs = tokenizer(docs, padding=True, return_tensors='pt')
32for k, v in inputs.items():
33 inputs[k] = v.cuda()
34outputs = model(**inputs).last_hidden_state
35embeddings = pooling(outputs, inputs)
36
37# 3. Compute similarity scores
38similarities = cos_sim(embeddings[0], embeddings[1:])
39print('similarities:', similarities)npm i @xenova/transformers1import { pipeline, cos_sim } from '@xenova/transformers';
2
3// 1. Create a feature extraction pipeline
4const extractor = await pipeline('feature-extraction', 'mixedbread-ai/mxbai-embed-large-v1', {
5 quantized: false, // Comment out this line to use the quantized version
6});
7
8// 2. Encode
9query = 'query: Warum sollte man biologisches Brot kaufen?'
10
11docs = [
12 query,
13 "passage: In unserer Bäckerei bieten wir auch glutenfreies Brot an, das für Menschen mit Zöliakie geeignet ist.",
14 "passage: Kuchen und Gebäck sind ebenfalls Teil unseres Angebots, wobei wir auf höchste Qualität und Frische achten.",
15 "passage: Wir haben auch eine Auswahl an herzhaften Snacks und Sandwiches, die perfekt für die Mittagspause sind."
16 "passage: Biologisches Brot wird aus natürlichen Zutaten hergestellt und enthält keine künstlichen Zusatzstoffe. Es ist gesünder und umweltfreundlicher.",
17 "passage: Unsere Bäckerei bietet eine Vielzahl von Brotsorten an, darunter auch biologisches Brot. Es schmeckt besser und ist frei von chemischen Konservierungsstoffen.",
18 "passage: Kunden bevorzugen zunehmend biologisches Brot, da es nicht nur gut für die Gesundheit ist, sondern auch einen positiven Beitrag zur Umwelt leistet."
19]
20
21const output = await extractor(docs, { pooling: 'mean' });
22
23// 3. Compute similarity scores
24const [source_embeddings, ...document_embeddings ] = output.tolist();
25const similarities = document_embeddings.map(x => cos_sim(source_embeddings, x));
26console.log(similarities);1@online{germanemb2024mxbai,
2 title={Open Source Gets DE-licious: Mixedbread x deepset German/English Embeddings},
3 author={Sean Lee and Aamir Shakir and Darius Koenig and Julius Lipp},
4 year={2024},
5 url={https://www.mixedbread.ai/blog/deepset-mxbai-embed-de-large-v1},
6}