Lambda Labs GPU 雲
用於機器學習訓練和推理的預留及按需 GPU 雲實例。當您需要具有簡單 SSH 訪問權限、持久文件系統或用於大規模訓練的高性能多節點集群的專用 GPU 實例時,請使用此服務。
技能元數據
| 來源 | 可選 — 使用 hermes skills install official/mlops/lambda-labs 安裝 |
| 路徑 | optional-skills/mlops/lambda-labs |
| 版本 | 1.0.0 |
| 作者 | Orchestra Research |
| 許可證 | MIT |
| 依賴項 | lambda-cloud-client>=1.0.0 |
| 標籤 | Infrastructure, GPU Cloud, Training, Inference, Lambda Labs |
參考:完整 SKILL.md
信息
以下是 Hermes 在觸發此技能時加載的完整技能定義。這是技能激活時代理看到的指令。
Lambda Labs GPU 雲
在 Lambda Labs GPU 雲上使用按需實例和一鍵式集群(1-Click Clusters)運行機器學習工作負載的綜合指南。
何時使用 Lambda Labs
在以下情況下使用 Lambda Labs:
- 需要具有完整 SSH 訪問權限的專用 GPU 實例
- 運行長時間的訓練任務(數小時至數天)
- 希望定價簡單且無出站流量費用
- 需要在會話之間保持持久存儲
- 需要高性能多節點集群(16-512 個 GPU)
- 希望使用預安裝的機器學習棧(包含 PyTorch、CUDA、NCCL 的 Lambda Stack)
主要功能:
- GPU 多樣性:B200、H100、GH200、A100、A10、A6000、V100
- Lambda Stack:預安裝 PyTorch、TensorFlow、CUDA、cuDNN、NCCL
- 持久文件系統:在實例重啟後保留數據
- 一鍵式集群:配備 InfiniBand 的 16-512 GPU Slurm 集群
- 簡單定價:按分鐘付費,無出站流量費用
- 全球區域:全球 12+ 個區域
改用其他替代方案:
- Modal:適用於無服務器、自動伸縮的工作負載
- SkyPilot:適用於多雲編排和成本優化
- RunPod:適用於更便宜的競價實例和無服務器端點
- Vast.ai:適用於價格最低的 GPU 市場
快速入門
賬戶設置
- 在 https://lambda.ai 創建賬戶
- 添加支付方式
- 從儀表板生成 API 密鑰
- 添加 SSH 密鑰(啟動實例前必需)
通過控制檯啟動
- 訪問 https://cloud.lambda.ai/instances
- 點擊“Launch instance”(啟動實例)
- 選擇 GPU 類型和區域
- 選擇 SSH 密鑰
- (可選)附加文件系統
- 啟動並等待 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 | 顯存 (VRAM) | 每 GPU 每小時價格 | 最佳用途 |
|---|---|---|---|
| B200 SXM6 | 180 GB | $4.99 | 最大模型,最快訓練速度 |
| H100 SXM | 80 GB | $2.99-3.29 | 大型模型訓練 |
| H100 PCIe | 80 GB | $2.49 | 高性價比 H100 |
| GH200 | 96 GB | $1.49 | 單 GPU 大型模型 |
| A100 80GB | 80 GB | $1.79 | 生產環境訓練 |
| A100 40GB | 40 GB | $1.29 | 標準訓練 |
| A10 | 24 GB | $0.75 | 推理,微調 |
| A6000 | 48 GB | $0.80 | 良好的顯存/價格比 |
| V100 | 16 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
安裝
pip install lambda-cloud-client
身份驗證
import os
import lambda_cloud_client
# Configure with API key
configuration = lambda_cloud_client.Configuration(
host="https://cloud.lambdalabs.com/api/v1",
access_token=os.environ["LAMBDA_API_KEY"]
)
列出可用實例
with lambda_cloud_client.ApiClient(configuration) as api_client:
api = lambda_cloud_client.DefaultApi(api_client)
# Get available instance types
types = api.instance_types()
for name, info in types.data.items():
print(f"{name}: {info.instance_type.description}")
啟動實例
from lambda_cloud_client.models import LaunchInstanceRequest
request = LaunchInstanceRequest(
region_name="us-west-1",
instance_type_name="gpu_1x_h100_sxm5",
ssh_key_names=["my-ssh-key"],
file_system_names=["my-filesystem"], # Optional
name="training-job"
)
response = api.launch_instance(request)
instance_id = response.data.instance_ids[0]
print(f"Launched: {instance_id}")
列出正在運行的實例
instances = api.list_instances()
for instance in instances.data:
print(f"{instance.name}: {instance.ip} ({instance.status})")
終止實例
from lambda_cloud_client.models import TerminateInstanceRequest
request = TerminateInstanceRequest(
instance_ids=[instance_id]
)
api.terminate_instance(request)
SSH 密鑰管理
from lambda_cloud_client.models import AddSshKeyRequest
# Add SSH key
request = AddSshKeyRequest(
name="my-key",
public_key="ssh-rsa AAAA..."
)
api.add_ssh_key(request)
# List keys
keys = api.list_ssh_keys()
# Delete key
api.delete_ssh_key(key_id)
使用 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
創建文件系統
- 在 Lambda 控制檯中進入 Storage(存儲)
- 點擊“Create filesystem”(創建文件系統)
- 選擇區域(必須與實例區域匹配)
- 命名並創建
附加到實例
文件系統必須在實例啟動時附加:
- 通過控制檯:啟動時選擇文件系統
- 通過 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
從控制檯啟動
- 進入 Instances(實例)頁面
- 點擊 Cloud IDE 列中的“Launch”(啟動)
- 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")
一鍵式集群
概述
高性能 Slurm 集群,具備以下特性:
- 16-512 塊 NVIDIA H100 或 B200 GPU
- NVIDIA Quantum-2 400 Gb/s InfiniBand
- GPUDirect RDMA,帶寬高達 3200 Gb/s
- 預安裝分佈式機器學習棧
包含的軟件
- 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
- 互聯網出站流量:最高 20 Gbps
防火牆
- 默認設置:僅開放端口 22 (SSH)
- 在 Lambda 控制檯中配置其他端口
- 默認允許 ICMP 流量
私有 IP
# Find private IP
ip addr show | grep 'inet '
常見工作流
工作流 1:大語言模型微調
# 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 |
|---|---|
| 大語言模型微調 (7B) | A100 40GB |
| 大語言模型微調 (70B) | 8x H100 |
| 推理 | A10, A6000 |
| 開發 | V100, A10 |
| 極致性能 | B200 |
降低成本
- 使用文件系統:避免重新下載數據
- 頻繁保存檢查點:恢復中斷的訓練
- 合理配置規模:不要過度配置 GPU
- 終止空閒實例:無自動停止功能,需手動終止
監控使用情況
- 儀表板顯示實時 GPU 利用率
- 提供 API 用於程序化監控
常見問題
| 問題 | 解決方案 |
|---|---|
| 實例無法啟動 | 檢查區域可用性,嘗試更換 GPU 類型 |
| SSH 連接被拒絕 | 等待實例初始化完成(3-15 分鐘) |
| 終止後數據丟失 | 使用持久化文件系統 |
| 數據傳輸緩慢 | 使用同一區域內的文件系統 |
| 未檢測到 GPU | 重啟實例,檢查驅動程序 |