当前位置: 首页 > news >正文

把 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版本
查看显卡驱动的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)是两种不同的神经系统疾病,前者主要影响运动功能,而后者则表现为剧烈的面部疼痛。尽管这两种疾病在临床表现上有显著差异&#xf…...

【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️⃣ 掌握梯度下降等优化…...

AI智能体生产级运维实战:OpenClaw Tools工作流与稳定性设计

1. 项目概述:从生产实践中淬炼的AI智能体工作流工具箱如果你正在构建或维护一个需要7x24小时稳定运行的AI智能体系统,并且已经厌倦了那些纸上谈兵的“最佳实践”,那么OpenClaw Tools这个项目可能会让你眼前一亮。这不是又一个充满美好假设的学…...

LLSA:高效稀疏注意力机制在长序列处理中的应用

1. 从密集到稀疏:注意力机制的计算效率革命在自然语言处理和计算机视觉领域,注意力机制已经成为现代深度学习架构的核心组件。传统注意力机制(如Transformer中的自注意力)虽然功能强大,但其计算复杂度随着序列长度呈二…...

基于Next.js与TypeScript构建现代化个人开发者网站全栈实践

1. 项目概述:从零构建一个现代化的个人开发者网站作为一个在技术一线摸爬滚打了十多年的开发者,我深知一个得体的个人网站有多重要。它不仅是你的数字名片,更是你技术品味、项目沉淀和思考深度的集中展示。过去几年,我见过太多开发…...

5G波形技术革新:块滤波OFDM与同频全双工实战验证

1. 项目概述:一次面向未来的5G波形技术实地验证2017年初,当全球通信产业还在为5G的最终标准争论不休时,法国格勒诺布尔的CEA-Leti研究所已经准备将他们的研究成果从实验室推向真实的天空。这不仅仅是一次普通的“外场测试”,而是一…...

Code Buddy:实时监控AI编程助手状态,提升开发效率与掌控感

1. 项目概述如果你和我一样,日常开发重度依赖 Claude Code、Cursor 这类 AI 编程助手,那你肯定遇到过这个场景:你让 AI 去执行一个复杂的find或grep命令,然后切到浏览器查资料,或者去回个消息。几分钟后回来&#xff0…...

wireshark 抓包学习报文

报文展示显示过滤器 加入显示过滤器和抓包过滤器第一次握手1215 19:07:38.858175 192.168.5.86 150.171.22.11 TCP 66 7771 → 443 [SYN] Seq0 Win64240 Len0 MSS1460 WS256 SACK_PERM报文解析:7771 → 443:本地端口 7771 → 服务器 4…...

从零到一:手把手教你用YonBuilder for NCC搭建NC Cloud 2021.11开发环境(含M1 Mac避坑指南)

从零到一:手把手教你用YonBuilder for NCC搭建NC Cloud 2021.11开发环境(含M1 Mac避坑指南) 在数字化转型浪潮中,企业级应用开发平台的选择直接影响开发效率与项目交付质量。NC Cloud作为国内领先的企业管理软件解决方案&#xff…...

Ambar 多语言支持:如何配置中文、英文等8种语言分析器

Ambar 多语言支持:如何配置中文、英文等8种语言分析器 【免费下载链接】ambar :mag: Ambar: Document Search Engine 项目地址: https://gitcode.com/gh_mirrors/am/ambar Ambar 作为一款强大的文档搜索引擎,提供了对多种语言的支持,包…...

别再被量纲搞晕了!Fluent表达式入门保姆级教程(附3个避坑案例)

别再被量纲搞晕了!Fluent表达式入门保姆级教程(附3个避坑案例) 刚接触Fluent表达式的工程师们,十有八九会在量纲问题上栽跟头。明明公式逻辑正确,却频频遭遇报错;看似简单的三角函数输入,却因为…...

AI矢量字形生成技术:从语义到SVG的端到端解决方案

1. 项目背景与核心价值去年在设计一款多语言品牌字体时,我遇到了一个棘手问题:需要为12种语言设计超过6000个字符的矢量字形,传统手工绘制方式耗时长达三个月。正是这次经历让我开始探索如何用AI技术提升矢量字形生成效率。VecGlypher便是这个…...