文章目录
- DeepSeek 部署过程中的问题
- 一、部署扩展:docker 部署 DS
- 1.1 部署
- 1.2 可视化
- 二、问题
- 三、GPU 设置
- 3.1 ollama GPU 的支持情况
- 3.2 更新 GPU 驱动
- 3.3 安装 cuda
- 3.4 下载 cuDNN
- 3.5 配置环境变量
- 四、测试
DeepSeek 部署过程中的问题
Windows 中 利用 ollama 来搭建 deepseek R1-CSDN博客
一、部署扩展:docker 部署 DS
1.1 部署
在上文Windows 中 利用 ollama 来搭建 deepseek R1-CSDN博客中,我们使用Windows直接部署ollama,当然我们也可以使用docker来进行ollama的部署。 hub.docker.com/r/ollama/ollama
Docker安装到入门_deping 覆盖安装docker-CSDN博客
部署命令:
docker run -d --gpus=all -v ollama:/root/.ollama -p 9000:11434 -e OLLAMA_ORIGINS=* --restart always --name ollama ollama/ollama # 在容器内部运行ollamadocker exec -it ollama ollama run deepseek-r1:7b # 运行模型
命令运行后:
我们发现,ollama环境已被我们创建。
查看本地能否访问,并且在容器内部是否运行
开始部署大模型
1.2 可视化
我们创建的模型也可以在Chatbox网站进行调用Chatbox,而不是使用 docker 部署 web UI,这样过于浪费系统资源
二、问题
在我们运行deepseek-r1:7b
,使用它生成内容时,会发现CPU被严重占用,这里我是使用 wsl 布置的 docker 容器,并且在容器中运行大模型。因此,ollama 其默认并没有使用 GPU 来运行 Deepseek,其是使用 CPU,来运行。
而,GPU 却处于闲置的状态,而我们通过ollama list
看到的processor
:
同时,结合torch
库的检测
我们可以断定,cuda
不能运行,我们需要配置cuda
三、GPU 设置
3.1 ollama GPU 的支持情况
ollama-doc/ollama/docs/Ollama 对GPU 支持信息.md at main · qianniucity/ollama-doc · GitHub
Compute Capability | Family | Cards |
---|---|---|
9.0 | NVIDIA | H100 |
8.9 | GeForce RTX 40xx | RTX 4090 RTX 4080 RTX 4070 Ti RTX 4060 Ti |
NVIDIA Professional | L4 L40 RTX 6000 | |
8.6 | GeForce RTX 30xx | RTX 3090 Ti RTX 3090 RTX 3080 Ti RTX 3080 RTX 3070 Ti RTX 3070 RTX 3060 Ti RTX 3060 |
NVIDIA Professional | A40 RTX A6000 RTX A5000 RTX A4000 RTX A3000 RTX A2000 A10 A16 A2 | |
8.0 | NVIDIA | A100 A30 |
7.5 | GeForce GTX/RTX | GTX 1650 Ti TITAN RTX RTX 2080 Ti RTX 2080 RTX 2070 RTX 2060 |
NVIDIA Professional | T4 RTX 5000 RTX 4000 RTX 3000 T2000 T1200 T1000 T600 T500 | |
Quadro | RTX 8000 RTX 6000 RTX 5000 RTX 4000 | |
7.0 | NVIDIA | TITAN V V100 Quadro GV100 |
6.1 | NVIDIA TITAN | TITAN Xp TITAN X |
GeForce GTX | GTX 1080 Ti GTX 1080 GTX 1070 Ti GTX 1070 GTX 1060 GTX 1050 | |
Quadro | P6000 P5200 P4200 P3200 P5000 P4000 P3000 P2200 P2000 P1000 P620 P600 P500 P520 | |
Tesla | P40 P4 | |
6.0 | NVIDIA | Tesla P100 Quadro GP100 |
5.2 | GeForce GTX | GTX TITAN X GTX 980 Ti GTX 980 GTX 970 GTX 960 GTX 950 |
Quadro | M6000 24GB M6000 M5000 M5500M M4000 M2200 M2000 M620 | |
Tesla | M60 M40 | |
5.0 | GeForce GTX | GTX 750 Ti GTX 750 NVS 810 |
Quadro | K2200 K1200 K620 M1200 M520 M5000M M4000M M3000M M2000M M1000M K620M M600M M500M |
3.2 更新 GPU 驱动
首先使用nvidia-smi
,查看版本信息。
也可以在控制面板查看版本信息,
如果没有把 NVIDIA 驱动更新到最新版,则需要在:
Download The Official NVIDIA Drivers | NVIDIA
3.3 安装 cuda
下载CUDA Toolkit:CUDA Toolkit 12.8 Downloads | NVIDIA Developer
3.4 下载 cuDNN
CUDA Deep Neural Network (cuDNN) | NVIDIA Developer
选择与 CUDA 版本兼容的 cuDNN 版本进行下载。
- 安装 cuDNN:
- Windows:解压下载的 cuDNN 文件,将其中的
bin
、include
和lib
文件夹中的文件复制到 CUDA 安装目录对应的文件夹中。 - Linux:解压下载的 cuDNN 文件,将其中的文件复制到 CUDA 安装目录。
- Windows:解压下载的 cuDNN 文件,将其中的
使用nvcc -v
查看信息
3.5 配置环境变量
CUDA_SDK_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
环境变量配置完记得重启
而后cmd运行:
cd "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\extras\demo_suite"bandwithTest.exe
deviceQuery.exe
第一个运行结果:
第二个运行结果:
配置完后,一定要记得重启。
四、测试
首先,我们使用torch测试:
发现可以检测到cuda
的存在
其次,我们运行模型,先部署1.5b
的蒸馏模型:
docker exec -it ollama
ollama run deepseek-r1:1.5b # /bye # 在进入终端聊天界面后,退出界面
ollama ps
可以发现,其GPU
是100%
占用的
而,我们运行7b
的蒸馏模型时:
ollama stop deepseek-r1:1.5b
ollama run deepseek-r1:7b# /bye # 在进入终端聊天界面后,退出界面
ollama ps
发现和原来是一样的,因此我推测,由于7b
的模型太大,ollama 会自动调用CPU
的资源,GPU
没有问题
我们使用nvidia-smi
进行GPU资源判断时:
当模型没有被调用时:
当模型被调用时:
发现 CPU 被调用了 82% ,但是 GPU 被调用了,但是调用的不多,虽然才 31%。
这可能是因为 ollama 模型本身的问题:ollama 的速度还不错,但受限于本地硬件配置。在MacBook、PC和边缘设备上运行小型模型时表现良好,不过遇到超大模型就有些力不从心了。
Ollama则是一个轻量级、易上手的框架,让在本地电脑上运行开源大语言模型变得更加简单。VLLM是一款经过优化的推理引擎,在令牌生成速度和内存管理效率上表现出色,是大规模AI应用的理想之选。