从入门到精通:Databricks Lakehouse中的Embeddings模型解析

111 阅读2分钟

引言

在大数据和AI的时代,Databricks Lakehouse平台以统一数据、分析和AI的能力而备受关注。本篇文章旨在帮助你快速了解如何在Databricks环境中使用嵌入模型,并展示如何将其集成到LangChain应用中。

主要内容

DatabricksEmbeddings概览

DatabricksEmbeddings类封装了一个嵌入模型端点,通过Databricks模型服务托管。它支持所有Embeddings类的方法,包括异步API。

端点要求

该端点必须具备OpenAI兼容的嵌入输入/输出格式。DatabricksEmbeddings可用于在Databricks模型服务上托管的任何端点类型:

  1. 基础模型:例如BAAI General Embedding (BGE),这些模型无需设置即可在Databricks工作区中使用。
  2. 自定义模型:通过MLflow部署自定义嵌入模型。
  3. 外部模型:作为代理服务,用于托管如OpenAI text-embedding-3等外部模型。

设置

要访问Databricks模型,你需要创建帐户并设置凭据(如果在Databricks工作区外使用)。

凭据设置

如果在Databricks内部运行LangChain应用,则可跳过此步骤。否则,需要手动设置Databricks工作区主机名和个人访问令牌。

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。

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

代码示例

查询模型

下面展示了如何查询托管为基础模型端点的BGE模型。

from langchain_community.embeddings import DatabricksEmbeddings

embeddings = DatabricksEmbeddings(
    endpoint="databricks-bge-large-en",  # 使用API代理服务提高访问稳定性
)

# 嵌入单个文本
print(embeddings.embed_query("hello")[:3])

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

常见问题和解决方案

  1. 网络限制:由于某些地区的网络限制,开发者可能需要考虑使用API代理服务来提高访问稳定性。

  2. 版本兼容性:确保安装的mlflow版本与langchain-community包兼容,以避免潜在的版本冲突。

总结和进一步学习资源

Databricks的嵌入模型提供了一种可靠的方式来统一处理数据、分析和AI。推荐阅读以下资源以深入了解:

参考资料

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

---END---