操作系统:Linux / macOS / Windows(WSL2)
Docker:版本 ≥ 20.10
GPU 支持(可选):需安装 NVIDIA Container Toolkit
bash复制
# 检查 Docker 是否正常运行
docker --version
docker run hello-world
bash复制
docker pull xprobe/xinference:latest
仅 CPU 模式:
bash复制
docker run -d -p 9998:9998 --name xinference xprobe/xinference:latest
启用 GPU 加速(需 NVIDIA 驱动):
bash复制
docker run -d --gpus all -p 9998:9998 --name xinference xprobe/xinference:latest
访问 Web UI:http://localhost:9998,若看到管理界面则部署成功。
进入容器内部操作:
bash复制
docker exec -it xinference bash
启动常用模型:
bash复制
# 启动 Rerank 模型(如 bge-reranker-large)
xinference launch --model-name bge-reranker-large --model-type rerank
# 启动 Embedding 模型(如 bge-large-en)
xinference launch --model-name bge-large-en --model-type embedding
# 启动 LLM(如 Llama3-8B)
xinference launch --model-name llama-3-8b-instruct --model-type LLM --size-in-billions 8 --quantization 4
直接通过 REST API 动态加载模型:
bash复制
# 启动 Rerank 模型
curl -X POST "http://localhost:9998/v1/models" \
-H "Content-Type: application/json" \
-d '{
"model_type": "rerank",
"model_name": "bge-reranker-large",
"model_format": "pytorch"
}'
bash复制
curl "http://localhost:9998/v1/models"
Python复制
import requests
# 调用 Rerank 接口
response = requests.post(
"http://localhost:9998/v1/rerank",
json={
"model": "bge-reranker-large",
"query": "如何学习机器学习?",
"documents": [
"机器学习需要掌握数学基础",
"深度学习框架的使用教程",
"Python 编程入门指南"
],
"top_k": 2
}
)
print(response.json())
# 输出示例:,]}
Python复制
from xinference.client import Client
client = Client("http://localhost:9998")
model = client.get_model("bge-large-en")
embeddings = model.embed("Hello, world!")
print(embeddings.shape) # 输出:(1024,)
将本地模型文件映射到容器中:
bash复制
docker run -d -p 9998:9998 \
-v /path/to/local/models:/root/.xinference/models \
xprobe/xinference:latest
为容器分配指定 GPU 资源:
bash复制
docker run -d --gpus '"device=0,1"' -p 9998:9998 \
-e NVIDIA_VISIBLE_DEVICES=0,1 \
xprobe/xinference:latest
限制 CPU 和内存使用:
bash复制
docker run -d -p 9998:9998 \
--cpus 4 \
--memory 16g \
xprobe/xinference:latest
现象:日志报错 Could not load library libcudnn.so 解决:
bash复制
# 确保宿主机已安装 NVIDIA 驱动
nvidia-smi
# 重新安装 NVIDIA Container Toolkit
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ $distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
现象:ERROR: Failed to download model from Hugging Face 解决:
bash复制
# 手动下载模型到宿主机目录
git lfs install
git clone https://huggingface.co/BAAI/bge-reranker-large /path/to/local/models
# 重新启动容器并挂载目录
docker run -d -p 9998:9998 -v /path/to/local/models:/root/.xinference/models xprobe/xinference:latest
现象:Bind for 0.0.0.0:9998 failed: port is already allocated 解决:
bash复制
# 查找占用端口的进程
sudo lsof -i :9998
# 停止冲突进程或修改映射端口
docker run -d -p 9999:9998 xprobe/xinference:latest
yaml复制
version: '3'
services:
xinference:
image: xprobe/xinference:latest
ports:
- "9998:9998"
deploy:
resources:
limits:
cpus: '4'
memory: 16G
bash复制
docker run -d -p 443:9998 \
-v /etc/ssl/certs:/etc/ssl/certs \
xprobe/xinference:latest --tls-certfile=/etc/ssl/certs/server.crt --tls-keyfile=/etc/ssl/certs/server.key
通过以上步骤,您可以在本地快速部署功能完整的 Xinference 服务,支持 RAG 系统中的多模型协作。
Copyright © 2002-2022 http://www.shanyinke.com |
备案号:浙ICP备17002154号-3 Powered by: myarticle.com.cn Version 1.0dev
|