Ultralytics YOLO27:
Get Started

Ultralytics YOLOv5 🚀 na instância AWS Deep Learning: o teu guia completo#

Configurar um ambiente de aprendizagem profunda de alto desempenho pode parecer complicado, especialmente para quem está a começar. Mas não te preocupes! 🛠️ Este guia apresenta instruções passo a passo para pôr o Ultralytics YOLOv5 a funcionar numa instância AWS Deep Learning. Ao tirar partido do poder dos Amazon Web Services (AWS), até quem está a começar na aprendizagem automática (ML) pode dar os primeiros passos rapidamente e a baixo custo. A escalabilidade da plataforma AWS torna-a ideal tanto para experimentação como para a implementação em produção.

Outras opções para começares rapidamente com o YOLOv5 incluem o nosso Google Colab Notebook Open In Colab, os ambientes Kaggle Open In Kaggle, a GCP Deep Learning VM e a nossa imagem Docker pré-compilada disponível no Docker Hub Docker Pulls.

Etapa 1: iniciar sessão na consola AWS#

Começa por criar uma conta ou iniciar sessão na consola de gestão da AWS. Depois de iniciares sessão, acede ao painel do serviço EC2, onde podes gerir os teus servidores virtuais (instâncias).

Página de início de sessão da consola de gestão da AWS

Etapa 2: iniciar a 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.

Botão Launch Instance

Selecionar a imagem de máquina Amazon (AMI) certa#

É essencial escolher a AMI correta. Esta determina o sistema operativo e o software pré-instalado na tua instância. Na barra de pesquisa, escreve 'aprendizagem profunda' e seleciona a AMI Deep Learning mais recente baseada no Ubuntu (a menos que tenhas requisitos específicos para outro sistema operativo). As AMIs Deep Learning da Amazon já vêm configuradas com frameworks populares de aprendizagem profunda (como o PyTorch, utilizado pelo YOLOv5) e os controladores de GPU necessários, o que simplifica bastante o processo de configuração.

Seleção de uma AMI Deep Learning do AWS EC2

Escolher um tipo de instância#

Para tarefas exigentes, como treinar modelos de aprendizagem profunda, é altamente recomendável selecionar um tipo de instância acelerada por GPU. As GPUs podem reduzir drasticamente o tempo necessário para treinar modelos em comparação com as CPUs. Ao escolher o tamanho da instância, certifica-te de que a capacidade de memória (RAM) é suficiente para o teu modelo e conjunto de dados.

Nota: O tamanho do modelo e do conjunto de dados são fatores determinantes. Se a tua tarefa de AA 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.

Consulta os tipos de instância GPU disponíveis na página de tipos de instância EC2, especialmente na categoria Accelerated Computing.

Seleção de um tipo de instância GPU do AWS EC2

Para obteres informações detalhadas sobre a monitorização e a otimização do uso de GPU, consulta o guia da AWS sobre monitorização e otimização de GPU. Compara os custos com os preços sob demanda e explora possíveis poupanças com os preços de instâncias Spot.

Configurar a instância#

Considera usar instâncias Spot do Amazon EC2 para reduzir os custos. As instâncias Spot permitem usar a capacidade EC2 não utilizada, muitas vezes com um desconto significativo em comparação com os preços sob demanda. Para que o treino possa recuperar de uma interrupção, escolhe um pedido persistente e define o comportamento em caso de interrupção como parar, em vez de terminar, para manter o volume EBS e os resultados do treino e reiniciar a instância quando a capacidade voltar a estar disponível.

Configuração de pedido Spot

Continua pelas restantes opções de inicialização 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 definições antes de clicares em Launch. Também terás de criar ou selecionar um par de chaves existente para acederes em segurança por SSH.

Etapa 3: ligar-te à instância#

Quando o estado da instância indicar 'running', seleciona-a no painel do EC2. Clica no botão Connect para veres as opções de ligação. Usa no terminal local o exemplo de comando SSH fornecido (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 a inicialização.

Opções de ligação SSH à instância AWS EC2

Etapa 4: executar o Ultralytics YOLOv5#

Agora que estás ligado por 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 com pip. Recomendamos usar um ambiente Python 3.8 ou posterior. Os modelos e conjuntos de dados necessários serão transferidos automaticamente 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.txt

Com 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 640

Consulta os tutoriais Treinar com dados personalizados e Exportar modelos para obteres instruções detalhadas.

Extras opcionais: aumentar a memória swap#

Se estiveres a trabalhar com conjuntos de dados muito grandes ou tiveres limitações de memória durante o treino, aumentar a memória swap da 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 -h

Parabéns! 🎉 Configuraste uma instância AWS Deep Learning e instalaste o Ultralytics YOLOv5 com sucesso; agora 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 oferece uma base escalável para os teus projetos de visão computacional. Se tiveres algum problema, consulta a extensa documentação da AWS e recursos úteis da comunidade Ultralytics, como as perguntas frequentes. Boa deteção!

Perguntas frequentes#

  • Escolhe a AMI AWS Deep Learning mais recente baseada no Ubuntu. Inclui controladores NVIDIA, CUDA e PyTorch pré-instalados, pelo que só tens de clonar o repositório e instalar requirements.txt.

  • Qualquer instância GPU da família Accelerated Computing funciona, por exemplo, as instâncias g4dn, g5 ou p3. Escolhe memória GPU suficiente para o tamanho do lote e das imagens e usa --batch-size -1 para o YOLOv5 selecionar o maior lote que couber.

  • Usa scp com a tua chave .pem para transferências pequenas, ou coloca os dados no Amazon S3 e copia-os com aws s3 sync. Os resultados do treino ficam em runs/train/, e os pesos em runs/train/exp/weights/.

  • Usa um pedido Spot persistente com o comportamento em caso de interrupção definido como parar, para manter o volume EBS. Depois, retoma a execução a partir do último checkpoint com python train.py --resume quando a instância reiniciar. Copia periodicamente last.pt e best.pt para o S3 se não puderes perder o progresso.

Comentários