Lambda Labs Gpu Cloud
Зарезервированные и выделенные по требованию GPU-инстансы для обучения и инференса ML-моделей. Используйте, когда вам нужны выделенные GPU-инстансы с простым SSH-доступом, постоянными файловыми системами или высокопроизводительными мульти-нодовыми кластерами для крупномасштабного обучения.
Метаданные навыка
| Источник | Опционально — установка с помощью vibeos 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
Ниже приведено полное определение навыка, которое VibeOS загружает при его активации. Агент видит эти инструкции, когда навык активен.
Lambda Labs GPU Cloud
Исчерпывающее руководство по запуску ML-нагрузок на GPU-облаке Lambda Labs с инстансами по требованию и кластерами в один клик.
Когда использовать 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
- Постоянные файловые системы: Сохраняйте данные при перезапуске инстансов
- Кластеры в один клик: Slurm-кластеры на 16-512 GPU с InfiniBand
- Простое ценообразование: Оплата за минуту, без платы за исходящий трафик
- Глобальные регионы: Более 12 регионов по всему миру
Используйте альтернативы вместо этого:
- Modal: Для бессерверных, автоматически масштабируемых нагрузок
- SkyPilot: Для мульти-облачной оркестрации и оптимизации затрат
- RunPod: Для более дешевых spot-инстансов и бессерверных эндпоинтов
- Vast.ai: Для маркетплейса GPU с самыми низкими ценами
Быстрый старт
Настройка аккаунта
- Создайте аккаунт на https://lambda.ai
- Добавьте способ оплаты
- Сгенерируйте API-ключ в панели управления
- Добавьте SSH-ключ (требуется перед запуском инстансов)
Запуск через консоль
- Перейдите на https://cloud.lambda.ai/instances
- Нажмите «Launch instance»
- Выберите тип GPU и регион
- Выберите SSH-ключ
- При необходимости подключите файловую систему
- Запустите и подождите 3-15 минут
Подключение по SSH
# Получить IP инстанса из консоли
ssh ubuntu@<INSTANCE-IP>
# Или с конкретным ключом
ssh -i ~/.ssh/lambda_key ubuntu@<INSTANCE-IP>
GPU-инстансы
Доступные GPU
| GPU | VRAM | Цена/GPU/час | Лучше всего для |
|---|---|---|---|
| B200 SXM6 | 180 ГБ | $4.99 | Самые большие модели, самое быстрое обучение |
| H100 SXM | 80 ГБ | $2.99-3.29 | Обучение больших моделей |
| H100 PCIe | 80 ГБ | $2.49 | Экономичный H100 |
| GH200 | 96 ГБ | $1.49 | Большие модели на одном GPU |
| A100 80GB | 80 ГБ | $1.79 | Продуктивное обучение |
| A100 40GB | 40 ГБ | $1.29 | Стандартное обучение |
| A10 | 24 ГБ | $0.75 | Инференс, дообучение |
| A6000 | 48 ГБ | $0.80 | Хорошее соотношение VRAM/цена |
| V100 | 16 ГБ | $0.55 | Бюджетное обучение |
Конфигурации инстансов
8x GPU: Лучше всего для распределенного обучения (DDP, FSDP)
4x GPU: Большие модели, мульти-GPU обучение
2x GPU: Средние нагрузки
1x GPU: Дообучение, инференс, разработка
Время запуска
- Один GPU: 3-5 минут
- Несколько GPU: 10-15 минут
Lambda Stack
Все инстансы поставляются с предустановленным Lambda Stack:
# Включенное ПО
- Ubuntu 22.04 LTS
- Драйверы NVIDIA (последние)
- CUDA 12.x
- cuDNN 8.x
- NCCL (для мульти-GPU)
- PyTorch (последний)
- TensorFlow (последний)
- JAX
- JupyterLab
Проверка установки
# Проверка GPU
nvidia-smi
# Проверка PyTorch
python -c "import torch; print(torch.cuda.is_available())"
# Проверка версии CUDA
nvcc --version
Python API
Установка
pip install lambda-cloud-client
Аутентификация
import os
import lambda_cloud_client
# Настройка с API-ключом
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)
# Получить доступные типы инстансов
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"], # Опционально
name="training-job"
)
response = api.launch_instance(request)
instance_id = response.data.instance_ids[0]
print(f"Запущен: {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
# Добавить SSH-ключ
request = AddSshKeyRequest(
name="my-key",
public_key="ssh-rsa AAAA..."
)
api.add_ssh_key(request)
# Список ключей
keys = api.list_ssh_keys()
# Удалить ключ
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
Постоянное хранилище
Файловые системы
Файловые системы сохраняют данные при перезапуске инстансов:
# Точка монтирования
/lambda/nfs/<FILESYSTEM_NAME>
# Пример: сохранение контрольных точек
python train.py --checkpoint-dir /lambda/nfs/my-storage/checkpoints
Создание файловой системы
- Перейдите в раздел Storage в консоли Lambda
- Нажмите «Create filesystem»
- Выберите регион (должен совпадать с регионом инстанса)
- Дайте имя и создайте
Подключение к инстансу
Файловые системы должны быть подключены при запуске инстанса:
- Через консоль: выберите файловую систему при запуске
- Через API: включите
file_system_namesв запрос на запуск
Лучшие практики
# Хранить в файловой системе (постоянно)
/lambda/nfs/storage/
├── datasets/
├── checkpoints/
├── models/
└── outputs/
# Локальный SSD (быстрее, эфемерно)
/home/ubuntu/
└── working/ # Временные файлы
Конфигурация SSH
Добавление SSH-ключа
# Сгенерировать ключ локально
ssh-keygen -t ed25519 -f ~/.ssh/lambda_key
# Добавить открытый ключ в консоль Lambda
# Или через API
Несколько ключей
# На инстансе добавьте больше ключей
echo 'ssh-rsa AAAA...' >> ~/.ssh/authorized_keys
Импорт из GitHub
# На инстансе
ssh-import-id gh:username
SSH-туннелирование
# Проброс Jupyter
ssh -L 8888:localhost:8888 ubuntu@<IP>
# Проброс TensorBoard
ssh -L 6006:localhost:6006 ubuntu@<IP>
# Несколько портов
ssh -L 8888:localhost:8888 -L 6006:localhost:6006 ubuntu@<IP>
JupyterLab
Запуск из консоли
- Перейдите на страницу Instances
- Нажмите «Launch» в колонке Cloud IDE
- JupyterLab откроется в браузере
Ручной доступ
# На инстансе
jupyter lab --ip=0.0.0.0 --port=8888
# С локальной машины через туннель
ssh -L 8888:localhost:8888 ubuntu@<IP>
# Откройте http://localhost:8888
Рабочие процессы обучения
Обучение на одном GPU
# SSH к инстансу
ssh ubuntu@<IP>
# Клонировать репозиторий
git clone https://github.com/user/project
cd project
# Установить зависимости
pip install -r requirements.txt
# Обучить
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])
# Цикл обучения...
if __name__ == "__main__":
main()
# Запуск с torchrun (8 GPU)
torchrun --nproc_per_node=8 train_ddp.py
Контрольные точки в файловую систему
import os
checkpoint_dir = "/lambda/nfs/my-storage/checkpoints"
os.makedirs(checkpoint_dir, exist_ok=True)
# Сохранить контрольную точку
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 Гбит/с InfiniBand
- GPUDirect RDMA на 3200 Гбит/с
- Предустановленный распределенный ML-стек
Включенное ПО
- Ubuntu 22.04 LTS + Lambda Stack
- NCCL, Open MPI
- PyTorch с DDP и FSDP
- TensorFlow
- Драйверы OFED
Хранилище
- 24 ТБ NVMe на вычислительный узел (эфемерно)
- Файловые системы Lambda для постоянных данных
Мульти-нодовое обучение
# На Slurm-кластере
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
# Найти частный IP
ip addr show | grep 'inet '
Типовые рабочие процессы
Рабочий процесс 1: Дообучение LLM
# 1. Запустить инстанс 8x H100 с файловой системой
# 2. SSH и настройка
ssh ubuntu@<IP>
pip install transformers accelerate peft
# 3. Загрузить модель в файловую систему
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. Дообучить с контрольными точками в файловой системе
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. Запустить инстанс A10 (экономически эффективен для инференса)
# 2. Запустить инференс
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 |
Снижение затрат
- Используйте файловые системы: Избегайте повторной загрузки данных
- Часто сохраняйте контрольные точки: Возобновляйте прерванное обучение
- Правильный размер: Не выделяйте избыточные GPU
- Завершайте простаивающие: Нет автоостановки, завершайте вручную
Мониторинг использования
- Панель управления показывает использование GPU в реальном времени
- API для программного мониторинга
Частые проблемы
| Проблема | Решение |
|---|---|
| Инстанс не запускается | Проверьте доступность региона, попробуйте другой GPU |
| Отказ в SSH-подключении | Подождите инициализации инстанса (3-15 мин) |
| Потеря данных после завершения | Используйте постоянные файловые системы |
| Медленная передача данных | Используйте файловую систему в том же регионе |
| GPU не обнаружен | Перезагрузите инстанс, проверьте драйверы |
Ссылки
Расширенное использование— Мульти-нодовое обучение, автоматизация APIУстранение неполадок— Частые проблемы и решения
Ресурсы
- Документация: https://docs.lambda.ai
- Консоль: https://cloud.lambda.ai
- Цены: https://lambda.ai/instances
- Поддержка: https://support.lambdalabs.com
- Блог: https://lambda.ai/blog