本文目标:部署Xinference,并通过Xinference下载模型,在网页上体验推理效果。
一、安装
Xinference源码:github.com/xorbitsai/i… 安装比较简单,可以参考官网说明进行安装:inference.readthedocs.io/zh-cn/lates…
创建安装运行Xinference的conda环境。
新建环境:
conda create -n Xinf python==3.11
激活环境:
conda activate Xinf
安装Xinfenrence及所需依赖:
pip install "xinference[all]"
安装完毕后,可以查看下几个关键包的版本:
pip list # 查看包版本号,下面列出几个包以供参考
llama_cpp_python 0.2.83
sglang 0.1.17
transformers 4.42.4
xinference 0.13.2
二、使用
配置环境变量
默认情况下,Xinference 会使用 <HOME>/.xinference 作为主目录来存储一些必要的信息,比如日志文件和模型文件,其中 <HOME> 就是当前用户的主目录。
因为模型较大,建议配置下XINFERENCE_HOME变量,修改存储目录为数据盘路径。
实时修改生效,注意将“/data/xxx”修改为实际路径:
export XINFERENCE_HOME=/data/xxx/xinference
配置下载地址为国内的魔搭社区:
export XINFERENCE_MODEL_SRC=modelscope
编辑环境变量永久生效,可使用下面操作:
vi ~/.bash_profile
# 在文件最后添加下面内容,之后保存退出
export XINFERENCE_HOME=/data/xxx/xinference
export XINFERENCE_MODEL_SRC=modelscope
命令解释:~/.bash_profile中,“~”指当前用户home目录,一般是/home/xxx,“xxx”是你当前的用户名。前文的 <HOME>即/home/xxx。
修改~/.bash_profile文件,只改变当前登录用户的环境变量,如果要修改所有用户的环境变量,可以用root用户修改/etc/profile文件。
启动
cd /data/xxx/xinference;
nohup xinference-local --host 0.0.0.0 --port 9997 > run_xinference-local.log 2>&1 &
启动后,查看“运行日志”,
tail -n 100 -f run_xinference-local.log
# 如有下面日志,说明启动成功
2024-07-26 18:31:03,360 xinference.core.worker 227351 INFO Purge cache directory: /data/xxx/xinference/cache
2024-07-26 18:31:07,516 xinference.api.restful_api 227212 INFO Starting Xinference at endpoint: http://0.0.0.0:9997
2024-07-26 18:31:07,916 uvicorn.error 227212 INFO Uvicorn running on http://0.0.0.0:9997 (Press CTRL+C to quit)
从日志中,可以在“Uvicorn running on ”后,看到Xinference管理页面网址:“http://0.0.0.0:9997”
在浏览器上,打开该网页:
三、下载模型并推理
本次下载qwen2-instruct的7B模型
选择模型后,进入参数页面,填写参数大小等参数再点击启动。Model Size框显示“7(cached)”是因为,之前已经下载过该模型。
若未下载过模型,xinference在启动后会下载模型,因为在前面配置环境变量时,配置了从魔搭社区下载模型,此时xinference会去魔搭社区下载模型;若未配置,会从huggingface下载,此时可能会有网络问题。
模型下载时,可以在“启动日志中”观察到下载进度,模型较大的话,可能下载较慢,需要耐心等待:
模型下载完成后,可以在xinference存储目录下找到下载的模型:
ls modelscope/hub/qwen/Qwen2-7B-Instruct/
config.json merges.txt model-00004-of-00004.safetensors tokenizer.json
configuration.json model-00001-of-00004.safetensors model.safetensors.index.json vocab.json
generation_config.json model-00002-of-00004.safetensors README.md
LICENSE model-00003-of-00004.safetensors tokenizer_config.json
模型启动后,在Xinference管理页面中,可以看到启动的模型,如下图所示,可以在右边点击打开推理页面。
在上图打开推理页面后,可以进行推理
四、下载embedding模型
除了llm,xinference还可以加载其他模型,本次再演示embedding模型。如下图选择“bge-large-zh-v1.5”模型
选择参数后,启动模型,若未下载过,会下载模型
与第三部分,类似,启动后可以在挂历页面,看到启动的状态。