Aprendizagem pessoal com IA
e orientação prática
Beanbag Marscode1

SkyPilot: uma estrutura de código aberto para executar com eficiência tarefas de IA e em lote em qualquer nuvem

Introdução geral

O SkyPilot é uma estrutura de código aberto iniciada pelo Sky Computing Lab da Universidade da Califórnia, em Berkeley, projetada para ajudar os usuários a executar com eficiência tarefas de IA e processamento em lote em qualquer infraestrutura de nuvem. Compatível com mais de 14 serviços de nuvem (incluindo AWS, GCP, Azure etc.) e Kubernetes, o SkyPilot oferece uma interface de execução unificada, economia significativa de custos e alta disponibilidade de GPU, além de ser configurado por meio de uma API YAML ou Python simples que permite aos usuários implantar tarefas na nuvem sem modificar o código, selecionando automaticamente os recursos ideais e permitindo a tolerância a falhas. O SkyPilot permite que os usuários implementem tarefas na nuvem sem modificar o código, selecionando automaticamente os recursos ideais e permitindo a tolerância a falhas. Desde seu lançamento em 2022, o projeto atraiu mais de 1 milhão de downloads e mais de 7 mil estrelas no GitHub, e é amplamente utilizado no treinamento de modelos de aprendizado de máquina, ajuste de hiperparâmetros e bioinformática.

SkyPilot: uma estrutura de código aberto para executar com eficiência tarefas de IA e em lote em qualquer nuvem-1


 

Lista de funções

  • Implementação de missões em várias nuvensSuporta a execução de tarefas em mais de 14 nuvens, como AWS, GCP, Azure e Kubernetes, evitando a dependência de um único fornecedor de nuvem.
  • Otimização de custosSelecione automaticamente a região ou instância de nuvem mais barata (por exemplo, instâncias sob demanda ou Spot), obtendo economias de custo de até 3 a 6,5 vezes.
  • Suporte a GPU/TPUGPU: programa e gerencia perfeitamente os recursos de GPU (por exemplo, NVIDIA A100) e TPU para melhorar a eficiência da computação.
  • Recuperação automática de falhasMudança automática para outras nuvens ou regiões quando a capacidade é insuficiente ou quando há preempção, garantindo que as tarefas não sejam interrompidas.
  • Sincronização de código e dadosSincronização automática do código e dos dados locais com o cluster de nuvem para simplificar o processo de implementação.
  • Gerenciamento de filas de tarefasSuporte a tarefas maciçamente simultâneas (por exemplo, mais de 2.000 trabalhos) para cenários como o ajuste de hiperparâmetros.
  • Implementação de serviços (SkyServe)Suporte a HTTPS e políticas de balanceamento de carga para facilitar a implementação de serviços de modelo de IA.
  • Suporte a instâncias reservadasIntegração de recursos no local, como blocos de capacidade do AWS, agendador de carga de trabalho dinâmica do GCP e muito mais.

 

Usando a Ajuda

O SkyPilot é fácil de instalar e usar para desenvolvedores, pesquisadores e usuários corporativos. Veja abaixo uma descrição detalhada de como instalar, configurar e operar os principais recursos do SkyPilot.

Processo de instalação

  1. Preparação ambiental
    Certifique-se de que o Python 3.8 ou posterior esteja instalado localmente e que você tenha o pacote tubulação Ferramentas de gerenciamento de pacotes. Recomenda-se um ambiente virtual para evitar conflitos de dependência:

    python3 -m venv skypilot_env
    source skypilot_env/bin/activate
  1. Instalação do SkyPilot
    aprovar (um projeto de lei ou inspeção etc.) tubulação Instale a versão mais recente:

    pip install -U "skypilot[all]"
    

    Entre eles [todos] Indica que todas as dependências compatíveis com a nuvem estão instaladas. Se apenas uma nuvem específica (por exemplo, AWS) for necessária, substitua por skypilot[aws].

  2. Autenticação na nuvem
    Configure as credenciais para a nuvem de destino. Tome o AWS como exemplo:

    • Instale a CLI do AWS:pip install awscli
    • Configure as credenciais:aws configureDigite a chave de acesso e a chave secreta.
      Para outras nuvens (por exemplo, GCP, Azure), consulte a documentação oficial para concluir uma configuração semelhante.
  3. Verificar a instalação
    Execute o seguinte comando para verificar se a instalação foi bem-sucedida:

    verificação do céu
    

    A saída exibe o status dos serviços de nuvem habilitados.

