# 探索Xorbits Inference:如何在本地或分布式环境中部署和服务LLM与多模态模型
## 引言
在AI日益发展的今天,能够轻松部署和服务大规模语言模型(LLM)以及多模态模型的工具变得尤为重要。Xorbits Inference(简称Xinference)正是为了这一目的而设计的强大库。无论是在您的笔记本电脑上还是在分布式集群中,您都可以轻松管理和服务最新的模型。本文将介绍Xinference的安装、使用,以及其在LangChain中的集成。
## 主要内容
### 1. 安装和设置
要开始使用Xinference,您需要首先通过pip从PyPI安装它:
```shell
pip install "xinference[all]"
2. 模型支持
Xinference支持多种兼容GGML的模型,如chatglm、baichuan、whisper、vicuna和orca。如需查看内置模型列表,可以运行以下命令:
xinference list --all
3. Xinference的部署方式
本地实例
在本地运行Xinference非常简单,只需执行:
xinference
这样就可以在本地访问模型管理端点,通常是http://localhost:9997
。
分布式集群部署
对于分布式环境,首先在您计划作为主控服务器的机器上启动Xinference supervisor:
xinference-supervisor -H "${supervisor_host}"
然后,在您计划运行工作节点的其他服务器上启动Xinference worker:
xinference-worker -e "http://${supervisor_host}:9997"
在集群部署模式下,使用的端点将会是http://${supervisor_host}:9997
。
4. 启动模型
启动模型可以通过指定模型名称和其他属性(如模型大小和量化)来实现。例如,使用CLI启动一个名为orca的模型:
xinference launch -n orca -s 3 -q q4_0
上面的命令会返回一个模型UID,用于后续调用。
代码示例
下面是使用LangChain与Xinference集成的Python示例:
from langchain_community.llms import Xinference
# 替换 {model_uid} 为启动模型时返回的模型UID
llm = Xinference(
server_url="http://0.0.0.0:9997", # 使用API代理服务提高访问稳定性
model_uid="{model_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代理服务以提高访问的稳定性。
- 模型启动失败: 确保您的机器有足够的资源和正确的依赖库安装。检查模型参数,例如大小和量化配置。
总结与进一步学习资源
Xinference提供了一种在本地和分布式环境中管理和服务模型的灵活方式。通过与LangChain的结合,您可以进一步扩展其功能与应用。有关更多信息和用例,请参考Xinference的官方文档和LangChain社区资源。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---