Win7本地化部署deepseek-r1等大模型详解
参考链接
在Windows 7操作系统,基于llama.cpp本地化部署 deepseek-r1模型的方法 2025-02-08
2G内存Windows7运行deepseek-r1:1.5b
这两个链接写的可能不够详细,有同学私信问实现过程,这里进一步解释一下。
一、准备
需要准备的大模型、工具等文件,已放到网盘,可自取。
网盘的 figures目录是配置过程中的一些截图,可参考。
百度网盘:https://pan.baidu.com/s/1NShm6Qi9bDgl6jI-IsEr1A?pwd=6es1
迅雷网盘:https://pan.xunlei.com/s/VOIfPUb8lCS71jAjBEnXmRg9A1?pwd=nze7#
模型文件
- 找几个
GGUF文件。- 本案例从
ollama获得GGUF文件,这些文件默认存储在%USERPROFILE%\.ollama\models\blobs,文件名形如sha256-*,文件名及模型对应关系见下表,相关文件见网盘models目录 - 也可以去魔搭社区等网站下载
- 本案例从
| 名称 | ollama ID | 大小GB | blobs |
|---|---|---|---|
| deepseek-r1:1.5b | a42b25d8c10a | 1.04 | sha256-aabd4debf0c8f08881923f2c25fc0fdeed24435271c2b3e92c4af36704040dbc |
| deepseek-r1:8b | 28f8fd6cdc67 | 4.58 | sha256-6340dc3229b0d08ea9cc49b75d4098702983e17b4c096d57afbbf2ffc813f2be |
| deepseek-r1:14b | ea35dfe18182 | 8.37 | sha256-6e9f90f02bb3b39b59e81916e8cfce9deb45aeaeb9a54a5be4414486b907dc1e |
| deepseek-r1:32b | 38056bbcbb2d | 18.4 | sha256-6150cb382311b69f09cc0f9a1b69fc029cbd742b66bb8ec531aa5ecf5c613e93 |
| deepseek-r1:70b | 0c1615a8ca32 | 39.5 | sha256-4cd576d9aa16961244012223abf01445567b061f1814b57dfef699e4cf8df339 |
| qwen2.5-coder:7b | 2b0496514337 | 4.36 | sha256-60e05f2100071479f596b964f89f510f057ce397ea22f2833a0cfe029bfc2463 |
源代码
下载llama.cpp源代码即可,无需下载GIT代码仓库
-
如果能访问Github,就从 https://github.com/ggerganov/llama.cpp 下载
-
如果Github抽风,可以去镜像站,国内一些大站也有
llama.cpp的实时镜像 -
本例
git clone了llama.cpp源码库,并压缩为llama.cpp.git.7z,见网盘source目录
开发工具
见网盘 dev-tools目录
w64devkit-x64-2.0.0.exe,从 https://github.com/skeeto/w64devkit 或镜像站下载cmake-3.31.5-windows-x86_64.msiC,从 https://cmake.org/download/ 下载Git-2.45.2-64-bit.exe,从 https://git-scm.com/downloads/win 下载
二、编译
- 打开Windows7操作系统。建议用干净的操作系统,没有安装乱七八糟的各种软件。
- 解压 llama.cpp.git.7z 到英文目录,例如
C:\dev_demo\llama.cpp,解压后,删除其中的.git目录。注意,如果后续操作失败,需要删除C:\dev_demo\llama.cpp目录,重建执行本步骤。 - 安装 w64devkit(只需解压,例如
C:\dev_demo\w64devkit), cmake(默认设置安装), GIt(默认设置安装), 火狐浏览器(也可用其他Chrome类浏览器,IE不行)。 - 按下面代码示例,修改
C:\dev_demo\llama.cpp\examples\server\httplib.h, 第3012到3057行,也就是把 if else 注释掉,只保留 else 部分的代码。- 注1:Win7不支持
CreateFile2,支持CreateFileW - 注2:Win7不支持
CreateFileMappingFromApp,支持CreateFileMappingW - 注3:Win7不支持
MapViewOfFileFromApp,支持MapViewOfFile - 注4:可以搜索
CreateFile2快速定位代码修改位置
- 注1:Win7不支持
// #if _WIN32_WINNT >= _WIN32_WINNT_WIN8
// hFile_ = ::CreateFile2(wpath.c_str(), GENERIC_READ, FILE_SHARE_READ,
// OPEN_EXISTING, NULL);
// #elsehFile_ = ::CreateFileW(wpath.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
// #endifif (hFile_ == INVALID_HANDLE_VALUE) { return false; }LARGE_INTEGER size{};if (!::GetFileSizeEx(hFile_, &size)) { return false; }// If the following line doesn't compile due to QuadPart, update Windows SDK.// See:// https://github.com/yhirose/cpp-httplib/issues/1903#issuecomment-2316520721if (static_cast<ULONGLONG>(size.QuadPart) >(std::numeric_limits<decltype(size_)>::max)()) {// `size_t` might be 32-bits, on 32-bits Windows.return false;}size_ = static_cast<size_t>(size.QuadPart);// #if _WIN32_WINNT >= _WIN32_WINNT_WIN8
// hMapping_ =// ::CreateFileMappingFromApp(hFile_, NULL, PAGE_READONLY, size_, NULL);
// #elsehMapping_ = ::CreateFileMappingW(hFile_, NULL, PAGE_READONLY, 0, 0, NULL);
// #endif// Special treatment for an empty file...if (hMapping_ == NULL && size_ == 0) {close();is_open_empty_file = true;return true;}if (hMapping_ == NULL) {close();return false;}// #if _WIN32_WINNT >= _WIN32_WINNT_WIN8// addr_ = ::MapViewOfFileFromApp(hMapping_, FILE_MAP_READ, 0, 0);
// #elseaddr_ = ::MapViewOfFile(hMapping_, FILE_MAP_READ, 0, 0, 0);
// #endif
- 找到刚才解压的
w64devket.exe,例如C:\dev_demo\w64devkit\w64devkit.exe,并双击运行,弹出个黑色窗口。- 在其中输入
cd c:/dev_demo/llama.cpp进入llama.cpp所在的目录。注意,路径分隔符是 /。 - 输入命令
cmake . -G "MinGW Makefiles"。正常不应报错,如果出错,可尝试在一台干净的Window7重试。 - 然后输入命令
cmake --build . --config Release,等待编译完成。编译过程中有几个警告,但不应该有错误。编译完成后的程序在 /bin 目录,本例为c:\dev_demo\llama.cpp\bin。
- 在其中输入
三、运行大模型服务
- 找到编译出来的
llama-server.exe,本例在c:\dev_demo\llama.cpp\bin\llama-server.exe - 选择要运行的大模型
GGUF文件,本例选deepseek-r1:1.5b,文件名为sha256-aabd4debf0c8f08881923f2c25fc0fdeed24435271c2b3e92c4af36704040dbc,本例放到c:\dev_demo\sha256-aabd4debf0c8f08881923f2c25fc0fdeed24435271c2b3e92c4af36704040dbc。注意,文件名可自由命名,例如c:\dev_demo\deepseek-r1_1.5b.gguf,本例未重命名。 - 在
c:\dev_demo\llama.cpp\bin目录下打开CMD终端,输入llama-server --model sha256-aabd4debf0c8f08881923f2c25fc0fdeed24435271c2b3e92c4af36704040dbc,等待出现server is listening on http://127.0.0.1:8080提示。如果内存不足,模型载入过程可能会出错,本例1.5b模型占用内寸不到 2GB。 - 在火狐浏览器或Chrome类浏览器,地址栏输入
http://127.0.0.1:8080,即可开始对话。注意,第一次对话反应略慢。
补充信息
- 如果需要共享给其他人用,可以在命令中增加
--host HOST,--port PORT参数,例如llama-server --model sha256-aabd4debf0c8f08881923f2c25fc0fdeed24435271c2b3e92c4af36704040dbc --host 0.0.0.0 --port 11434,端口可自选。 - llama.cpp 支持对话与API调用,更多用法,见
/llama.cpp/examples/server/README.md
相关文章:
Win7本地化部署deepseek-r1等大模型详解
参考链接 在Windows 7操作系统,基于llama.cpp本地化部署 deepseek-r1模型的方法 2025-02-08 2G内存Windows7运行deepseek-r1:1.5b 这两个链接写的可能不够详细,有同学私信问实现过程,这里进一步解释一下。 一、准备 需要准备的大模型、工具…...
【ubuntu24.04】 强制重启导致大模型的磁盘挂载出错
挂载NTFS文件系统出错 各种模型放在了这个机械硬盘上,虽然速度慢,但是好在容量大。大模型在工作,但是程序看起来有问题,导致系统卡死了,然后我重启了,然后报错:wrong fs type bad option &…...
Spring Boot(8)深入理解 @Autowired 注解:使用场景与实战示例
搞个引言 在 Spring 框架的开发中,依赖注入(Dependency Injection,简称 DI)是它的一个核心特性,它能够让代码更加模块化、可测试,并且易于维护。而 Autowired 注解作为 Spring 实现依赖注入的关键工具&…...
【linux】在 Linux 服务器上部署 DeepSeek-r1:70b 并通过 Windows 远程可视化使用
【linux】在 Linux 服务器上部署 DeepSeek-r1:70b 并通过 Windows 远程可视化使用 【承接商业广告,如需商业合作请+v17740568442】 文章目录 【linux】在 Linux 服务器上部署 DeepSeek-r1:70b 并通过 Windows 远程可视化使用个人配置详情一、安装ollama二、下载deepseek版本…...
【AI大模型】Ollama部署本地大模型DeepSeek-R1,交互界面Open-WebUI,RagFlow构建私有知识库
文章目录 DeepSeek介绍公司背景核心技术产品与服务应用场景优势与特点访问与体验各个DeepSeek-R系列模型的硬件需求和适用场景 Ollama主要特点优势应用场景安装和使用配置环境变量总结 安装open-webui下载和安装docker desktop配置镜像源安装open-webui运行和使用 RagFlow介绍主…...
Unity 命令行设置运行在指定的显卡上
设置运行在指定的显卡上 -force-device-index...
Visual Studio 使用 “Ctrl + /”键设置注释和取消注释
问题:在默认的Visual Studio中,选择单行代码后,按下Ctrl /键会将代码注释掉,但再次按下Ctrl /键时,会进行双重注释,这不是我们想要的。 实现效果:当按下Ctrl /键会将代码注释掉,…...
共用poetry和conda的方法
起因 基于开源项目继续开发,发现该项目使用poetry管理依赖,但本地开发及调试环境依赖conda且未安装原生python,不支持直接安装poetry,因此需要使用conda安装及使用poetry。操作系统:Ubuntu 什么是poetry 一项依赖于…...
教程:使用 Vue 3 和 arco 实现表格合并
1. 功能概述 本教程将介绍如何使用 Vue 3 和 arco 组件库实现表格合并功能。具体来说,我们会根据表格数据中的某个字段(如 type)对表格的某一列(如入库类型列)进行合并,同时将质检说明列合并为一列。 2. …...
Docker 常用命令基础详解(二)
四、容器操作命令 4.1 运行容器 使用docker run命令可以创建并运行一个容器,它就像是一个神奇的 “启动器”,让镜像中的应用程序在容器中运行起来。其基本语法为: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 其中,OPTIONS…...
uniapp - iconfont下载本地并且运用至项目上
1、项目中创建一个文件夹放置iconfont相关文件,例如src/assets/iconfont(名称自己定义) 2、在iconfont下载项目至本地 3、解压后把文件复制进1的文件夹中 4、修改src/assets/iconfont - iconfont.css里的font-face的src地址,修…...
【前端】自己从头实现一个gpt聊天页面
预览 最小化功能点 主界面:侧边栏会话历史、聊天窗口发送和断开。侧边栏:展示会话列表,每个会话包含多条聊天记录, 通过localstorage本地储存和恢复,会话需要重命名和删除。聊天框:区分一下发送者和回答者…...
数据结构——二叉树(2025.2.12)
目录 一、树 1.定义 (1)树的构成 (2)度 2.二叉树 (1)定义 (2)二叉树的遍历 (3)遍历特性 二、练习 1.二叉树 (1)创建二叉树…...
Vulhub靶机 ActiveMQ任意 文件写入(CVE-2016-3088)(渗透测试详解)
一、开启vulhub环境 docker-compose up -d 启动 docker ps 查看开放的端口 漏洞版本:ActiveMQ在5.14.0之前的版本(不包括5.14.0) 二、访问靶机IP 8161端口 默认账户密码都是admin 1、利用bp抓包,修改为PUT方法并在fileserver…...
跟着李沐老师学习深度学习(十一)
经典的卷积神经网络 在本次笔记中主要介绍一些经典的卷积神经网络模型,主要包含以下: LeNet:最早发布的卷积神经网络之一,目的是识别图像中的手写数字;AlexNet: 是第一个在大规模视觉竞赛中击败传统计算机…...
【微软- Entra ID】Microsoft Entra ID
Microsoft Entra ID是微软提供的基于云的身份和访问管理服务。Microsoft Entra ID是一个全面的解决方案,用于管理身份、执行访问策略以及在云和本地保护您的应用程序和数据。 目录 一、查看 Microsoft Entra ID 微软Entra租户 微软Entra模式 二、比较Microsoft Entra ID与…...
Halcon相机标定
1,前言。 相机的成像过程实质上是坐标系的转换。首先空间中的点由“世界坐标系”转换到“相机坐标系”,然后再将其投影到成像平面(图像物理坐标系),最后再将成像的平面上的数据转换为图像像素坐标系。但是由于透镜的制…...
Linux 配置 MySQL 定时自动备份到另一台服务器
Linux 配置 MySQL 定时自动备份到另一台服务器 前言1、配置服务器通信1.1:配置过程 2、编写自动备份sh脚本文件3:设置定时自动执行 前言 此方案可使一台服务器上的 MySQL 中的所有数据库每天 0 点自动转储为 .sql 文件,然后将文件同步到另一…...
《安富莱嵌入式周报》第350期:Google开源Pebble智能手表,开源模块化机器人平台,开源万用表,支持10GHz HRTIM的单片机,开源CNC控制器
周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV1YPKEeyEeM/ 《安富莱嵌入式周报》第350期:Google开…...
LabVIEW与小众设备集成
在LabVIEW开发中,当面临控制如布鲁克OPUS红外光谱仪这类小众专业设备的需求,而厂家虽然提供了配套软件,但由于系统中还需要控制其他设备且不能使用厂商的软件时,必须依赖特定方法通过LabVIEW实现设备的控制。开发过程中࿰…...
无人机之无线传输技术!
一、Lightbridge和OcuSync图传技术 Lightbridge技术:这是大疆自主研发的一种专用通信链路技术,使用单向图像数据传输,类似于电视广播塔的数据传输形式。它主要采用2.4GHz频段进行传输,并且可以实现几乎“零延时”的720p高清图像传…...
移远通信边缘计算模组成功运行DeepSeek模型,以领先的工程能力加速端侧AI落地
近日,国产大模型DeepSeek凭借其“开源开放、高效推理、端侧友好”的核心优势,迅速风靡全球。移远通信基于边缘计算模组SG885G,已成功实现DeepSeek模型的稳定运行,并完成了针对性微调。 目前,该模型正在多款智能终端上进…...
rust学习一、入门之搭建简单开发环境
1、搭建开发环境(windows11) a.登录官网 一看就明白,此处略。 b.安装rustup 一看就明白,此处略。 c.安装 cargo script 或者 rust-script script cargo install cargo-script 完成后 注意:时间有一点点久。 测试 cargo s…...
FANUC机器人示教器中如何显示或关闭寄存器或IO的注释信息?
FANUC机器人示教器中如何显示或关闭寄存器或IO的注释信息? 如下图所示,我们打开一个子程序,可以看到程序中的寄存器和IO是显示注释信息的, 如果想关闭注释显示的话,怎么设置? 如下图所示,按下下一页的箭头(NEXT键), 如下图所示,点击“编辑”,在弹出的窗口中,选择“…...
在SpringBoot项目中有k8s配置,但报错
如下报错一般是你没有将k8s的config拷贝到项目里,你可以将k8s主节点的config拷贝一下到项目中。 2025-02-13 09:27:21.873 ERROR 1671 --- [.models.V1Pod-1] i.k.c.informer.cache.ReflectorRunnable : class io.kubernetes.client.openapi.models.V1Pod#Reflec…...
在springboot加vue项目中加入图形验证码
后端 首先先要创建一个CaptchaController的类,可以在下面的代码中看到 在getCaptcha的方法里面写好了生成随机的4位小写字母或数字的验证码,然后通过BufferedImage类变为图片,顺便加上了干扰线。之后把图片转为Base64编码方便传给前端 为了…...
23. AI-大语言模型
文章目录 前言一、LLM1. 简介2. 工作原理和结构3. 应用场景4. 最新研究进展5. 比较 二、Transformer架构1. 简介2. 基本原理和结构3. 应用场景4. 最新进展 三、开源1. 开源概念2. 开源模式3. 模型权重 四、再谈DeepSeek 前言 AI 一、LLM LLM(Large Language Mod…...
蓝桥杯备赛笔记(二)
这里的笔记是关于蓝桥杯关键知识点的记录,有别于基础语法,很多内容只要求会用就行,无需深入掌握。 文章目录 前言一、时间复杂度1.1 时间复杂度⭐1.2 空间复杂度1.3 分析技巧 二、枚举2.1 枚举算法介绍2.2 解空间的类型2.3 循环枚举解空间 三…...
MATLAB中的APPdesigner绘制多图问题解析?与逻辑值转成十进制
在matlab APPdesigner中绘图可以用UIAxes组件进行绘图,但是当想多张图时,只能提前绘制图像区域不方便。下面是几种办法: 为了操作可以添加Panl组件,方便操作。 1、当是要求的几个图像大小都是相同时刻采用函数: til…...
Spring Cloud-Sentinel
Sentinel服务熔断与限流 Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量控制、流量路由、熔断降级、系统自适应保护等多个维度来帮助用户保障微服务的稳定性。 官网地址:home | Sentinelhttps://sen…...
