专栏名称: 企业存储技术
企业存储、服务器、SSD、灾备等领域技术分享,交流 | @唐僧_huangliang (新浪微博 )
目录
相关文章推荐
新闻夜航  ·  停!停!停!黑龙江一地发布...... ·  昨天  
新闻夜航  ·  退钱啦!退钱啦!退钱啦! ·  昨天  
哔哩哔哩  ·  这对情侣的Vlog,拍出《花束》的另一种结局 ·  2 天前  
哈尔滨日报  ·  到人到户!中央财政发补贴—— ·  2 天前  
哔哩哔哩  ·  小狗聪不聪明,吃饭就能看出来 ·  3 天前  
51好读  ›  专栏  ›  企业存储技术

在Azure MI300X GPU虚机上运行 DeepSeek-R1

企业存储技术  · 公众号  ·  · 2025-02-08 07:40

正文

本文编译自Azure High Performance Computing (HPC) Blog,原文标题《Running DeepSeek-R1 on a single NDv5 MI300X VM》。

贡献者: Davide Vanzo Yuval Mazor Jesse Lopez


DeepSeek-R1 是基于 DeepSeek-V3 构建的开放权重推理模型,专为对话式 AI 、编码和复杂问题解决而设计。由于其强大的推理能力,它在 AI/ML 社区之外获得了极大关注,经常与 OpenAI 的模型相媲美。它的一个主要优势是它可以在本地运行,让用户完全控制自己的数据。

NDv5 MI300X VM 配备 8 AMD Instinct MI300X GPU ,每个 GPU 配备 192GB HBM3 并通过 Infinity Fabric 3.0 互连。 MI300X 每个 GPU 的内存带宽高达 5.2 TB/s ,可提供高效处理大型模型所需的容量和速度 - 使用户能够在单个 VM 上以全精度运行 DeepSeek-R1

在这篇博文中,我们将引导您完成在 Azure 上配置 NDv5 MI300X 实例并使用 SGLang 推理框架运行 DeepSeek-R1 进行推理的步骤。

启动 NDv5 MI300X VM

先决条件

  • - 检查您的订阅是否为 VM 系列 “ StandardNDI Sv 5MI300X” 提供了足够的 vCPU 配额(请参阅 配额文档 )。

  • - 如果需要,请联系你的 Microsoft 客户代表以请求增加配额。

  • - 安装了 Azure CLI 并登录到相应租户的 Bash 终端。或者,也可以使用 Azure Cloud Shell

配置虚拟机

1. 使用 Azure CLI ND_MI300x_v5 上创建 Ubuntu-22.04 VM

az group create –location -n

az vm create --name mi300x --resource-group --location --image Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:22.04.202410020 --size Standard_ND96isr_MI300X_v5 --security-type Standard --os-disk-size-gb 256 --os-disk-delete-option Delete --admin-username azureadmin --ssh-key-values

2. 通过 SSH 登录虚拟机并将内核降级到版本 5.15.0

sudo apt install -y linux-image-5.15.0-1073-azure linux-modules-5.15.0-1073-azure linux-headers-5.15.0-1073-azure linux-tools-5.15.0-1073-azure

sudo sed -i "s|GRUB_DEFAULT=.*|GRUB_DEFAULT='gnulinux-advanced-0b58668a-ba2e-4a00-b89a-3354b7a547d4>gnulinux-5.15.0-1073-azure-advanced-0b58668a-ba2e-4a00-b89a-3354b7a547d4'|g" /etc/default/grub

sudo update-grub

删除当前内核包。 当系统询问是否中止内核删除时,请确保回答

sudo apt remove -y linux-azure-6.5-cloud-tools-6.5.0-1025 linux-azure-6.5-headers-6.5.0-1025 linux-azure-6.5-tools-6.5.0-1025 linux-cloud-tools-6.5.0-1025-azure linux-headers-6.5.0-1025-azure linux-image-6.5.0-1025-azure linux-modules-6.5.0-1025-azure linux-tools-6.5.0-1025-azure

sudo reboot


重启后,确认使用的内核是 5.15.0 版本:

uname -r

3. 安装所需的驱动程序和软件:

git clone --branch mi300x https://github.com/vanzod/azhpc-images.git

cd azhpc-images/ubuntu/ubuntu-22.x/ubuntu-22.04-hpc

sudo ./install.sh AMD

创建自定义 VM 映像(可选)


为了在未来部署虚拟机时具有更大的灵活性,我们建议创建自定义虚拟机映像。这样,映像将包含所有必需的组件,而无需在每次部署新虚拟机时安装它们。

1. 将虚拟机通用化以创建映像:

sudo rm -f ~/.bash_history

sudo waagent -force -deprovision+user

2. 使用 Azure CLI 解除分配并将 VM 标记为通用:

az vm deallocate --resource-group --name mi300x

az vm generalize --resource-group --name mi300x

3. 创建共享图库并保存自定义镜像:

az sig create --resource-group --gallery-name mi300xImages

VMID=$(az vm get-instance-view -g -n mi300x --query id -o tsv)

az sig image-definition create --resource-group --gallery-name mi300xImages --gallery-image-definition Ubuntu-2204-ROCm --publisher --offer ubuntu2204 --sku ROCm --os-type Linux --hyper-v-generation v2 --features SecurityType =Standard

az sig image-version create --resource-group --gallery-name mi300xImages --gallery-image-definition Ubuntu-2204-ROCm --gallery-image-version 1.0.0 --target-regions --replica-count 1 --virtual-machine ${VMID}

4. 删除虚拟机及相关资源:

az vm delete --yes --resource-group --name mi300x

az network nic delete --resource-group --name mi300xNIC

az network public-ip delete --resource-group --name mi300xPIP

5. 检索创建新虚拟机时所需的虚拟机映像资源 ID

az image show --resource-group --name Ubuntu-2204-ROCm --query id --output tsv

6. 从自定义映像创建新的虚拟机:

az vm create --name --resource-group --location --image --size Standard_ND96isr_MI300X_v5 --security-type Standard --os-disk-size-gb 256 --admin-username --ssh-key-values

其他准备

除了配置虚拟机之外,还有其他步骤来准备环境以最佳地运行 DeepSeed 或其他 AI 工作负载,包括在 RAID-0 配置中在节点上设置 8 NVMe 磁盘,作为 Docker Hugging Face 的缓存位置。

以下步骤假设您已连接到 VM 并在 Bash shell 中工作。

1. RAID-0 配置中准备 NVMe 磁盘

mkdir -p /mnt/resource_nvme/

sudo mdadm --create /dev/md128 -f --run --level 0 --raid-devices 8 $(ls /dev/nvme*n1)

sudo mkfs.xfs -f /dev/md128

sudo mount /dev/md128 /mnt/resource_nvme

sudo chmod 1777 /mnt/resource_nvme

2. 配置 Hugging Face 使用 RAID-0 。此环境变量还应传播到从 Hugging Face 提取图像或数据的任何容器。

mkdir –p /mnt/resource_nvme/hf_cache

export HF_HOME=/mnt/resource_nvme/hf_cache

3. 配置 Docker 使用 RAID-0

mkdir -p /mnt/resource_nvme/docker

sudo tee







请到「今天看啥」查看全文