满血版 DeepSeek R1 671B 本地部署完成,可以快乐的玩耍了

在前面一周通过深度使用 DeepSeek 之后,简直被其的能力所震撼,在之前所有的 AI 大模型问答系统中,都是用户给定一个提示词问题,然后 AI 回复问题,而 DeepSeek 令我感觉很 Nice 点在于它可以进行思维链模式的深度思考问题,并把这个问题的思考表达过程展示出来,其实,不知道大家有没有想过一个问题,有时候问题答案已经不重要了,大模型的深度思考本身的内容就值得我们进行学习,我觉得这个是非常能够提升人思考水平和表达能力的一个功能。
无奈在于,由于 DeepSeek 太过于火热,或者是其他因素,导致官网的地址在问答中经常出现服务器繁忙的情况,非常影响的使用体感,而现在再让我使用其他的模型,还有些不太习惯。

不过我们可以选择自己搭建一套本地的 DeepSeek 模型,或者选择一些云厂商进行开通部署,对于一个技术人来说毫无疑问,当然是自己搞起了。
关于 DeepSeek 模型的本地部署网上有很多文章,但是纯部署要考虑硬件环境配置、大模型大小选择、参数量等等,虽然说 DeepSeek 即便是在本地笔记本普通配置规格也可以运行起来,但是只能选择最小参数的 7B 模型,它是一个基于 QWEN2 的蒸馏版本,效果其实比正式的版本要大大的打折扣。
原生态的 DeepSeek R1 671B 模型的大小是 720GB,所占用的内存空间非常大,即便是 H100 * 8 GPU 运行起来也会比较麻烦,这里我们可以选择量化版本,所谓量化版本就是选择性的将比较重的层级量化为更高的位置,对于核心的大部分 MoE 层依然是放在比较低的位,这样来说,模型的大小会大大的缩小,但是使用效果基本没什么大的差别(通过测试不执行超复杂的问题,简单的问答、程序、数学类的与官方问答基本一致,但速度上会慢一些。)。
在这里我们可以选择 Unsloth AI 的动态量化版本,具体可以参阅:deepseekr1-dynamic
DeepSeek-R1-UD-IQ1_M(671B,动态量化 1.73 位,158 GB,HuggingFace)
DeepSeek-R1-Q4_K_M (671B, 4 位标准, 404 GB, HuggingFace)

我所选择的是 DeepSeek-R1-UD-IQ1_M 1.73-bit,模型建议以下内存需求:
DeepSeek-R1-UD-IQ1_M
: RAM + VRAM ≥ 200 GBDeepSeek-R1-Q4_K_M
: RAM + VRAM ≥ 500 GB
Ollama 支持 CPU 和 GPU 混合推理,因此可以将 RAM 和 VRAM 大致相加作为总内存空间。除了模型权重(158 GB 和 404 GB)外,还应该为上下文缓存留出一些内存空间。留出的空间越多,可以设置的上下文窗口就越大。
在我的服务器配置是 V100 * 8 ,单卡 32G 内存
第一:从 HuggingFace 下载模型文件 (.gguf),然后将分离的文件合并为一个
合并的命令为:
llama-gguf-split --merge DeepSeek-R1-UD-IQ1_M-00001-of-00004.gguf DeepSeek-R1-UD-IQ1_M.gguf
如果想下载整个模型,而不是四个再合并,可以选择七牛云的地址进行下载,如下:
wget https://algorithm.qnaigc.com/DeepSeek/DeepSeek-R1-UD-IQ1_M.gguf

第二:安装 ollama
可以选择在线安装,或者离线安装
在线安装:
curl -fsSL https://ollama.com/install.sh | sh
离线安装(我这里默认选择 GPU 安装方式,其他方式参考:https://github.com/ollama/ollama/blob/main/docs/linux.md):
curl -L https://ollama.com/download/ollama-linux-amd64-rocm.tgz -o ollama-linux-amd64-rocm.tgz
创建服务文件 /etc/systemd/system/ollama.service:
还要检查是否安装 CUDA 驱动,如果没有的话,则需要安装 CUDA 驱动 ,参考:https://rocm.docs.amd.com/projects/install-on-linux/en/latest/tutorial/quick-start.html
nvidia-smi
第三:创建 Modelfile 描述文件
注意:MODEL_PATH 要替换为自己的模型路径。
创建 ollama 模型,ollama 会创建一个新模型,且大小与原始模型一样,如果/usr/路径下空间不足的话(剩余空间要大于模型的大小),可以修改 ollama 的模型存放路径
配置完成后需要重启 ollama
第四:开始使用 Ollama 创建模型
PS:这里时间会有一点长,主要是要将 DeepSeek 模型拷贝到 Ollama 的模型路径下,然后进行初始化加载。
第五:开始运行模型
到这里,DeepSeek R1 的模型已经运行起来了,我们可以直接在 ollama 的 shell 命令中进行交互,也可以通过 API 方式,也可以安装 webui 的服务通过本地电脑方式来访问。
ollama 直接访问:
通过 API 来进行访问
curl -X POST http://127.0.0.1:11434/api/generate -d '{"model":"DeepSeek-R1-UD-IQ1_M", "prompt": "Hi ,你是谁"}'
GPU 卡的运行资源大小

这里我通过本地电脑安装了一个chatboxai ,安装完成之后,在配置中指定 ollama 的 API 地址和端口,端口号默认是 11434 (如果是远端地址,记得防火墙放开)。
然后,选择 DeepSeek-R1-UD-UQ1_M 模型即可。

但是,从实际的使用效果上来看,对于比较“刁钻”的逻辑思考问题,量化版本还是比 R1 的全量版本要差一些意思。
后续可以尝试在分布式环境中部署模型来看看效果。
版权声明: 本文为 InfoQ 作者【易程】的原创文章。
原文链接:【http://xie.infoq.cn/article/03ed73c058afe11d823e75cdf】。文章转载请联系作者。
评论