百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

生产环境H200部署DeepSeek 671B 满血版全流程(一):系统初始化

liuian 2025-04-01 19:49 15 浏览

引言

NVIDIA H200凭借其141GB超大显存和高速NVLink技术,成为部署DeepSeek 671B 满血版的理想选择。然而,“工欲善其事,必先利其器”——在正式运行模型前,一套稳定、高效的服务器环境是成功的关键。 

许多开发者在部署大模型时,常因忽略系统配置细节(如驱动冲突、环境变量错误、多GPU通信异常)而踩坑。为此,本系列教程将从最基础的系统初始化开始,逐步拆解单机H200服务器部署DeepSeek 671B 满血版的完整链路,从零搭建高性能推理服务。 

一、环境准备

1.1 硬件配置

服务器数量CPU内存(TB)系统版本NVIDIA H200 141GB * 81INTEL 8568Y+ *23Ubuntu 22.04.5 LTS

1.2.系统环境

软件名称版本备注NVIDIA Driver550.54.15GPU驱动NVIDIA-Fabric Manager550.54.15NVSwitch互联CUDA12.4CudaNCCL2.21.5GPU多卡通信vLLM0.7.3LLM推理引擎SGLangv0.4.3.post2LLM推理引擎

1.3. DeepSeek 671B模型下载

  • 方式一:通过HuggingFace 下载

仓库地址:
https://huggingface.co/deepseek-ai/DeepSeek-R1 

  • 方式二:通过HuggingFace镜像站-AI快站下载

仓库地址:
https://aifasthub.com/deepseek-ai/DeepSeek-R1 

#下载AI快站下载器
wget https://fast360.xyz/images/hf-fast.sh
chmod a+x hf-fast.sh
#下载模型文件
./hf-fast.sh deepseek-ai/DeepSeek-R1

请准备充足硬盘空间,模型文件大小为642G。 

二、初始化系统配置

在开始部署之前,我们需要对系统进行一些基本的初始化操作,以确保后续步骤的顺利进行。 

2.1 安装基础包

运行以下命令,安装系统所需的基础软件包: 

sudo apt install -y gcc g++ make net-tools dnsutils iputils-ping screen nload build-essential nvtop

2.2. 设置时区

为了确保系统时间的准确性,我们将时区设置为上海时区: 

timedatectl list-timezones | grep Shanghai
sudo timedatectl set-timezone Asia/Shanghai

2.3. 禁用 Nouveau 驱动

Ubuntu系统默认使用 Nouveau 驱动,但为了充分发挥NVIDIA GPU的性能,需要禁用它,并安装NVIDIA官方驱动。 

sudo vim /etc/modprobe.d/blacklist.conf

在文件末尾添加以下内容: 

blacklist nouveau
options nouveau modeset=0

保存后更新 initramfs 并重启: 

sudo update-initramfs -u
sudo reboot

重启后检查是否禁用成功,若无输出,则禁用成功: 

lsmod | grep nouveau

三、安装 CUDA Toolkit

CUDA Toolkit 是 NVIDIA 提供的用于 GPU 开发的工具包,Deepseek 671B 满血版需要依赖 CUDA 来实现 GPU 加速。 

3.1 安装基础包

访问 NVIDIA 官方 CUDA Toolkit 归档页面:https://developer.nvidia.com/cuda-toolkit-archive ,找到 CUDA Toolkit 12.4.1 版本,选择 Linux -> x86_64 -> Ubuntu -> 22.04 -> runfile (local)。 

wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run

3.2 安装 CUDA Toolkit 和 GPU 驱动

运行安装包,按照提示进行安装: 

sudo sh cuda_12.4.1_550.54.15_linux.run

在安装过程中,输入 accept 同意协议,选择 CUDA 安装包里的驱动程序和 CUDA Toolkit,然后选择 Install 开始安装。 

安装过程需要一段时间,请耐心等待。安装完成后,如果看到类似如下的 Summary 信息,就表示CUDA Toolkit 和 GPU 驱动安装成功。 

3.3 配置 CUDA 环境变量

为了让系统能够找到 CUDA 的相关程序,需要配置环境变量,编辑 ~/.bashrc 文件,添加以下内容: 

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

运行以下命令使配置生效: 

source ~/.bashrc

3.4 验证 CUDA 安装成功

运行以下命令查看 nvcc 版本,若显示 CUDA 编译工具的版本信息,则说明 CUDA 安装成功: 

