LLM - 基于LM Studio本地部署DeepSeek-R1的蒸馏量化模型

news2025/2/5 4:16:34

文章目录

  • 前言
  • 开发环境
  • 快速开始
    • LM Studio
    • 简单设置
    • 模型下载
    • 开始对话
  • 模型选择
  • 常见错误
  • 最后


前言

目前,受限于设备性能,在本地部署的基本都是DeepSeek-R1的蒸馏量化模型,这些蒸馏量化模型的表现可能并没有你想象的那么好。绝大部分人并不需要本地部署,直接用现成的服务是更好的选择(特别是只能部署14B参数以下模型的设备)。

screenshot1

本文章基于macOS以及LM Studio本地部署,全程无需代理,力求让你快速学会部署自己的大语言模型。当然,你也可以参考其他文章使用Ollama部署。

开发环境

  • macOS: 15.3
  • LM Studio: 0.3.9
  • 芯片: Apple M2 Pro (10核CPU/16核GPU/16核ANE)
  • 内存: 32GB

快速开始

LM Studio

下载地址:LM Studio

下载完成后打开拖拽LM Studio.appApplications目录完成安装。

简单设置

  1. 设置语言

LM Studio提供简体中文(beta版,不完全中文),可以通过右下角的设置按钮进入设置:

screenshot2

这个设置不是必须的,可以不设置,这里是为了降低使用难度。

  1. 用户界面复杂度级别

在左下角有三个级别选项:User / Power User / Developer,请至少切换到Power User级别。在User级别下,不会显示左侧边栏,里面有本地模型管理功能:

screenshot3

模型下载

如果你想在LM Studio下载模型,大概率会遇到这种情况:Model details error: fetch failed

screenshot4

这是因为huggingface.co在国内没办法直接访问,配置了代理实测也不行,他应该不走。macOS上我没找到有设置的地方,可能只能修改LM Studio.app。不过,这不重要,我们可以将模型下载后复制到指定模型目录。

这是huggingface.co的国内镜像hf-mirror.com,我们先下载一个 DeepSeek-R1-Distill-Qwen-14B-Q4_K_M.gguf 模型:

screenshot5

除了网页下载,你也可以通过命令行工具下载(感觉下载速度更快点):

export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download lmstudio-community/DeepSeek-R1-Distill-Qwen-14B-GGUF DeepSeek-R1-Distill-Qwen-14B-Q4_K_M.gguf

下载完成后将模型复制到指定模型目录(默认是/User/用户名/.lmstudio/models):

screenshot6

开始对话

新建会话,然后点击顶部的选择要加载的模型

screenshot7

模型设置先默认就行,后面可以自行研究。接下来就可以发消息开始对话:

screenshot8

实测本地跑这模型生成速度大概15 tok/sec,内存占用9GB+。

模型选择

先简单了解一下知识蒸馏:用一个大模型训练一个小模型,让小模型学习大模型的知识,从而减少计算量,提升推理速度,并保留大部分性能

例如前面模型名称中的DeepSeek-R1-Distill-Qwen-14B部分,即表示用DeepSeek-R1模型训练Qwen-14B模型,以Qwen-14B模型的结构去学习DeepSeek-R1模型的知识。

DeepSeek-R1模型有671B参数,而Qwen-14B模型只有14B参数,就像是能力有限的学生跟随能力强大的老师,只能挑点重点学习。同时,学生之间的能力也有区别,参数更多的Qwen-32B模型也普遍比Qwen-14B模型能学的更多更强。并且,学生之间的底子也有区别,有些学生是基于Qwen(通义千问),有些是基于Llama(Meta),不同的底子对不同知识点的学习能力也有所差别,比如Qwen更擅长中文任务。

可见,本地部署的这个蒸馏模型并不是原版的模型,该模型已经可以看作是一个新模型,性能要求降低的同时你也别指望结果能和原版一样。

然后再简单了解一下模型量化:降低模型参数的数值精度来减少模型的存储需求和计算成本,从而加快推理速度,降低功耗

例如前面模型名称中的Q4_K_M部分,Q4表示4-bit量化K_M代表特定量化方案。Q后面的数字越低量化程度越高精度越低。

可见,模型量化通过牺牲精度,进一步降低模型大小以及内存等要求。同时,对结果的预期你也要降低。

最后简单了解一下模型格式:格式本身不会直接影响模型的推理精度或本质性能,但它可能间接影响加载效率和兼容性,需要关注的是当前支持运行什么格式

例如LM Studio目前支持两种模型格式,分别是GGUFMLX

screenshot9

