Mixedbread AI 嵌入
探索 MixedBread AI 嵌入模型的功能,支持自定义编码格式(二进制、整数、浮点数、base64 等)、嵌入维度(套娃式)和上下文提示。
如果您在 Colab 上打开这个笔记本,您可能需要安装 LlamaIndex 🦙。
%pip install llama-index-embeddings-mixedbreadai!pip install llama-indeximport osfrom 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 keymixedbread_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 modelsmodel_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_format 是 float。我们还支持 float16、binary、ubinary、int8、uint8、base64。
# with `binary` embedding typesbinary_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 dimensionhalf_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]