Win7本地化部署deepseek-r1等大模型详解

news2025/2/19 11:31:13

参考链接

在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大小GBblobs
deepseek-r1:1.5ba42b25d8c10a1.04sha256-aabd4debf0c8f08881923f2c25fc0fdeed24435271c2b3e92c4af36704040dbc
deepseek-r1:8b28f8fd6cdc674.58sha256-6340dc3229b0d08ea9cc49b75d4098702983e17b4c096d57afbbf2ffc813f2be
deepseek-r1:14bea35dfe181828.37sha256-6e9f90f02bb3b39b59e81916e8cfce9deb45aeaeb9a54a5be4414486b907dc1e
deepseek-r1:32b38056bbcbb2d18.4sha256-6150cb382311b69f09cc0f9a1b69fc029cbd742b66bb8ec531aa5ecf5c613e93
deepseek-r1:70b0c1615a8ca3239.5sha256-4cd576d9aa16961244012223abf01445567b061f1814b57dfef699e4cf8df339
qwen2.5-coder:7b2b04965143374.36sha256-60e05f2100071479f596b964f89f510f057ce397ea22f2833a0cfe029bfc2463

源代码

下载llama.cpp源代码即可,无需下载GIT代码仓库

  • 如果能访问Github,就从 https://github.com/ggerganov/llama.cpp 下载

  • 如果Github抽风,可以去镜像站,国内一些大站也有 llama.cpp 的实时镜像

  • 本例git clonellama.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 快速定位代码修改位置
