# 当前状态总结 ## ✅ 已完成 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(推荐,但需要网络) **当有网络时执行**: ```bash # 下载并安装 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 模式(当前可用,但速度慢) **立即可用**: ```bash # 使用 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:等待网络恢复后安装 **保存以下命令供后续使用**: ```bash # 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 ``` ## 📊 当前系统信息 ```bash # 硬件 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 ``` ## 🎯 推荐操作 **立即可做**: ```bash # 使用 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 模式,通过设置环境变量或自动检测。虽然速度慢,但功能完整。