Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
IA visual

O que é a otimização de modelos? Um guia rápido

Descobre como técnicas de otimização de modelos, como o ajuste de hiperparâmetros, a poda e a quantização, podem ajudar os modelos de visão computacional a funcionar de forma mais eficiente.

Abirami VinaAbirami Vina10 min de leitura
Técnicas de otimização de modelos para visão computacional

A otimização de modelos é um processo que busca melhorar a eficiência e o desempenho de modelos de aprendizado de máquina. Ao refinar a estrutura e o funcionamento de um modelo, a otimização permite que ele gere resultados melhores com o mínimo de recursos computacionais e menos tempo de treinamento e avaliação.

Esse processo é especialmente importante em áreas como a visão computacional, nas quais os modelos muitas vezes exigem recursos consideráveis para analisar imagens complexas. Em ambientes com recursos limitados, como dispositivos móveis ou sistemas de borda, modelos otimizados podem funcionar bem com recursos escassos e continuar sendo precisos.

Várias técnicas são comumente usadas para otimizar modelos, incluindo ajuste de hiperparâmetros, poda de modelos, quantização de modelos e precisão mista. Neste artigo, vamos explorar essas técnicas e os benefícios que elas trazem para aplicações de visão computacional.

Compreender a otimização de modelos#

Os modelos de visão computacional geralmente têm camadas profundas e estruturas complexas, ideais para reconhecer padrões intrincados em imagens, mas também podem exigir bastante poder de processamento. Quando esses modelos são implantados em dispositivos com hardware limitado, como celulares ou dispositivos de borda, podem enfrentar alguns desafios ou limitações.

O poder de processamento, a memória e a energia limitados desses dispositivos podem causar quedas perceptíveis no desempenho, pois os modelos têm dificuldade para acompanhar a demanda. As técnicas de otimização de modelos são essenciais para lidar com esses problemas. Elas ajudam a simplificar o modelo, reduzir suas necessidades computacionais e garantir que ele continue funcionando de forma eficaz, mesmo com recursos limitados. É possível otimizar um modelo simplificando sua arquitetura, reduzindo a precisão numérica dos cálculos ou removendo componentes desnecessários para deixá-lo mais leve e rápido.

Diagrama dos motivos para otimizar os teus modelos

Fig. 1. Motivos para otimizar os teus modelos. Imagem do autor.

Estas são algumas das técnicas mais comuns de otimização de modelos, que exploraremos em mais detalhes nas próximas seções:

  • Ajuste de hiperparâmetros: Consiste em ajustar sistematicamente hiperparâmetros, como a taxa de aprendizagem e o tamanho do lote, para melhorar o desempenho do modelo.
  • Poda de modelos: Esta técnica remove pesos e ligações desnecessários da rede neural, reduzindo a sua complexidade e o custo computacional.
  • Quantização de modelos: a quantização reduz a precisão dos pesos e das ativações do modelo, normalmente de 32 bits para 16 ou 8 bits, diminuindo significativamente o uso de memória e os requisitos computacionais.
  • Ajustes de precisão: Também conhecida como treino com precisão mista, esta técnica utiliza diferentes formatos de precisão em diferentes partes do modelo, otimizando a utilização de recursos sem comprometer a precisão.

Explicação dos hiperparâmetros nos modelos de aprendizagem automática#

Você pode ajudar um modelo a aprender e ter um desempenho melhor ajustando seus hiperparâmetros — configurações que determinam como o modelo aprende com os dados. O ajuste de hiperparâmetros é uma técnica para otimizar essas configurações e melhorar a eficiência e a precisão do modelo. Ao contrário dos parâmetros que o modelo aprende durante o treinamento, os hiperparâmetros são valores predefinidos que orientam o processo de treinamento.

Vejamos alguns exemplos de hiperparâmetros que podem ser ajustados:

  • Taxa de aprendizagem: Este parâmetro controla o tamanho do passo que o modelo dá para ajustar os seus pesos internos. Uma taxa de aprendizagem mais elevada pode acelerar a aprendizagem, mas corre o risco de não encontrar a solução ideal. Uma taxa mais baixa pode ser mais precisa, mas também mais lenta.
  • Tamanho do lote: Define quantas amostras de dados são processadas em cada etapa do treino. Lotes maiores proporcionam uma aprendizagem mais estável, mas precisam de mais memória. Lotes menores treinam mais depressa, mas podem ser menos estáveis.
  • Épocas: esse parâmetro permite definir quantas vezes o modelo verá o conjunto de dados completo. Mais épocas podem melhorar a precisão, mas também aumentam o risco de sobreajuste.
  • Tamanho do kernel: define o tamanho do filtro em redes neurais convolucionais (CNNs). Kernels maiores capturam padrões mais amplos, mas exigem mais processamento; kernels menores se concentram em detalhes mais sutis.

