Ultralytics YOLOv5 🚀 numa instância de Deep Learning da AWS: o teu guia completo#
Configurar um ambiente de aprendizagem profunda de alto desempenho pode parecer assustador, especialmente para quem está a começar. Mas não te preocupes! 🛠️ Este guia apresenta um passo a passo para colocar o Ultralytics YOLOv5 a funcionar numa instância de Deep Learning da AWS. Ao tirar partido do poder da Amazon Web Services (AWS), até quem é novo em aprendizagem automática (ML) pode começar rapidamente e com custos reduzidos. A escalabilidade da plataforma AWS torna-a ideal tanto para experimentação como para implementação em produção.
Outras opções de início rápido para YOLOv5 incluem o nosso Google Colab Notebook , ambientes Kaggle
, GCP Deep Learning VM e a nossa imagem Docker pré-criada, disponível no Docker Hub
.
Passo 1: Iniciar sessão na consola da AWS#
Começa por criar uma conta ou iniciar sessão na AWS Management Console. Depois de iniciares sessão, acede ao painel do serviço EC2, onde podes gerir os teus servidores virtuais (instâncias).

Passo 2: Iniciar a tua instância#
No painel do EC2, clica no botão Launch Instance. Isto inicia o processo de criação de um novo servidor virtual adaptado às tuas necessidades.

Selecionar a imagem de máquina da Amazon (AMI) adequada#
Escolher a AMI correta é crucial. Ela determina o sistema operativo e o software pré-instalado da tua instância. Na barra de pesquisa, escreve 'Deep Learning' e seleciona a AMI de Deep Learning mais recente baseada em Ubuntu (a menos que tenhas requisitos específicos para outro sistema operativo). As AMIs de Deep Learning da Amazon vêm pré-configuradas com frameworks populares de aprendizagem profunda (como o PyTorch, usado pelo YOLOv5) e os controladores de GPU necessários, simplificando significativamente o processo de configuração.

Escolher um tipo de instância#
Para tarefas exigentes, como treinar modelos de aprendizagem profunda, é altamente recomendável selecionar um tipo de instância acelerado por GPU. As GPU podem reduzir drasticamente o tempo necessário para treinar modelos em comparação com as CPU. Ao escolher o tamanho da instância, certifica-te de que a sua capacidade de memória (RAM) é suficiente para o teu modelo e conjunto de dados.
Nota: O tamanho do teu modelo e do conjunto de dados são fatores críticos. Se a tua tarefa de ML exigir mais memória do que a instância selecionada disponibiliza, terás de escolher um tipo de instância maior para evitar problemas de desempenho ou erros.
Explora os tipos de instância com GPU disponíveis na página EC2 Instance Types, especialmente na categoria Accelerated Computing.

Para obter informações detalhadas sobre a monitorização e otimização do uso de GPU, consulta o guia da AWS sobre GPU Monitoring and Optimization. Compara os custos usando On-Demand Pricing e explora possíveis poupanças com Spot Instance Pricing.
Configurar a tua instância#
Considera usar Instâncias Spot do Amazon EC2 para uma abordagem mais econômica. As instâncias Spot permitem licitar capacidade ociosa do EC2, frequentemente com um desconto significativo em relação aos preços sob demanda. Para treinamentos que precisam sobreviver a uma interrupção, escolhe um pedido persistente e define o comportamento de interrupção como parar em vez de terminar, para que o volume EBS e as saídas do treinamento sejam mantidos e a instância seja reiniciada quando a capacidade retornar.

Avança pelos passos 4-7 do assistente de início da instância para configurar o armazenamento, adicionar etiquetas, configurar grupos de segurança (certifica-te de que a porta SSH 22 está aberta a partir do teu IP) e rever as tuas definições antes de clicares em Launch. Também terás de criar ou selecionar um par de chaves existente para acesso SSH seguro.
Passo 3: Ligar à tua instância#
Quando o estado da tua instância aparecer como 'running', seleciona-a no painel do EC2. Clica no botão Connect para veres as opções de ligação. Usa o exemplo de comando SSH fornecido no teu terminal local (como o Terminal no macOS/Linux ou PuTTY/WSL no Windows) para estabelecer uma ligação segura. Precisarás do ficheiro de chave privada (.pem) que criaste ou selecionaste durante o início da instância.

Passo 4: Executar o Ultralytics YOLOv5#
Agora que estás ligado através de SSH, podes configurar e executar o YOLOv5. Primeiro, clona o repositório oficial do YOLOv5 a partir do GitHub e acede ao diretório. Em seguida, instala as dependências necessárias usando pip. Recomenda-se usar um ambiente Python 3.8 ou posterior. Os modelos e conjuntos de dados necessários serão descarregados automaticamente a partir da versão mais recente do YOLOv5 quando executares comandos de treino ou deteção.
# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5
cd yolov5
# Install required packages
pip install -r requirements.txtCom o ambiente pronto, podes 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
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640Consulta os tutoriais Treinar Dados Personalizados e Exportação de Modelos para obter guias detalhados.
Extras opcionais: aumentar a memória swap#
Se estiveres a trabalhar com conjuntos de dados muito grandes ou encontrares limitações de memória durante o treino, aumentar a memória swap da tua instância pode ajudar. O espaço 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 -hParabéns! 🎉 Configuraste com sucesso uma instância de Deep Learning da AWS, instalaste o Ultralytics YOLOv5 e estás pronto para realizar tarefas de deteção de objetos. Quer estejas a experimentar modelos pré-treinados ou a treinar com os teus próprios dados, esta configuração poderosa proporciona uma base escalável para os teus projetos de visão computacional. Se encontrares algum problema, consulta a extensa documentação da AWS e os recursos úteis da comunidade Ultralytics, como as FAQ. Boas deteções!
Perguntas frequentes#
Escolhe a AMI de Deep Learning da AWS baseada no Ubuntu mais recente. Ela vem com drivers NVIDIA, CUDA e PyTorch pré-instalados, portanto, a única configuração restante é clonar o repositório e instalar
requirements.txt.Qualquer instância de GPU da família Accelerated Computing funciona, por exemplo, instâncias
g4dn,g5oup3. Escolhe memória de GPU suficiente para o teu tamanho de lote e tamanho de imagem, e usa--batch-size -1para permitir que o YOLOv5 escolha o maior lote que couber.Usa
scpcom a tua chave.pempara pequenas transferências, ou armazena os dados no Amazon S3 e copia-os comaws s3 sync. As saídas do treinamento vão pararuns/train/e os pesos ficam emruns/train/exp/weights/.Usa uma solicitação Spot persistente com o comportamento de interrupção definido como parar para que o volume EBS seja mantido, depois retoma a execução a partir do último ponto de verificação com
python train.py --resumeassim que a instância for reiniciada. Copialast.ptebest.ptpara o S3 periodicamente se não puderes perder o progresso.