1717
18181 . 考虑到大模型对硬件资源,特别是显存(VRAM)的高要求。普通游戏本基本满足部署 7B(70 亿参数)级别模型所需的基本显存,但是想要更快的推理速度,** 推荐使用配备有高性能 NVIDIA 显卡的个人电脑(或者搭载 M 系列处理器的苹果电脑)或 GPU 服务器来完成此项目** 。
19192 . 目前 Docker 国内镜像源无法正常使用,慎选。有条件的同学请自行了解如何使用科学上网。
20- 3 . 想要通过考核,你至少要完成 ** Level 4** 。考核说明和提交要求详见:[ https://sdnuroboticsailab.github.io/others/2025-autumn-engineering-challenges/ ] ( https://sdnuroboticsailab.github.io/others/2025-autumn-engineering-challenges/ )
20+ 3 . 所有给出的脚本均** 作为参考** ,请根据实际情况进行调整。
21+ 4 . 想要通过考核,你至少要完成 ** Level 4** 。考核说明和提交要求详见:[ https://sdnuroboticsailab.github.io/others/2025-autumn-engineering-challenges/ ] ( https://sdnuroboticsailab.github.io/others/2025-autumn-engineering-challenges/ )
2122
2223## Level 0: 认识核心工具链
2324
@@ -117,7 +118,7 @@ WORKDIR /app
117118COPY requirements.txt .
118119
119120# 安装依赖 - 就像安装软件
120- RUN pip install --no-cache-dir -r requirements.txt
121+ RUN pip install flask
121122
122123# 复制应用代码
123124COPY app.py .
@@ -156,7 +157,7 @@ CMD ["python", "app.py"]
156157
157158### 任务目标:
158159
159- 1 . 安装NVIDIA驱动和CUDA(如果尚未安装)
160+ 1 . 安装NVIDIA驱动和CUDA(如果尚未安装),CUDA版本推荐12.4-12.6。
1601612 . 配置NVIDIA Container Toolkit
1611623 . 验证Docker容器可以访问GPU
162163
@@ -177,24 +178,28 @@ flowchart LR
177178nvidia-smi
178179
179180# 2. 安装NVIDIA Container Toolkit
180- distribution=$( . /etc/os-release; echo $ID$VERSION_ID )
181- curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
182- curl -s -L https://nvidia.github.io/nvidia-docker/$distribution /nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
181+ sudo apt-get update
182+ sudo apt-get install -y curl
183+ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
184+ curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
185+ sed ' s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
186+ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
183187
184188sudo apt-get update
185189sudo apt-get install -y nvidia-container-toolkit
186190
187191# 3. 重启Docker
192+ sudo nvidia-ctk runtime configure --runtime=docker
188193sudo systemctl restart docker
189194
190- # 4. 测试GPU访问
191- docker run --rm --gpus all nvidia/cuda:11.8 .0-base-ubuntu22 .04 nvidia-smi
195+ # 4. 测试GPU访问,注意请根据实际CUDA版本进行测试
196+ docker run --rm --gpus all nvidia/cuda:12.6 .0-base-ubuntu24 .04 nvidia-smi
192197```
193198
194199### 创建GPU测试Dockerfile:
195200
196201``` dockerfile
197- FROM nvidia/cuda:11.8 .0-cudnn8-runtime-ubuntu22 .04
202+ FROM nvidia/cuda:12.6 .0-base-ubuntu24 .04 nvidia-smi
198203
199204RUN apt-get update && apt-get install -y python3 python3-pip
200205
@@ -207,35 +212,52 @@ WORKDIR /app
207212CMD ["python3" , "gpu_test.py" ]
208213```
209214
215+ 请自行编写 ` gpu_test.py ` 。测试内容包括但不限于:
216+
217+ - 是否正常运行
218+
219+ - torch 是否可以检测到 CUDA 和正确的 GPU 数量
220+ ``` python
221+ # 参考脚本
222+ import torch
223+
224+ print (f " torch.cuda.is_available(): { torch.cuda.is_available()} " )
225+ print (f " torch.cuda.device_count(): { torch.cuda.device_count()} " )
226+ print (f " os.environ['CUDA_VISIBLE_DEVICES']: { os.environ[' CUDA_VISIBLE_DEVICES' ]} " )
227+ ```
228+
229+ - 进行简单的张量创建和移动、矩阵运算等,检测是否成功。
230+
210231### 提交截图:
211232
212- - ` nvidia-smi ` 命令在容器内正常运行
213- - PyTorch能够检测到GPU设备
214- - 显示正确的GPU型号和显存信息
233+ - ` nvidia-smi ` 和 ` nvcc -V ` 命令在容器内正常运行
234+ - 测试脚本 ` gpu_test.py `
235+ - 测试结果,比如PyTorch能够检测到GPU设备,显示正确的GPU型号和显存信息等
215236
216237### 参考文档:
217238
218239- NVIDIA Container Toolkit安装:[ Installation Guide — NVIDIA Container Toolkit] ( https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html )
219240- Docker GPU支持:[ GPU support | Docker Docs] ( https://docs.docker.com/config/containers/resource_constraints/#gpu )
220241- CUDA兼容性:[ CUDA Compatibility :: NVIDIA Data Center GPU Driver Documentation] ( https://docs.nvidia.com/deploy/cuda-compatibility/ )
242+ - WSL2+Docker配置CUDA环境:[ https://blog.csdn.net/m0_63070489/category_12565087.html ] ( https://blog.csdn.net/m0_63070489/category_12565087.html )
221243
222244!!! note "笔记"
223245
224246 如果没有NVIDIA GPU,可以跳过此步骤,但后续模型推理速度会明显降低。Apple Silicon Mac用户可以使用Metal Performance Shaders (MPS) 作为替代。
225247
226248## Level 3:使用Docker部署vLLM推理服务
227249
228- 现在让我们部署vLLM —— 这个为大语言模型而生的高性能推理引擎!vLLM的PagedAttention技术能够让模型推理速度提升2 -4倍。
250+ 现在让我们部署vLLM —— 这个为大语言模型而生的高性能推理引擎!vLLM的 PagedAttention 技术能够让模型推理速度提升2 -4倍。
229251
230252### 任务目标:
231253
232- 1 . 使用Docker部署vLLM服务
233- 2 . 测试vLLM的OpenAI兼容API
254+ 1 . 使用 Docker 部署 vLLM 服务
255+ 2 . 测试 vLLM 的 OpenAI 兼容API
234256
235257### 创建vLLM服务的Dockerfile:
236258
237259``` dockerfile
238- FROM nvidia/cuda:11.8 .0-cudnn8-runtime-ubuntu22 .04
260+ FROM nvidia/cuda:12.6 .0-base-ubuntu24 .04 nvidia-smi
239261
240262# 安装Python和必要的系统依赖
241263RUN apt-get update && apt-get install -y \
0 commit comments