> 技术文档 > Xinference安装及部署大模型

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 pippip 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_downloadmodel_dir = snapshot_download(\'zhipuai/glm-4-9b-chat\',local_dir=\'/opt/chatglm-9b\')
  • 给权限然后下载,然后等待下载完成即可
chmod +x install.pypython 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 = 1openai_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)>>> 原神启动!!!!