Verificação verde
Link copiado para a área de transferência

Potenciar projectos de CV com as ferramentas de código aberto da Hugging Face

Junta-te a nós para revisitarmos uma palestra do YOLO Vision 2024 que se centra na exploração da forma como as ferramentas de código aberto do Hugging Faceestão a fazer avançar o desenvolvimento da IA.

A escolha dos algoritmos corretos é apenas uma parte da construção de soluções de visão por computador com impacto. Os engenheiros de IA trabalham frequentemente com grandes conjuntos de dados, afinam modelos para tarefas específicas e optimizam os sistemas de IA para um desempenho no mundo real. À medida que as aplicações de IA são adoptadas mais rapidamente, a necessidade de ferramentas que simplifiquem estes processos também está a crescer.

No YOLO Vision 2024 (YV24), o evento híbrido anual promovido pela Ultralytics, especialistas em IA e entusiastas da tecnologia reuniram-se para explorar as mais recentes inovações em visão computacional. O evento suscitou debates sobre vários tópicos, tais como formas de acelerar o desenvolvimento de aplicações de IA.

Um dos principais destaques do evento foi uma palestra sobre a Hugging Face, uma plataforma de IA de código aberto que simplifica o treinamento, a otimização e a implantação de modelos. Pavel Lakubovskii, engenheiro de aprendizagem automática na Hugging Face, partilhou a forma como as suas ferramentas melhoram os fluxos de trabalho para tarefas de visão por computador, como a deteção de objectos em imagens, a categorização de imagens em diferentes grupos e a realização de previsões sem formação prévia em exemplos específicos (aprendizagem zero-shot).

O Hugging Face Hub aloja e fornece acesso a vários modelos de IA e de visão por computador, como o Ultralytics YOLO11. Neste artigo, vamos recapitular as principais conclusões da palestra de Pavel e ver como os programadores podem utilizar as ferramentas de código aberto da Hugging Facepara criar e implementar modelos de IA rapidamente.

Figura 1. Pavel no palco do YV24.

O Hugging Face Hub permite um desenvolvimento mais rápido da IA

Pavel começou a sua palestra apresentando a Hugging Face como uma plataforma de IA de código aberto que oferece modelos pré-treinados para uma variedade de aplicações. Estes modelos foram concebidos para vários ramos da IA, incluindo o processamento de linguagem natural (PNL), a visão por computador e a IA multimodal, permitindo que os sistemas processem diferentes tipos de dados, como texto, imagens e áudio.

Pavel mencionou que o Hugging Face Hub já alojou mais de 1 milhão de modelos e que os programadores podem facilmente encontrar modelos adequados aos seus projectos específicos. O objetivo Hugging Face é simplificar o desenvolvimento da IA, oferecendo ferramentas para a formação, afinação e implementação de modelos. Quando os programadores podem experimentar diferentes modelos, simplifica o processo de integração da IA em aplicações do mundo real.

Embora Hugging Face tenha sido inicialmente conhecido pela PNL, desde então expandiu-se para a visão computacional e a IA multimodal, permitindo aos programadores lidar com uma gama mais ampla de tarefas de IA. Também tem uma forte comunidade onde os programadores podem colaborar, partilhar conhecimentos e obter apoio através de fóruns, Discord e GitHub.

Explorar modelos de Hugging Face para aplicações de visão por computador

Entrando em mais pormenores, Pavel explicou como as ferramentas da Hugging Facefacilitam a criação de aplicações de visão computacional. Os programadores podem utilizá-las para tarefas como classificação de imagens, deteção de objectos e aplicações de linguagem de visão.

Salientou também que muitas destas tarefas de visão computacional podem ser tratadas com modelos pré-treinados disponíveis no Hub Hugging Face , poupando tempo ao reduzir a necessidade de treinar a partir do zero. De facto, Hugging Face oferece mais de 13.000 modelos pré-treinados para tarefas de classificação de imagens, incluindo modelos para classificação de alimentos, classificação de animais de estimação e deteção de emoções.

Sublinhando a acessibilidade destes modelos, disse: "Provavelmente, nem sequer precisas de treinar um modelo para o teu projeto - podes encontrar um no Hub que já tenha sido treinado por alguém da comunidade". 

Modelos Hugging Face para deteção de objectos 

