跳转到内容

Mixedbread AI 嵌入

探索 MixedBread AI 嵌入模型的功能,支持自定义编码格式(二进制、整数、浮点数、base64 等)、嵌入维度(套娃式)和上下文提示。

如果您在 Colab 上打开这个笔记本,您可能需要安装 LlamaIndex 🦙。

%pip install llama-index-embeddings-mixedbreadai
!pip install llama-index
import os
from llama_index.embeddings.mixedbreadai import MixedbreadAIEmbedding
# API Key and Embedding Initialization
# You can visit https://www.mixedbread.ai/api-reference#quick-start-guide
# to get an api key
mixedbread_api_key = os.environ.get("MXBAI_API_KEY", "your-api-key")
# Please check https://www.mixedbread.ai/docs/embeddings/models#whats-new-in-the-mixedbread-embed-model-family
# for our embedding models
model_name = "mixedbread-ai/mxbai-embed-large-v1"
oven = MixedbreadAIEmbedding(api_key=mixedbread_api_key, model_name=model_name)
embeddings = oven.get_query_embedding("Why bread is so tasty?")
print(len(embeddings))
print(embeddings[:5])
1024
[0.01128387451171875, 0.031097412109375, -0.00606536865234375, 0.0291748046875, -0.038604736328125]

提示词可以提升模型对嵌入向量在后续任务中如何使用的理解,从而提升性能。我们的实验表明,使用特定领域的提示词能够有效提升性能。

prompt_for_retrieval = (
"Represent this sentence for searching relevant passages:"
)
contextual_oven = MixedbreadAIEmbedding(
api_key=mixedbread_api_key,
model_name=model_name,
prompt=prompt_for_retrieval,
)
contextual_embeddings = contextual_oven.get_query_embedding(
"What bread is invented in Germany?"
)
print(len(contextual_embeddings))
print(contextual_embeddings[:5])
1024
[-0.0235443115234375, -0.0152435302734375, 0.008392333984375, 0.00336456298828125, -0.044647216796875]

Mixedbread AI 嵌入支持量化和套娃技术,以减少嵌入的尺寸以便更好地存储,同时保留大部分性能。 更多信息请参阅以下文章:

默认的 encoding_formatfloat。我们还支持 float16binaryubinaryint8uint8base64

# with `binary` embedding types
binary_oven = MixedbreadAIEmbedding(
api_key=mixedbread_api_key,
model_name=model_name,
encoding_format="binary",
)
binary_embeddings = binary_oven.get_text_embedding(
"The bread is tiny but still filling!"
)
print(len(binary_embeddings))
print(binary_embeddings[:5])
128
[-121.0, 96.0, -108.0, 111.0, 110.0]

Mixedbread AI 嵌入模型支持套娃维度截断。默认维度设置为模型的最大值。 请持续关注我们的网站以了解哪些模型支持套娃功能。

# with truncated dimension
half_oven = MixedbreadAIEmbedding(
api_key=mixedbread_api_key,
model_name=model_name,
dimensions=512, # 1024 is the maximum of `mxbai-embed-large-v1`
)
half_embeddings = half_oven.get_text_embedding(
"I want the better half of my bread."
)
print(len(half_embeddings))
print(half_embeddings[:5])
512
[-0.014221191, -0.013671875, -0.03314209, 0.025909424, -0.035095215]