Utilizando modelos de aprendizado de máquina de reconhecimento facial do tipo Hugging Face no Azure.

A Microsoft está se esforçando para incorporar modelos de aprendizado de máquina de código aberto em aplicativos e serviços do Azure.

Recentemente, durante o Azure Open Source Day da Microsoft, foi apresentado um novo aplicativo de demonstração desenvolvido com ferramentas e serviços nativos de nuvem, com ênfase nas próprias ferramentas de código aberto da Microsoft. Esse aplicativo foi criado com o propósito de auxiliar os donos a encontrarem seus animais de estimação perdidos, utilizando machine learning para comparar imagens rapidamente. Esse caso ilustra como as ferramentas de código aberto podem ser utilizadas para criar sites e serviços complexos, desde a infraestrutura até as estruturas de aplicativos e diversas ferramentas que agregam funcionalidades ao código.
No centro da aplicação está um modelo de aprendizado de máquina de código aberto, que faz parte de uma extensa biblioteca de modelos e conjuntos de dados desenvolvidos pela comunidade Hugging Face. Esses recursos são construídos com base em uma ampla gama de ferramentas e serviços oferecidos pela comunidade. A amplitude da comunidade é um motivo convincente para utilizar os modelos da Hugging Face, seja importando-os para usar em seu próprio código e executá-los em seus próprios servidores, ou acessando-os por meio de uma API de nuvem.
Por qual motivo optar por utilizar o Hugging Face?
Outra motivação para considerar trabalhar com Hugging Face no Azure é a possibilidade de aplicar inteligência artificial a uma variedade de desafios empresariais. Embora as APIs de Serviços Cognitivos da Microsoft abranjam diversos cenários de IA com APIs bem definidas, elas representam a perspectiva de uma empresa sobre as necessidades de aprendizado de máquina para os negócios. Isso as torna uma espécie de “faz-tudo”, criadas para propósitos gerais em vez de tarefas específicas. Caso seja necessário lidar com um cenário incomum, pode ser muito trabalhoso ajustar as APIs de maneira adequada.
Sim, é possível criar modelos personalizados utilizando o estúdio de Aprendizagem de Máquina do Azure, que permite trabalhar com ferramentas como PyTorch e TensorFlow para desenvolver e treinar modelos do zero. Contudo, essa abordagem exige um conhecimento avançado em ciência de dados e aprendizado de máquina para construir e treinar os modelos. Além disso, existem desafios associados a começar do zero no aprendizado de máquina. O Azure oferece diversas opções de máquinas virtuais para treinamento de modelos de aprendizado de máquina, porém, esse processo pode demandar recursos computacionais significativos e resultar em altos custos, especialmente ao lidar com modelos grandes que requerem grande quantidade de dados. Nem todos possuem acesso a recursos ilimitados para construir supercomputadores em nuvem para treinamento de modelos de IA.
Com mais de 40.000 modelos integrados em sua estrutura do modelo Transformer, a plataforma Hugging Face pode resolver o problema da personalização de forma mais eficiente, já que possui modelos criados e treinados pela comunidade para uma variedade maior de cenários em comparação com a Microsoft. Além disso, não se restringe apenas a texto; os Transformers da Hugging Face são capacitados para lidar com linguagem natural, áudio e visão computacional. As funções desses modelos são descritas como “tarefas”, com mais de 2.000 modelos para classificação de imagem e quase 18.000 para classificação de texto disponíveis.
Hugging Face en la plataforma Azure.
A Microsoft introduziu recentemente suporte para os modelos Hugging Face no Azure, disponibilizando uma série de pontos de extremidade que podem ser integrados ao seu código. Esses modelos são provenientes do Hugging Face Hub e da API de pipeline, sendo desenvolvidos e validados pela comunidade Hugging Face. A disponibilidade dos pontos de extremidade indica que os modelos estão prontos para serem usados na inferência.
Os modelos podem ser usados gratuitamente, sendo necessário apenas pagar pelos recursos de computação do Azure para realizar as tarefas de inferência. Essa despesa pode ser significativa, principalmente ao lidar com grandes volumes de dados, sendo recomendável comparar os preços com os Serviços Cognitivos do Azure.
Criar pontos de finalização para o seu programa.
Criar um ponto final no Azure Marketplace com o Hugging Face Azure ML é um processo simples. Basta adicionar o serviço à sua conta, configurar o endpoint, escolher a região e nomear o grupo de recursos. Em seguida, selecione um modelo do Hugging Face Hub, defina o modelo ID e as tarefas associadas. Escolha a instância de computação do Azure e um VNet para garantir a segurança do serviço. Essas etapas são suficientes para criar um ponto final, que gerará as URLs e chaves necessárias para utilizá-lo.
O serviço suporta endpoints para ajustar automaticamente a escala conforme necessário, dependendo da quantidade de pedidos por minuto. Inicialmente, há restrição para apenas uma instância, porém é possível definir um intervalo mínimo e máximo de instâncias usando os controles disponíveis na tela de configuração. A taxa de crescimento é determinada pela média de pedidos em um intervalo de cinco minutos, visando suavizar picos de demanda que poderiam gerar custos extras.
Atualmente, há escassa documentação disponível sobre a integração do Azure. No entanto, é possível ter uma ideia ao consultar a documentação do endpoint da AWS da Hugging Face. A API do Endpoint é construída com base na API de Inferência já existente, e é possível descobrir a maneira correta de organizar as solicitações de pagamento.
O serviço fornece uma URL de playground para testar seu modelo de inferência, com exemplos de código em Python e JavaScript, além da opção de utilizar curl na linha de comando. Os dados são enviados e recebidos em formato JSON. É possível utilizar bibliotecas padrão para manipular o JSON e fazer chamadas REST para a API em seu código. Se estiver utilizando Python, é possível copiar o código de amostra em um notebook Jupyter para compartilhar testes com colegas e colaborar na construção de uma aplicação mais abrangente.
Personalizando os modelos de rosto Hugging no Azure Machine Learning.
Agora é possível utilizar os modelos de base da Hugging Face no Azure Machine Learning, utilizando as mesmas ferramentas empregadas na construção e treinamento de seus próprios modelos. Mesmo estando em fase de visualização, essa funcionalidade oferece uma maneira conveniente de trabalhar com os modelos, empregando ferramentas e tecnologias já conhecidas, utilizando o Azure Machine Learning para aprimorar e implementar os modelos da Hugging Face em suas aplicações. Por meio do registro do Azure Machine Learning, é possível procurar modelos prontos para serem utilizados.
Essa é uma forma rápida de incluir terminais de modelos pré-treinados extras em seu código. Você também tem a opção de personalizar modelos com seus próprios dados, utilizando o armazenamento do Azure para treinamento e testes, além de utilizar os pipelines do Azure Machine Learning para gerenciar o processo. Utilizar os modelos da Hugging Face como base para o seu próprio trabalho é uma escolha sensata, pois eles já foram testados em diversas situações, embora possam não se adequar perfeitamente ao seu caso específico. Um modelo treinado para detectar falhas em metalurgia, por exemplo, pode compartilhar características úteis para lidar com vidro ou plástico, o que significa que treinamentos adicionais podem reduzir o risco de erros.
Existe uma comunidade em expansão de aprendizado de máquina de código aberto, e é crucial que empresas como a Microsoft a adotem. Embora possam possuir conhecimento e competências, elas não possuem o alcance nem a especialização dessa comunidade mais ampla. Ao colaborar com grupos como a Hugging Face, os desenvolvedores têm acesso a uma variedade maior de opções, resultando em benefícios para todos.