// #if _WIN32_WINNT >= _WIN32_WINNT_WIN8
//  hFile_ = ::CreateFile2(wpath.c_str(), GENERIC_READ, FILE_SHARE_READ,
//                         OPEN_EXISTING, NULL);
// #else
  hFile_ = ::CreateFileW(wpath.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL,
                         OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
// #endif

  if (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-2316520721
  if (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);
// #else
  hMapping_ = ::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);
// #else
  addr_ = ::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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2299016.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ubuntu24.04】 强制重启导致大模型的磁盘挂载出错

挂载NTFS文件系统出错 各种模型放在了这个机械硬盘上&#xff0c;虽然速度慢&#xff0c;但是好在容量大。大模型在工作&#xff0c;但是程序看起来有问题&#xff0c;导致系统卡死了&#xff0c;然后我重启了&#xff0c;然后报错&#xff1a;wrong fs type bad option &…

Spring Boot(8)深入理解 @Autowired 注解:使用场景与实战示例

搞个引言 在 Spring 框架的开发中&#xff0c;依赖注入&#xff08;Dependency Injection&#xff0c;简称 DI&#xff09;是它的一个核心特性&#xff0c;它能够让代码更加模块化、可测试&#xff0c;并且易于维护。而 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 + /”键设置注释和取消注释

问题&#xff1a;在默认的Visual Studio中&#xff0c;选择单行代码后&#xff0c;按下Ctrl /键会将代码注释掉&#xff0c;但再次按下Ctrl /键时&#xff0c;会进行双重注释&#xff0c;这不是我们想要的。 实现效果&#xff1a;当按下Ctrl /键会将代码注释掉&#xff0c;…

教程:使用 Vue 3 和 arco 实现表格合并

1. 功能概述 本教程将介绍如何使用 Vue 3 和 arco 组件库实现表格合并功能。具体来说&#xff0c;我们会根据表格数据中的某个字段&#xff08;如 type&#xff09;对表格的某一列&#xff08;如入库类型列&#xff09;进行合并&#xff0c;同时将质检说明列合并为一列。 2. …

uniapp - iconfont下载本地并且运用至项目上

1、项目中创建一个文件夹放置iconfont相关文件&#xff0c;例如src/assets/iconfont&#xff08;名称自己定义&#xff09; 2、在iconfont下载项目至本地 3、解压后把文件复制进1的文件夹中 4、修改src/assets/iconfont - iconfont.css里的font-face的src地址&#xff0c;修…

【前端】自己从头实现一个gpt聊天页面

预览 最小化功能点 主界面&#xff1a;侧边栏会话历史、聊天窗口发送和断开。侧边栏&#xff1a;展示会话列表&#xff0c;每个会话包含多条聊天记录&#xff0c; 通过localstorage本地储存和恢复&#xff0c;会话需要重命名和删除。聊天框&#xff1a;区分一下发送者和回答者…

数据结构——二叉树(2025.2.12)

目录 一、树 1.定义 &#xff08;1&#xff09;树的构成 &#xff08;2&#xff09;度 2.二叉树 &#xff08;1&#xff09;定义 &#xff08;2&#xff09;二叉树的遍历 &#xff08;3&#xff09;遍历特性 二、练习 1.二叉树 &#xff08;1&#xff09;创建二叉树…

Vulhub靶机 ActiveMQ任意 文件写入(CVE-2016-3088)(渗透测试详解)

一、开启vulhub环境 docker-compose up -d 启动 docker ps 查看开放的端口 漏洞版本&#xff1a;ActiveMQ在5.14.0之前的版本&#xff08;不包括5.14.0&#xff09; 二、访问靶机IP 8161端口 默认账户密码都是admin 1、利用bp抓包&#xff0c;修改为PUT方法并在fileserver…

跟着李沐老师学习深度学习(十一)

经典的卷积神经网络 在本次笔记中主要介绍一些经典的卷积神经网络模型&#xff0c;主要包含以下&#xff1a; LeNet&#xff1a;最早发布的卷积神经网络之一&#xff0c;目的是识别图像中的手写数字&#xff1b;AlexNet&#xff1a; 是第一个在大规模视觉竞赛中击败传统计算机…

【微软- Entra ID】Microsoft Entra ID

Microsoft Entra ID是微软提供的基于云的身份和访问管理服务。Microsoft Entra ID是一个全面的解决方案,用于管理身份、执行访问策略以及在云和本地保护您的应用程序和数据。 目录 一、查看 Microsoft Entra ID 微软Entra租户 微软Entra模式 二、比较Microsoft Entra ID与…

Halcon相机标定

1&#xff0c;前言。 相机的成像过程实质上是坐标系的转换。首先空间中的点由“世界坐标系”转换到“相机坐标系”&#xff0c;然后再将其投影到成像平面&#xff08;图像物理坐标系&#xff09;&#xff0c;最后再将成像的平面上的数据转换为图像像素坐标系。但是由于透镜的制…

Linux 配置 MySQL 定时自动备份到另一台服务器

Linux 配置 MySQL 定时自动备份到另一台服务器 前言1、配置服务器通信1.1&#xff1a;配置过程 2、编写自动备份sh脚本文件3&#xff1a;设置定时自动执行 前言 此方案可使一台服务器上的 MySQL 中的所有数据库每天 0 点自动转储为 .sql 文件&#xff0c;然后将文件同步到另一…

《安富莱嵌入式周报》第350期:Google开源Pebble智能手表,开源模块化机器人平台,开源万用表,支持10GHz HRTIM的单片机,开源CNC控制器

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版&#xff1a; https://www.bilibili.com/video/BV1YPKEeyEeM/ 《安富莱嵌入式周报》第350期&#xff1a;Google开…

LabVIEW与小众设备集成

在LabVIEW开发中&#xff0c;当面临控制如布鲁克OPUS红外光谱仪这类小众专业设备的需求&#xff0c;而厂家虽然提供了配套软件&#xff0c;但由于系统中还需要控制其他设备且不能使用厂商的软件时&#xff0c;必须依赖特定方法通过LabVIEW实现设备的控制。开发过程中&#xff0…

无人机之无线传输技术!

一、Lightbridge和OcuSync图传技术 Lightbridge技术&#xff1a;这是大疆自主研发的一种专用通信链路技术&#xff0c;使用单向图像数据传输&#xff0c;类似于电视广播塔的数据传输形式。它主要采用2.4GHz频段进行传输&#xff0c;并且可以实现几乎“零延时”的720p高清图像传…

移远通信边缘计算模组成功运行DeepSeek模型,以领先的工程能力加速端侧AI落地

近日&#xff0c;国产大模型DeepSeek凭借其“开源开放、高效推理、端侧友好”的核心优势&#xff0c;迅速风靡全球。移远通信基于边缘计算模组SG885G&#xff0c;已成功实现DeepSeek模型的稳定运行&#xff0c;并完成了针对性微调。 目前&#xff0c;该模型正在多款智能终端上进…

rust学习一、入门之搭建简单开发环境

1、搭建开发环境(windows11&#xff09; a.登录官网 一看就明白&#xff0c;此处略。 b.安装rustup 一看就明白&#xff0c;此处略。 c.安装 cargo script 或者 rust-script script cargo install cargo-script 完成后 注意&#xff1a;时间有一点点久。 测试 cargo s…