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

教程 | 从零部署到业务融合:DeepSeek R1 私有化部署实战指南

文章目录

      • 1. 什么是 DeepSeek R1?
        • a. 主要介绍
        • a. 版本区别
      • 2. 部署资源要求
        • a. 硬件资源要求
      • 3. 本地安装DeepSeek-R1
        • a. 为什么选择本地部署?
        • b. 部署工具对比
        • c. 演示环境配置
        • d. Ollama安装流程
      • 4. 可视化工具
        • a. 工具对比
        • b. Open-WebUI部署
      • 5. AI API应用
        • a. Python SDK实战
        • c. Spring AI集成
      • 6. 小结

1. 什么是 DeepSeek R1?

a. 主要介绍

DeepSeek介绍:

  • 公司背景:DeepSeek是一家专注于通用人工智能的中国科技公司,主攻大模型研发与应用。
  • DeepSeek-R1:其开源的推理模型,擅长处理复杂任务且可免费商用,性能在数学、代码、自然语言推理等任务上与OpenAI o1正式版相当。
  • 其主要亮点包括:
    • 完全开源,可自由使用;
    • 支持本地运行,无需依赖云服务器;
    • 数据完全可控,确保隐私安全。
a. 版本区别

根据官方信息DeepSeek R1 可以看到提供多个版本,包括完整版(671B 参数)和蒸馏版(1.5B 到 70B 参数)。

  • 完整版性能强大,但需要极高的硬件配置;
  • 蒸馏版则更适合普通用户,硬件要求较低

DeepSeek-R1官方地址:https://github.com/deepseek-ai/DeepSeek-R1

  • 完整版(671B):需要至少 350GB 显存/内存,适合专业服务器部署
    在这里插入图片描述
  • 蒸馏版:基于开源模型(如 QWEN 和 LLAMA)微调,参数量从 1.5B 到 70B 不等,适合本地硬件部署。
    在这里插入图片描述

蒸馏版与完整版的区别:

维度完整版蒸馏版
参数量参数量较大(671B),性能最强。参数量较少(如 1.5B、7B),性能接近完整版但略有下降。
硬件需求至少 350GB 显存/内存,需高端硬件支持。至少 4GB 显存/内存,适合低配硬件。
适用场景适合高精度任务和专业场景。适合轻量级任务和资源有限的设备。

接下来详细看下蒸馏版模型的特点:

模型版本参数量特点
deepseek-r1:1.5b1.5B轻量级模型,适合低配硬件,性能有限但运行速度快
deepseek-r1:7b7B平衡型模型,适合大多数任务,性能较好且硬件需求适中
deepseek-r1:8b8B略高于 7B 模型,性能稍强,适合需要更高精度的场景
deepseek-r1:14b14B高性能模型,适合复杂任务(如数字推理、代码生成),硬件需求较高
deepseek-r1:32b32B专业级模型,性能强大,适合研究和高精度任务,需高端硬件支持
deepseek-r1:70b70B顶级模型,性能最强,适合大规模计算和高复杂度任务,需专业级硬件支持

进一步的模型细分还分为量化版:

模型版本参数量特点
deepseek-r1:1.5b-quen-distill-q4_K_M1.5B轻量级模型,适合低配硬件,性能有限但运行速度快,使用了4-bit量化,模型精度下降
deepseek-r1:7b-quen-distill-q4_K_M7B平衡型模型,适合大多数任务,性能较好且硬件需求适中,使用了4-bit量化,模型精度下降
deepseek-r1:8b-llana-distill-q4_K_M8B略高于7B模型,性能稍强,适合需要更高精度的场景,使用了4-bit量化,模型精度下降
deepseek-r1:14b-quen-distill-q4_K_M14B高性能模型,适合复杂任务(如数字推理、代码生成),硬件需求较高,使用了4-bit量化,模型精度下降
deepseek-r1:32b-quen-distill-q4_K_M32B专业级模型,性能强大,适合研究和高精度任务,需高端硬件支持,使用了4-bit量化,模型精度下降
deepseek-r1:76b-llana-distill-q4_K_M70B顶级模型,性能最强,适合大规模计算和高复杂度任务,需专业级硬件支持,使用了4-bit量化,模型精度下降

最后我们了解下,蒸馏版与量化版的区别:

