问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

公司内部私有化部署DeepSeek-R1 671B全流程指南

创作时间:
作者:
@小白创作中心

公司内部私有化部署DeepSeek-R1 671B全流程指南

引用
CSDN
1.
https://m.blog.csdn.net/spy17642913947/article/details/145517497

本文详细介绍了在公司内部私有化部署DeepSeek-R1 671B大模型的具体步骤和环境配置要求,内容包括硬件环境、软件环境、部署前准备、部署步骤、测试验收以及上线维护等环节。文章结构清晰,内容详实,具有较高的实用性和参考价值。

一、背景与目标

随着深度学习技术的高速发展,越来越多的企业选择在内部搭建大模型推理与训练平台,以确保数据安全、降低外部依赖并满足企业级自定义需求。DeepSeek-R1 671B 作为一款超大规模预训练模型,具有强大的自然语言处理与理解能力,适合在文本生成、知识问答、内容审核等企业场景中提供高质量的解决方案。
本报告主要介绍如何在公司内部使用以下环境完成 DeepSeek-R1 671B 模型的私有化部署:

  • 硬件环境
  • CPU:ThreadRipper 7980X * 1
  • GPU:RTX 4090 * 4(总显存 96GB)
  • 内存:96 GB * 4(总计 384GB)
  • 存储:SSD 2TB * 1
  • 软件环境
  • 操作系统:CentOS 8.2
  • Python:3.10+
  • 管理工具:Ollama
  • 前端可视化 UI:AnythingLLM
    在本次部署方案中,我们的目标是:
  1. 离线部署,保证数据安全与快速响应;
  2. 使用Ollama进行统一管理与调度;
  3. 通过AnythingLLM提供友好的可视化界面;
  4. 确保模型的推理性能与稳定性,支持企业内部多并发访问;
  5. 后续可扩展为微调场景或上线更多模型。

二、环境参数与前期准备

1. 硬件参数核对与 BIOS 配置

  1. CPU 与内存
  • 线程撕裂者(ThreadRipper)系列 CPU 通常支持较高并发与多通道内存。请在 BIOS 中检查内存通道是否全部开启,保证 4 条 96GB 内存均处于可用状态,并充分利用 NUMA 特性。
  1. GPU 检查
  • 确认 4 块 RTX 4090 均正常安装,驱动已正确识别,执行
    nvidia-smi
    确认显存总量(96GB)是否与预期一致。
  • 若需考虑运维性,可将 GPU 风扇与功耗模式设置为合适档位,以平衡性能与能耗。
  1. 存储空间
  • SSD 2TB 可安装系统与存放初步部署文件,若模型文件体积较大,可考虑使用多块 SSD 或网络存储(如 NAS)。
  1. 电源与散热
  • 深度学习工作负载大,需确保电源稳定,以及机箱具备良好的散热方案。

2. 系统与软件依赖

  1. 操作系统
  • CentOS 8.2,建议开启自动更新或定期手动更新安全补丁;
  • 若有生产环境安全合规要求,可加装 SELinux 或其他企业级安全方案;
  1. Python 环境
  • 使用 Python 3.10+,建议通过 Miniconda 或 pyenv 独立管理环境;
  • 建议创建一个名为
    deepseek_env
    的虚拟环境,避免与系统原生包冲突;
  1. 显卡驱动与 CUDA
  • 安装与 RTX 4090 相匹配的 NVIDIA 驱动(建议最新稳定版);
  • 安装与驱动配套的 CUDA Toolkit(例如 CUDA 11.x 或 CUDA 12.x,根据需求选择);
  1. 管理工具 Ollama
  • Ollama 提供了模型管理与推理调用的统一接口,需要根据官方文档在 Linux 环境下进行编译或安装相应二进制;
  • 安装完成后,可通过命令
    ollama version
    来查看版本信息;
  1. 可视化 UI:AnythingLLM
  • 该工具为前端可视化管理与对话界面,便于业务部门使用与演示;
  • 建议将 AnythingLLM 部署在与模型同一台服务器或者局域网内,减少网络延迟;
  1. 其他 Python 库依赖
  • 常用深度学习框架(PyTorch 或 TensorFlow),具体取决于 DeepSeek-R1 671B 的兼容性;
  • 若 DeepSeek-R1 提供的是 PyTorch 权重,则需安装对应版本的 PyTorch(推荐与 CUDA 版本相符);
  • 分布式训练或推理可能需要 DeepSpeed、Horovod 等库,但若仅是推理,大多数情况只需普通的多 GPU 并行即可。
  • 其他常见库:
    numpy
    ,
    scipy
    ,
    scikit-learn
    ,
    transformers
    ,
    sentencepiece
    等(根据官方文档确认)。

