SkyPilot: фреймворк с открытым исходным кодом для эффективного выполнения задач искусственного интеллекта и пакетных задач в любом облаке

Общее введение

SkyPilot - это фреймворк с открытым исходным кодом, созданный лабораторией Sky Computing Lab при Калифорнийском университете в Беркли и призванный помочь пользователям эффективно выполнять задачи искусственного интеллекта и пакетной обработки данных в любой облачной инфраструктуре. Поддерживая более 14 облачных сервисов (включая AWS, GCP, Azure и др.) и Kubernetes, SkyPilot обеспечивает унифицированный интерфейс выполнения, значительную экономию средств и высокую доступность GPU, а также настраивается через простой YAML или Python API, который позволяет пользователям развертывать задачи в облаке без изменения кода, автоматически выбирая оптимальные ресурсы и достигая SkyPilot позволяет пользователям развертывать задачи в облаке без изменения кода, автоматически выбирая оптимальные ресурсы и обеспечивая отказоустойчивость. С момента выхода в 2022 году проект получил более 1 миллиона загрузок и 7 тысяч с лишним звезд на GitHub и широко используется в обучении моделей машинного обучения, настройке гиперпараметров и биоинформатике.

SkyPilot:在任何云端高效运行AI与批处理任务的开源框架

 

Список функций

  • Развертывание миссий в нескольких облаках: Поддерживает выполнение задач в 14+ облаках, таких как AWS, GCP, Azure и Kubernetes, что позволяет избежать привязки к одному поставщику облаков.
  • Оптимизация затратАвтоматически выбирает самый дешевый регион облака или экземпляр (например, экземпляры по требованию или Spot), обеспечивая экономию до 3-6,5 раз.
  • Поддержка GPU/TPU: Бесшовное планирование и управление ресурсами GPU (например, NVIDIA A100) и TPU для повышения эффективности вычислений.
  • Автоматическое восстановление после сбоевАвтоматическое переключение на другие облака или регионы при недостаточной пропускной способности или возникновении преимущественного права, что позволяет не прерывать выполнение задач.
  • Синхронизация кода и данныхАвтоматически синхронизируйте локальный код и данные с облачным кластером, чтобы упростить процесс развертывания.
  • Управление очередью задач: Поддержка массовых одновременных задач (например, 2000+ заданий) для таких сценариев, как настройка гиперпараметров.
  • Развертывание услуг (SkyServe): Обеспечивает поддержку HTTPS и политики балансировки нагрузки для простого развертывания служб модели AI.
  • Поддержка зарезервированных экземпляровИнтеграция локальных ресурсов, таких как AWS Capacity Blocks, GCP Dynamic Workload Scheduler и др.

 

Использование помощи

SkyPilot прост в установке и использовании для разработчиков, исследователей и бизнес-пользователей. Ниже приводится подробное описание установки, настройки и работы с основными функциями SkyPilot.

Процесс установки

  1. Подготовка к защите окружающей среды
    Убедитесь, что Python 3.8 или более поздней версии установлен локально и что у вас есть pip Инструменты управления пакетами. Во избежание конфликтов зависимостей рекомендуется использовать виртуальную среду:

    python3 -m venv skypilot_env
    source skypilot_env/bin/activate
  1. Установка SkyPilot
    пройти (законопроект, проверку и т.д.) pip Установите последнюю версию:

    pip install -U "skypilot[all]"
    

    среди них [all] Указывает, что установлены все поддерживаемые облаком зависимости. Если требуется только определенное облако (например, AWS), замените на skypilot[aws].

  2. Облачная аутентификация
    Настройте учетные данные для целевого облака. В качестве примера возьмем AWS:

    • Установите AWS CLI:pip install awscli
    • Настройте учетные данные:aws configureВведите ключ доступа и секретный ключ.
      Для других облаков (например, GCP, Azure) обратитесь к официальной документации, чтобы выполнить аналогичную настройку.
  3. Проверка установки
    Выполните следующую команду, чтобы проверить, успешно ли прошла установка:

    sky check
    

    На выходе отображается состояние включенных облачных сервисов.

Основные функции

1. Создание профилей миссий

SkyPilot использует файлы YAML для определения задач. Например, чтобы обучить модель PyTorch, создайте файл train.yaml::

resources:
accelerators: A100:1  # 使用 1 个 A100 GPU
num_nodes: 1         # 单节点
workdir: ~/my_project  # 同步本地项目目录
setup: |               # 安装依赖
pip install torch torchvision
run: |                 # 运行任务
python main.py --epochs 10
  • resources: Укажите вычислительные ресурсы, например тип и количество графических процессоров.
  • workdir: Локальный каталог кодов с автоматической синхронизацией с облаком.
  • setup: Подготовительные команды перед запуском.
  • run: Командование по выполнению миссии.

2. Ввод в действие мандата

Запускается в терминале:

sky launch -c my-cluster train.yaml
  • -c my-cluster: Именованные кластеры для удобства последующего управления.
  • SkyPilot автоматически выбирает оптимальный облачный ресурс и запускает задачу.

3. Просмотр статуса мандата

Проверьте состояние кластера:

sky status

Отображает все запущенные кластеры и использование ими ресурсов.

4. Оптимизация затрат и примеры Spot

Используйте точечные экземпляры для снижения затрат:

sky launch -c my-spot-cluster train.yaml --use-spot

SkyPilot автоматически справляется с перебоями в работе экземпляров Spot и возобновляет выполнение задач.

5. службы развертывания (SkyServe)

В качестве примера развертывания модели LLaMA создайте serve.yaml::

resources:
accelerators: A100:1
service:
replica: 2          # 2 个副本
ports: 8080         # 服务端口
run: |
python serve.py --model llama

Начните обслуживание:

sky serve up serve.yaml -n llama-service

Получите доступ к созданной конечной точке HTTPS для использования сервиса.

6. Массивные одновременные миссии

Выполнение 2000+ задач (например, настройка гиперпараметров):

sky jobs launch -c my-jobs train.yaml --num-jobs 2000

SkyPilot автоматически распределяет ресурсы и управляет очередями.

Основные функции

Переключение между несколькими облаками

Если в AWS не доступен A100, укажите другое облако:

sky launch -c my-cluster train.yaml --cloud gcp

Или позвольте SkyPilot автоматически выбрать самое дешевое облако:

sky launch -c my-cluster train.yaml --cloud cheapest

Планирование работы графического процессора

Просмотрите доступные ресурсы GPU:

sky show-gpus

Динамически подстраивается под спрос resources попал в точку accelerators Параметры.

Ведение журнала и отладка

Просматривайте журналы задач в режиме реального времени:

sky logs my-cluster

Включите режим отладки:

export SKYPILOT_DEBUG=1
sky launch -c my-cluster train.yaml

предостережение

  • Безопасность учетных данных: Убедитесь, что файл учетных данных облака (например. ~/.aws) разрешения правильно, чтобы избежать утечки.
  • Выпуск ресурсов: Вручную выключите кластер после завершения задачи:
    sky down my-cluster
    
  • Поддержка документации: Более подробная информация об использовании приведена в официальной документации SkyPilot.

Выполнив эти действия, пользователи смогут быстро приступить к работе со SkyPilot и эффективно выполнять задачи искусственного интеллекта и пакетные задачи.

© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...