维度特点
蒸馏版基于大模型(如 QWEN 或 LLAMA)微调,参数量减少但性能接近原版,适合低配硬件。
量化版使用 4-bit/8-bit 量化可大幅降低显存需求(如bitsandbytes[6]),适合资源有限的设备。

例如:

  • deepseek-r1:7b-qwen-distill-q4_K_M:7B 模型的蒸馏+量化版本,显存需求从 5GB 降至 3GB。
  • deepseek-r1:32b-qwen-distill-q4_K_M:32B 模型的蒸馏+量化版本,显存需求从 22GB 降至 16GB
    我们正常本地部署使用蒸馏版就可以

2. 部署资源要求

a. 硬件资源要求

不同操作系统基础环境:

  • Windows

    • 依赖 CUDA 和 NVIDIA 驱动,推荐使用 RTX 30/40 系列。
    • 大模型(14B+)需借助量化或模型分片技术。
  • macOS

    • 仅限 Apple Silicon 芯片(M1/M2/M3),依赖 Metal 加速。
    • 模型规模超过 14B 时性能显著下降,建议量化或云端部署。
  • Linux

    • 支持多 GPU 扩展和高效资源管理(如 NVIDIA Docker)。
    • 适合部署大型模型(14B+),需专业级硬件。
  • 硬件配置:
    可根据下表配置选择使用自己的模型

模型名称参数量模型大小显存/内存
deepseek-r1:1.5b1.5B1.1 GB~2 GB
deepseek-r1:7b7B4.7 GB~5 GB
deepseek-r1:8b8B4.9 GB~6 GB
deepseek-r1:14b14B9.0 GB~10 GB
deepseek-r1:32b32B20 GB~22 GB
deepseek-r1:70b70B43 GB~45 GB
deepseek-r1:1.5b-qwen-distill-q4_K_M1.5B1.1 GB~2 GB
deepseek-r1:7b-qwen-distill-q4_K_M7B4.7 GB~5 GB
deepseek-r1:8b-llama-distill-q4_K_M8B4.9 GB~6 GB
deepseek-r1:14b-qwen-distill-q4_K_M14B9.0 GB~10 GB
deepseek-r1:32b-qwen-distill-q4_K_M32B20 GB~22 GB
deepseek-r1:70b-llama-distill-q4_K_M70B43 GB~45 GB

3. 本地安装DeepSeek-R1

a. 为什么选择本地部署?

本地运行 AI 模型有以下优势:

  • 隐私保障:保证数据‘不出域’,所有数据均存储在本地,避免敏感信息泄露。
  • 零额外成本:DeepSeek R1 免费运行,无需订阅或额外费用。
  • 完全控制:可以进行微调和本地优化,无需外部依赖。
b. 部署工具对比

部署可以使用Ollama、LM Studio、KubeML 、Docker等工具进行部署。

  • Ollama:
    • 支持 Windows、Linux 和 Mac 系统,提供命令行和 Docker 部署方式,安装只能默认到C盘
    • 使用命令 ollama run deepseek-r1:7b 下载并运行模型
    • 本地大模型管理框架,Ollama 让用户能够在本地环境中高效地部署和使用语言模型,而无需依赖云服务。
  • LM Studio:
    • 支持 Windows 和 Mac,提供可视化界面,适合新手用户
    • 部署方式:桌面应用程序(GUI)
    • 核心功能:零配置可视化界面,支持直接加载 HuggingFace 模型库、CPU+GPU 混合推理优化,适配低配硬件(如消费级显卡)、本地模型实验沙盒,无服务化部署能力。
  • Docker:
    • 支持系统:Linux、Windows(需 Docker Desktop)。
    • 部署方式:容器化部署(单机)
    • 使用命令 docker run -d --gpus=all -p 11434:11434 --name ollama ollama/ollama 启动容器。
    • 核心功能:环境隔离性强,依赖项封装为镜像,需配合 Docker Compose/Swarm 实现多机编排。
  • KubeML:
    • 支持系统:依赖 Kubernetes 集群(跨平台)
    • 部署方式:Kubernetes 原生扩展
    • 生产级特性:基于 Kubernetes 的自动扩缩容(HPA/VPA 集成)、分布式训练框架支持(PyTorch/TensorFlow 多节点调度)、资源配额监控与 GPU 共享策略。

