Glossário

Poda

Optimiza os modelos de IA com poda - reduz a complexidade, aumenta a eficiência e implementa mais rapidamente em dispositivos edge sem sacrificar o desempenho.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

A poda, no contexto da inteligência artificial e da aprendizagem automática, refere-se a técnicas utilizadas para reduzir a complexidade de um modelo, removendo ligações ou parâmetros menos importantes. Este processo visa racionalizar o modelo, tornando-o mais eficiente em termos de computação e utilização de memória, sem sacrificar significativamente a sua precisão. A poda é particularmente valiosa quando se implementam modelos em dispositivos com recursos limitados ou quando se pretende acelerar as velocidades de inferência.

Importância da poda

A principal relevância da poda reside na otimização do modelo. À medida que os modelos de aprendizagem profunda aumentam de tamanho e complexidade para atingir uma maior precisão, tornam-se computacionalmente dispendiosos e consomem muita memória. Isto coloca desafios à implementação, especialmente em dispositivos de ponta como smartphones ou sistemas incorporados, que têm recursos limitados. A poda resolve este problema criando modelos mais pequenos e mais rápidos que são mais fáceis de implementar e requerem menos poder computacional, permitindo assim a inferência em tempo real em várias aplicações. É um passo crucial na otimização de modelos para a implementação de modelos, tornando a IA mais acessível e prática em diversas plataformas.

Aplicações da poda

As técnicas de poda são aplicadas em vários domínios da IA e da aprendizagem automática. Eis alguns exemplos concretos:

  • Visão computacional móvel: Considera Ultralytics YOLO modelos utilizados em aplicações móveis para tarefas como a deteção de objectos. A poda pode reduzir significativamente o tamanho desses modelos, permitindo que eles sejam executados com eficiência em smartphones sem esgotar a vida útil da bateria ou comprometer o desempenho. Isto é essencial para aplicações em tempo real, como sistemas de segurança móveis ou aplicações de realidade aumentada. Por exemplo, a implantação de um modelo YOLO podado em um Edge TPU no Raspberry Pi pode levar a velocidades de inferência aceleradas e menor consumo de energia.

  • Sistemas de condução autónoma: Nos carros de condução autónoma, a deteção rápida e precisa de objectos é fundamental. Os veículos autónomos dependem de modelos complexos para processar dados de sensores em tempo real. A poda desses modelos pode reduzir a latência da inferência, garantindo uma tomada de decisão mais rápida pelo sistema de IA do veículo. Isso é fundamental para a segurança e a capacidade de resposta em ambientes de condução dinâmicos. Os modelos optimizados através da poda também podem ser implementados utilizando TensorRT para acelerar ainda mais o desempenho em NVIDIA GPUs normalmente utilizadas em sistemas autónomos.

Tipos e técnicas

Existem diferentes abordagens para a poda, que se dividem, em termos gerais, em:

  • Poda de pesos: Remove pesos ou conexões individuais em uma rede neural que têm impacto mínimo na saída do modelo. Técnicas como a poda baseada em magnitude removem os pesos com os menores valores absolutos.
  • Poda de filtro: Esta abordagem mais estruturada remove filtros inteiros (e seus mapas de caraterísticas associados) das camadas convolucionais. A poda de filtros conduz frequentemente a uma redução mais significativa do tamanho do modelo e a um aumento da velocidade em comparação com a poda de pesos, uma vez que reduz diretamente o número de cálculos.

A poda também pode ser aplicada em diferentes fases do processo de desenvolvimento do modelo:

  • Poda de pré-treinamento: A poda é efectuada num modelo pré-treinado. Esta é uma abordagem comum, uma vez que os modelos pré-treinados têm frequentemente parâmetros redundantes.
  • Poda durante a formação: A poda é integrada no próprio processo de formação. Isto pode levar a um treino mais eficiente e a um desempenho potencialmente melhor do modelo após a poda.
  • Poda pós-treinamento: A poda é aplicada depois de o modelo ter sido totalmente treinado. Essa é a abordagem mais simples e geralmente envolve técnicas como quantização para reduzir ainda mais o tamanho do modelo e acelerar a inferência, às vezes usada em conjunto com formatos como ONNX.

Em resumo, a poda é uma técnica vital de otimização de modelos que permite a implementação de modelos de IA eficientes e com bom desempenho em ambientes com recursos limitados e aplicações sensíveis à latência. Ao reduzir a complexidade do modelo, a poda contribui para tornar a IA mais prática e amplamente aplicável.

Lê tudo