Xinference实战指南:全面解析LLM大模型部署流程

2024-08-16 15:30:30 浏览数 (2)

  • Xinference功能特点:
    • 模型推理:大语言模型,语音识别模型,多模态模型的部署流程被大大简化。一个命令即可完成模型的部署工作。
    • 前沿模型:框架内置众多中英文的前沿大语言模型,包括 baichuan,chatglm2 等,一键即可体验!内置模型列表还在快速更新中!
    • 异构硬件:通过 ggml,同时使用你的 GPU 与 CPU 进行推理,降低延迟,提高吞吐!
    • 接口调用:提供多种使用模型的接口,包括 OpenAI 兼容的 RESTful API(包括 Function Calling),RPC,命令行,web UI 等等。方便模型的管理与交互。
    • 集群计算,分布协同: 支持分布式部署,通过内置的资源调度器,让不同大小的模型按需调度到不同机器,充分使用集群资源。
    • 开放生态,无缝对接: 与流行的三方库无缝对接,包括 LangChain,LlamaIndex,Dify、FastGPT、RAGFlow、Chatbox。

    Xinference 默认是从 HuggingFace 上下载模型,如果需要使用其他网站下载模型,可以通过设置环境变量XINFERENCE_MODEL_SRC来实现,使用以下代码启动 Xinference 服务后,部署模型时会从 Modelscope[5] 上下载模型:

代码语言:javascript复制
XINFERENCE_MODEL_SRC=modelscope xinference-local

1.7 模型独占 GPU

在 Xinference 部署模型的过程中,如果你的服务器只有一个 GPU,那么你只能部署一个 LLM 模型或多模态模型或图像模型或语音模型,因为目前 Xinference 在部署这几种模型时只实现了一个模型独占一个 GPU 的方式,如果你想在一个 GPU 上同时部署多个以上模型,就会遇到这个错误:laipuhuo.com No available slot found for the model。

1.8 管理模型

除了启动模型,Xinference 提供了管理模型整个生命周期的能力。同样的,你可以使用命令行:

代码语言:javascript复制
列出所有 Xinference 支持的指定类型的模型:
	xinference registrations -t LLM
列出所有在运行的模型:
	xinference list
停止某个正在运行的模型:
	xinference terminate --model-uid "qwen2"
	
	
	
	conda create --name xinference python=3.11
conda activate xinference 
以下两条命令在安装 Xinference 时,将安装 Transformers 和 vLLM 作为 Xinference 的推理引擎后端:

pip install "xinference"
pip install "xinference[ggml]"
pip install "xinference[pytorch]"

#安装xinference所有包
pip install laipuhuo.com "xinference[all]"


pip install "xinference[transformers]" -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install "xinference[vllm]" -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install "xinference[transformers,vllm]" # 同时安装
#或者一次安装所有的推理后端引擎
pip install "xinference[all]" laipuhuo.com -i https://pypi.tuna.tsinghua.edu.cn/simple

如果你想使用 GGML 格式的模型,建议根据当前使用的硬件手动安装所需要的依赖,以充分利用硬件的加速能力。
在 Xinference 安装过程中,有可能会安装 PyTorch 的其他版本(其依赖的 vllm[3] 组件需要安装),从而导致 GPU 服务器无法正常使用,因此在安装完 Xinference 之后,可以执行以下命令看 PyTorch 是否正常:

0 人点赞