根据工具特性对比表格如下:

工具优势局限适用场景
Ollama单节点快速部署,轻量化启动缺乏集群管理能力,仅支持单机运行开发测试环境/个人实验
KubeML支持K8s自动扩缩容,生产级资源调度需K8s基础,学习曲线陡峭大规模生产环境/分布式训练
Docker配置即代码,环境隔离性强多机编排需Compose/Swarm配合中小型生产环境/容器化部署
LM Studio零配置可视化界面,本地模型快速实验仅限本地单机,无服务化部署能力个人开发者原型验证/模型效果测试

补充说明:

  1. LM Studio

    • 核心价值:专注于本地化模型实验,提供开箱即用的GUI界面,支持直接加载HuggingFace模型
    • 典型用例:研究人员快速验证模型效果,无需编写部署代码
    • 进阶限制:无法导出为API服务,缺乏用户权限管理等生产级功能
  2. 横向对比维度

    • 扩展性:KubeML > Docker > Ollama > LM Studio
    • 易用性:LM Studio > Ollama > Docker > KubeML
    • 生产就绪:KubeML > Docker > Ollama(LM Studio不适合生产)
  3. 混合部署建议

    • 开发阶段:用LM Studio/Ollama快速验证模型
    • 测试阶段:通过Docker构建原型API
    • 生产阶段:使用KubeML实现弹性伸缩,配合Prometheus监控
c. 演示环境配置

我这里的演示的本地环境:

  • 操作系统:
    • 系统版本:Windows 11 企业版
  • CPU规格
    • CPU型号:Intel® Core™ i9-10900X CPU @ 3.70GHz 3.70 GHz
    • CPU核数:20 核
  • 内存规格:
    • 内存:64.0 GB
  • 存储规格:
    • 型号:Samsung SSD 970 EVO Plus 2TB
    • 容量:2TB
    • 类型:固态硬盘(SSD),NVMe SSD
  • 显卡规格:
    • 显卡型号:NVIDIA RTX 4090
    • 显存大小:24GB
    • 显卡驱动:32.0.15.6094 (NVIDIA 560.94) DCH / Win11 64
    • 显卡计算技术:OpenCL, CUDA, DirectCompute, DirectML, Vulkan, Ray Tracing, PhysX, OpenGL 4.6

系统配置截图:
在这里插入图片描述
显卡参数截图:
在这里插入图片描述

因为我的需求主要开发/测试,所有我最终选择使用Ollama安装,关于如何选择合适的模型版本以及配置相应的硬件资源参考以下:

  1. 选择模型版本

    • 跟我们电脑硬件的,最终选择DeepSeek-R1模型蒸馏版32B的版本。
  2. 通用配置原则

    • 模型显存占用:每1B参数约需1.5-2GB显存(FP16精度)或0.75-1GB显存(INT8/4-bit量化)。
      • 例如,32B模型在FP16下需约48-64GB显存,量化后可能降至24-32GB。
    • 内存需求:至少为模型大小的2倍(用于加载和计算缓冲)。
    • 存储:建议使用NVMe SSD,模型文件大小从1.5B(约64GB)不等。

总之根据自己实际情况,选择模型版本和配置硬件资源,以确保模型能够顺利运行。

d. Ollama安装流程

官方地址:https://ollama.com/

步骤1:下载Ollama服务安装包
在这里插入图片描述

步骤2:安装Ollama服务
在这里插入图片描述
控制台验证是否成功安装?
在这里插入图片描述

步骤3:选择并安装模型

我们再回到Ollama官网选择模型,选择适合你的蒸馏量化模型复制命令进行安装

ollama run deepseek-r1:32b

在这里插入图片描述

步骤4:加载模型

ollama run deepseek-r1:32b

可以看到安装完成:

在这里插入图片描述
输入指令测试下:
在这里插入图片描述

步骤5:配置远程Ollama服务(可选)

默认情况下,Ollama 服务仅在本地运行,不对外提供服务。要使 Ollama 服务能够对外提供服务,你需要设置以下两个环境变量:

OLLAMA_HOST=0.0.0.0
OLLAMA_ORIGINS=*

