SkyPilot: un marco de código abierto para ejecutar eficazmente tareas de IA y por lotes en cualquier nube
Últimos recursos sobre IAActualizado hace 6 meses Círculo de intercambio de inteligencia artificial 1.3K 00
Introducción general
SkyPilot es un marco de código abierto iniciado por el Sky Computing Lab de la Universidad de California en Berkeley, diseñado para ayudar a los usuarios a ejecutar eficientemente tareas de IA y procesamiento por lotes en cualquier infraestructura en la nube. Compatible con más de 14 servicios en la nube (incluidos AWS, GCP, Azure, etc.) y Kubernetes, SkyPilot proporciona una interfaz de ejecución unificada, un importante ahorro de costes y una alta disponibilidad de GPU, y se configura a través de una sencilla API YAML o Python que permite a los usuarios desplegar tareas en la nube sin modificar el código, seleccionando automáticamente los recursos óptimos y habilitando la tolerancia a fallos. SkyPilot permite a los usuarios desplegar tareas en la nube sin modificar el código, seleccionando automáticamente los recursos óptimos y permitiendo la tolerancia a fallos. Desde su lanzamiento en 2022, el proyecto ha atraído más de un millón de descargas y más de 7.000 estrellas en GitHub, y se utiliza ampliamente en el entrenamiento de modelos de aprendizaje automático, el ajuste de hiperparámetros y la bioinformática.

Lista de funciones
- Despliegue de misiones en varias nubesAdmite la ejecución de tareas en más de 14 nubes, como AWS, GCP, Azure y Kubernetes, lo que evita la dependencia de un único proveedor de nubes.
- Optimización de costes: Selecciona automáticamente la región o instancia de nube más barata (por ejemplo, instancias bajo demanda o Spot), consiguiendo un ahorro de costes de hasta 3-6,5 veces.
- Soporte GPU/TPUProgramación y gestión de recursos de GPU (por ejemplo, NVIDIA A100) y TPU para mejorar la eficiencia de cálculo.
- Recuperación automática de fallosEl sistema: cambia automáticamente a otras nubes o regiones cuando se encuentra con una capacidad insuficiente o con prioridad, lo que garantiza que las tareas no se interrumpan.
- Sincronización de códigos y datosSincronización automática del código y los datos locales con el clúster en la nube para simplificar el proceso de implantación.
- Gestión de colas de tareasSoporta tareas masivamente concurrentes (por ejemplo, más de 2000 trabajos) para escenarios como el ajuste de hiperparámetros.
- Despliegue de servicios (SkyServe): Proporciona compatibilidad con HTTPS y políticas de equilibrio de carga para facilitar el despliegue de los servicios del modelo AI.
- Soporte de instancias reservadasIntegre recursos locales como AWS Capacity Blocks, GCP Dynamic Workload Scheduler, etc.
Utilizar la ayuda
SkyPilot es fácil de instalar y utilizar para desarrolladores, investigadores y usuarios empresariales. A continuación se describe detalladamente cómo instalar, configurar y utilizar las principales funciones de SkyPilot.
Proceso de instalación
- Preparación medioambiental
Asegúrese de que Python 3.8 o posterior está instalado localmente y de que tiene el archivopip
Herramientas de gestión de paquetes. Se recomienda un entorno virtual para evitar conflictos de dependencias:python3 -m venv skypilot_env source skypilot_env/bin/activate
- Instalación de SkyPilot
aprobar (una factura o inspección, etc.)pip
Instale la última versión:pip install -U "skypilot[all]"
incluidos entre estos
[all]
Indica que se han instalado todas las dependencias compatibles con la nube. Si sólo se requiere una nube específica (por ejemplo, AWS), sustitúyala porskypilot[aws]
. - Autenticación en la nube
Configure las credenciales para la nube de destino. Tomemos AWS como ejemplo:- Instale la CLI de AWS:
pip install awscli
- Configure las credenciales:
aws configure
Introduzca la Clave de Acceso y la Clave Secreta.
Para otras nubes (por ejemplo, GCP, Azure), consulte la documentación oficial para completar una configuración similar.
- Instale la CLI de AWS:
- Verificar la instalación
Ejecute el siguiente comando para comprobar si la instalación se ha realizado correctamente:sky check
La salida muestra el estado de los servicios en la nube habilitados.
Funciones principales
1. Creación de perfiles de misión
SkyPilot utiliza archivos YAML para definir tareas. Para entrenar un modelo PyTorch, por ejemplo, cree un archivo 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
Especifica los recursos computacionales, como el tipo y número de GPUs.workdir
: Catálogo de códigos local con sincronización automática con la nube.setup
: Comandos de preparación antes de ejecutar.run
Mando de Ejecución de la Misión.
2. Puesta en marcha del mandato
Se ejecuta en el terminal:
sky launch -c my-cluster train.yaml
-c my-cluster
: Agrupaciones con nombre para facilitar la gestión posterior.- SkyPilot selecciona automáticamente el recurso en la nube óptimo e inicia la tarea.
3. Ver la situación del mandato
Compruebe el estado del clúster:
sky status
Muestra todos los clusters en ejecución y su uso de recursos.
4. Optimización de costes y ejemplos de Spot
Utilice instancias puntuales para reducir costes:
sky launch -c my-spot-cluster train.yaml --use-spot
SkyPilot gestiona automáticamente las interrupciones de las instancias de Spot y reanuda las tareas.
5. Servicios de despliegue (SkyServe)
Como ejemplo de despliegue de un modelo LLaMA, cree el modelo serve.yaml
::
resources:
accelerators: A100:1
service:
replica: 2 # 2 个副本
ports: 8080 # 服务端口
run: |
python serve.py --model llama
Inicie el servicio:
sky serve up serve.yaml -n llama-service
Acceda al endpoint HTTPS generado para utilizar el servicio.
6. Misiones concurrentes masivas
Ejecutar más de 2000 tareas (por ejemplo, ajuste de hiperparámetros):
sky jobs launch -c my-jobs train.yaml --num-jobs 2000
SkyPilot asigna automáticamente los recursos y gestiona las colas.
Funciones destacadas
Conmutación multicloud
Si AWS no tiene A100 disponible, especifique otra nube:
sky launch -c my-cluster train.yaml --cloud gcp
O deja que SkyPilot seleccione automáticamente la nube más barata:
sky launch -c my-cluster train.yaml --cloud cheapest
Programación de la GPU
Consulta los recursos de GPU disponibles:
sky show-gpus
Adaptado dinámicamente a la demanda resources
ha dado en el clavo accelerators
Parámetros.
Registro y depuración
Visualice los registros de tareas en tiempo real:
sky logs my-cluster
Activa el modo de depuración:
export SKYPILOT_DEBUG=1
sky launch -c my-cluster train.yaml
advertencia
- Seguridad de las credencialesAsegúrese de que el archivo de credenciales de la nube (p. ej.
~/.aws
) correctamente para evitar fugas. - Liberación de recursosApague manualmente el clúster una vez finalizada la tarea:
sky down my-cluster
- Soporte documentalPara un uso más avanzado, consulte la documentación oficial de SkyPilot.
Con estos pasos, los usuarios pueden empezar a utilizar SkyPilot rápidamente y ejecutar tareas de IA y por lotes de forma eficaz.
© declaración de copyright
文章版权归 Círculo de intercambio de inteligencia artificial 所有,未经允许请勿转载。
Artículos relacionados
Sin comentarios...