把 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可能会降低性能,但可以提高数值稳定性。
相关文章:
把 DeepSeek1.5b 部署在显卡小于4G的电脑上
这里写自定义目录标题 介绍准备安装 Ollama查看CUDA需要版本安装CudaToolkit检查Cuda是否装好设置Ollama环境变量验证是否跑在GPU上ollama如何导入本地下载的模型安装及配置docker安装open-webui启动open-webui开始对话 调整gpu精度 介绍 Deepseek1.5b能够运行在只用cpu和gpu内…...
A4988一款带转换器和过流保护的 DMOS 微步驱动器的使用方式
A4988是一款带转换器和过流保护的 DMOS 微步驱动器,用于驱动双极步进电动机。它支持全、半、1/4、1/8 及 1/16 步进模式,输出驱动性能可达 35 V 及 2 A。其特点包括简单的步进和方向控制接口、可调电位器调节最大电流输出、自动电流衰减模式检测/选择以及…...
一口井深7米,一只蜗牛从井底往上爬每天爬3米掉下去1米,问几天能爬上井口?
一个井深7米,一只蜗牛从井底往上爬每天爬3米掉下去1米,问几天能爬上井口? 1. 通用解法 构建一个通用的解法,适用于任何井深和蜗牛的爬升、下滑距离。 问题描述: 井深为 H H H 米。蜗牛每天向上爬升 U U U 米。每…...
Asp.Net Core MVC 中级开发教程
Asp.Net Core MVC 中级开发教程 一、Asp.Net Core Mvc 区域使用 ASP.NET Core MVC的Areas使用整理 - 天马3798 - 博客园 二、Asp.Net Core 路径处理 Asp.Net Core Web相对路径、绝对路径整理 Asp.Net Core获取当前上下文对象 三、Asp.Net Core 服务使用和封装 四、Asp.Net …...
Windows上安装Go并配置环境变量(图文步骤)
前言 1. 本文主要讲解的是在windows上安装Go语言的环境和配置环境变量; Go语言版本:1.23.2 Windows版本:win11(win10通用) 下载Go环境 下载go环境:Go下载官网链接(https://golang.google.cn/dl/) 等待…...
C++效率掌握之STL库:string底层剖析
文章目录 1.学习string底层的必要性2.string类对象基本函数实现3.string类对象的遍历4.string类对象的扩容追加5.string类对象的插入、删除6.string类对象的查找、提取、大小调整7.string类对象的流输出、流提取希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力…...
【Erdas实验教程】004:影像镶嵌拼接
文章目录 一、实验目标二、实验数据三、实验过程一、实验目标 掌握具有坐标系且有重叠的多个影像的镶嵌。 二、实验数据 本实验数据为2景landsat TM影像和1景mss影像,如下所示: 数据获取方式:订阅专栏后,从私信查收。 三、实验过程 (1)启动镶嵌工具 在erdas中,常用…...
SpringMVC 请求参数接收
目录 请求 传递单个参数 基本类型参数传递 未传递参数 ?传递参数类型不匹配 传递多个参数 传递对象 后端参数重命名 传递数组 传递集合 传递JSON数据 JSON是什么 JSON的优点 传递JSON对象 获取URL中的参数 文件上传 在浏览器与程序进行交互时,主要…...
[高等数学]换元积分法
一、知识点 (一) 第一类换元法 定理1 设 f ( u ) f(u) f(u) 具有原函数, u φ ( x ) u\varphi(x) uφ(x) 可导,则有换元公式: ∫ f [ φ ( x ) ] φ ′ ( x ) d x [ ∫ f ( u ) d u ] u φ ( x ) . \int f[\varphi(x)]\varphi (x)dx[\int f(u)du]…...
Redis简介、常用命令及优化
文章目录 一、关系数据库??与非关系型数据库概述 1. 关系型数据库2. 非关系型数据库3.关系数据库与非关系型数据库区别 二、Redis简介 1.Redis的单线程模式2.Redis 优点3.Redis 缺点 三、安装redis四、Redis 命令工具五、Redis 数据库常用命令六、Redis 多数据库常用命令七、…...
大模型训练为什么依赖GPU
近年来,随着人工智能技术的飞速发展,特别是深度学习领域的进步,大模型的训练逐渐成为研究和工业界的热点。作为大模型训练中的核心硬件,GPU(图形处理单元)扮演了至关重要的角色。那么,为什么大模…...
帕金森病与三叉神经痛的基因关联分析
帕金森病(Parkinsons Disease, PD)和三叉神经痛(Trigeminal Neuralgia, TN)是两种不同的神经系统疾病,前者主要影响运动功能,而后者则表现为剧烈的面部疼痛。尽管这两种疾病在临床表现上有显著差异…...
【Android开发】华为手机安装包安装失败“应用是非正式版发布版本,当前设备不支持安装”问题解决
问题描述 我们将Debug版本的安装包发送到手机上安装,会发现华为手机有如下情况 解决办法 在文件gradle.properties中粘贴代码: android.injected.testOnlyfalse 最后点击“Sync now”,等待重新加载gradle资源即可 后面我们重新编译Debug安装…...
栈与队列(C语言版)
文章目录 栈与队列1. 栈基本操作实现(基于链表)代码运行结果 应用场景 2. 队列基本操作实现代码运行结果 应用场景 栈与队列 1. 栈 栈是一种操作受限的线性结构。操作受限体现在,栈只能在一端添加和删除元素,符合后进先出 ( LIFO ) 的特性,…...
stl里的deque 中控map 假如用完了,该如何处理
在 C 的标准模板库(STL)中,std::deque(双端队列)使用一种分段连续的存储结构,通过一个中控器(通常称为中控 map)来管理多个固定大小的存储块(缓冲区)。当这个…...
Git GUI设置中文的方法及使用
链接: Git Bash和Git GUI设置中文的方法 链接: Git 基本操作...
代码书写常用快捷建
唤出剪切板 Windows 系统 :Win V Mac 系统: 在 Mac 电脑上,可以点击桌面菜单栏中的 “编辑”,在下拉菜单中选择 “显示剪贴板” 来打开剪贴板。 跳转和撤回跳转 在vscode软件中可以通过ctrl+鼠标左键可以进行跳转…...
MySQL 索引失效处理:原因分析与优化实战
MySQL 索引失效处理:原因分析与优化实战 MySQL 索引失效处理:原因分析与优化实战引言一、什么是索引失效?二、索引失效的常见原因2.1 查询条件中使用函数或表达式示例:原因: 2.2 数据类型不匹配示例:原因&a…...
基于Python的AI代码审计工具实现方案,结合DeepSeek API和商业化设计
以下是一个基于Python的AI代码审计工具实现方案,结合DeepSeek API和商业化设计,分为基础功能版和进阶扩展方向: 基础版实现代码 (命令行工具) import os import requests from dotenv import load_dotenv import hashlib import json from t…...
用Python实现线性回归:从数学原理到代码实战
一、前言:为什么线性回归是AI必修课? 作为机器学习领域的"Hello World",线性回归算法具有三大核心价值: 1️⃣ 理解监督学习的底层逻辑(特征工程→模型训练→预测输出) 2️⃣ 掌握梯度下降等优化…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
ArcPy扩展模块的使用(3)
管理工程项目 arcpy.mp模块允许用户管理布局、地图、报表、文件夹连接、视图等工程项目。例如,可以更新、修复或替换图层数据源,修改图层的符号系统,甚至自动在线执行共享要托管在组织中的工程项。 以下代码展示了如何更新图层的数据源&…...
React父子组件通信:Props怎么用?如何从父组件向子组件传递数据?
系列回顾: 在上一篇《React核心概念:State是什么?》中,我们学习了如何使用useState让一个组件拥有自己的内部数据(State),并通过一个计数器案例,实现了组件的自我更新。这很棒&#…...
简单介绍C++中 string与wstring
在C中,string和wstring是两种用于处理不同字符编码的字符串类型,分别基于char和wchar_t字符类型。以下是它们的详细说明和对比: 1. 基础定义 string 类型:std::string 字符类型:char(通常为8位)…...