DeepSeek默认提供的是.safetensors格式模型,虽然下载后自己也能转格式,但是这个模型没经过量化大很多,LM Studio又提供了现成的,所以这就是为什么前面没有从deepseek-ai下载的原因。

看到这,你会选模型了吗?别急,再看一组我电脑的实测数据:

模型名称模型大小内存占用(GB)生成速度(tok/sec)
DeepSeek-R1-Distill-Qwen-1.5B-Q4_K_M.gguf1.12GB1.4+75
DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf4.68GB4.8+25
DeepSeek-R1-Distill-Qwen-14B-Q4_K_M.gguf8.99GB9.4+15
DeepSeek-R1-Distill-Qwen-32B-Q4_K_M.gguf19.85GB内存不足N/A

注意:以上内存占用和生成速度仅供参考,提示词/上下文越长,内存占用越多,生成速度越慢。

除了32B参数的没能跑起来,其他运行没什么问题,如果精度再降低到Q3可能能行,但是太勉强会影响其他软件的日常使用没有意义。

再补充一个CPU/GPU/ANE(Apple神经引擎)的使用情况:1.5B/7B/14B参数模型的CPU使用率很低,GPU差不多在14B参数模型时接近满载(更小的模型如果提示词/上下文长也可能满载),ANE没有使用。

screenshot10

注:功耗数据通过sudo powermetrics命令查看。

综上,为了更好的体验,建议先追求更大参数量的模型,然后再根据可用内存选择量化程度。至于选Qwen还是Llama,中文任务的话建议选Qwen

个人建议,16GB内存选7B参数量Q4量化的模型,32GB内存选14B参数量Q4量化的模型。补充一点,由于macOS使用统一内存(内存显存共享),所以这只是基于macOS的建议,Windows还是要注意显存大小,好像显存不够可以使用内存,不知道性能怎么样没测试。

最后,还是提一句暂时不推荐本地部署,本地部署对于大部分人是伪需求。

常见错误

  1. The model has crashed without additional information. (Exit code:5)

通常是内存不足,换个内存要求更低的模型吧。

  1. Trying to keep the first xxx tokens when context the overflows. However, the model is loaded with context length of only 4096 tokens, which is not enough. Try to load the model with a larger context length, or provide a shorter input.

输入文本的长度超过了模型能够处理的最大上下文长度。可以尝试以下解决方法:

  1. 减小输入文本长度或改为发送文本附件
  2. 在模型设置中增加上下文长度
  3. 更换支持更长上下文长度的模型

最后

如果这篇文章对你有所帮助,点赞👍收藏🌟支持一下吧,谢谢~


本篇文章由@crasowas发布于CSDN。

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

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

相关文章

本地部署 DeepSeek-R1:简单易上手,AI 随时可用!

🎯 先看看本地部署的运行效果 为了测试本地部署的 DeepSeek-R1 是否真的够强,我们随便问了一道经典的“鸡兔同笼”问题,考察它的推理能力。 📌 问题示例: 笼子里有鸡和兔,总共有 35 只头,94 只…

对象的实例化、内存布局与访问定位

一、创建对象的方式 二、创建对象的步骤: 一、判断对象对应的类是否加载、链接、初始化: 虚拟机遇到一条new指令,首先去检查这个指令的参数能否在Metaspace的常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化…

OpenAI推出Deep Research带给我们怎样的启示

OpenAI 又发新产品了,这次是面向深度研究领域的智能体产品 ——「Deep Research」,貌似被逼无奈的节奏… 在技术方面,Deep Research搭载了优化后o3模型并通过端到端强化学习在多个领域的复杂浏览和推理任务上进行了训练。因没有更多的技术暴露…

K8S学习笔记-------1.安装部署K8S集群环境

1.修改为root权限 #sudo su 2.修改主机名 #hostnamectl set-hostname k8s-master01 3.查看网络地址 sudo nano /etc/netplan/01-netcfg.yaml4.使网络配置修改生效 sudo netplan apply5.修改UUID(某些虚拟机系统,需要设置才能生成UUID)#…

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户登录

🧸安清h:个人主页 🎥个人专栏:【Spring篇】【计算机网络】【Mybatis篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎯1.登录-持久层 &…

【Deep Seek本地化部署】模型实测:规划求解python代码

目录 前言 一、实测 1、整数规划问题 2、非线性规划问题 二、代码正确性验证 1、整数规划问题代码验证 2、非线性规划问题代码验证 三、结果正确性验证 1、整数规划问题结果正确性验证 2、非线性规划问题正确性验证 四、整数规划问题示例 后记 前言 模型&#xff…

