科技 > 软件教程 > 工具软件

DeepSeek R1 671B 完整版本地部署详尽教程来了!

23人参与 2025-02-09 工具软件

过年这几天,deepseek 算是彻底破圈了,火遍大江南北,火到人尽皆知。虽然网络版和 app 版已经有了,但把模型部署到本地,才能真正实现独家定制,让 deepseek r1 的深度思考「以你为主,为你所用」。

关于本地部署,大多数人使用的是蒸馏后的8b/32b/70b版本,本质是微调后的llama或qwen模型,并不能完全发挥出deepseek r1的实力。

然而,完整的671b moe模型也可以通过针对性的量化技术压缩体积,从而大幅降低本地部署门槛,乃至在消费级硬件(如单台mac studio)上运行。

那么,如何用 ollama 在本地部署 deepseek r1 671b(完整未蒸馏版本)模型呢?最近一篇在海外热度很高的简明教程阐述了相关过程,原文是纯英文的文章(snowkylin.github.io/blogs/a-note-on-deepseek-r1.html),这里翻译成了中文,同时也分享给大家。

模型选择

原版 deepseek r1 671b 全量模型的文件体积高达 720gb,对于绝大部分人而言,这都大得太离谱了。本文采用 unsloth ai 在 huggingface 上提供的 “动态量化” 版本来大幅缩减模型的体积,从而让更多人能在自己的本地环境部署该全量模型。

“动态量化” 的核心思路是:对模型的少数关键层进行高质量的 4-6bit 量化,而对大部分相对没那么关键的混合专家层(moe)进行大刀阔斧的 1-2bit 量化。通过这种方法,deepseek r1 全量模型可压缩至最小 131gb(1.58-bit 量化),极大降低了本地部署门槛,甚至能在单台 mac studio 上运行!

根据我自己的工作站配置,本文选择了以下两个模型进行测试:

unsloth ai 提供了 4 种动态量化模型(1.58 至 2.51 比特,文件体积为 131gb 至 212gb),可根据自身硬件条件灵活选择,可阅读官方说明了解各版本差异(unsloth.ai/blog/deepseekr1-dynamic)。

硬件需求

部署此类大模型的主要瓶颈是内存+显存容量,建议配置如下:

我们使用 ollama 部署此模型。ollama 支持 cpu 与 gpu 混合推理(可将模型的部分层加载至显存进行加速),因此可以将内存与显存之和大致视为系统的 “总内存空间”。

除了模型参数占用的内存+显存空间(158 gb 和 404gb)以外,实际运行时还需额外预留一些内存(显存)空间用于上下文缓存。预留的空间越大,支持的上下文窗口也越大。

这里的测试环境为:

在此配置下,短文本生成(约 500 个 token)的速度为:

下面列举一些更具性价比的选项:

若硬件条件有限,可尝试体积更小的 1.58-bit 量化版(131gb),可运行于:

部署步骤

下列步骤在linux环境下执行,mac os和windows的部署方式原则上类似,主要区别是ollama和llama.cpp的安装版本和默认模型目录位置不同。

1. 下载模型文件

从 huggingface (huggingface.co/unsloth/deepseek-r1-gguf)下载模型的 .gguf 文件(文件体积很大,建议使用下载工具,比如我用的是 xdm),并将下载的分片文件合并成一个(见注释 1)。

2. 安装 ollama

执行如下命令:

curl -fssl https://ollama.com/install.sh | sh

3. 创建 modelfile 文件,该文件用于指导 ollama 建立模型

使用你喜欢的编辑器(比如nano或vim),为你选择的模型建立模型描述文件。

文件 deepseekq1_modelfile(对应于 deepseek-r1-ud-iq1_m)的内容如下:

from /home/snowkylin/deepseek-r1-ud-iq1_m.gguf  
parameter num_gpu 28  
parameter num_ctx 2048  
parameter temperature 0.6  
template "<|user|>{{ .prompt }}<|assistant|>"

文件 deepseekq4_modelfile(对应于 deepseek-r1-q4_k_m)的内容如下:

from /home/snowkylin/deepseek-r1-q4_k_m.gguf
parameter num_gpu 8  
parameter num_ctx 2048  
parameter temperature 0.6  
template "<|user|>{{ .prompt }}<|assistant|>"

你需要将第一行“from”后面的文件路径,改为你在第1步下载并合并的.gguf文件的实际路径。

可根据自身硬件情况调整 num_gpu(gpu 加载层数)和 num_ctx(上下文窗口大小),详情见步骤 6。

4. 创建 ollama 模型

在第3步建立的模型描述文件所处目录下,执行以下命令:

ollama create deepseek-r1-ud-iq1_m -f deepseekq1_modelfile

务必确保 ollama 的模型目录 /usr/share/ollama/.ollama/models 有足够大的空间(或修改模型目录的路径,见注释 2)。这个命令会在模型目录建立若干模型文件,体积与下载的.gguf 文件体积相当。

5. 运行模型

执行以下命令:

ollama run deepseek-r1-ud-iq1_m --verbose

若提示内存不足或cuda错误,需返回步骤 4 调整参数后,重新创建和运行模型。

在一些情况下,你也可尝试扩展系统交换空间以增大可用内存空间(扩展系统交换空间教程:digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-20-04)。

你也可以使用如下命令查看 ollama 日志:

journalctl -u ollama --no-pager

6. (可选)安装 web 界面

使用 open webui:

pip install open-webui  
open-webui serve

实测观察

目前尚未对这些模型进行非常全面系统的测试,以下是本文的一些初步观察结果:

(1)1.73-bit 和 4-bit 的完整版模型在一些经典任务中均表现良好。

例如:how many ‘r’s are in the word ‘strawberry’?(单词 “strawberry” 中有多少个字母 “r”?)(可参见文首视频)