三、部署前的准备工作

  1. 模型文件获取
  • DeepSeek-R1 671B 的模型文件(可能是多个分片),需在公司内部的存储或私有服务器上做好备份;
  • 若模型文件较大(通常 671B 参数的模型体积数400多GB 级别),需确保下载/传输方式安全可控;
  • 校验模型文件的哈希值,确保完整性;
  
ollama run deepseek-r1:671b  
  1. 安全合规审查
  • 在正式部署前,确认模型内容、功能符合公司内部相关规范;
  • 根据合规要求,对模型可能产生的文本进行过滤或监测机制设置;
  1. Python 虚拟环境创建

使用 conda 创建虚拟环境

conda create -n deepseek_env python=3.10 -y conda activate deepseek_env

安装 PyTorch(示例)

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu11X

安装其他必要依赖

pip install transformers sentencepiece numpy scipy
3. 安装并配置 Ollama

  • 根据 Ollama 官方指导编译或者下载安装包;
  • 安装后,将 Ollama 的可执行文件路径加入到系统环境变量或虚拟环境中;
  1. 安装并配置 AnythingLLM
  • 参考官方文档进行安装,若需要前后端分离,需在服务器上安装 Node.js、Nginx 或其他代理;
  • 将 AnythingLLM 连接到 Ollama 后端或直接对接 Python 服务(视实际情况而定)。

四、部署步骤

步骤 1:启动并配置 Ollama

  1. Ollama 配置文件

  • /etc/ollama/config.yaml
    (路径示例) 中填入必要配置,包括:
  • 模型所在路径;
  • 默认 GPU 使用策略;
  • 最大并发请求数;
  • 日志记录级别(INFO、WARN、ERROR)。
  1. 多 GPU 支持
  • 若 Ollama 自带多 GPU 并行策略,可在配置文件中指定
    gpus = [0,1,2,3]
  • 若需要手动管理模型切分,可考虑结合 DeepSpeed 或 PyTorch 的分布式特性;
  1. 启动 Ollama 服务
    ollama serve --config /etc/ollama/config.yaml
  • 若正常启动,可在命令行看到 Ollama 的启动日志,确认已加载 DeepSeek-R1 671B 模型或等待命令加载。
  1. 验证
  • 通过
    curl localhost:port/health
    (端口
    port
    为 Ollama 默认 ) 验证服务健康状况;
  • 检查日志是否有报错。

步骤 2:整合 AnythingLLM 前端

  1. 安装与初始配置
  • 按照官方文档或预先编写的脚本,将 AnythingLLM 的前端组件安装在同一台服务器或局域网内;
  • 配置反向代理(如 Nginx)时,将
    /api
    请求转发给 Ollama 或后端 Python API;
  1. 联调测试
  • 在浏览器中打开 AnythingLLM UI;
  • 输入测试文本或提问,观察是否能正常调用后台的 Ollama 接口,并得到 DeepSeek-R1 671B 的推理结果;
  • 若出现跨域问题(CORS)或访问权限限制,需要在配置文件中开放相关域名或 IP。
  1. 界面自定义
  • 可在 UI 中根据公司品牌或项目需求进行样式调整;
  • 若需要提供特定领域问答的模板或固定回复,也可在前端接入公司自定义的 Prompt 设计。

步骤 3:深度优化与资源调度

  1. 模型并行与管线并行
  • 对于 671B 级别参数的模型,需要考虑显存分配与并行策略:
  • 张量切分:将参数在 4 块 GPU 间进行拆分;
  • 流水线并行:将前向与后向传递拆分到不同 GPU;
  • ZeRO 技术:如使用 DeepSpeed 的 ZeRO Stage 2/3 减少显存占用。
  1. 配置高并发
  • 如果需要支持同时多个请求,需要在 Ollama 或后端框架层面设置并行队列;
  • 适当配置 batch size 或微批次(micro-batch),减少 GPU 空转;
  1. 日志与监控
  • 在生产环境中,需要采集 GPU/CPU 利用率、内存占用、推理时延、出错率等指标;
  • 可通过 Prometheus + Grafana 或其他监控体系实现可视化监控。
  1. 容错与重试机制
  • 若某块 GPU 出现故障或温度过高,可自动切换至其他 GPU;
  • 若推理超时,可返回友好提示给用户端。