Funções principais

1. criação de perfis de missão

O SkyPilot usa arquivos YAML para definir tarefas. Para treinar um modelo PyTorch, por exemplo, crie um arquivo train.yaml::

recursos: A100:1
aceleradores: A100:1 # usando 1 GPU A100
num_nodes: 1 # single node
workdir: ~/my_project # Sincronização do diretório local do projeto
setup: | # instalar dependências
pip install torch torchvision
run: | # executar tarefa
python main.py --epochs 10
  • recursosEspecifique os recursos computacionais, como o tipo e o número de GPUs.
  • diretório de trabalhoCatálogo de códigos local com sincronização automática com a nuvem.
  • configuraçãoComandos de preparação antes da execução.
  • executarComando de Execução da Missão: Comando de Execução da Missão.

2. lançamento do mandato

É executado no terminal:

sky launch -c my-cluster train.yaml
  • -c my-clusterClusters nomeados para facilitar o gerenciamento subsequente.
  • O SkyPilot seleciona automaticamente o recurso de nuvem ideal e inicia a tarefa.

3. visualizar o status do mandato

Verifique o status do cluster:

status do céu

Exibe todos os clusters em execução e o uso de seus recursos.

4. otimização de custos e exemplos pontuais

Use instâncias Spot para reduzir custos:

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

O SkyPilot gerencia automaticamente as interrupções de instâncias do Spot e retoma as tarefas.

5. serviços de implantação (SkyServe)

Como um exemplo de implementação de um modelo LLaMA, crie o modelo serve.yaml::

recursos.
aceleradores: A100:1
recursos: aceleradores: A100:1
réplica: 2 # 2 réplicas
portas: 8080 porta de serviço do #
executar: || executar: | executar
python serve.py --model llama

Inicie o serviço:

sky serve up serve.yaml -n llama-service

Acesse o ponto de extremidade HTTPS gerado para usar o serviço.

6. missões simultâneas em massa

Execute mais de 2000 tarefas (por exemplo, ajuste de hiperparâmetros):

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

O SkyPilot aloca automaticamente os recursos e gerencia as filas.

Funções em destaque

Comutação de várias nuvens

Se o AWS não tiver o A100 disponível, especifique outra nuvem:

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

Ou deixe o SkyPilot selecionar automaticamente a nuvem mais barata:

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

Programação de GPU

Veja os recursos de GPU disponíveis:

sky show-gpus

Ajustado dinamicamente à demanda recursos acertou em cheio aceleradores Parâmetros.

Registro e depuração

Visualize os registros de tarefas em tempo real:

registros do céu my-cluster

Ativar o modo de depuração:

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

advertência

  • Segurança de credenciaisVerifique se o arquivo de credenciais da nuvem (por exemplo ~/.aws) corretamente para evitar vazamentos.
  • Liberação de recursosDesligamento manual do cluster quando a tarefa estiver concluída:
    Sky down my-cluster
    
  • Suporte à documentaçãoPara uso mais avançado, consulte a documentação oficial do SkyPilot.

Com essas etapas, os usuários podem começar a usar o SkyPilot rapidamente e executar tarefas de IA e em lote com eficiência.

CDN1
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " SkyPilot: uma estrutura de código aberto para executar com eficiência tarefas de IA e em lote em qualquer nuvem

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil