b401ef94
tangwang
third-party/xinfe...
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
# 当前状态总结
## ✅ 已完成
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 模式,通过设置环境变量或自动检测。虽然速度慢,但功能完整。
|