在 Windows 上,Ollama 会继承你的用户和系统环境变量。

  • 通过任务栏退出 Ollama。
  • 打开设置(Windows 11)或控制面板(Windows 10),并搜索“环境变量”。
  • 点击编辑你账户的环境变量。
    • 为你的用户账户编辑或创建新的变量 OLLAMA_HOST,值为 0.0.0.0; 为你的用户账户编辑或创建新的变量 OLLAMA_ORIGINS,值为 *。
  • 点击确定/应用以保存设置。
  • 从 Windows 开始菜单启动 Ollama 应用程序。

在这里插入图片描述

其它系统请参考:https://chatboxai.app/zh/help-center/connect-chatbox-remote-ollama-service-guide

注意事项

  • 可能需要在防火墙中允许 Ollama 服务的端口(默认为 11434),具体取决于你的操作系统和网络环境。
  • 为避免安全风险,请不要将 Ollama 服务暴露在公共网络中。办公网络是一个相对安全的环境。

步骤6:验证部署

返回HTTP 200即为成功

curl http://远程IP:11434/api/status

步骤7:ollama相关命令

# 查看已安装模型:
ollama list

# 删除已安装的模型(模型名称替换你自己的):
ollama rm deepseek-r1:32

在这里插入图片描述

4. 可视化工具

为了获得更好的交互体验,可以安装可视化工具使用。

a. 工具对比

这里介绍下Open-WebUI、Dify、Chatbox

1. Open-WebUI
定位:轻量级自托管LLM交互界面
核心功能

  • 提供简洁的Web UI与大模型交互,支持本地或云端部署的LLM(如Llama、GPT等)。
  • 支持会话标签管理,便于多任务切换和历史记录追溯。
  • 集成80+插件生态,可扩展文件解析、知识库检索等功能。
  • 低延迟(≤50ms),适合个人用户快速调用本地模型。

适用场景

  • 个人开发者或研究者本地调试大模型。
  • 需要轻量化、高定制化UI的LLM交互场景。

局限性

  • 无API接口,无法直接集成到企业级应用中。
  • 功能聚焦于交互界面,缺乏应用开发支持。

2. Dify
定位:企业级LLM应用开发平台
核心功能

  • 提供可视化工作流编排,支持RAG、AI Agent等复杂应用开发。
  • 内置API服务,便于集成到现有系统(如客服、数据分析工具)。
  • 支持MongoDB/PostgreSQL存储,管理对话日志、知识库等结构化数据。
  • 提供企业级权限管理、数据审计和监控功能。

适用场景

  • 开发智能客服、知识库问答等AI SaaS服务。
  • 企业需要快速构建可扩展的LLM应用并集成API。

对比同类工具

  • 与AnythingLLM相比,Dify更强调开发灵活性,适合复杂业务逻辑;而AnythingLLM偏向开箱即用的知识库管理。

3. Chatbox
定位:跨平台桌面客户端工具
核心功能

  • 极低延迟(≤30ms),支持主流模型(GPT/Claude/文心一言等)快速调用。
  • 对话流程编排功能,可预设提示词模板、多轮对话逻辑。
  • 内置20+实用插件(如代码高亮、Markdown渲染、数据导出)。
  • 一键安装,跨平台支持(Windows/macOS/Linux),部署复杂度极低(★☆☆☆☆)。

特色优势

  • 开发者友好:支持调试模式、请求日志追踪和快捷键操作。
  • 轻量化:客户端无需服务器资源,适合本地开发测试。

适用场景

  • 开发者调试模型API或设计对话流程。
  • 个人用户需要轻量、高效的桌面端LLM工具。

对比总结

维度Open-WebUIDifyChatbox
核心定位自托管交互界面LLM应用开发平台跨平台客户端工具
API支持❌ 无✅ 提供完整API❌ 无(纯客户端)
部署难度中等(需配置环境)较高(依赖数据库)极低(开箱即用)
适用场景个人本地模型交互企业级应用开发开发者调试/轻量使用
生态扩展80+插件企业级功能模块20+效率插件

选择建议

  • 个人用户本地调试选 Open-WebUI
  • 企业构建AI应用选 Dify
  • 开发者需要轻量调试工具选 Chatbox

因为我们主要是个人使用,这里选择Open-WebUI

b. Open-WebUI部署

Open-WebUI官方地址:https://github.com/open-webui/open-webui
Open-WebUI官方文档地址:https://docs.openwebui.com/getting-started/