Dando outro exemplo, Pavel explicou como Hugging Face pode ajudar na deteção de objectos, uma função essencial na visão por computador que é utilizada para identificar e localizar objectos nas imagens. Mesmo com dados rotulados limitados, os modelos pré-treinados disponíveis no Hugging Face Hub podem tornar a deteção de objectos mais eficiente. 

Também deu uma rápida visão geral de vários modelos construídos para esta tarefa que podes encontrar no Hugging Face:

  • Modelos de deteção de objectos em tempo real: Para ambientes dinâmicos onde a velocidade é crucial, modelos como o Detection Transformer (DETR) oferecem capacidades de deteção de objectos em tempo real. O DETR é treinado no conjunto de dados COCO e foi concebido para processar caraterísticas multiescala de forma eficiente, tornando-o adequado para aplicações sensíveis ao tempo.
  • Modelos de visão-linguagem: Estes modelos combinam o processamento de imagem e de texto, permitindo que os sistemas de IA façam corresponder imagens a descrições ou reconheçam objectos para além dos seus dados de treino. Os exemplos incluem o CLIP e o SigLIP, que melhoram a pesquisa de imagens ligando texto a imagens e permitem que as soluções de IA identifiquem novos objectos compreendendo o seu contexto.
  • Modelos de deteção de objectos de disparo zero: Conseguem identificar objectos nunca antes vistos, compreendendo a relação entre imagens e texto. Os exemplos incluem o OwlVit, o GroundingDINO e o OmDet, que utilizam a aprendizagem zero para detetar novos objectos sem necessitar de dados de treino rotulados.

Como utilizar os modelos de Hugging Face

Em seguida, Pavel mudou o foco para a utilização prática dos modelos Hugging Face , explicando três maneiras pelas quais os desenvolvedores podem aproveitá-los: explorando modelos, testando-os rapidamente e personalizando-os ainda mais.

Demonstrou como os programadores podem procurar modelos diretamente no Hugging Face Hub sem escrever qualquer código, facilitando o teste instantâneo de modelos através de uma interface interactiva. "Podes experimentá-lo sem escrever sequer uma linha de código ou descarregar o modelo para o teu computador", acrescentou Pavel. Uma vez que alguns modelos são grandes, executá-los no Hub ajuda a evitar limitações de armazenamento e processamento.

Figura 2. Como utilizar os modelos Hugging Face .

Além disso, a API Hugging Face Inference permite que os programadores executem modelos de IA com chamadas de API simples. É excelente para testes rápidos, projectos de prova de conceito e prototipagem rápida sem a necessidade de uma configuração complexa.

Para casos de utilização mais avançados, os programadores podem utilizar a estrutura Hugging Face Transformers, uma ferramenta de código aberto que fornece modelos pré-treinados para tarefas de texto, visão e áudio, suportando PyTorch e TensorFlow. Pavel explicou que, com apenas duas linhas de código, os programadores podem recuperar um modelo do Hugging Face Hub e ligá-lo a uma ferramenta de pré-processamento, como um processador de imagem, para analisar dados de imagem para aplicações de IA de visão.

Otimizar os fluxos de trabalho de IA com o Hugging Face

Em seguida, Pavel explicou como Hugging Face pode simplificar os fluxos de trabalho de IA. Um dos principais tópicos que abordou foi a otimização do mecanismo de atenção nos Transformers, uma caraterística central dos modelos de aprendizagem profunda que ajuda a concentrar-se nas partes mais relevantes dos dados de entrada. Isto melhora a precisão das tarefas que envolvem o processamento de linguagem e a visão por computador. No entanto, pode consumir muitos recursos.

Otimizar o mecanismo de atenção pode reduzir significativamente o uso de memória enquanto melhora a velocidade. Pavel salientou: "Por exemplo, ao mudar para uma implementação de atenção mais eficiente, podes ver um desempenho até 1,8 vezes mais rápido."

Hugging Face fornece suporte integrado para implementações de atenção mais eficientes dentro da estrutura Transformers. Os desenvolvedores podem ativar essas otimizações simplesmente especificando uma implementação de atenção alternativa ao carregar um modelo.

Compilação Optimum e Torch

