把 DeepSeek1.5b 部署在显卡小于4G的电脑上
这里写自定义目录标题
- 介绍
- 准备
- 安装 Ollama
- 查看CUDA需要版本
- 安装CudaToolkit
- 检查Cuda是否装好
- 设置Ollama环境变量
- 验证是否跑在GPU上
- ollama如何导入本地下载的模型
- 安装及配置docker
- 安装open-webui
- 启动open-webui
- 开始对话
- 调整gpu精度
介绍
Deepseek1.5b能够运行在只用cpu和gpu内存小的情况下,经过试用,电脑只使用cpu是很慢的。
在实际使用过程中,我发现使用cpu和gpu是有区别的,使用gpu会出现答非所问的情况,发现默认情况下,GPU可能会使用半精度浮点数(float16)来加速计算,这可能会影响模型的准确性。尝试将精度改为单精度浮点数(float32)。修改后回答正常符合预期.
准备
Docker Desktop Installer.exe
open-webui
DeepSeek-R1-Distill-Qwen-1.5B
OllamaSetup
CUDA
其中OllamaSetup下载慢,需要网盘下载
模型从modelscope下载
open-webui从gitee下载2
安装 Ollama
Ollama 的官方网站下载很慢,最好从百度网盘下载
安装完成后,打开命令行界面并输入
ollama
命令。如果屏幕上出现以下提示信息,那么恭喜你,Ollama 已经成功安装。
查看CUDA需要版本
查看当前显卡驱动中的cuda版本
有两种方法:
1. 使用控制台命令查看。
nvidia-smi 是 NVIDIA 提供的用于监控 GPU 状态的工具,也可以用来检查 CUDA 的版本。
该命令会显示 GPU 的状态和性能信息,包括驱动程序版本和 CUDA 版本。
nvidia-smi
查看显卡驱动的cuda版本
2.通过nvdia控制面板查看。桌面右键打开nvdia控制面板
查看显卡驱动的cuda版本
安装CudaToolkit
CudaToolkit版本 不能大于 上面的显卡Cuda版本。
Cuda各版本下载地址:https://developer.nvidia.com/cuda-toolkit-archive
Cuda安装
检查Cuda是否装好
nvcc 是 CUDA 的编译器工具,可以用来检查 CUDA 的版本信息。输入以下命令:
nvcc --version
如果 CUDA 安装成功,该命令会返回 CUDA 的版本信息:
设置Ollama环境变量
这里略去Ollama安装过程。
Ollama安装好后,为了让推理跑在GPU上,可以按照如下步骤 设置环境变量:
在“系统变量”中,点击“新建”按钮。
添加以下环境变量:
变量名:OLLAMA_GPU_LAYER
变量值:cuda
如果需要指定特定的 GPU,可以添加以下环境变量:
变量名:CUDA_VISIBLE_DEVICES
变量值:GPU的UUID(按编号有时找不到,所以使用UUID)
在控制台输入nvidia-smi -L,即可查看GPU的UUID
可以在命令行中使用set命令
set OLLAMA_GPU_LAYER="cuda"
nvidia-smi -L
set CUDA_VISIVLE_DEVICES="UUID"
获取GPU的UUID
设置好后的效果如图:
设置环境变量,让Ollama调用指定GPU
验证是否跑在GPU上
在推理时使用Ollama ps即可查看负载情况:
ollama ps
我的显存是12G。
使用8b模型推理时,GPU显存够用,所以是100% GPU。
使用14b模型推理时,为避免显存爆掉,系统会自动将一部分分给CPU运行。这里是6%CPU,94%GPU
具体的分配可以看Log
将Log内容贴在AI中进行分析
可能会遇到的问题
如果是先装了Ollama,再装cuda,可能会出现这种情况:
按照上面设置后,控制台使用Ollama ps 显示GPU是主要负载,但是任务管理器中看到的却是GPU没怎么跑,CPU占用很高。
解决办法是:重装一下Ollama。 或者在任务栏的Ollama图标上 右键点击Update即可自动重装并更新至新版本。
ollama如何导入本地下载的模型
git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B.git
下载模型文件
在模型所在目录创建一个Modelfile
Modelfile内容示例:
FROM ./DeepSeek-R1-Distill-Qwen-1.5B
在模型所在目录进入cmd,执行
ollama create qwen2:7b -f Modelfile
如果提示找不到模型,进入模型文件夹继续上一步,Tab键可以输入部分名称后补全
安装及配置docker
1 docker安装后升级到最新,不需要注册直接跳过
2 如果不报错但不能正常启动没显示"Engine running",先启动"Docker Desktop Service"
3需要添加国内源,不然非常慢
在"设置"页面的"Docker Engine"即可配置
{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com","https://mirror.ccs.tencentyun.com","https://registry.cn-hangzhou.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}
点击"Apply",如果不能正常启动,说明输入有误,不能省略https,注意标点
安装open-webui
如图运行该命令,在readme.md文件中找
注意需要替换源加快速度,否则等一晚上也不行
启动open-webui
如图所示安装好是这样的,如果报错需要在设置中升级docker,如果点进去报错修改半天也没用,升级就好
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
开始对话
在界面的左上角选择您的 DeepSeek R1 大模型,之后便可开始对话。
注意这是任务管理器中是cpu在跑还是gpu在跑
调整gpu精度
**要在Windows 10上使用Ollama时将GPU的默认浮点计算从float16改为float32,您需要在运行模型之前设置相应的环境变量或直接在代码中进行配置。**以下是一些常见的操作方法:
方法一:设置环境变量
对于许多深度学习框架,可以通过设置环境变量来改变默认的浮点精度。在命令行中执行以下命令:
set CUDA_VISIBLE_DEVICES=0 # 指定使用哪个GPU(例如,0表示第一个GPU)
set TF_FORCE_GPU_ALLOW_GROWTH=true # 允许GPU内存按需增长
set TF_FP32_CONVOLUTIONS=1 # 对于TensorFlow,强制使用float32进行卷积操作
set TF_ENABLE_ONEDNN_OPTS=0 # 禁用OneDNN优化,有时这会影响到精度设置
然后运行您的Ollama脚本。
注意:
GTX 1650支持float16和float32计算,但float16通常用于加速计算。在某些情况下,使用float32可能会降低性能,但可以提高数值稳定性。