deepseek大模型部署踩坑心得

发布于:2025-02-14 ⋅ 阅读:(251) ⋅ 点赞:(0)

年初,deepseek大火,年后一到公司就被安排部署deepseek大模型,几天下来于是就有了这篇踩坑心得。



1、deepseek系列模型介绍

deepseek公司在github账号deepseek-ai发布的模型MoE架构的deepseek-V3和deepseek-R1,它们都具有6710亿个总参数,但是每个tocken只激活370亿个参数;前者是通用的,适用于聊天,后者擅长推理。另外还发布了6个基于Qwen或llm传统transformer架构的蒸馏版本模型,蒸馏版本参数量相对较少,占用显存较少,但是这6个蒸馏版本模型是以deepseek-R1的标签进行学习的,所以也具有一定的推理能力。
MoE结构和传统transformer一样都具有多头自注意力层,不同是是,MoE将多头自注意力后的FFN层替换成了“专家选择”层,其核心思想是通过选择性激活子模型(专家模型)来提高模型的计算效率和表达能力。如下图所示,图片来自论文:OUTRAGEOUSLY LARGE NEURAL NETWORKS: THE SPARSELY-GATED MIXTURE-OF-EXPERTS LAYER
在这里插入图片描述


2、最简单的部署,ollama

网上大多数用ollama部署的基本上都是蒸馏版本而且是量化后的4bit版本,因为这种方式部署快且量化后版本占用显存少。
ollama模型地址:https://ollama.com/library/deepseek-r1:7b
在这里插入图片描述
可以看到,ollama上面的模型都是经过4-bit量化的,最后一个671b版本是deepseek-R1,大小是404G,也是经过4-bit量化的。但是好在这种部署方式简单快捷,不需要配置复杂的环境,所以网上大多数都是这种方式的部署方式来体验deepseek大模型的。

2.1 安装ollama

Linux下可以直接命令行安装:curl -fsSL https://ollama.com/install.sh | sh

也可以直接下载编译好的:curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
解压到/usr文件夹:tar -C /usr -xzf ollama-linux-amd64.tgz

2.2 运行

然后命令行启动ollama:ollama serve
另外开一个终端运行:ollama run deepseek-r1:7b会自动下载模型并加载,然后终端就可以聊天了,如下图所示:
在这里插入图片描述
当然,如果你服务器显卡资源够多,也可以ollama run deepseek-r1:671b运行真正的deepseek-R1,但是如果需要分布式部署或者是需要推理加速还是建议选用如vllm或SGLang部署为好,因为它们对大模型推理有加速优化。见文章大模型工具对比:SGLang, Ollama, VLLM, LLaMA.cpp如何选择?
在这里插入图片描述


3、部署动态量化版本(.gguf文件格式)

参考文章:
[1] https://zhuanlan.zhihu.com/p/21274285958
[2] https://unsloth.ai/blog/deepseekr1-dynamic

步骤:
下载动态量化版本模型:https://modelscope.cn/models/unsloth/DeepSeek-R1-GGUF

from modelscope import snapshot_download
snapshot_download(
  repo_id = "unsloth/DeepSeek-R1-GGUF",
  local_dir = "DeepSeek-R1-GGUF",
  allow_patterns = ["*Q2_K_XL*"], # Select quant type Q2_K_XL for 2.51bit
)

法一: 参考文章[1]是先编译llama.cpp,

# cpu版本编译
git clone https://github.com/ggerganov/llama.cpp.git 
cd llama.cpp 
cmake -B build
cmake --build build --config Release 
# 编译好的模型文件放在llama.cpp.git/build/bin中

然后用编译生成的llama-gguf-split工具先将多个.gguf文件合并成一个.gguf文件,

cd build/bin 
./llama-gguf-split --merge ~/dir/DeepSeek-R1-UD-Q2_K_XL/DeepSeek-R1-UD-Q2_K_XL-00001-of-00005.gguf ~