STATUS.md 4.03 KB

当前状态总结

✅ 已完成

  1. Xinference 服务:正常运行(CPU 模式)
  2. API 测试:正常工作(http://localhost:9997)
  3. Python 环境:已配置(xinference conda 环境)
  4. 代码修复:所有脚本已更新
  5. GPU 设备:硬件正常(Tesla T4)
  6. 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

后续优化

  1. 等待网络恢复,安装 nvidia-container-toolkit
  2. 重启服务使用 GPU
  3. 部署 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,这包括:

  1. NVIDIA 驱动库的映射
  2. GPU 设备的暴露
  3. CUDA 环境的配置

手动映射设备和库(我们尝试的方法)对于简单的容器可以工作,但 Xinference 使用 vLLM 引擎,它需要完整的 CUDA 运行时环境。

为什么 CPU 模式可以工作

Xinference 支持降级到 CPU 模式,通过设置环境变量或自动检测。虽然速度慢,但功能完整。