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)

>>> 原神启动!!!!

更多推荐