写点什么

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

作者:易程
  • 2025-02-10
    北京
  • 本文字数:2767 字

    阅读完需:约 9 分钟

满血版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 GB

  • DeepSeek-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

可以选择在线安装,或者离线安装

在线安装:

  1. 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


curl -L https://ollama.com/download/ollama-linux-amd64-rocm.tgz -o ollama-linux-amd64-rocm.tgzsudo tar -C /usr -xzf ollama-linux-amd64-rocm.tgzsudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollamasudo usermod -a -G ollama $(whoami)
复制代码


创建服务文件 /etc/systemd/system/ollama.service:


[Unit]Description=Ollama ServiceAfter=network-online.target
[Service]ExecStart=/usr/bin/ollama serveUser=ollamaGroup=ollamaRestart=alwaysRestartSec=3Environment="PATH=$PATH"
[Install]WantedBy=default.targetsudo systemctl daemon-reloadsudo systemctl enable ollama
复制代码


还要检查是否安装 CUDA 驱动,如果没有的话,则需要安装 CUDA 驱动 ,参考:https://rocm.docs.amd.com/projects/install-on-linux/en/latest/tutorial/quick-start.html

nvidia-smi


第三:创建 Modelfile 描述文件


注意:MODEL_PATH 要替换为自己的模型路径。

cat <<EOF > DeepSeekQ1_ModelfileFROM {MODEL_PATH}/DeepSeek-R1-UD-IQ1_M.ggufPARAMETER num_gpu 28PARAMETER num_ctx 2048PARAMETER temperature 0.6TEMPLATE "<|User|>{{ .Prompt }}<|Assistant|>"EOF
复制代码

创建 ollama 模型,ollama 会创建一个新模型,且大小与原始模型一样,如果/usr/路径下空间不足的话(剩余空间要大于模型的大小),可以修改 ollama 的模型存放路径

vim /etc/systemd/system/ollama.service Environment="OLLAMA_MODELS=/data/disk0/ollama/model" 
复制代码

配置完成后需要重启 ollama

sudo systemctl daemon-reload sudo systemctl restart ollama 
复制代码


第四:开始使用 Ollama 创建模型

/usr/local/bin/ollama create DeepSeek-R1-UD-IQ1_M -f ${PATH-TO-MODEL}/DeepSeekQ1_Modelfile
root@localhost:~# ollama create DeepSeek-R1-UD-IQ1_M -f DeepSeekQ1_Modelfilegathering model componentscopying file sha256:8d0774696673bc32468922d072a7658fd4883ec77f5035329f0626dad6df0340 100%parsing GGUF
复制代码

PS:这里时间会有一点长,主要是要将 DeepSeek 模型拷贝到 Ollama 的模型路径下,然后进行初始化加载。


第五:开始运行模型

ollama run DeepSeek-R1-UD-IQ1_M --verbose 
复制代码

到这里,DeepSeek R1 的模型已经运行起来了,我们可以直接在 ollama 的 shell 命令中进行交互,也可以通过 API 方式,也可以安装 webui 的服务通过本地电脑方式来访问。

ollama 直接访问:

root@localhost:~# ollama run DeepSeek-R1-UD-IQ1_M --verbose>>> Hi ,你是谁<think>
</think>
您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何疑问,均可告知与我,我会尽我所能帮助您解决问题。
total duration: 13.531921632sload duration: 16.400048msprompt eval count: 6 token(s)prompt eval duration: 1.279sprompt eval rate: 4.69 tokens/seval count: 46 token(s)eval duration: 12.234seval rate: 3.76 tokens/s
复制代码


通过 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 的全量版本要差一些意思。

后续可以尝试在分布式环境中部署模型来看看效果。


发布于: 刚刚阅读数: 3
用户头像

易程

关注

分享创造价值、交流带来成长 2018-02-13 加入

公众号:云原生大数据技术荟 专注云原生大数据架构、数据平台架构方向,终身成长者,坚持原创分享。个人宗旨:分享创造价值、交流带来成长!

评论

发布
暂无评论
满血版DeepSeek R1 671B本地部署完成,可以快乐的玩耍了_DeepSeek_易程_InfoQ写作社区