Lambda Labs Gpu Cloud

Зарезервированные и облачные GPU-инстансы по запросу для обучения и инференса ML. Подходит, когда нужны выделенные GPU-инстансы с простым доступом по SSH, постоянными файловыми системами или высокопроизводительными многоузловыми кластерами для крупномасштабного обучения.

Метаданные навыка

ИсточникОпциональный — устанавливается командой hermes skills install official/mlops/lambda-labs
Путьoptional-skills/mlops/lambda-labs
Версия1.0.0
АвторOrchestra Research
ЛицензияMIT
Зависимостиlambda-cloud-client>=1.0.0
Платформыlinux, macos, windows
ТегиInfrastructure, GPU Cloud, Training, Inference, Lambda Labs

Справочник: полный SKILL.md

инфо

Ниже приведено полное определение навыка, которое Hermes загружает при его срабатывании. Именно эти инструкции видит агент, когда навык активен.

Lambda Labs GPU Cloud

Подробное руководство по запуску ML-нагрузок в GPU-облаке Lambda Labs: инстансы по запросу и кластеры 1-Click Clusters.

Когда использовать Lambda Labs

Берите Lambda Labs, если:

  • Нужны выделенные GPU-инстансы с полным доступом по SSH
  • Запускаете долгие задачи обучения (от часов до дней)
  • Хотите простую тарификацию без платы за исходящий трафик
  • Нужно постоянное хранилище, переживающее перезапуски сессий
  • Требуются высокопроизводительные многоузловые кластеры (16–512 GPU)
  • Хотите предустановленный ML-стек (Lambda Stack с PyTorch, CUDA, NCCL)

Главные возможности:

  • Разнообразие GPU: B200, H100, GH200, A100, A10, A6000, V100
  • Lambda Stack: предустановленные PyTorch, TensorFlow, CUDA, cuDNN, NCCL
  • Постоянные файловые системы: данные сохраняются между перезапусками инстанса
  • 1-Click Clusters: Slurm-кластеры на 16–512 GPU с InfiniBand
  • Простая тарификация: оплата поминутно, без платы за исходящий трафик
  • Регионы по всему миру: 12+ регионов

Когда взять альтернативу:

  • Modal: для бессерверных, авто-масштабируемых нагрузок
  • SkyPilot: для оркестрации в нескольких облаках и оптимизации расходов
  • RunPod: для более дешёвых spot-инстансов и бессерверных эндпоинтов
  • 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

GPUVRAMЦена/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Хорошее соотношение VRAM/цена
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

Установка

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)

CLI через curl

Список типов инстансов

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. Откройте раздел Storage в консоли Lambda
  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. Нажмите «Launch» в колонке Cloud IDE
  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 GPU NVIDIA H100 или B200
  • NVIDIA Quantum-2 InfiniBand на 400 Гбит/с
  • GPUDirect RDMA на 3200 Гбит/с
  • Предустановленным стеком для распределённого ML

Что предустановлено

  • Ubuntu 22.04 LTS + Lambda Stack
  • NCCL, Open MPI
  • PyTorch с DDP и FSDP
  • TensorFlow
  • Драйверы OFED

Хранилище

  • 24 ТБ 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 Гбит/с
  • Исходящий трафик в интернет: максимум 20 Гбит/с

Файрвол

  • По умолчанию открыт только порт 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 не определяетсяПерезагрузите инстанс, проверьте драйверы

Ссылки

  • Advanced Usage — многоузловое обучение, автоматизация через API
  • Troubleshooting — частые проблемы и их решения

Ресурсы

ESC