最新本地部署 DeepSeekR1 蒸馏\满血量化版 + WebOpenUI 完整教程(Ubuntu\Linux系统\Ollama)
测试机为6133CPU(40Cores)+256G D4+4*4090D 24G
一种方法是部署蒸馏版Distill模型。一种是部署Huggingface上unsloth的量化版模型
Ollama及模型安装
1.下载并安装ollama
curl -fsSL https://ollama.com/install.sh | sh
如果下载不动可以试试挂梯子或者再试几次
挂代理代码:
export HTTP_PROXY="http://xxx:xxx"
export HTTPS_PROXY="http://xxx:xxx"
2. 安装Deepseek模型
这里根据自己的实际配置选择对应的模型
有多种可选择:https://ollama.com/library/deepseek-r1
我选择的是70B
ollama run deepseek-r1:70b
下载时间可能会较长
安装完成后可以使用同样的命令来启动本地对话
3.更改监听端口(如需外网访问)
vim /etc/systemd/system/ollama.service
改成这样:
即添加一个:Environment=“OLLAMA_HOST=0.0.0.0”
随后执行
sudo systemctl daemon-reload
sudo systemctl restart ollama
如需外网访问,还需要检查防火墙是否放开11434端口。
4.API测试
本地访问127.0.0.1:11434
curl http://127.0.0.1:11434
会出现 ollama is running的提示
外网可通过IP:11434访问
量化版部署
还有一种是在671B上面量化的版本,理论上比前面的蒸馏版要好一点,但是很麻烦
1.下载
https://huggingface.co/unsloth/DeepSeek-R1-GGUF
DeepSeek-R1-UD-IQ1_M:内存 + 显存 ≥ 200 GB
DeepSeek-R1-UD-IQ2_XXS:内存 + 显存 > 300GB
DeepSeek-R1-Q4_K_M:内存 + 显存 ≥ 500 GB
我这里选择了2.22bit
如果源网站下载慢的话,推荐用镜像站:
https://hf-mirror.com/unsloth/DeepSeek-R1-GGUF
https://www.modelscope.cn/models/unsloth/DeepSeek-R1-GGUF/files
或者使用hf的cli下载:
(base) user@user-SYS-7049GP-TRT:~/r1_gguf$ huggingface-cli download unsloth/DeepSeek-R1-GGUF DeepSeek-R1-UD-IQ2_XXS/DeepSeek-R1-UD-IQ2_XXS-00001-of-00004.gguf --local-dir .
2.合并
这里需要将多个文件合并为一个大文件,需要llama.cpp文件,参考
https://hf-mirror.com/unsloth/DeepSeek-R1-GGUF
apt-get update
apt-get install build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggerganov/llama.cpp
cmake llama.cpp -B llama.cpp/build \
-DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-quantize llama-cli llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
随后使用split工具来合并gguf文件:
注意:只传入第一个文件作为输入,输出文件为目标文件
./llama.cpp/build/bin/llama-gguf-split --merge \
/data/DeepSeek-R1/DeepSeek-R1-UD-IQ2_XXS/DeepSeek-R1-UD-IQ2_XXS-00001-of-00004.gguf \
merged_deepseek_r1_ud_iq2_xxs.gguf
这个过程会有点漫长,并且需要大存储空间,要不然会报空间不足,而且模型较大的话只能装在固态盘,否则读取性能不足
如果空间不足,可以更改model位置到其它盘:
vim /etc/systemd/system/ollama.service
Environment=“OLLAMA_MODELS=/data/ollama_models”
随后保存
sudo systemctl daemon-reload
sudo systemctl restart ollama
3.安装
创建一个文件 DeepSeekQ2_Modelfile
vim DeepSeekQ2_Modelfile
写入内容: 注:路径根据自己刚刚合并后的文件修改,其它详情见 https://snowkylin.github.io/blogs/a-note-on-deepseek-r1.html
这里可能需要过多调试
FROM /home/user/r1_gguf/merged_deepseek_r1_ud_iq2_xxs.gguf
PARAMETER num_gpu 24
PARAMETER num_ctx 2048
PARAMETER temperature 0.6
TEMPLATE "<|User|>{{ .Prompt }}<|Assistant|>"
安装:
ollama create deepseek-r1-ud-iq2-xxs -f DeepSeekQ2_Modelfile
后面测试的时候可能会报CUDA或内存错误,具体需要自己排查
OpenWebUI搭建
这相当于搭建一个前端页面
1.docker安装
首先需要安装docker,步骤如下,如果已有docker可跳过
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker
sudo apt-get install docker-compose -y
2.运行openweb-ui
直接运行方式:
sudo docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main
docker-compose方式
version: "3.8"
services:
open-webui3:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui3
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
environment:
- OLLAMA_BASE_URL=http://host.docker.internal:11434
extra_hosts:
- "host.docker.internal:host-gateway"
restart: always
volumes:
open-webui:
3.启动并配置
docker-compose方式通过 sudo docker-compose up -d 启动
如果是直接运行,则访问 服务器ip:8080,
如果是docker-compose,则访问 服务器ip:3000
随后进入界面,首次进入需设置管理员账号
4.设置外部链接
1.打开设置-管理员设置-外部连接
2.进行设置如下:
注意 openAI的API一般需要关闭,且防火墙需要放行3000或8080以及11434端口,否则会导致初始化时界面白屏
sudo ufw allow 11434
sudo ufw allow 3000
这里我是以docker-compose方式启动的,所以前面设置过,这里直接通过host.docker.internal访问即可。
如果前面是直接运行的,则用的是主机网络,IP设置为127.0.0.1,端口同样是11434
3.设置后点击 下载 按钮测试
4.随后返回首页,会看到刚才添加的模型:
结语
这是我第一次接触ollama及大语言模型的部署,如有错误的地方请指正
最终的使用感受是 o3-mini-high ≈ R1满血版 ≈ O1 > Gemini2.0 Thiking > O3Mini > 本地量化2.22bit > GPT4o > 本地R1-Distill-70B > 本地R1-Distill-32B