mcpField
L
lambda-labs-gpu-cloud

lambda-labs-gpu-cloud

github.com/kalarislabs云与 DevOps7345 次安装4 天前更新
代码仓库

关于 lambda-labs-gpu-cloud

lambda-labs-gpu-cloud 是在 Lambda Labs GPU Cloud 上运行机器学习工作负载的实用指南,适合需要 GPU 实例或多节点集群的从业者,涵盖配置、存储、训练与成本管理。

主要功能

  1. 01通过控制台或 API 启动 GPU 实例
  2. 02使用 SSH 连接实例
  3. 03通过持久文件系统保存重启间数据
  4. 04运行多 GPU 与 Slurm 集群训练
  5. 05使用预装的机器学习软件
  6. 06监控用量并管理成本

适用场景

  1. 01在 GPU 实例上微调模型
  2. 02使用 GPU 硬件运行批量推理
  3. 03跨多个 GPU 或节点训练
  4. 04在会话间保存数据集与检查点

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/kalarislabs/research-agent-skills --skill lambda-labs-gpu-cloud

安装后在 Claude Code 中输入/lambda-labs-gpu-cloud确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
advanced-usage.md
python-api.md
troubleshooting.md

详细介绍

Lambda Labs GPU 云

全面介绍如何使用 Lambda Labs GPU 云的按需实例和 1-Click Clusters 运行机器学习工作负载。

何时使用 Lambda Labs

以下情况适合使用 Lambda Labs:

  • 需要具有完整 SSH 访问权限的专用 GPU 实例
  • 运行耗时较长的训练任务(数小时至数天)
  • 希望定价简单,且无需支付出口流量费用
  • 需要跨会话保留持久化存储
  • 需要高性能多节点集群(16-512 个 GPU)
  • 希望使用预装的机器学习软件栈(Lambda Stack,包含 PyTorch、CUDA、NCCL)

主要功能:

  • 多种 GPU:B200、H100、GH200、A100、A10、A6000、V100
  • Lambda Stack:预装 PyTorch、TensorFlow、CUDA、cuDNN、NCCL
  • 持久化文件系统:实例重启后仍可保留数据
  • 1-Click Clusters:配备 InfiniBand 的 16-512 GPU Slurm 集群
  • 定价简单:按分钟付费,无出口流量费用
  • 全球区域:全球 12 个以上区域

以下情况可改用其他方案:

  • Modal:适用于无服务器、自动扩缩的工作负载
  • SkyPilot:适用于多云编排和成本优化
  • RunPod:适用于更便宜的抢占式实例和无服务器端点
  • Vast.ai:适用于价格最低的 GPU 市场

快速开始

设置账户
  1. 在 https://lambda.ai 创建账户
  2. 添加付款方式
  3. 在控制面板中生成 API 密钥
  4. 添加 SSH 密钥(启动实例前必须完成)
通过控制台启动
  1. 前往 https://cloud.lambda.ai/instances
  2. 点击 "Launch instance"
  3. 选择 GPU 类型和区域
  4. 选择 SSH 密钥
  5. 可选:挂载文件系统
  6. 启动并等待 3-15 分钟
通过 SSH 连接
# Get instance IP from console
ssh ubuntu@<INSTANCE-IP>

# Or with specific key
ssh -i ~/.ssh/lambda_key ubuntu@<INSTANCE-IP>

GPU 实例

可用 GPU
GPU显存每 GPU 每小时价格最适用于
B200 SXM6180 GB$4.99最大规模模型、最快速的训练
H100 SXM80 GB$2.99-3.29大型模型训练
H100 PCIe80 GB$2.49高性价比 H100
GH20096 GB$1.49单 GPU 大型模型
A100 80GB80 GB$1.79生产环境训练
A100 40GB40 GB$1.29标准训练
A1024 GB$0.75推理、微调
A600048 GB$0.80显存与价格比例出色
V10016 GB$0.55经济型训练
实例配置
8x GPU: Best for distributed training (DDP, FSDP)
4x GPU: Large models, multi-GPU training
2x GPU: Medium workloads
1x GPU: Fine-tuning, inference, development
启动时间
  • 单 GPU:3-5 分钟
  • 多 GPU:10-15 分钟

