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

Список функций
- Развертывание миссий в нескольких облаках: Поддерживает выполнение задач в 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.
Процесс установки
- Подготовка к защите окружающей среды
Убедитесь, что Python 3.8 или более поздней версии установлен локально и что у вас естьpip
Инструменты управления пакетами. Во избежание конфликтов зависимостей рекомендуется использовать виртуальную среду:python3 -m venv skypilot_env source skypilot_env/bin/activate
- Установка SkyPilot
пройти (законопроект, проверку и т.д.)pip
Установите последнюю версию:pip install -U "skypilot[all]"
среди них
[all]
Указывает, что установлены все поддерживаемые облаком зависимости. Если требуется только определенное облако (например, AWS), замените наskypilot[aws]
. - Облачная аутентификация
Настройте учетные данные для целевого облака. В качестве примера возьмем AWS:- Установите AWS CLI:
pip install awscli
- Настройте учетные данные:
aws configure
Введите ключ доступа и секретный ключ.
Для других облаков (например, GCP, Azure) обратитесь к официальной документации, чтобы выполнить аналогичную настройку.
- Установите AWS CLI:
- Проверка установки
Выполните следующую команду, чтобы проверить, успешно ли прошла установка: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 и эффективно выполнять задачи искусственного интеллекта и пакетные задачи.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...