Ultralytics YOLOv5 🚀 na Instância de Deep Learning da AWS: Seu Guia Completo
Configurar um ambiente de aprendizado profundo de alto desempenho pode parecer assustador, especialmente para os recém-chegados. Mas não tema! 🛠️ Este guia fornece um passo a passo para colocar o Ultralytics YOLOv5 em funcionamento em uma instância AWS Deep Learning. Ao aproveitar o poder da Amazon Web Services (AWS), mesmo aqueles que são novos em aprendizado de máquina (ML) podem começar de forma rápida e econômica. A escalabilidade da plataforma AWS a torna ideal tanto para experimentação quanto para implantação de produção.
Outras opções de início rápido para YOLOv5 incluem nosso Notebook do Google Colab , Ambientes Kaggle
, VM de Deep Learning do GCP, e nossa imagem Docker pré-construída disponível em Docker Hub
.
Passo 1: Login no Console da AWS
Comece por criar uma conta ou iniciar sessão na AWS Management Console. Depois de iniciar sessão, navegue até ao painel de controlo do serviço EC2, onde pode gerir os seus servidores virtuais (instâncias).
Passo 2: Inicie sua instância
No painel do EC2, clique no botão Launch Instance. Isso inicia o processo de criação de um novo servidor virtual adaptado às suas necessidades.
Selecionando a Imagem de Máquina da Amazon (AMI) Correta
Escolher a AMI correta é crucial. Isso determina o sistema operacional e o software pré-instalado para sua instância. Na barra de pesquisa, digite 'Deep Learning' e selecione a AMI de Deep Learning mais recente baseada no Ubuntu (a menos que você tenha requisitos específicos para um sistema operacional diferente). As AMIs de Deep Learning da Amazon vêm pré-configuradas com estruturas de deep learning populares (como PyTorch, usado pelo YOLOv5) e drivers de GPU necessários, simplificando significativamente o processo de configuração.
Escolhendo um Tipo de Instância
Para tarefas exigentes como o treinamento de modelos de deep learning, é altamente recomendável selecionar um tipo de instância acelerada por GPU. As GPUs podem reduzir drasticamente o tempo necessário para o treinamento do modelo em comparação com as CPUs. Ao escolher o tamanho da instância, certifique-se de que sua capacidade de memória (RAM) seja suficiente para o seu modelo e conjunto de dados.
Nota: O tamanho do seu modelo e conjunto de dados são fatores críticos. Se sua tarefa de ML exigir mais memória do que a instância selecionada fornece, você precisará escolher um tipo de instância maior para evitar problemas de desempenho ou erros.
Explore os tipos de instância GPU disponíveis na página de tipos de instância EC2, particularmente na categoria Computação Acelerada.
Para obter informações detalhadas sobre como monitorar e otimizar o uso da GPU, consulte o guia da AWS sobre Monitoramento e Otimização de GPU. Compare os custos usando os Preços sob Demanda e explore possíveis economias com os Preços de Instâncias Spot.
Configurando a Sua Instância
Considere usar as Instâncias Spot do Amazon EC2 para uma abordagem mais econômica. As Instâncias Spot permitem que você faça lances na capacidade não utilizada do EC2, geralmente com um desconto significativo em comparação com os preços sob demanda. Para tarefas que exigem persistência (salvar dados, mesmo que a Instância Spot seja interrompida), escolha uma solicitação persistente. Isso garante que seu volume de armazenamento persista.
Avance pelas Etapas 4 a 7 do assistente de lançamento da instância para configurar o armazenamento, adicionar tags, configurar grupos de segurança (garanta que a porta SSH 22 esteja aberta a partir do seu IP) e revise suas configurações antes de clicar em Launch. Você também precisará criar ou selecionar um par de chaves existente para acesso SSH seguro.
Passo 3: Conecte-se à sua instância
Depois que o estado da sua instância mostrar 'em execução', selecione-a no painel do EC2. Clique no Conectar botão para visualizar as opções de conexão. Use o exemplo de comando SSH fornecido em seu terminal local (como Terminal no macOS/Linux ou PuTTY/WSL no Windows) para estabelecer uma conexão segura. Você precisará do arquivo de chave privada (.pem
) que você criou ou selecionou durante a inicialização.
Passo 4: Executando Ultralytics YOLOv5
Agora que está ligado via SSH, pode configurar e executar o YOLOv5. Primeiro, clone o repositório oficial YOLOv5 de GitHub e navegue para o diretório. Em seguida, instale as dependências necessárias usando pip
. Recomenda-se usar um Python Ambiente 3.8 ou posterior. Os modelos e conjuntos de dados necessários serão baixados automaticamente do mais recente YOLOv5 lançamento quando você executa comandos como treinamento ou detecção.
# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5
cd yolov5
# Install required packages
pip install -r requirements.txt
Com o ambiente pronto, você pode começar a usar o YOLOv5 para várias tarefas:
# Train a YOLOv5 model on a custom dataset (e.g., coco128.yaml)
python train.py --data coco128.yaml --weights yolov5s.pt --img 640
# Validate the performance (Precision, Recall, mAP) of a trained model (e.g., yolov5s.pt)
python val.py --weights yolov5s.pt --data coco128.yaml --img 640
# Run inference (object detection) on images or videos using a trained model
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos/ --img 640
# Export the trained model to various formats like ONNX, CoreML, TFLite for deployment
# See https://docs.ultralytics.com/modes/export/ for more details
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640
Consulte a documentação Ultralytics para obter guias detalhados sobre Treino, Validação, Previsão (Inferência) e Exportação.
Extras Opcionais: Aumentando a Memória Swap
Se você estiver trabalhando com conjuntos de dados muito grandes ou encontrar limitações de memória durante o treinamento, aumentar a memória swap em sua instância pode ajudar. O espaço de swap permite que o sistema use espaço em disco como RAM virtual.
# Allocate a 64GB swap file (adjust size as needed)
sudo fallocate -l 64G /swapfile
# Set correct permissions
sudo chmod 600 /swapfile
# Set up the file as a Linux swap area
sudo mkswap /swapfile
# Enable the swap file
sudo swapon /swapfile
# Verify the swap memory is active
free -h
Parabéns! 🎉 Você configurou com sucesso uma instância AWS Deep Learning, instalou o Ultralytics YOLOv5 e está pronto para executar tarefas de detecção de objetos. Seja experimentando com modelos pré-treinados ou treinando em seus próprios dados, esta poderosa configuração fornece uma base escalável para seus projetos de visão computacional. Caso encontre algum problema, consulte a extensa documentação da AWS e os recursos úteis da comunidade Ultralytics, como o FAQ. Boa detecção!