Lambda Stack

所有实例均预装 Lambda Stack:

# Included software
- Ubuntu 22.04 LTS
- NVIDIA drivers (latest)
- CUDA 12.x
- cuDNN 8.x
- NCCL (for multi-GPU)
- PyTorch (latest)
- TensorFlow (latest)
- JAX
- JupyterLab
验证安装
# Check GPU
nvidia-smi

# Check PyTorch
python -c "import torch; print(torch.cuda.is_available())"

# Check CUDA version
nvcc --version

Python API

详细信息、代码示例和参数表见:references/python-api.md。适用时请阅读。

使用 curl 的 CLI

列出实例类型
curl -u $LAMBDA_API_KEY: \
  https://cloud.lambdalabs.com/api/v1/instance-types | jq
启动实例
curl -u $LAMBDA_API_KEY: \
  -X POST https://cloud.lambdalabs.com/api/v1/instance-operations/launch \
  -H "Content-Type: application/json" \
  -d '{
    "region_name": "us-west-1",
    "instance_type_name": "gpu_1x_h100_sxm5",
    "ssh_key_names": ["my-key"]
  }' | jq
终止实例
curl -u $LAMBDA_API_KEY: \
  -X POST https://cloud.lambdalabs.com/api/v1/instance-operations/terminate \
  -H "Content-Type: application/json" \
  -d '{"instance_ids": ["<INSTANCE-ID>"]}' | jq

持久化存储

文件系统

文件系统可在实例重启后保留数据:

# Mount location
/lambda/nfs/<FILESYSTEM_NAME>

# Example: save checkpoints
python train.py --checkpoint-dir /lambda/nfs/my-storage/checkpoints
创建文件系统
  1. 在 Lambda 控制台中前往 Storage
  2. 点击 "Create filesystem"
  3. 选择区域(必须与实例区域一致)
  4. 命名并创建
挂载到实例

必须在启动实例时挂载文件系统:

  • 通过控制台:启动时选择文件系统
  • 通过 API:在启动请求中包含 file_system_names
最佳实践
# Store on filesystem (persists)
/lambda/nfs/storage/
  ├── datasets/
  ├── checkpoints/
  ├── models/
  └── outputs/

# Local SSD (faster, ephemeral)
/home/ubuntu/
  └── working/  # Temporary files

SSH 配置

添加 SSH 密钥
# Generate key locally
ssh-keygen -t ed25519 -f ~/.ssh/lambda_key

# Add public key to Lambda console
# Or via API
多个密钥
# On instance, add more keys
echo 'ssh-rsa AAAA...' >> ~/.ssh/authorized_keys
从 GitHub 导入
# On instance
ssh-import-id gh:username
SSH 隧道
# Forward Jupyter
ssh -L 8888:localhost:8888 ubuntu@<IP>

# Forward TensorBoard
ssh -L 6006:localhost:6006 ubuntu@<IP>

# Multiple ports
ssh -L 8888:localhost:8888 -L 6006:localhost:6006 ubuntu@<IP>

JupyterLab

从控制台启动
  1. 前往 Instances 页面
  2. 在 Cloud IDE 列中点击 "Launch"
  3. JupyterLab 将在浏览器中打开
手动访问
# On instance
jupyter lab --ip=0.0.0.0 --port=8888

# From local machine with tunnel
ssh -L 8888:localhost:8888 ubuntu@<IP>
# Open http://localhost:8888

训练工作流

单 GPU 训练
# SSH to instance
ssh ubuntu@<IP>

# Clone repo
git clone https://github.com/user/project
cd project

# Install dependencies
pip install -r requirements.txt

# Train
python train.py --epochs 100 --checkpoint-dir /lambda/nfs/storage/checkpoints
多 GPU 训练(单节点)
# train_ddp.py
import torch
import torch.distributed as dist
from torch.nn.parallel import DistributedDataParallel as DDP

def main():
    dist.init_process_group("nccl")
    rank = dist.get_rank()
    device = rank % torch.cuda.device_count()

    model = MyModel().to(device)
    model = DDP(model, device_ids=[device])

    # Training loop...