Como funciona o ajuste de hiperparâmetros#

O ajuste de hiperparâmetros geralmente começa com a definição de um intervalo de valores possíveis para cada hiperparâmetro. Em seguida, um algoritmo de busca explora diferentes combinações desses intervalos para identificar as configurações que oferecem o melhor desempenho.

Os métodos comuns de ajuste incluem busca em grade, busca aleatória e otimização bayesiana. A busca em grade testa todas as combinações possíveis de valores nos intervalos especificados. A busca aleatória seleciona combinações ao acaso e, muitas vezes, encontra configurações eficazes mais rapidamente. A otimização bayesiana usa um modelo probabilístico para prever valores promissores de hiperparâmetros com base nos resultados anteriores. Essa abordagem normalmente reduz o número de tentativas necessárias.

Por fim, o desempenho do modelo é avaliado para cada combinação de hiperparâmetros. O processo se repete até que os resultados desejados sejam alcançados.

Hiperparâmetros vs. parâmetros do modelo#

Ao trabalhar no ajuste de hiperparâmetros, podes perguntar-te qual é a diferença entre hiperparâmetros e parâmetros do modelo.

Hiperparâmetros são valores definidos antes do treinamento que controlam como o modelo aprende, como a taxa de aprendizado ou o tamanho do lote. Essas configurações permanecem fixas durante o treinamento e influenciam diretamente o processo de aprendizado. Já os parâmetros do modelo são aprendidos pelo próprio modelo durante o treinamento. Eles incluem pesos e vieses, que se ajustam à medida que o modelo treina e, por fim, orientam suas previsões. Em essência, os hiperparâmetros moldam o percurso de aprendizado, enquanto os parâmetros do modelo são os resultados desse processo.

Comparação entre parâmetros e hiperparâmetros

Fig. 2. Comparação entre parâmetros e hiperparâmetros.

Porque é importante podar modelos em aprendizagem profunda#

A poda de modelos é uma técnica de redução de tamanho que remove pesos e parâmetros desnecessários de um modelo, tornando-o mais eficiente. Na visão computacional, especialmente em redes neurais profundas, um grande número de parâmetros, como pesos e ativações (saídas intermediárias que ajudam a calcular a saída final), pode aumentar a complexidade e as exigências computacionais. A poda simplifica o modelo ao identificar e remover parâmetros que contribuem pouco para o desempenho, resultando em um modelo mais leve e eficiente.

Rede neural antes e depois da poda do modelo

Fig. 3. Antes e depois da poda do modelo.

Depois do treino do modelo, técnicas como a poda baseada na magnitude ou a análise de sensibilidade podem avaliar a importância de cada parâmetro. Em seguida, os parâmetros de baixa importância são podados através de uma de três técnicas principais: poda de pesos, poda de neurónios ou poda estruturada.

A poda de pesos remove conexões individuais que têm impacto mínimo na saída. A poda de neurônios remove neurônios inteiros cujas saídas contribuem pouco para o funcionamento do modelo. A poda estruturada elimina partes maiores, como filtros convolucionais ou neurônios em camadas totalmente conectadas, otimizando a eficiência do modelo. Após a poda, o modelo é treinado novamente para ajustar os parâmetros restantes e garantir que mantenha alta precisão em uma forma reduzida.

Reduzir a latência dos modelos de IA com quantização#

A quantização de modelos reduz o número de bits usados para representar os pesos e as ativações de um modelo. Normalmente, ela converte valores de ponto flutuante de 32 bits e alta precisão para formatos de menor precisão, como pontos flutuantes de 16 bits ou números inteiros de 8 bits. Ao reduzir a precisão em bits, a quantização diminui significativamente o tamanho do modelo, o uso de memória e o custo computacional.

Na visão computacional, os valores de ponto flutuante de 32 bits são padrão, mas a conversão para 16 ou 8 bits pode melhorar a eficiência. Existem dois tipos principais de quantização: a quantização de pesos e a quantização de ativações. A quantização de pesos reduz a precisão dos pesos do modelo, equilibrando a redução de tamanho com a precisão. A quantização de ativações reduz a precisão das ativações, diminuindo ainda mais as exigências de memória e processamento.

