当前位置:AIGC资讯 > AIGC > 正文

Xinference安装及部署大模型

1. Xinference 介绍

Xorbits Inference (Xinference) 是一个开源平台,用于简化各种 AI 模型的运行和集成。借助 Xinference,您可以使用任何开源 LLM、嵌入模型和多模态模型在云端或本地环境中运行推理,并创建强大的 AI 应用,简单的讲就是部署大模型的应用,至于场景嘛,就是当我们自己使用本地模型的时候,切换起来方便。

2. 环境说明

**系统:**Ubuntu 22.04.4 LTS

**python版本:**Python 3.10.14

本文使用conda虚拟python环境

# 创建一个环境
conda create -n Xinference python=3.10.14 
# 激活环境
conda activate Xinference

3. 安装Xinference环境

1> 配置清华源

目的是为了快一点,如果你要是能直接练到魔法网络,那也可以不用配置!

ps:本文都加了-i https:xxx的参数,目的很明确,就是怕网络不通,配置好的请忽略。

# 配置
python -m pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 单次使用清华源进行升级
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip

2> 安装大模型需要使用到的所有依赖

# 直接执行
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "xinference[all]"

**3> 测试一下能不能用PyTorch **

python -c "import torch; print(torch.cuda.is_available())"

要是出现什么module没有了的问题,没有那个你就下载那个,因为新激活的环境touch肯定没有,所以需要下载

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch

4> 可能会遇到在安装"xinference[all]"的时候出现什么Llama.cpp的包下载不下来的问题

这里你就别在折腾了,直接到官网下载whl文件,然后通过本地安装的方式就可以!

**Llama.cpp地址:**https://github.com/abetlen/llama-cpp-python/releases

版本呢,有很多,看报错信息需要那个版本

cp310是python版本3.10别搞错了,本文安装的是这个:llama_cpp_python-0.2.88-cp310-cp310-linux_x86_64.whl

# 假设llama_cpp_python-0.2.88-cp310-cp310-linux_x86_64.whl在当前目录下
pip install llama_cpp_python-0.2.88-cp310-cp310-linux_x86_64.whl

4. 启动

在以上操作正确的安装完成后,就可以执行本地启动了

# 前台
xinference-local --host 0.0.0.0 --port 9997

# 后台
nohup xinference-local --host 0.0.0.0 --port 9997 & > output.log

5.Xinference安装完毕,打开前台

找个浏览器,然后输入你部署的服务器的ip地址加端口

6.大模型下载

大模型部署需要你先下载个模型,本文部署的是glm-4-9b-chat

**魔塔社区地址:**https://www.modelscope.cn/models/zhipuai/glm-4-9b-chat

安装modelscope模块
pip install modelscope
写一个install.py文件
vim install.py

#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('zhipuai/glm-4-9b-chat',local_dir='/opt/chatglm-9b')
给权限然后下载,然后等待下载完成即可
chmod +x install.py
python install.py

7.打开Xinference,然后进行部署

1> 按照操作顺序点一下

2> 然后有一些参数需要配置

**Model Engine:**部署方式

Model Formate: 部署格式

**Model Size:**模型的参数量大小,这里只有9b

**Quantization:**量化精度

**N-GPU:**选择使用第几个 GPU

点开Optional Configuations,还有一些参数

**Model UID:**模型的名字,后续可能会用到哦,所以不能乱改

**GPU IDX:**GPU的序号数,有几个GPU从0开始排序,比如两个GPU,那就是0,1,我有4个,所以就0,1,2,3

**DownloadHub:**以及提前下载好了模型,所以选择NONE

**ModelPath:**模型地址,就是我们刚才下载的地址!/opt/chatglm-9b


然后点击下面的小火箭!刺溜一下!ok,如果退出了当前页面,那就代表部署好了!

8.看看占用率

nvidia-smi

9.彩蛋!

xinference提供了标准的OpenAI接口,可以在:http://127.0.0.1:9997/docs部署的/docs下查看

使用langchain调用一下,这个模型。

安装包

pip install langchain_openai

然后编写程序

from langchain_openai import ChatOpenAI
#
openai_api_base = 'http://127.0.0.1:9997/v1/'
# 说明model的值是上面部署模型的时候Model UID的值!错了就会找不到哦!
model = "glm-4-9b"
temperature = 1
openai_api_key = "EMPTY"

llm = ChatOpenAI(openai_api_base=openai_api_base,
                     model=model,
                     temperature=temperature,
                     openai_api_key=openai_api_base)

res = llm.invoke("""请问你原不原?""")

print(res.content)

>>> 原神启动!!!!

总结

### 文章总结:Xinference平台部署与使用指南
**Xinference** 是一个开源平台,用于方便地运行和集成各类AI模型,包括LLM、嵌入模型及多模态模型,支持云端及本地环境部署大模型应用,简化了模型切换和集成的复杂度。
**环境准备**:
- 系统:Ubuntu 22.04.4 LTS
- Python版本:Python 3.10.14,推荐使用conda虚拟环境。
**安装步骤**:
1. **创建并激活conda环境**:
- `conda create -n Xinference python=3.10.14`
- `conda activate Xinference`
2. **配置环境**:
- 升级pip并配置清华源加快后续安装速度。
- 安装Xinference及其全部依赖:`pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "xinference[all]"`
3. **检查PyTorch环境**:
- 运行`python -c "import torch; print(torch.cuda.is_available())"`,确保CUDA支持可用。
4. **处理特殊依赖**:
- 如遇到Llama.cpp包下载问题,直接从官网下载对应版本的whl文件本地安装。
**启动Xinference服务**:
- 前台启动:`xinference-local --host 0.0.0.0 --port 9997`
- 后台运行:`nohup xinference-local --host 0.0.0.0 --port 9997 &> output.log`
**大模型下载与部署**:
1. **下载模型**:
- 安装modelscope模块,并通过`snapshot_download`方法下载`glm-4-9b-chat`模型。
2. **部署模型**:
- 在Xinference界面中配置模型参数,包括部署方式、格式、量化精度、GPU设置等。
- 设置模型路径及UID,点击部署。
3. **检查GPU使用情况**:
- 使用`nvidia-smi`命令查看GPU占用率。
**使用OpenAI接口**:
- Xinference提供了符合OpenAI标准的API接口,可在`http://127.0.0.1:9997/docs`查看文档。
- 使用langchain调用部署的模型,通过定制化脚本实现与AI模型的交互。
本指南详细描述了从环境准备到模型部署及API调用的整个过程,为使用Xinference平台快速部署和测试AI模型提供了全面的支持。

更新时间 2024-08-23