Também falou sobre quantização, uma técnica que torna os modelos de IA mais pequenos ao reduzir a precisão dos números que utilizam sem afetar demasiado o desempenho. Isto ajuda os modelos a utilizar menos memória e a funcionar mais rapidamente, tornando-os mais adequados para dispositivos com poder de processamento limitado, como smartphones e sistemas incorporados.

Para melhorar ainda mais a eficiência, Pavel introduziu a biblioteca Hugging Face Optimum, um conjunto de ferramentas concebidas para otimizar e implementar modelos. Com apenas algumas linhas de código, os programadores podem aplicar técnicas de quantização e converter modelos em formatos eficientes como o ONNX (Open Neural Network Exchange), permitindo-lhes funcionar sem problemas em diferentes tipos de hardware, incluindo servidores na nuvem e dispositivos de ponta.

Figura 3. Pavel falou sobre a biblioteca Optimum e as suas caraterísticas.

Por fim, Pavel mencionou os benefícios do Torch Compile, uma funcionalidade do PyTorch que optimiza a forma como os modelos de IA processam os dados, tornando-os mais rápidos e eficientes. Hugging Face integra o Torch Compile nas suas bibliotecas Transformers e Optimum, permitindo que os programadores tirem partido destas melhorias de desempenho com alterações mínimas no código. 

Ao otimizar a estrutura de cálculo do modelo, Torch Compile pode acelerar os tempos de inferência e aumentar as taxas de fotogramas de 29 para 150 fotogramas por segundo sem comprometer a precisão ou a qualidade.

Implementar modelos com as ferramentas Hugging Face

Prosseguindo, Pavel abordou brevemente a forma como os programadores podem alargar e implementar modelos Vision AI utilizando as ferramentas Hugging Face depois de seleccionarem o modelo certo e escolherem a melhor abordagem para o desenvolvimento.

Por exemplo, os programadores podem implementar aplicações de IA interactivas utilizando o Gradio e o Streamlit. O Gradio permite que os programadores criem interfaces baseadas na Web para modelos de aprendizagem automática, enquanto o Streamlit ajuda a criar aplicações de dados interactivas com scripts Python simples. 

Pavel também salientou, "Não precisas de começar a escrever tudo do zero", referindo-se aos guias, cadernos de formação e exemplos de scripts que Hugging Face fornece. Estes recursos ajudam os programadores a começar rapidamente sem terem de construir tudo a partir do zero.

Figura 4. Pavel a discutir as capacidades do Hugging Face no YV24.

Benefícios do Hugging Face Hub 

A terminar a sua apresentação, Pavel resumiu as vantagens de utilizar o Hugging Face Hub. Destacou a forma como simplifica a gestão de modelos e a colaboração. Também chamou a atenção para a disponibilidade de guias, blocos de notas e tutoriais, que podem ajudar tanto iniciantes quanto especialistas a entender e implementar modelos de IA.

"Já existem muitos espaços interessantes no Hub. Podes encontrar outros semelhantes, clonar o código partilhado, modificar algumas linhas, substituir o modelo pelo teu e enviá-lo de volta", explicou, encorajando os programadores a tirar partido da flexibilidade da plataforma.

Principais conclusões 

Durante a sua palestra no YV24, Pavel partilhou como Hugging Face fornece ferramentas que suportam a formação, otimização e implementação de modelos de IA. Por exemplo, inovações como Transformers, Optimum e Torch Compile podem ajudar os programadores a melhorar o desempenho do modelo.

À medida que os modelos de IA se tornam mais eficientes, os avanços na quantização e na implementação de bordas estão a facilitar a sua execução em dispositivos com recursos limitados. Estas melhorias, combinadas com ferramentas como o Hugging Face e modelos avançados de visão por computador como o Ultralytics YOLO11, são fundamentais para criar aplicações de IA de visão escaláveis e de elevado desempenho.

Junta-te à nossa comunidade em crescimento! Explora o nosso repositório GitHub para aprenderes sobre IA e consulta as nossas licençasyolo para iniciares os teus projectos de Visão de IA. Estás interessado em inovações como a visão por computador nos cuidados de saúde ou a visão por computador na agricultura? Visita as nossas páginas de soluções para saberes mais!

Logótipo do FacebookLogótipo do TwitterLogótipo do LinkedInSímbolo de ligação de cópia

Ler mais nesta categoria

Vamos construir juntos o futuro
da IA!

Começa a tua viagem com o futuro da aprendizagem automática