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

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

文章目录

  • 前言
  • 开发环境
  • 快速开始
    • 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.kler.cn/a/530751.html

相关文章:

  • 【C语言入门】解锁核心关键字的终极奥秘与实战应用(二)
  • 北京门头沟区房屋轮廓shp的arcgis数据建筑物轮廓无偏移坐标测评
  • 六十分之三十七——一转眼、时光飞逝
  • 线性回归的损失和优化02
  • wax到底是什么意思
  • CSS Fonts(字体)
  • doris:Delete 操作
  • 排序算法--桶排序
  • Intellij 插件开发-快速开始
  • 【Three.js+React】教程001:绘制简单的盒子
  • C++ Primer 标准库vector
  • 最小生成树Prim算法
  • QMK启用摇杆和鼠标按键功能
  • 软考高项笔记 信息技术及其发展
  • 2025蓝桥杯JAVA编程题练习Day2
  • 排序算法--希尔排序
  • [ Javascript ] WebStorm Create Node+TypeScript Project
  • 软件测试02----用例设计方法
  • Kafka下载
  • Linux进阶——时间服务器
  • Flutter Scaffold 页面结构
  • 类加载器详解
  • [权限提升] Windows 提权 维持 — 系统错误配置提权 - 注册表权限配置错误提权
  • 《机器学习数学基础》补充资料:仿射变换
  • Linux:宏观搭建网络体系
  • t基础使用--6---git常用命令