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)
>>> 原神启动!!!!