Quantização de ponto flutuante de 32 bits para inteiro de 8 bits

Fig. 4 Um exemplo de quantização de ponto flutuante de 32 bits para inteiro de 8 bits.

Como a precisão mista acelera as inferências de IA#

A precisão mista é uma técnica que usa diferentes precisões numéricas em várias partes de uma rede neural. Ao combinar valores de maior precisão, como pontos flutuantes de 32 bits, com valores de menor precisão, como pontos flutuantes de 16 ou 8 bits, a precisão mista permite acelerar o treinamento de modelos de visão computacional e reduzir o uso de memória sem sacrificar a precisão.

Durante o treinamento, a precisão mista é obtida usando uma precisão menor em camadas específicas e mantendo uma precisão maior onde necessário na rede. Isso é feito por meio de conversão de tipos e escalonamento da perda. A conversão altera os tipos de dados entre diferentes precisões conforme exigido pelo modelo. O escalonamento da perda ajusta a precisão reduzida para evitar o subfluxo numérico e garantir um treinamento estável. A precisão mista é especialmente útil para modelos grandes e tamanhos de lote grandes.

Treinamento com precisão mista usando tipos de ponto flutuante FP16 e FP32

Fig. 5 O treinamento com precisão mista usa tipos de ponto flutuante de 16 bits (FP16) e 32 bits (FP32).

Equilíbrio entre precisão e eficiência do modelo#

Agora que abordamos várias técnicas de otimização de modelos, vamos falar sobre como decidir qual usar de acordo com as suas necessidades específicas. A escolha depende de fatores como o hardware disponível, as limitações computacionais e de memória do ambiente de implantação e o nível de precisão necessário.

Por exemplo, modelos menores e mais rápidos são mais adequados para dispositivos móveis com recursos limitados, enquanto modelos maiores e mais precisos podem ser usados em sistemas de alto desempenho. Veja como cada técnica se alinha a diferentes objetivos:

  • Poda: É ideal para reduzir o tamanho do modelo sem afetar significativamente a precisão, sendo perfeita para dispositivos com recursos limitados, como celulares ou dispositivos da Internet das Coisas (IoT).
  • Quantização: uma ótima opção para reduzir o tamanho do modelo e acelerar a inferência, especialmente em dispositivos móveis e sistemas embarcados com memória e poder de processamento limitados. Funciona bem em aplicações nas quais pequenas reduções de precisão são aceitáveis.
  • Precisão mista: desenvolvida para modelos de grande escala, essa técnica reduz o uso de memória e acelera o treinamento em hardwares como GPUs e TPUs que oferecem suporte a operações de precisão mista. É frequentemente usada em tarefas de alto desempenho nas quais a eficiência é importante.
  • Ajuste de hiperparâmetros: embora exija muitos recursos computacionais, é essencial para aplicações que precisam de alta precisão, como imagens médicas ou direção autônoma.

Principais conclusões#

A otimização de modelos é uma parte essencial do aprendizado de máquina, especialmente para implantar IA em aplicações do mundo real. Técnicas como ajuste de hiperparâmetros, poda de modelos, quantização e precisão mista ajudam a melhorar o desempenho, a eficiência e o uso de recursos dos modelos de visão computacional. Essas otimizações tornam os modelos mais rápidos e menos exigentes em recursos, o que é ideal para dispositivos com memória e capacidade de processamento limitadas. Modelos otimizados também são mais fáceis de dimensionar e implantar em diferentes plataformas, permitindo soluções de IA eficazes e adaptáveis a uma ampla variedade de usos.

Visite o repositório do GitHub da Ultralytics e participe da nossa comunidade para saber mais sobre aplicações de IA na indústria e na agricultura.

Escrito por

Abirami Vina
Abirami Vina

Criador de conteúdo · Ultralytics

Ao iniciar a carreira como engenheira de visão computacional, Abirami Vina construiu uma base sólida em IA de visão e machine learning. Ela é criadora de conteúdo da Ultralytics e fundadora e redatora-chefe da Scribe of AI, onde produz conteúdo técnico de alta qualidade para empresas focadas em IA. Movida pela paixão por tornar a IA compreensível e envolvente, seu trabalho aproxima a tecnologia de ponta do impacto no mundo real.

Comentários

Faça uma pergunta, compartilhe seus resultados ou ajude alguém.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina