STATUS.md
4.03 KB
当前状态总结
✅ 已完成
- Xinference 服务:正常运行(CPU 模式)
- API 测试:正常工作(http://localhost:9997)
- Python 环境:已配置(xinference conda 环境)
- 代码修复:所有脚本已更新
- GPU 设备:硬件正常(Tesla T4)
- NVIDIA 驱动:已安装(570.86.10)
❌ 当前问题
GPU 检测失败:Xinference worker 无法检测到 GPU
Worker cannot use the GPUs with these indexes: [0]
Worker can only see these GPUs: []
根本原因:缺少 nvidia-container-toolkit,Docker 容器无法正确暴露 GPU 给 Xinference
🔧 解决方案(三选一)
方案 1:安装 nvidia-container-toolkit(推荐,但需要网络)
当有网络时执行:
# 下载并安装 RPM 包(需要访问 GitHub 或 NVIDIA 镜像)
# 方法 A: 从 NVIDIA 仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed 's/\.//')
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | \
sudo tee /etc/yum.repos.d/nvidia-docker.repo
sudo yum install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
# 重启 Xinference
sudo docker stop xinference
sudo docker rm xinference
bash start.sh # 会自动使用 GPU
# 部署模型
python deploy_models.py
方案 2:使用 CPU 模式(当前可用,但速度慢)
立即可用:
# 使用 start.sh(CPU 模式)
bash start.sh
# 部署较小的模型(修改 deploy_models.py 中的模型大小)
# 将 model_size_in_billions=4 改为 model_size_in_billions=0
python deploy_models.py
# 或直接运行演示(使用默认小模型)
python ecommerce_demo.py
优点:
- ✅ 立即可用
- ✅ 无需额外配置
- ✅ 功能完整
缺点:
- ❌ 速度慢(10-50倍)
- ❌ 仅适合测试和演示
方案 3:等待网络恢复后安装
保存以下命令供后续使用:
# NVIDIA Container Toolkit 安装命令
# 保存到文件: ~/install_nvidia_toolkit_when_network_available.sh
#!/bin/bash
# AliLinux/RHEL8 安装脚本
# 1. 添加仓库
curl -s -L https://nvidia.github.io/nvidia-docker/rhel8/nvidia-docker.repo | \
sudo tee /etc/yum.repos.d/nvidia-docker.repo
# 2. 安装
sudo yum install -y nvidia-container-toolkit
# 3. 配置 Docker
sudo nvidia-ctk runtime configure --runtime=docker
# 4. 重启 Docker
sudo systemctl restart docker
# 5. 验证
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
📊 当前系统信息
# 硬件
GPU: Tesla T4 16GB
驱动: 570.86.10
# 软件
Docker: 26.1.3
Python: 3.10.19 (xinference 环境)
Xinference: 运行中(端口 9997/9998)
# 服务状态
API: http://localhost:9997 ✓
Dashboard: http://localhost:9998
🎯 推荐操作
立即可做:
# 使用 CPU 模式测试功能
# 1. 确保服务运行
curl http://localhost:9997/v1/models
# 2. 运行简单演示
cd /data/tw/SearchEngine/third-party/xinference
/home/tw/miniconda3/envs/xinference/bin/python ecommerce_demo.py --simple
后续优化:
- 等待网络恢复,安装 nvidia-container-toolkit
- 重启服务使用 GPU
- 部署 Qwen3 4B 模型
📝 已创建的文件
start_gpu_manual.sh- 手动 GPU 启动脚本(需要 nvidia-container-toolkit)install_nvidia_container_toolkit.sh- 自动安装脚本(不支持 AliLinux)README.md- 完整文档QUICKSTART.md- 快速开始ENV_SETUP.md- 环境配置
💡 技术说明
为什么需要 nvidia-container-toolkit?
Docker 容器需要通过 NVIDIA Container Runtime 来访问 GPU,这包括:
- NVIDIA 驱动库的映射
- GPU 设备的暴露
- CUDA 环境的配置
手动映射设备和库(我们尝试的方法)对于简单的容器可以工作,但 Xinference 使用 vLLM 引擎,它需要完整的 CUDA 运行时环境。
为什么 CPU 模式可以工作?
Xinference 支持降级到 CPU 模式,通过设置环境变量或自动检测。虽然速度慢,但功能完整。