ONNX 模型库
返回模型

说明文档

mixedbread-ai/deepset-mxbai-embed-de-large-v1

该模型是一个强大的开源德语/英语嵌入模型,由 Mixedbreaddeepset 合作开发。它基于 intfloat/multilingual-e5-large 构建,并使用 AnglE loss 进行训练。在我们的博客文章中了解更多详情。

核心优势

  • 领先的性能
  • 支持[二元量化]((#binary-quantization-and-matryoshka)和俄罗斯套娃表示学习 (MRL)
  • 基于超过3000万对高质量德语数据进行微调
  • 针对检索任务优化
  • 支持语言:德语和英语
  • 需要提示词:查询使用 query: {query},文档使用 passage: {doc}

性能表现

在 NDCG@10 指标上,我们的模型平均达到 51.7 分,为开源德语嵌入模型树立了新的标准:

模型 平均性能 (NDCG@10) 二元支持 MRL支持
deepset-mxbai-embed-de-large-v1 51.7
multilingual-e5-large 50.5
jina-embeddings-v2-base-de 50.0
闭源模型
Cohere Multilingual v3 52.4 -

在与法律数据客户的案例研究中,我们的模型优于领域特定替代方案:

模型 平均性能 (MAP@10)
deepset-mxbai-embed-de-large-v1 90.25
voyage-law-2 84.80

二元量化和俄罗斯套娃表示学习

我们的模型支持二元量化俄罗斯套娃表示学习 (MRL),可实现显著的效率提升:

  • 二元量化:保留 91.8% 的性能,同时效率提高32倍
  • MRL:向量大小减少 25% 仍保留 97.5% 的模型性能
  • 在 512 维度时,保留超过 93% 的模型性能,同时将嵌入大小减半

这些优化可显著降低云计算和向量数据库的基础设施成本。在此处了解更多。

快速入门

以下是使用我们的模型生成德语句子嵌入的几种方法。请注意,您需要提供提示词:查询使用 query: {query},文档使用 passage: {doc}

<details> <summary>Mixedbread API</summary>

pip install -U mixedbread-ai
import { MixedbreadAIClient } from "@mixedbread-ai/sdk";

# 1. 创建客户端
const mxbai = new MixedbreadAIClient({
  apiKey: "YOUR_API_KEY"
});

# 2. 编码
query = 'query: Warum sollte man biologisches Brot kaufen?'

docs = [
  query,
  "passage: In unserer Bäckerei bieten wir auch glutenfreies Brot an, das für Menschen mit Zöliakie geeignet ist.",
  "passage: Kuchen und Gebäck sind ebenfalls Teil unseres Angebots, wobei wir auf höchste Qualität und Frische achten.",
  "passage: Wir haben auch eine Auswahl an herzhaften Snacks und Sandwiches, die perfekt für die Mittagspause sind."
  "passage: Biologisches Brot wird aus natürlichen Zutaten hergestellt und enthält keine künstlichen Zusatzstoffe. Es ist gesünder und umweltfreundlicher.",
  "passage: Unsere Bäckerei bietet eine Vielzahl von Brotsorten an, darunter auch biologisches Brot. Es schmeckt besser und ist frei von chemischen Konservierungsstoffen.",
  "passage: Kunden bevorzugen zunehmend biologisches Brot, da es nicht nur gut für die Gesundheit ist, sondern auch einen positiven Beitrag zur Umwelt leistet."
]

const res = await mxbai.embeddings({
  model: 'mixedbread-ai/deepset-mxbai-embed-de-large-v1',
  input: docs,
  normalized: true,
  encoding_format: 'float' # 或使用 'binary' 获取二元嵌入
})

console.log(res.data[0].embedding)

API 参考文档 </details>

<details> <summary>Haystack</summary>

pip install -U haystack-ai mixedbread-ai-haystack 
from haystack.components.embedders import SentenceTransformersTextEmbedder, SentenceTransformersDocumentEmbedder

text_embedder = SentenceTransformersTextEmbedder(model="mixedbread-ai/deepset-mxbai-embed-de-large-v1")

document_embedder = SentenceTransformersDocumentEmbedder(model="mixedbread-ai/deepset-mxbai-embed-de-large-v1")

# 或使用 Mixedbread API 进行二元嵌入
from mixedbread_ai_haystack import  MixedbreadAITextEmbedder, MixedbreadAIDocumentEmbedder
from mixedbread_ai import EncodingFormat

text_embedder = MixedbreadAITextEmbedder( model="mixedbread-ai/deepset-mxbai-embed-de-large-v1",
                                          encoding_format=EncodingFormat.BINARY)

document_embedder = MixedbreadAIDocumentEmbedder(model="mixedbread-ai/deepset-mxbai-embed-de-large-v1",
                                                 encoding_format=EncodingFormat.BINARY)

</details>

<details> <summary> angle-emb </summary>

pip install -U angle-emb
from angle_emb import AnglE
from angle_emb.utils import cosine_similarity

# 1. 指定首选维度
dimensions = 1024

# 2. 加载模型并设置池化策略为平均
model = AnglE.from_pretrained(
    "mixedbread-ai/deepset-mxbai-embed-de-large-v1",
    pooling_strategy='avg').cuda()

query = 'query: Warum sollte man biologisches Brot kaufen?'

docs = [
  query,
  "passage: In unserer Bäckerei bieten wir auch glutenfreies Brot an, das für Menschen mit Zöliakie geeignet ist.",
  "passage: Kuchen und Gebäck sind ebenfalls Teil unseres Angebots, wobei wir auf höchste Qualität und Frische achten.",
  "passage: Wir haben auch eine Auswahl an herzhaften Snacks und Sandwiches, die perfekt für die Mittagspause sind."
  "passage: Biologisches Brot wird aus natürlichen Zutaten hergestellt und enthält keine künstlichen Zusatzstoffe. Es ist gesünder und umweltfreundlicher.",
  "passage: Unsere Bäckerei bietet eine Vielzahl von Brotsorten an, darunter auch biologisches Brot. Es schmeckt besser und ist frei von chemischen Konservierungsstoffen.",
  "passage: Kunden bevorzugen zunehmend biologisches Brot, da es nicht nur gut für die Gesundheit ist, sondern auch einen positiven Beitrag zur Umwelt leistet."
]

# 3. 编码
embeddings = model.encode(docs, embedding_size=dimensions)

for doc, emb in zip(docs[1:], embeddings[1:]):
    print(f'{query} ||| {doc}', cosine_similarity(embeddings[0], emb))

</details>

<details> <summary> Sentence Transformers </summary>

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

# 1. 指定首选维度
dimensions = 1024

# 2. 加载模型
model = SentenceTransformer("mixedbread-ai/deepset-mxbai-embed-de-large-v1", truncate_dim=dimensions)

query = 'query: Warum sollte man biologisches Brot kaufen?'

docs = [
  query,
  "passage: In unserer Bäckerei bieten wir auch glutenfreies Brot an, das für Menschen mit Zöliakie geeignet ist.",
  "passage: Kuchen und Gebäck sind ebenfalls Teil unseres Angebots, wobei wir auf höchste Qualität und Frische achten.",
  "passage: Wir haben auch eine Auswahl an herzhaften Snacks und Sandwiches, die perfekt für die Mittagspause sind."
  "passage: Biologisches Brot wird aus natürlichen Zutaten hergestellt und enthält keine künstlichen Zusatzstoffe. Es ist gesünder und umweltfreundlicher.",
  "passage: Unsere Bäckerei bietet eine Vielzahl von Brotsorten an, darunter auch biologisches Brot. Es schmeckt besser und ist frei von chemischen Konservierungsstoffen.",
  "passage: Kunden bevorzugen zunehmend biologisches Brot, da es nicht nur gut für die Gesundheit ist, sondern auch einen positiven Beitrag zur Umwelt leistet."
]


# 3. 编码
embeddings = model.encode(docs)

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

</details>

<details> <summary> transformers </summary>

pip install -U transformers
from typing import Dict

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

def pooling(outputs: torch.Tensor, inputs: Dict) -> np.ndarray:
    outputs = torch.sum(
      outputs * inputs["attention_mask"][:, :, None], dim=1) / torch.sum(inputs["attention_mask"])
    return outputs.detach().cpu().numpy()

# 1. 加载模型
model_id = 'mixedbread-ai/deepset-mxbai-embed-de-large-v1'
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModel.from_pretrained(model_id).cuda()

query = 'query: Warum sollte man biologisches Brot kaufen?'

docs = [
  query,
  "passage: In unserer Bäckerei bieten wir auch glutenfreies Brot an, das für Menschen mit Zöliakie geeignet ist.",
  "passage: Kuchen und Gebäck sind ebenfalls Teil unseres Angebots, wobei wir auf höchste Qualität und Frische achten.",
  "passage: Wir haben auch eine Auswahl an herzhaften Snacks und Sandwiches, die perfekt für die Mittagspause sind."
  "passage: Biologisches Brot wird aus natürlichen Zutaten hergestellt und enthält keine künstlichen Zusatzstoffe. Es ist gesünder und umweltfreundlicher.",
  "passage: Unsere Bäckerei bietet eine Vielzahl von Brotsorten an, darunter auch biologisches Brot. Es schmeckt besser und ist frei von chemischen Konservierungsstoffen.",
  "passage: Kunden bevorzugen zunehmend biologisches Brot, da es nicht nur gut für die Gesundheit ist, sondern auch einen positiven Beitrag zur Umwelt leistet."
]

# 2. 编码
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)

# 3. 计算相似度分数
similarities = cos_sim(embeddings[0], embeddings[1:])
print('similarities:', similarities)

</details>

<details> <summary> transformers.js </summary>

npm i @xenova/transformers
import { pipeline, cos_sim } from '@xenova/transformers';

// 1. 创建特征提取管道
const extractor = await pipeline('feature-extraction', 'mixedbread-ai/mxbai-embed-large-v1', {
    quantized: false, // 注释此行以使用量化版本
});

// 2. 编码
query = 'query: Warum sollte man biologisches Brot kaufen?'

docs = [
  query,
  "passage: In unserer Bäckerei bieten wir auch glutenfreies Brot an, das für Menschen mit Zöliakie geeignet ist.",
  "passage: Kuchen und Gebäck sind ebenfalls Teil unseres Angebots, wobei wir auf höchste Qualität und Frische achten.",
  "passage: Wir haben auch eine Auswahl an herzhaften Snacks und Sandwiches, die perfekt für die Mittagspause sind."
  "passage: Biologisches Brot wird aus natürlichen Zutaten hergestellt und enthält keine künstlichen Zusatzstoffe. Es ist gesünder und umweltfreundlicher.",
  "passage: Unsere Bäckerei bietet eine Vielzahl von Brotsorten an, darunter auch biologisches Brot. Es schmeckt besser und ist frei von chemischen Konservierungsstoffen.",
  "passage: Kunden bevorzugen zunehmend biologisches Brot, da es nicht nur gut für die Gesundheit ist, sondern auch einen positiven Beitrag zur Umwelt leistet."
]

const output = await extractor(docs, { pooling: 'mean' });

// 3. 计算相似度分数
const [source_embeddings, ...document_embeddings ] = output.tolist();
const similarities = document_embeddings.map(x => cos_sim(source_embeddings, x));
console.log(similarities);

</details>

社区

加入我们的 Discord 社区Haystack 社区 Discord,分享您的反馈和想法。我们随时为您提供帮助,也很高兴讨论机器学习这一激动人心的领域!

许可证

Apache 2.0

引用

@online{germanemb2024mxbai,
  title={Open Source Gets DE-licious: Mixedbread x deepset German/English Embeddings},
  author={Sean Lee and Aamir Shakir and Darius Koenig and Julius Lipp},
  year={2024},
  url={https://www.mixedbread.ai/blog/deepset-mxbai-embed-de-large-v1},
}

mixedbread-ai/deepset-mxbai-embed-de-large-v1

作者 mixedbread-ai

feature-extraction sentence-transformers
↓ 109.9K ♥ 58

创建时间: 2024-07-12 06:45:32+00:00

更新时间: 2025-03-24 14:42:47+00:00

在 Hugging Face 上查看

文件 (23)

.gitattributes
1_Pooling/config.json
LICENSE
README.md
added_tokens.json
angle.config
config.json
config_sentence_transformers.json
model.safetensors
modules.json
onnx/model.onnx ONNX
onnx/model_bnb4.onnx ONNX
onnx/model_fp16.onnx ONNX
onnx/model_int8.onnx ONNX
onnx/model_q4.onnx ONNX
onnx/model_q4f16.onnx ONNX
onnx/model_quantized.onnx ONNX
onnx/model_uint8.onnx ONNX
sentence_bert_config.json
sentencepiece.bpe.model
special_tokens_map.json
tokenizer.json
tokenizer_config.json