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

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

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

引言

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

相关推荐

总结下SpringData JPA 的常用语法

SpringDataJPA常用有两种写法,一个是用Jpa自带方法进行CRUD,适合简单查询场景、例如查询全部数据、根据某个字段查询,根据某字段排序等等。另一种是使用注解方式,@Query、@Modi...

解决JPA在多线程中事务无法生效的问题

在使用SpringBoot2.x和JPA的过程中,如果在多线程环境下发现查询方法(如@Query或findAll)以及事务(如@Transactional)无法生效,通常是由于S...

PostgreSQL系列(一):数据类型和基本类型转换

自从厂子里出来后,数据库的主力就从Oracle变成MySQL了。有一说一哈,贵确实是有贵的道理,不是开源能比的。后面的工作里面基本上就是主MySQL,辅MongoDB、ES等NoSQL。最近想写一点跟...

基于MCP实现text2sql

目的:基于MCP实现text2sql能力参考:https://blog.csdn.net/hacker_Lees/article/details/146426392服务端#选用开源的MySQLMCP...

ORACLE 错误代码及解决办法

ORA-00001:违反唯一约束条件(.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。ORA-00017:请求会话以设置跟踪事件ORA-00018:超出最大会话数ORA-00...

从 SQLite 到 DuckDB:查询快 5 倍,存储减少 80%

作者丨Trace译者丨明知山策划丨李冬梅Trace从一开始就使用SQLite将所有数据存储在用户设备上。这是一个非常不错的选择——SQLite高度可靠,并且多种编程语言都提供了广泛支持...

010:通过 MCP PostgreSQL 安全访问数据

项目简介提供对PostgreSQL数据库的只读访问功能。该服务器允许大型语言模型(LLMs)检查数据库的模式结构,并执行只读查询操作。核心功能提供对PostgreSQL数据库的只读访问允许L...

发现了一个好用且免费的SQL数据库工具(DBeaver)

缘起最近Ai不是大火么,想着自己也弄一些开源的框架来捣腾一下。手上用着Mac,但Mac都没有显卡的,对于学习Ai训练模型不方便,所以最近新购入了一台4090的拯救者,打算用来好好学习一下Ai(呸,以上...

微软发布.NET 10首个预览版:JIT编译器再进化、跨平台开发更流畅

IT之家2月26日消息,微软.NET团队昨日(2月25日)发布博文,宣布推出.NET10首个预览版更新,重点改进.NETRuntime、SDK、libraries、C#、AS...

数据库管理工具Navicat Premium最新版发布啦

管理多个数据库要么需要使用多个客户端应用程序,要么找到一个可以容纳你使用的所有数据库的应用程序。其中一个工具是NavicatPremium。它不仅支持大多数主要的数据库管理系统(DBMS),而且它...

50+AI新品齐发,微软Build放大招:拥抱Agent胜算几何?

北京时间5月20日凌晨,如果你打开微软Build2025开发者大会的直播,最先吸引你的可能不是一场原本属于AI和开发者的技术盛会,而是开场不久后的尴尬一幕:一边是几位微软员工在台下大...

揭秘:一条SQL语句的执行过程是怎么样的?

数据库系统能够接受SQL语句,并返回数据查询的结果,或者对数据库中的数据进行修改,可以说几乎每个程序员都使用过它。而MySQL又是目前使用最广泛的数据库。所以,解析一下MySQL编译并执行...

各家sql工具,都闹过哪些乐子?

相信这些sql工具,大家都不陌生吧,它们在业内绝对算得上第一梯队的产品了,但是你知道,他们都闹过什么乐子吗?首先登场的是Navicat,这款强大的数据库管理工具,曾经让一位程序员朋友“火”了一把。Na...

详解PG数据库管理工具--pgadmin工具、安装部署及相关功能

概述今天主要介绍一下PG数据库管理工具--pgadmin,一起来看看吧~一、介绍pgAdmin4是一款为PostgreSQL设计的可靠和全面的数据库设计和管理软件,它允许连接到特定的数据库,创建表和...

Enpass for Mac(跨平台密码管理软件)

还在寻找密码管理软件吗?密码管理软件有很多,但是综合素质相当优秀且完全免费的密码管理软件却并不常见,EnpassMac版是一款免费跨平台密码管理软件,可以通过这款软件高效安全的保护密码文件,而且可以...