Xinference作为一个集成度和完成度都相对比较完善的推理框架,但是其部署本地模型比较特殊,一下为本人的使用记录和教程
提前准备docker、模型文件
本次部署使用官方docker镜像进行部署
#拉取镜像
docker pull xprobe/xinference:latest
#模型假设放在/data/models下,运行镜像
docker run -itd --name xinference --gpus all -v /data/models:/xinference/models -e XINFERENCE_HOME=/root/models -p 9997:9997 xprobe/xinference:latest xinference-local -H 0.0.0.0
#进入容器查看模型是否在目录内并确定路径
docker exec -it xinference bash
cd /xinference/models&&ls因为xinference中已经有相应的大部分主流模型的注册,因此要想使用本地模型离线部署,需要手动设置json配置文件
#创建一个目录存放json
docker exec -it xinference bash && cd /xinference/models
mkdir xfjson && cd xfjson
#创建模型相应的js文件
vim bce-embedding-base_v1.json{
"model_name": "bce-embedding-base_v1-new",
"model_type": "embedding",
"model_format": "pytorch",
"dimensions": 1024,
"max_tokens": 512,
"language": ["zh"],
"model_specs": [
{
"model_id": "bce-embedding-base_v1-new",
"model_revision": "v1",
"model_format": "pytorch",
"quantization": "none",
"model_uri": "/xinference/models/bce-embedding-base_v1"
}
]
}#注册模型并启动
xinference register --model-type embedding --file bce-embedding-base_v1.json --persist
xinference launch --model-name bce-embedding-base_v1-new --model-type embedding
#查看模型是否启动成功
xinference list
nvidia-smi
同理,rerank模型也是同样操作、
js文件示例:
{
"model_name": "bge-reranker-v2-m3-new",
"model_type": "rerank",
"model_format": "pytorch",
"dimensions": 1024,
"max_tokens": 512,
"language": ["zh"],
"model_specs": [
{
"model_id": "bge-reranker-v2-m3-new",
"model_revision": "v1",
"model_format": "pytorch",
"quantization": "none",
"model_uri": "/xinference/models/bge-reranker-v2-m3"
}
]
}#注册模型并启动
xinference register --model-type rerank --file /xinference/models/xfjson/bge-reranker-v2-m3.json --persist
xinference launch --model-name bge-reranker-v2-m3-new --model-type rerank
评论区