DeepSeek-R1 本地化部署

DeepSeek-R1 是 深度求索 推出的高性能模型,尤其擅长数学逻辑与代码生成,性能对标 OpenAI o1 正式版。本地部署推荐选择其蒸馏版量化模型(如1.5B/7B/32B),通过Ollama适配后,显存需求显著降低(8GB显存可运行8B模型)。

[TOC]

本地化部署步骤

1.安装 Ollama

  • Ollama 是一个开源的本地化大模型部署工具,旨在简化大型语言模型(LLM)的安装、运行和管理。它支持多种模型架构,并提供与 OpenAI 兼容的 API 接口,适合开发者和企业快速搭建私有化 AI 服务。
  • Windows用户:访问 https://ollama.com/download 下载安装包(若官网下载失败,点我下载),双击运行并完成初始化
#.配置永久系统变量, 将默认监听从 127.0.0.1:11434 调整为 0.0.0.0:11434
setx OLLAMA_HOST 0.0.0.0:11434 /m

#.安装ollama到指定目录
cd /d d:\
wget -c http://iso.sqlfans.cn/ai/ollama/0.5.7/OllamaSetup.exe
OllamaSetup.exe /DIR="D:\tools\ollama"

#.确认端口已监听
netstat -ano | findstr 11434
  • Linux用户:通过如下命令行一键安装
#.安装ollama
curl -fsSL https://ollama.com/install.sh | sh
systemctl start ollama
ollama --version

#.调整ollama服务, 将默认监听从 127.0.0.1:11434 调整为 0.0.0.0:11434
cat /etc/systemd/system/ollama.service | grep OLLAMA_HOST || sed -i '/Environment/a\Environment="OLLAMA_HOST=0.0.0.0:11434"' /etc/systemd/system/ollama.service
cat /etc/systemd/system/ollama.service | grep -A 8 "\[Service\]"

#.重启ollama服务
systemctl daemon-reload
systemctl restart ollama

#.确认端口已监听
netstat -lnpt | grep 11434
  • 成功安装之后,浏览器访问 Ollama 地址http://127.0.0.1:11434

2.拉取 DeepSeek 模型

  • 访问 https://ollama.com/search 找到 deepseek-r1,关于不同模型的对比可参考下表(B代表Billion,7B即70亿参数):
ds模型 参数量 模型大小 建议配置 备注
deepseek-r1:1.5b 1.5B 1.1GB 4核、8GB、集成显卡(无需独立显存) 超轻量模型
deepseek-r1:7b 7B 4.7GB 6核、16GB、RTX 3060级(共6GB显存) 默认版本,性能与OpenAl-01相当
deepseek-r1:8b 8B 4.9GB 8核、24GB、RTX 3070/4060(共8GB显存) 硬件与性能比 7B 略高 10-20%
deepseek-r1:14b 14B 9GB 12核、64GB、2块RTX 4000Ada(共40GB显存) 中等规模,企业级
deepseek-r1:32b 32B 20GB 24核、128GB、4块RTX 4000Ada(共80GB显存) 高性能
deepseek-r1:70b 70B 43GB 32核、256GB、4块RTX 5880Ada(共192GB显存) 超高性能
deepseek-r1:671b 671B 404GB 64核、1TB、8块A100(共640GB显存) 满血版,性能对标OpenAI-o1正式版
  • 根据硬件选择合适的模型版本,示例拉取 deepseek-r1:1.5b 模型,大小约 1.1 GB、速度约 489 KB/s
#.若下载速度越来越慢,可按 Ctrl+C 取消并重新下载(支持断点续传,亲测有效)
ollama pull deepseek-r1:1.5b
ollama list

注:模型越大效果越好,但需权衡计算资源。7B模型则在性能和资源需求之间达到了一个较好的平衡,它具备更强的语言理解和生成能力,能够处理更复杂的任务,如内容创作、智能客服等。

3.启动 DeepSeek 模型交互

  • 启动 DeepSeek 模型交互,示例启动 deepseek-r1:1.5b 模型
ollama run deepseek-r1:1.5b
  • 启动后进入REPL界面,输入问题即可获得回答,输入 /bye 退出会话
>>> 中国目前有多少人口

>>> /bye

4.安装 Open WebUI 可视化界面 [选做]

  • 安装 docker 24.0.1
curl -sL 'http://iso.sqlfans.cn/docker/install_docker_2401.sh' | bash
docker --version
  • 启动 DeepSeek 模型交互(若退出模型交互则无法获取模型),以供容器服务使用
ollama run deepseek-r1:1.5b &
  • 以 docker 方式部署 Open WebUI,容器初始化约3分钟
#.windows部署方式1 - 使用 --add-host 允许docker容器访问宿主机服务
mkdir d:\tools\webui
docker pull ghcr.io/open-webui/open-webui:main
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v d:\tools\webui:/app/backend/data --name open_webui ghcr.io/open-webui/open-webui:main

