趋近智
云基础设施的原理通过直接操作最能体会。在这里,您将配置、设置并连接一台由GPU驱动的虚拟机,位于一个主要的云平台上。本次练习提供了一个可重复的基础操作流程,用于构建机器学习开发和训练的远程环境。
虽然步骤以亚马逊网络服务(AWS)为例,但对于谷歌云平台(GCP)和微软Azure来说,过程是相似的。目标是弄清核心组成部分:选择实例、选取预配置的软件镜像、管理网络访问以及安全连接。
开始前,请确保您已准备好以下各项:
aws configure配置好您的凭证。我们的第一个决定是选择虚拟机配置。如前所述,这涉及平衡性能与成本。对于本次练习,我们将使用一个AWS g4dn.xlarge实例。它配备NVIDIA T4 GPU,为通用机器学习任务提供了一个良好的起点,且没有顶级训练加速器的高昂成本。
接下来,我们必须选择一个亚马逊机器镜像(AMI)。AMI是一个包含操作系统和预装软件的模板。为了节省大量设置时间,我们将使用官方的AWS深度学习AMI。这些镜像预装了NVIDIA驱动程序、CUDA、cuDNN以及TensorFlow和PyTorch等主要的ML框架。
我们将寻找一个类似于Deep Learning AMI GPU TensorFlow X.X.X (Ubuntu 20.04)名称的AMI。您可以在AWS EC2控制台中或通过AWS CLI找到您所选区域的最新AMI ID。对于本例,我们将使用一个占位符AMI ID。您必须将ami-0123456789abcdef0替换为您所在区域的有效AMI ID。
在启动实例之前,我们需要定义谁可以访问它。这通过安全组进行管理,安全组充当虚拟防火墙。对于本次实验,我们只需允许来自我们自己IP地址的入站SSH流量(端口22)。
我们还需要一个SSH密钥对来验证我们的连接。您可以通过AWS控制台或使用CLI创建新的密钥对。以下命令创建一个名为ai-infra-key的密钥对,并将私钥保存到名为ai-infra-key.pem的本地文件中。
aws ec2 create-key-pair --key-name ai-infra-key --query 'KeyMaterial' --output text > ai-infra-key.pem
重要: 保护好此.pem文件。这是访问您实例的唯一途径。您还需要更改其文件权限。
chmod 400 ai-infra-key.pem
确定了实例类型、AMI和安全设置后,我们即可启动虚拟机。以下AWS CLI命令将所有这些配置打包为一个请求。
此命令执行多项操作:
--image-id:指定深度学习AMI。请记住替换占位符。--instance-type:将硬件设置为g4dn.xlarge。--key-name:关联我们刚创建的SSH密钥对。--security-group-ids:您应首先创建一个允许端口22访问的安全组,并在此处使用其ID(例如,sg-012345abcdef)。--tag-specifications:为实例分配一个描述性名称,以便后续查找。# 首先,在您的区域(例如 us-east-1)中查找一个有效的深度学习AMI ID
# aws ec2 describe-images --owners amazon --filters "Name=name,Values=Deep Learning AMI GPU TensorFlow*" --query 'Images[?CreationDate>`2023-01-01`].{ID:ImageId,Name:Name}' --region us-east-1
# 然后,创建一个安全组
# aws ec2 create-security-group --group-name my-gpu-sg --description "用于GPU实例的安全组"
# aws ec2 authorize-security-group-ingress --group-name my-gpu-sg --protocol tcp --port 22 --cidr YOUR_IP_ADDRESS/32
# 现在,使用您的AMI和安全组ID启动实例
aws ec2 run-instances \
--image-id ami-0123456789abcdef0 \
--instance-type g4dn.xlarge \
--key-name ai-infra-key \
--security-group-ids sg-012345abcdef \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=AI-Infra-Lab-Instance}]'
运行此命令后,AWS将返回一个描述新实例的JSON对象。请记下输出中的InstanceId,因为您将需要它来管理实例。
实例初始化需要几分钟。您可以使用InstanceId获取其公共IP地址。
# 将 i-012345abcdef 替换为您的实际 InstanceId
aws ec2 describe-instances --instance-ids i-012345abcdef --query 'Reservations[].Instances[].PublicIpAddress' --output text
获得IP地址后,使用SSH连接到实例。AWS上基于Ubuntu的AMI的默认用户名为ubuntu。
ssh -i "ai-infra-key.pem" ubuntu@YOUR_INSTANCE_PUBLIC_IP
如果连接成功,您将看到新云服务器的命令提示符。首要任务是验证GPU是否被识别且驱动程序正常运行。
运行NVIDIA系统管理界面(nvidia-smi)工具:
nvidia-smi
您应该会看到一个输出表格,详细列出NVIDIA驱动版本、CUDA版本以及有关所连接GPU的信息,在本例中是Tesla T4。
配置和验证云GPU实例的流程。
作为最终检查,我们运行一个简短的Python脚本,以确认PyTorch可以访问GPU。
# 将此文件保存为 verify_gpu.py
import torch
if torch.cuda.is_available():
device = torch.device("cuda")
print(f"PyTorch 可以访问CUDA设备:{torch.cuda.get_device_name(0)}")
# 创建一个张量并将其移动到GPU
x = torch.tensor([1.0, 2.0, 3.0], device=device)
print(f"张量已成功在GPU上创建:{x}")
print(f"张量设备:{x.device}")
else:
print("错误:PyTorch 无法找到支持CUDA的GPU。")
从您的SSH会话中运行此脚本:python3 verify_gpu.py。成功输出表明您的环境已完全准备就绪。
只要云资源运行,就会产生费用。“停止”的实例可能不产生计算费用,但其存储卷(EBS)仍会计费。为避免本次实验产生额外费用,您必须终止实例。
警告: 终止是不可逆操作。实例本地存储上的所有数据将被永久删除。
使用您之前记下的InstanceId来终止实例。
# 将 i-012345abcdef 替换为您的实际 InstanceId
aws ec2 terminate-instances --instance-ids i-012345abcdef
此命令将安排实例终止。几分钟后,实例将被完全移除,计费也将停止。请务必在AWS管理控制台中再次检查,确保完成工作后资源已被终止。这个习惯是有效管理云成本最重要的一个方面。
这部分内容有帮助吗?
nvidia-smi 工具的详细信息。© 2026 ApX Machine Learning用心打造