nvcc --version

3.5 验证 GPU 驱动是否安装成功

执行 nvidia-smi 命令,如果看到类似下图 GPU 信息表格,说明 GPU 驱动也安装成功了。 

四、安装 NVIDIA-Fabric-Manager

NVIDIA-Fabric-Manager 是用于管理 NVIDIA NVSwitch 的软件包,对于充分利用 多GPU 之间的 NVLink 高速互联至关重要。 

4.1 确认 NVIDIA-Fabric-Manager 软件包版本

nvidia-fabricmanager软件包的版本与GPU 驱动版本必须完全一致(包括小版本号),否则可能导致 NVLink 通信异常。例如,驱动版本为550.54.15时,Fabric Manager需选择相同版本。可通过nvidia-smi 命令查看当前驱动版本。 

4.2 下载安装 NVIDIA-Fabric-Manager

根据驱动版本,下载对应版本的 NVIDIA-Fabric Manager 软件包。以下命令会自动提取驱动版本号并下载对应软件包: 

driver_version=550.54.15
main_version=$(echo $driver_version | awk -F '.' '{print $1}')
wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2204/x86_64/nvidia-fabricmanager-${main_version}_${driver_version}-1_amd64.deb

下载完成后,执行以下命令安装: 

sudo dpkg -i nvidia-fabricmanager-${main_version}_${driver_version}-1_amd64.deb

安装完成后,启动 NVIDIA-Fabric Manager 服务并设置为开机自启: 

systemctl start nvidia-fabricmanager
systemctl enable nvidia-fabricmanager

4.3 验证是否安装成功

  • 检查服务运行状态,如果看到类似 Active: active (running) 的输出,就表示服务正在运行。
systemctl status nvidia-fabricmanager 