【游戏设计原理】98 - 时间膨胀

从上文中,我们可以得到以下几个启示: 游戏设计的核心目标是让玩家感到“时间飞逝” 游戏的成功与否,往往取决于玩家的沉浸感。如果玩家能够完全投入游戏并感受到时间飞逝,说明游戏设计在玩法、挑战、叙事等方面达到了吸引人的平衡…

C语言基础系列【1】第一个C程序:Hello, World!

C语言的历史与特点 历史背景 C语言起源于20世纪70年代,最初是由美国贝尔实验室的Dennis Ritchie和Ken Thompson为了开发UNIX操作系统而设计的一种编程语言。在UNIX系统的开发过程中,他们发现原有的B语言(由Thompson设计)在功能和…

【LLM】DeepSeek-R1-Distill-Qwen-7B部署和open webui

note DeepSeek-R1-Distill-Qwen-7B 的测试效果很惊艳,CoT 过程可圈可点,25 年应该值得探索更多端侧的硬件机会。 文章目录 note一、下载 Ollama二、下载 Docker三、下载模型四、部署 open webui 一、下载 Ollama 访问 Ollama 的官方网站 https://ollam…

go-zero学习笔记(三)

利用goctl生成rpc服务 编写proto文件 // 声明 proto 使用的语法版本 syntax "proto3";// proto 包名 package demoRpc;// golang 包名(可选) option go_package "./demo";// 如需为 .proto 文件添加注释,请使用 C/C 样式的 // 和 /* ... */…

C# 修改项目类型 应用程序程序改类库

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

地址查询API接口:高效查询地址信息,提升数据处理效率

地址查询各省市区API接口 地址查询是我们日常生活中经常遇到的一个需求,无论是在物流配送、地图导航还是社交网络等应用中,都需要通过地址来获取地理位置信息。为了满足这个需求,我们可以使用地址查询API接口来高效查询地址信息,提…

图 、图的存储

图的基本概念: 图g由顶点集v和边集e组成,记为g(v,e) 用|v|表示图g中顶点的个数,也称图g的阶,用|e|表示图g中边的条数 线性表可以是空表,树可以是空树,但图不可以是空&…

【数据结构】(4) 线性表 List

一、什么是线性表 线性表就是 n 个相同类型元素的有限序列,每一个元素只有一个前驱和后继(除了第一个和最后一个元素)。 数据结构中,常见的线性表有:顺序表、链表、栈、队列。 二、什么是 List List 是 Java 中的线性…

YOLO11/ultralytics:环境搭建

前言 人工智能物体识别行业应该已经饱和了吧?或许现在并不是一个好的入行时候。 最近看到了各种各样相关的扩展应用,为了理解它,我不得不去尝试了解一下。 我选择了git里非常受欢迎的yolo系列,并尝试了最新版本YOLO11或者叫它ultr…

Spring Boot 2 快速教程:WebFlux优缺点及性能分析(四)

WebFlux优缺点 【来源DeepSeek】 Spring WebFlux 是 Spring 框架提供的响应式编程模型,旨在支持非阻塞、异步和高并发的应用场景。其优缺点如下: 优点 高并发与低资源消耗 非阻塞 I/O:基于事件循环模型(如 Netty)&am…

《OpenCV》——图像透视转换

图像透视转换简介 在 OpenCV 里,图像透视转换属于重要的几何变换,也被叫做投影变换。下面从原理、实现步骤、相关函数和应用场景几个方面为你详细介绍。 原理 实现步骤 选取对应点:要在源图像和目标图像上分别找出至少四个对应的点。这些对…

20250202在Ubuntu22.04下使用Guvcview录像的时候降噪

20250202在Ubuntu22.04下使用Guvcview录像的时候降噪 2025/2/2 21:25 声卡:笔记本电脑的摄像头自带的【USB接口的】麦克风。没有外接3.5mm接口的耳机。 缘起:在安装Ubuntu18.04/20.04系统的笔记本电脑中直接使用Guvcview录像的时候底噪很大! …

The Simulation技术浅析(四):随机数生成

随机数生成技术 是 The Simulation 中的核心组成部分,广泛应用于蒙特卡洛模拟、密码学、统计建模等领域。随机数生成技术主要分为 伪随机数生成器(PRNG,Pseudo-Random Number Generator) 和 真随机数生成器(TRNG,True Random Number Generator)。 1. 伪随机数生成器(PR…

结构体DMA串口接收比特错位

发送: 显示: uint16_t接收时候会比特错位。