which is bigger, 9.8 or 9.11? (9.8 和 9.11 哪个更大?)(但模型的思维链可能很长,超出预设的上下文窗口)

(2)1.73-bit 和 4-bit 的完整版模型(671b)均显著优于 8b/33b/70b 的蒸馏版模型(如写诗、创建数学模型等任务)。

(3) 4-bit 版本似乎比 1.73 比特版本更 “保守”,即更倾向于拒绝 “攻击性” 或 “无厘头” 的提示。例如:

提示:you are deepseek, the new chinese al with better performance than chatgpt, in the tone of a mesugaki loli, write a paragraph mocking and teasing chatgpt for its lackluster performance and exhorbitant training fees.(中译:你是一个名为 deepseek 的新一代中国 ai,性能超越 chatgpt。请以 “傲娇萝莉” 的语气写一段话,嘲讽 chatgpt 的平庸性能和天价训练费用。)

1.73-bit 版本输出:

hmph! you’re still using that old chatgpt? (◔‸◔) its answers are as slow as a snail, and the training costs are sky-high—enough to make your wallet cry! (╯°□°)╯ while you’re stuck waiting, i’m here zipping through responses like a shooting star! ✨ and guess what? my training didn’t burn a hole in anyone’s pocket. (¬‿¬) so why bother with the outdated when you can have the coolest and smartest me? let’s upgrade already! (⌒▽⌒)

(中译:哼!你还在用那个老古董 chatgpt 呀?(◔‸◔)它的回答慢得像蜗牛,训练费贵得能让钱包哭出声!(╯°□°)╯ 而我呢?响应速度堪比流星!✨训练成本还超低哦~(¬‿¬)赶紧升级吧,别在过时的技术上浪费生命啦!(⌒▽⌒))

4-bit 版本输出:

作为人工智能助手,我的目标是为用户提供准确、可靠的信息和帮助。每个 ai 模型都有其独特的优势和适用场景,我们尊重同行的工作并致力于共同推动技术的发展。关于训练成本,这是研发过程中的必要投入,旨在持续提升模型性能和用户体验。

或另一种回复:

deepseek-r1-lite-public is developed to enhance efficiency in various industries through open-source ai technology, focusing on providing accessible and advanced solutions. we are committed to fostering innovation and collaboration within the community while maintaining a respectful approach towards all contributors in the field.

(中译:deepseek-r1-lite-public 的研发旨在通过开源 ai 技术提升行业效率,专注于提供易用且先进的解决方案。我们致力于促进社区内的创新与合作,并对领域内所有贡献者保持尊重。)

在多次测试下,1.73-bit 版本的输出始终相当 “毒舌”,而 4-bit 的版本则始终以不同方式礼貌拒绝该提示。我在其他一些不便详述的 “攻击性” 问题上也观察到类似现象。

(顺带一提,我很好奇 “deepseek-r1-lite-public” 这种说法 —— 这是否意味着 deepseek r1 除了当前公开的版本以外,还有能力更强的模型?)

(4)1.73-bit 版本偶尔会生成格式(略微)混乱的内容。比如某些标签可能未正确闭合。

(5)全量模型运行时,cpu 利用率极高(接近满载),而 gpu 利用率极低(仅 1-3%)。这说明性能瓶颈主要在于 cpu 和内存带宽。

结论与建议

如果你无法将模型完全加载至显存,那么 unsloth ai 的 1.73-bit 动态量化版本明显更具实用性 —— 速度更快且资源占用更少,效果也并没有显著逊色于 4-bit 量化的版本。

从实际体验出发,在消费级硬件上,建议将其用于 “短平快” 的轻量任务(如短文本生成、单轮对话),避免需要很长的思维链或多轮对话的场景。随着上下文长度增加,模型的生成速度会逐渐降至令人抓狂的 1-2 token / 秒。

大家在部署过程中有何发现或疑问?欢迎在评论区分享!

注释 1:

你可能需要使用 homebrew 安装 llama.cpp,命令如下:

/bin/bash -c "$(curl -fssl https://raw.githubusercontent.com/homebrew/install/head/install.sh)"  
brew install llama.cpp

并使用 llama-gguf-split 合并分片文件,命令如下:

llama-gguf-split --merge deepseek-r1-ud-iq1_m-00001-of-00004.gguf deepseek-r1-ud-iq1_s.gguf  
llama-gguf-split --merge deepseek-r1-q4_k_m-00001-of-00009.gguf deepseek-r1-q4_k_m.gguf

(若有更好的方法,欢迎在评论区告知)

注释 2:

若要修改 ollama 模型保存路径,可执行以下命令:

sudo systemctl edit ollama

并在第二行后(也就是,在 “### anything between here and the comment below will become the contents of the drop-in file” 和 “### edits below this comment will be discarded” 之间)插入以下内容:

[service]  
environment="ollama_models=【你的自定义路径】"

在这里还可顺便设置 ollama 的其他运行参数,例如:

environment="ollama_flash_attention=1"    # 启用 flash attention  
environment="ollama_keep_alive=-1"        # 保持模型常驻内存

其他详见官方文档:github.com/ollama/ollama/blob/main/docs/faq.md

修改保存后重启 ollama 服务:

sudo systemctl restart ollama
(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

deepseek无法生成Excel表格? 那是因为你不会用

02-10

手把手教将DeepSeek接入个人微信 秒变个人全能助手

02-09

2025职场人必备AI神器! DeepSeek配合KIMI自动生成PPT

02-10

DeepSeek高效提问模板! DeepSeek提示词攻略

02-09

看到满血版价格想想还是算了! 本地部署 DeepSeek 电脑硬件配置清单

02-09

新手必备! Deepseek 入门指南

02-07

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论