#日志有如下输出代码正常
● nvidia-fabricmanager.service - NVIDIA fabric manager service
Loaded: loaded (/lib/systemd/system/nvidia-fabricmanager.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2025-03-01 03:10:27 UTC; 29s ago
Main PID: 33347 (nv-fabricmanage)
Tasks: 18 (limit: 629145)
Memory: 5.5M
CPU: 902ms
CGroup: /system.slice/nvidia-fabricmanager.service
└─33347 /usr/bin/nv-fabricmanager -c /usr/share/nvidia/nvswitch/fabricmanager.cfg

Mar 01 03:10:25 sc-gpu09 systemd[1]: Starting NVIDIA fabric manager service...
Mar 01 03:10:26 sc-gpu09 nv-fabricmanager[33347]: Connected to 1 node.
Mar 01 03:10:27 sc-gpu09 nv-fabricmanager[33347]: Successfully configured all the available NVSwitches to route GPU NVLink traffic. NVLink Peer-to-Peer support will be enabled once the GPUs are successfully registered wit>
Mar 01 03:10:27 sc-gpu09 systemd[1]: Started NVIDIA fabric manager service.
  • 通过 nvidia-smi 检查,若返回 State: Completed 和 Status: Success,则 GPU 已成功注册到 Fabric Manager。
nvidia-smi -q -i 0 | grep -i -A 2 Fabric

  • 运行 nvidia-smi nvlink --status ,验证NVLink连接状态

五、安装 Conda

Conda 是一个强大的环境和包管理器,可以帮助我们轻松管理 Python 环境和各种依赖包。 

5.1 下载安装脚本

下载 Miniconda 安装脚本: 

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

5.2 安装 Conda

运行安装脚本,按照提示,阅读许可协议,输入 yes 接受协议。然后,选择安装路径(默认路径为 ~/miniconda3),直接回车确认即可。安装过程中会询问是否初始化 conda,建议选择 yes。 

bash Miniconda3-latest-Linux-x86_64.sh

5.3 初始化环境

安装完成后,执行以下命令初始化 conda 环境: 

~/miniconda3/bin/conda init bash

然后,关闭当前终端窗口,重新打开一个新的终端窗口,使 conda 初始化生效。 

验证 Conda 是否可用:执行以下命令,查看 conda 版本信息: 

conda --version

相关推荐

GANs为何引爆机器学习?这篇基于TensorFlow的实例教程为你解惑!

「机器人圈导览」:生成对抗网络无疑是机器学习领域近三年来最火爆的研究领域,相关论文层出不求,各种领域的应用层出不穷。那么,GAN到底如何实践?本文编译自Medium,该文作者以一朵玫瑰花为例,详细阐...

高丽大学等机构联合发布StarGAN:可自定义表情和面部特征

原文来源:arXiv、GitHub作者:YunjeyChoi、MinjeChoi、MunyoungKim、Jung-WooHa、SungKim、JaegulChoo「雷克世界」编译:嗯~...

TensorFlow和PyTorch相继发布最新版,有何变化

原文来源:GitHub「机器人圈」编译:嗯~阿童木呀、多啦A亮Tensorflow主要特征和改进在Tensorflow库中添加封装评估量。所添加的评估量列表如下:1.深度神经网络分类器(DNNCl...

「2022 年」崔庆才 Python3 爬虫教程 - 深度学习识别滑动验证码缺口

上一节我们使用OpenCV识别了图形验证码躯壳欧。这时候就有朋友可能会说了,现在深度学习不是对图像识别很准吗?那深度学习可以用在识别滑动验证码缺口位置吗?当然也是可以的,本节我们就来了解下使用深度...

20K star!搞定 LLM 微调的开源利器

LLM(大语言模型)微调一直都是老大难问题,不仅因为微调需要大量的计算资源,而且微调的方法也很多,要去尝试每种方法的效果,需要安装大量的第三方库和依赖,甚至要接入一些框架,可能在还没开始微调就已经因为...

大模型DeepSeek本地部署后如何进行自定义调整?

1.理解模型架构a)查看深度求索官方文档或提供的源代码文件,了解模型的结构、输入输出格式以及支持的功能。模型是否为预训练权重?如果是,可以在预训练的基础上进行微调(Fine-tuning)。是否需要...

因配置不当,约5000个AI模型与数据集在公网暴露

除了可访问机器学习模型外,暴露的数据还可能包括训练数据集、超参数,甚至是用于构建模型的原始数据。前情回顾·人工智能安全动态向ChatGPT植入恶意“长期记忆”,持续窃取用户输入数据多模态大语言模型的致...

基于pytorch的深度学习人员重识别

基于pytorch的深度学习人员重识别Torchreid是一个库。基于pytorch的深度学习人员重识别。特点:支持多GPU训练支持图像的人员重识别与视频的人员重识别端到端的训练与评估简单的re...

DeepSeek本地部署:轻松训练你的AI模型

引言:为什么选择本地部署?在AI技术飞速发展的今天,越来越多的企业和个人希望将AI技术应用于实际场景中。然而,对于一些对数据隐私和计算资源有特殊需求的用户来说,云端部署可能并不是最佳选择。此时,本地部...

谷歌今天又开源了,这次是Sketch-RNN

前不久,谷歌公布了一项最新技术,可以教机器画画。今天,谷歌开源了代码。在我们研究其代码之前,首先先按要求设置Magenta环境。(https://github.com/tensorflow/magen...

Tensorflow 使用预训练模型训练的完整流程

前面已经介绍了深度学习框架Tensorflow的图像的标注和训练数据的准备工作,本文介绍一下使用预训练模型完成训练并导出训练的模型。1.选择预训练模型1.1下载预训练模型首先需要在Tensorf...

30天大模型调优学习计划(30分钟训练大模型)

30天大模型调优学习计划,结合Unsloth和Lora进行大模型微调,掌握大模型基础知识和调优方法,熟练应用。第1周:基础入门目标:了解大模型基础并熟悉Unsloth等工具的基本使用。Day1:大模...

python爬取喜马拉雅音频,json参数解析

一.抓包分析json,获取加密方式1.抓包获取音频界面f12打开抓包工具,播放一个(非vip)视频,点击“媒体”单击打开可以复制URL,发现就是我们要的音频。复制“CKwRIJEEXn-cABa0Tg...

五、JSONPath使用(Python)(json数据python)

1.安装方法pipinstalljsonpath2.jsonpath与Xpath下面表格是jsonpath语法与Xpath的完整概述和比较。Xpathjsonpath概述/$根节点.@当前节点...

Python网络爬虫的时候json=就是让你少写个json.dumps()

大家好,我是皮皮。一、前言前几天在Python白银交流群【空翼】问了一个Python网络爬虫的问题,提问截图如下:登录请求地址是这个:二、实现过程这里【甯同学】给了一个提示,如下所示:估计很多小伙伴和...