#.windows部署方式2 - 使用 -e OLLAMA_BASE_URL 显式指定 ollama 地址
mkdir d:\tools\webui
docker pull ghcr.io/open-webui/open-webui:main
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://192.168.31.168:11434 -v d:\tools\webui:/app/backend/data --name open_webui ghcr.io/open-webui/open-webui:main

#.linux系统, 不支持 --add-host, 只能使用 -e OLLAMA_BASE_URL 显式指定 ollama 地址
mkdir -p /data/webui
docker pull ghcr.io/open-webui/open-webui:main
docker run --privileged=true -d -p 3000:8080 -e OLLAMA_BASE_URL=http://192.168.31.101:11434 -v /data/webui:/app/backend/data --name open_webui ghcr.io/open-webui/open-webui:main
  • 登录 webui控制台 http://localhost:3000,配置管理员账号及密码,待初始化完成之后就可以进行对话了

注:正常情况下,不需要在“设置 - 管理员设置 - 外部连接 与 模型”中绑定 Ollama地址 与 DeepSeek模型

进阶优化与安全

性能调优技巧

  • GPU加速:Windows设置环境变量 $env:OLLAMA_GPU="enable",Linux添加 OLLAMA_GPU_LAYERS=35
  • 量化压缩:通过 ollama create <模型名称> -f modelfile 自定义配置量化参数(如 q4_k_m),减少显存占用

安全加固

  • https加密:使用OpenSSL生成证书并配置反向代理
  • 权限管理:通过JWT令牌验证API请求,限制访问IP
  • 数据隔离:将模型与用户数据分离存储,避免敏感信息泄露

遇到的问题

问题1:ollama pull 下载模型超时

  • 症状:由于网络不稳定,导致下载模型超时
  • 解决:使用国内镜像源并重新拉取,或者按 Ctrl+C 取消并重新拉取(支持断点续传,亲测有效

问题2:ollama run 报错内存不足

  • 症状:在一台2核2G的机器上执行 ollama run 报错内存不足
  • 解决:增加内存或更换机器
[root@localhost ~]# ollama run deepseek-r1:1.5b
Error: model requires more system memory (1.7 GiB) than is available (658.0 MiB)

[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1837         921         378          96         537         665
Swap:             0           0           0

问题3:open-webui 容器启动失败

  • 症状:启动 open webui 容器之后,端口虽已监听但telnet失败,docker ps 看到该容器状态为 unhealthy,执行 docker logs -f 看到报错 Failed to send telemetry event ClientStartEvent: can't start new thread
  • 解决:执行 docker logs 看到该容器报权限问题,解决办法是在 docker run 之后紧跟添加 --privileged=true(顺序有要求) 对容器中的root用户进行提权,使其拥有对宿主机的root操作权限
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                                COMMAND             CREATED             STATUS                     PORTS                    NAMES
0c6512c3b49b        ghcr.io/open-webui/open-webui:main   "bash start.sh"     4 minutes ago       Up 2 minutes (unhealthy)   0.0.0.0:3000->8080/tcp   open_webui

[root@localhost ~]# docker logs -f 0c6512c3b49b
ERROR [chromadb.telemetry.product.posthog] Failed to send telemetry event ClientStartEvent: can't start new thread
OpenBLAS blas_thread_init: pthread_create failed for thread 1 of 8: Operation not permitted
OpenBLAS blas_thread_init: RLIMIT_NPROC -1 current, -1 max
OpenBLAS blas_thread_init: ensure that your address space and process count limits are big enough (ulimit -a)
OpenBLAS blas_thread_init: or set a smaller OPENBLAS_NUM_THREADS to fit into what you have available

[root@localhost ~]# ulimit -n
65535

问题4:open-webui 无法获取模型

  • 症状:登录open webui管理员面板,点击 模型 - 管理模型 提示 无法获取模型 且右上角报错 Open WebUI: Server Connection Error
  • 解决:首先执行 ollama run 启动模型交互(不可退出),然后启动 open-webui 容器添加参数 --add-host=host.docker.internal:host-gateway 允许docker容器访问宿主机服务,或者显式指定 -e OLLAMA_BASE_URL=http://192.168.31.168:11434(前提是监听了 0.0.0.0:11434 而非 127.0.0.1:11434)

问题5:open-webui 页面白屏

  • 症状1:执行 docker run 启动 Open WebUI 容器之后,3000端口虽已监听,但telnet不通
  • 解决1:初始化速度比较慢,多等一会吧,预计3分钟+

补充:http://localhost:3000 第一次打开是白屏也是因为初始化未完成,再等一等吧

  • 症状2:open-webui 提供web界面,如果机器没有科学上网的话,登录后会长时间的空白,需要等待很久才会出现内容的情况
  • 原因2:这个其实是因为默认对接了open-ai的Api,但是没有科学上网的话,会一直等待响应,只需要关闭即可
  • 解决2:登录 http://localhost:3000/admin/settings 打开 管理员面板 - 外部连接,禁用 OpenAI API

Copyright © www.sqlfans.cn 2024 All Right Reserved更新时间: 2025-02-21 18:16:11

results matching ""

    No results matching ""