五、测试与验收

1. 功能性测试

  1. 模型问答准确度
  • 通过企业内部常见问题或领域文档,测试模型回答的准确性与一致性;
  • 若回答较差,需考虑后处理或提示词工程(Prompt Engineering)来优化。
  1. 文本生成稳定性
  • 让模型生成多种长度与体裁的文本,观察是否产生乱码或重复段落;
  • 调整推理参数(temperature、top_k、top_p 等)提升生成质量。

2. 性能与负载测试

  1. 并发压力测试
  • 使用 Apache JMeter、Locust 等工具模拟并发请求,监测响应时间、吞吐量;
  • 根据需求决定能支持多少并发用户,需要与硬件资源相匹配。
  1. 显存与内存占用测试
  • 同时记录
    nvidia-smi
    与系统内存占用,观察极端并发下的资源瓶颈;
  • 若资源消耗过高,可以启用分布式策略或限制 batch size。

3. 安全与合规测试

  1. 敏感词/违规内容
  • 检查模型在回答时是否触发敏感信息、违规词汇;
  • 如有必要,部署文本过滤器(可以使用正则、关键字匹配或小模型检测),在 UI 层或后端层面统一过滤。
  1. 数据安全
  • 确认只有内部 IP 或 VPN 才能访问部署接口,避免外泄;
  • 确保日志中不会记录用户输入的敏感信息,或做脱敏处理。

六、上线与持续维护

1. 正式上线

  1. 生产环境切换
  • 在测试通过后,将 Ollama 服务端口暴露到公司内网指定地址;
  • 确保相关负载均衡(如 Nginx、HAProxy)配置到正确后端。
  1. 版本管理
  • 建立模型与服务的版本号,对新增功能或优化迭代进行版本记录;
  • 定期对模型进行校验与更新,若有新版本 DeepSeek-R1 释出,可在内网完成模型切换或升级。

2. 监控与告警

  1. 日志监控
  • 将 Ollama、AnythingLLM 和系统日志统一收集;
  • 设置告警规则,如 GPU 利用率异常、响应时间过长、出现大量报错等。
  1. 健康检查
  • 定时做推理 API 自检,看响应是否超时或出错;
  • 结合自动化脚本,在出现故障时自动重启或通知维护人员。

3. 持续优化

  1. Prompt 工程与微调
  • 随着业务发展或问答场景多样化,需要不断迭代提示词或做小规模微调;
  • 可在私有数据集上微调 DeepSeek-R1 671B,以提高对垂直领域的理解深度。
  1. 算力扩展
  • 当用户量大幅增长或场景更复杂,可增加 GPU 数量或搭建分布式集群;
  • 使用高带宽互联(InfiniBand / NVLink)可进一步提升多机多卡效率。

4. 故障及风险应对

  1. GPU 故障或性能退化
  • 及时更换故障 GPU,或在配置中暂时屏蔽该卡;
  • 定期测试 GPU 的算力、显存健康度,防止硬件老化。
  1. 数据合规
  • 定期审计用户输入与输出文本,确保不违反政策;
  • 对易引发争议的内容设立人工审核机制。

七、总结

  1. 环境搭建与验证
  • 通过对硬件、操作系统与 Python 环境的确认,保证了运行环境的可靠性;
  • 使用 Ollama 进行统一管理,并结合 AnythingLLM 提供可视化交互界面。
  1. 模型下载与部署测试
  • 顺利地加载 DeepSeek-R1 671B 预训练模型;
  • 进行了基础功能、性能与安全性测试,并取得预期结果。
  1. 正式上线与持续维护机制
  • 构建了上线流程、监控告警系统、与后续的扩容和优化思路;
  • 为未来模型微调、分布式扩展等高阶需求预留空间。

win系统:个人也可以使用docker进行部署,下载是我自己部署的14B的模型。

本文原文来自CSDN

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号