当前位置: 首页 > article >正文

最新本地部署 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


http://www.kler.cn/a/555627.html

相关文章:

  • 【WPS+VBA】表格中重复表头与页码的批量删除
  • C/C++ 指针避坑20条
  • KT142C语音芯片支持的语音文件格式什么?Mp3还是wav呢?
  • 【Unity 游戏引擎插件】Modular Multiplayer FPS Engine (Mirror) (MMFPSE) 专注于帮助开发者快速构建多人第一人称射击(FPS)游戏
  • AI助力下的PPT革命:DeepSeek 与Kimi的高效创作实践
  • SQLMesh 系列教程7- 详解 seed 模型
  • 发现一个挺好的项目,可以在springboot项目中快速接入DeepSeek API,有需要的可以尝试一下
  • 技术总结 | MySQL面试知识点
  • 数据库系统概念
  • 自然语言处理NLP 01语言转换语言模型
  • 如何优化 Webpack 的构建速度?
  • 设计模式教程:命令模式(Command Pattern)
  • 使用vue-office报错TypeError: ft.createElementVNode is not a function
  • Casbin 权限管理介绍及在 Go 语言中的使用入门
  • 前端面试题-异步任务队列控制
  • [Android]NestedScrollView嵌套RecyclerView视图点击事件冲突问题
  • 【AI】GitHub Copilot
  • AF3 _realign_pdb_template_to_query 函数解读
  • DeepSeek 冲击(含本地化部署实践)
  • ios UICollectionView使用