if __name__ == "__main__":
    main()
# Launch with torchrun (8 GPUs)
torchrun --nproc_per_node=8 train_ddp.py
将检查点保存到文件系统
import os

checkpoint_dir = "/lambda/nfs/my-storage/checkpoints"
os.makedirs(checkpoint_dir, exist_ok=True)

# Save checkpoint
torch.save({
    'epoch': epoch,
    'model_state_dict': model.state_dict(),
    'optimizer_state_dict': optimizer.state_dict(),
    'loss': loss,
}, f"{checkpoint_dir}/checkpoint_{epoch}.pt")

1-Click Clusters

概览

高性能 Slurm 集群,配备:

  • 16-512 个 NVIDIA H100 或 B200 GPU
  • NVIDIA Quantum-2 400 Gb/s InfiniBand
  • 3200 Gb/s GPUDirect RDMA
  • 预装的分布式机器学习软件栈
随附软件
  • Ubuntu 22.04 LTS + Lambda Stack
  • NCCL、Open MPI
  • 支持 DDP 和 FSDP 的 PyTorch
  • TensorFlow
  • OFED 驱动
存储
  • 每个计算节点配备 24 TB NVMe(临时存储)
  • 使用 Lambda 文件系统存储持久化数据
多节点训练
# On Slurm cluster
srun --nodes=4 --ntasks-per-node=8 --gpus-per-node=8 \
  torchrun --nnodes=4 --nproc_per_node=8 \
  --rdzv_backend=c10d --rdzv_endpoint=$MASTER_ADDR:29500 \
  train.py

网络

带宽
  • 实例间(同一区域):最高 200 Gbps
  • Internet 出站:最高 20 Gbps
防火墙
  • 默认仅开放端口 22(SSH)
  • 在 Lambda 控制台中配置其他端口
  • 默认允许 ICMP 流量
私有 IP
# Find private IP
ip addr show | grep 'inet '

常见工作流

工作流 1:微调 LLM
# 1. Launch 8x H100 instance with filesystem

# 2. SSH and setup
ssh ubuntu@<IP>
pip install transformers accelerate peft

# 3. Download model to filesystem
python -c "
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-2-7b-hf')
model.save_pretrained('/lambda/nfs/storage/models/llama-2-7b')
"

# 4. Fine-tune with checkpoints on filesystem
accelerate launch --num_processes 8 train.py \
  --model_path /lambda/nfs/storage/models/llama-2-7b \
  --output_dir /lambda/nfs/storage/outputs \
  --checkpoint_dir /lambda/nfs/storage/checkpoints
工作流 2:批量推理
# 1. Launch A10 instance (cost-effective for inference)

# 2. Run inference
python inference.py \
  --model /lambda/nfs/storage/models/fine-tuned \
  --input /lambda/nfs/storage/data/inputs.jsonl \
  --output /lambda/nfs/storage/data/outputs.jsonl

成本优化

选择合适的 GPU
任务推荐的 GPU
LLM 微调(7B)A100 40GB
LLM 微调(70B)8x H100
推理A10、A6000
开发V100、A10
最高性能B200
降低成本
  1. 使用文件系统:避免重复下载数据
  2. 频繁保存检查点:恢复中断的训练
  3. 选择合适的规格:不要过度配置 GPU
  4. 终止空闲实例:不会自动停止,需手动终止
监控用量
  • 控制面板显示 GPU 实时利用率
  • 可通过 API 进行程序化监控

常见问题

问题解决方案
实例无法启动检查区域可用性,尝试其他 GPU
SSH 连接被拒绝等待实例完成初始化(3-15 分钟)
终止实例后数据丢失使用持久化文件系统
数据传输缓慢使用同一区域内的文件系统
未检测到 GPU重启实例并检查驱动程序

参考资料

资源

相关技能

  • modal-serverless-gpu:用于运行 ML 工作负载的无服务器 GPU 云平台。
  • skypilot-multi-cloud-orchestration:面向 ML 工作负载的多云编排,支持自动优化成本。
  • modal:Modal 是一个无服务器云平台,可按需运行 Python,包括按需使用 GPU。

评论

支持 Markdown