在这里插入图片描述
根据官网文档可使用pip和docker进行安装,我这里避免影响本地环境使用docker进行安装:

docker run \
  -d \
  --name open-webui \
  --restart always \
  -p 3000:8080 \
  -e OLLAMA_BASE_URL=http://192.168.3.60:11434 \
  -v open-webui:/app/backend/data \
  ghcr.io/open-webui/open-webui:main

注意:设置环境变量 OLLAMA_BASE_URL,指向运行 Ollama 的服务器地址和端口。

服务启动成功如下:
在这里插入图片描述

访问http://localhost:3000/
在这里插入图片描述
创建管理员账号
在这里插入图片描述
简单的测试下
在这里插入图片描述


5. AI API应用

这里列出了可以调用Ollama服务的很多类库:https://github.com/ollama/ollama。

a. Python SDK实战

先安装模块:

pip install ollama

用VS Code编写代码如下:

from ollama import Client

client = Client(
  host='http://192.168.3.60:11434',
  headers={'x-some-header': 'some-value'}
)
response = client.chat(model='deepseek-r1:32b', messages=[
  {
    'role': 'user',
    'content': '你是谁?',
  },
])

print(response)

执行结果:
在这里插入图片描述

c. Spring AI集成

我们可以通过Spring Boot与Spring AI来调用DeepSeek-R1模型,并实现API服务。Spring Boot提供了丰富的功能,能够轻松与Ollama结合,处理来自客户端的请求,并返回模型的推理结果。

步骤1:构建 Spring Boot 项目
首先,使用Spring Initializr创建一个Spring Boot项目,并添加Spring AI依赖。确保在pom.xml中包含以下依赖项:

<dependency>
	<groupId>org.springframework.ai</groupId>
	<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependency>

步骤2: 配置 Ollama

spring.ai.ollama.base-url=http://192.168.3.60:11434
spring.ai.ollama.chat.model=deepseek-r1:32b

步骤3:编写代码调用模型

@Bean
@SpringBootTest(classes = DemoApplication.class)
public class TestOllama {

@Autowired
private OllamaChatModel ollamaChatModel;

@Test
public void testChatModel() {
String prompt = "请将以下英文翻译成中文:";
String message = "Ollama now supports tool calling with popular models such as Llama 3.1.";

String result = ollamaChatModel.call(prompt + " " + message);
System.out.println(result);
}
}

行以上代码,Spring Boot会向Ollama发送请求,并返回DeepSeek-R1生成的翻译结果。如下:

在这里插入图片描述


6. 小结

本文实现从基础部署业务集成的全链路实践:

  1. 版本选择:根据需求与硬件预算选择蒸馏版/完整版
  2. 部署模式:Ollama适合快速验证,KubeML满足生产需求
  3. 生态整合:通过标准化API实现与现有系统的无缝对接

后续建议

  • 结合搜索库实现日志分析自动化
  • 使用构建个人知识问答系统

参考资料:

  • https://www.cnblogs.com/zzy0471/p/18698656
  • https://blog.csdn.net/yht874690625/article/details/145483279

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

相关文章:

  • (rancher) k8s ingress 屏蔽 nginx版本信息
  • 解读 Flink Source 接口重构后的 KafkaSource
  • SIP中常见的服务器类型
  • Win11配置wsl、ubuntu、docker
  • Leetcode 394 字符串解码
  • DeepSeek崛起:中国AI产业的颠覆者与重构者
  • WEB安全--SQL注入--二次注入
  • haproxy详解笔记
  • 【第9章:计算机视觉实战—9.3 计算机视觉在医疗影像分析中的应用案例】
  • 机器学习实战(3):线性回归——预测连续变量
  • 恩智浦:将开发文档迁移到DITA/XML
  • AWS Fargate 部署流程图及说明
  • Visual Studio Code支持WSL,直接修改linux/ubuntu中的文件
  • unity 为什么保存场景时要求重新选择文件夹
  • Qt的QTreeWidget样式设置
  • C++ Primer 参数传递
  • Docker Desktop之Nginx
  • 机器学习数学基础:23.二次型及其标准形
  • 数据结构6
  • 如何让内网下其他主机直接通过 ip 访问docker overlay 网段下对应容器?