Alura > Cursos de Inteligência Artificial > Cursos de IA para Dados > Conteúdos de IA para Dados > Primeiras aulas do curso Hugging Face: explorando e aplicando soluções com modelos de IA

Hugging Face: explorando e aplicando soluções com modelos de IA

Analisando sentimentos - Apresentação

Olá, você já conhece o Hugging Face? Não estamos falando do emoji que tem as mãos abraçando o rosto, mas de uma plataforma muito famosa na área de inteligência artificial e machine learning.

Nela, você tem a possibilidade de utilizar modelos que já foram pré-treinados com grande volume de dados. Assim, você pode pegar esses modelos e utilizar nos seus projetos.

Além disso, a plataforma também oferece vários conjuntos de dados e um local onde você pode hospedar de forma gratuita aplicações que foram criadas para machine learning. Portanto, é um ambiente muito rico e cheio de conteúdo para explorarmos.

Neste curso, vamos desenvolver um projeto para um e-commerce. Em cada aula, vamos solucionar um problema utilizando um modelo pré-treinado. Quem vai acompanhar você nesta jornada é a Valquíria Alencar, instrutora das Escolas de Inteligência Artificial e Dados aqui na Alura.

Audiodescrição: Valquíria se autodescreve como uma mulher branca, de olhos castanhos, cabelos também castanhos e lisos na altura abaixo dos ombros. Ela está vestindo uma blusa preta, em um dos estúdios da Alura, à frente de uma estante com objetos diversos e de um vaso com uma planta. A iluminação no fundo mescla tons de verde e azul.

O que vamos aprender

Começaremos na primeira aula, trabalhando com análise de sentimentos. Vamos pegar várias avaliações de um produto que foi lançado por esse e-commerce, e classificar essas avaliações como positivas, negativas e neutras.

No final, conseguiremos obter insights do que as pessoas estão achando desse produto e de como o e-commerce pode trabalhar para melhorar a experiência dessas clientes.

Em seguida, vamos avançar para o uso de um modelo pré-treinado para categorizar produtos. Teremos a descrição de produtos novos que estão entrando na página do e-commerce e, com base na descrição, vamos classificar a que categoria esse produto pertence, facilitando a categorização e organização desses produtos dentro do site.

A próxima etapa neste curso será desenvolver um projeto para edição de imagens, pois nosso e-commerce tem imagens para colocar no site. Imagine que queiramos padronizar todas elas removendo o background da imagem.

Conseguiremos criar uma aplicação onde você consegue adicionar uma imagem, fazer o upload, e o modelo vai tratá-la e trazer a imagem depois editada.

Vamos clicar na área à esquerda da interface para fazer o upload, escolher a imagem de um produto, ir no botão de "Submit" (submeter), e o modelo vai começar a processar. Depois, voltaremos para ver como ficou o resultado.

O resultado da imagem editada pode ser baixado clicando no botão na parte superior direita para fazer o download para o computador. Ainda vamos aprender como hospedar essa aplicação de forma gratuita no Hugging Face.

Depois disso, vamos trabalhar na criação de uma outra aplicação que é em relação ao FAQ do nosso e-commerce, onde as clientes terão acesso a um menu com as perguntas mais frequentes em relação à página.

Poderemos clicar nessas perguntas, enviar e ter a resposta desse modelo. O modelo vai se basear num contexto que enviaremos para ele e vai responder a pergunta com base nisso. Teremos essa aplicação no final, que será bem interessante também.

Por fim, também criaremos um chatbot para que as clientes consigam consultar como está o status de um pedido que elas fizeram no site.

Conseguimos até visualizar a conversa no chatbot, mandando um oi para o bot, perguntando como ele está respondendo. Pedimos para ele checar o status de um pedido, ele checa para nós, fala que o produto foi enviado. Agradecemos e nos despedimos escrevendo um bye. E o modelo já consegue responder em seguida. Teremos tudo isso de entregável, será incrível.

Requisitos do curso

Para que você consiga acompanhar bem esse curso, recomendamos que você já tenha conhecimentos em programação com Python e também seria interessante se você tivesse alguns conhecimentos em Machine Learning. Então, vamos começar?

Analisando sentimentos - Classificando sentimentos

Vamos dar início ao nosso projeto? Aqui, atuaremos como cientistas de dados de um e-commerce que deseja solucionar alguns problemas utilizando soluções com inteligência artificial.

O nosso desafio

Para começar, vamos resolver um problema em relação a um produto que foi lançado alguns meses atrás na página, uma fritadeira elétrica, a famosa Air Fryer.

Esse produto foi lançado e as pessoas começaram a comprar e a criar resenhas, comentando o que acharam desse produto. Mas imagine uma grande quantidade de resenhas que as pessoas fizeram.

Como podemos analisar essas resenhas e extrair o sentimento que as pessoas tiveram em relação a essa compra?

Esse sentimento pode ser positivo, negativo e até mesmo neutro. Isso é muito importante para que a empresa consiga entender como o produto está performando e o que as pessoas estão achando dele. Com isso, a empresa consegue criar estratégias para melhorar esse produto e para atender melhor os clientes.

Para resolver esse tipo de problema, de analisar um sentimento com base em um texto que a pessoa escreveu, trabalhamos com algo que é chamado de processamento de linguagem natural (PLN), que é uma área do Machine Learning.

Uma forma interessante de resolver esse problema é utilizar um modelo já pré-treinado. Imagine que uma pessoa já criou um modelo, já o treinou com uma série de dados, e esse modelo está pronto para ser usado.

Assim, não precisamos executar tarefas como preparar os dados, fazer tratamento, treinar o modelo até obter o sentimento final. Portanto, é uma forma muito mais prática de fazer isso.

A plataforma Hugging Face

Para utilizar o modelo pré-treinado, vamos conhecer agora uma plataforma que está muito famosa na área de inteligência artificial, que é o Hugging Face. Nessa plataforma, temos uma série de modelos que as pessoas já treinaram e disponibilizaram para serem utilizados de forma gratuita.

Estamos com a página do Hugging Face aberta no navegador na página inicial. É interessante que você crie a sua conta para utilizar tudo o que a plataforma proporciona.

Se você ainda não sabe como criar uma conta, temos uma atividade antes deste vídeo, que é o "Preparando o Ambiente". Explicamos lá como fazer a criação da conta.

No menu superior, podemos escolher entre modelos pré-treinados no menu "Models", os "Datasets", temos também uma parte aqui chamada "Spaces", onde podemos criar aplicações de Machine Learning e colocar aqui para que outras pessoas possam utilizar. Tem também uma parte com "Posts", com documentação ("Docs") e com soluções ("Solutions").

Se descermos um pouco na página, temos até informações sobre o que é tendência na semana. Temos tanto modelos quanto aplicações que foram criadas e também conjuntos de dados.

Mas como vamos solucionar o nosso problema com uma análise de sentimento? Vamos, então, começar encontrando algum modelo que possa ser utilizado.

De volta ao topo da página, vamos clicar no menu "Models". Seremos redirecionados para outra página. Nela, há um menu na lateral esquerda com uma série de tarefas que podem ser resolvidas com os modelos disponíveis.

Na categoria "Tasks", temos soluções divididas em "Multimodal", "Computer Vision" (ou visão computacional) e, em seugida, temos o "Natural Language Processing", ou processamento de linguagem natural, que é com isso que vamos trabalhar.

Vamos ter um texto com o que a pessoa escreveu sobre o produto e queremos extrair o sentimento geral daquela avaliação. Se queremos classificar se esse sentimento é negativo ou positivo, vamos aqui na parte de "Text Classification", que é classificação de texto. Então, vamos clicar nessa opção.

Clicando aqui, temos vários modelos disponíveis à direita da página. Tem mais de 60 mil modelos só para fazer classificação de texto. Mas podemos filtrar isso melhor indo do lado direito, na parte superior, no botão "Sort", que é para organizar.

Clicando nele, vamos selecionar a opção Most likes, que são os modelos que foram mais curtidos pelas pessoas. Tem um modelo bem famoso, que já foi baixado mais de 7 milhões de vezes, chamado distilbert. Então, ele pode ser uma boa opção para nós. Vamos clicar nele.

Quando clicamos no modelo, abre um cartão com várias informações dele, o chamado Model card. Então, temos conteúdo e detalhes do nosso modelo. Temos até uma explicação de como ele pode ser usado.

São várias informações que podemos analisar com calma para entender como esse modelo funciona. Mais abaixo, teremos um código já mostrando como esse modelo pode ser aplicado.

Na primeira linha desse código, ele está importando torch. Esse torch é um módulo do PyTorch, que é uma biblioteca super usada em deep learning para criação de redes neurais.

Então, é importante destacar que esses modelos que tem no Hugging Face são criados muitas vezes com o PyTorch ou com o TensorFlow, que são frameworks muito famosos em deep learning.

Além disso, na segunda linha de código, é que ele está fazendo algumas importações a partir de uma biblioteca chamada Transformers.

O que é esse tal de Transformers? Encontraremos mais informações sobre o Transformers na págian de documentação do Hugging Face.

A documentação pode ser vista até em outros idiomas. Para alterar a língua, acessamos o menu suspenso preenchido com as letras "EN", no menu lateral esquerdo da página sobre o Transformers. Trocaremos a sigla para "PT", para obter acesso ao conteúdo em português. Com isso, conseguimos agora visualizar a documentação toda, então, no nosso idioma.

O Transformers é o estado da arte para aprendizado de máquina, tanto em PyTorch, quanto o TensorFlow e JAX.

Esse Transformers disponibiliza APIs para você conseguir baixar e treinar modelos que já estão pré-treinados no Hugging Face de forma muito prática. Recomendamos que você leia a documentação e confira os detalhes.

Mas vamos agora importar uma função na biblioteca Transformers lá no Google Colab para começar a utilizar o modelo. Vamos fazer isso, então?

Implementando o modelo de classificação de texto

Com o Google Colab aberto, vamos na primeira célula de código e digitar o seguinte: from transformers import pipeline. A função pipeline vai permitir que executemos o modelo em uma única linha de código de uma forma bem simples. Então, vamos testar isso agora. Então, vamos executar essa célula.

from transformers import pipeline

Depois da execução da célula, implementar o nosso modelo de classificação de texto. Podemos criar uma variável chamada classificador_sentimento.

Vamos inserir o sinal de igual (=) depois dela e chamar a função pipeline(). Dentro dos parênteses, vamos colocar duas informações importantes para que o modelo consiga funcionar.

A primeira é a tarefa que ele vai fazer. Vamos digitar 'sentiment-analysis', entre aspas simples. Vamos inserir uma vírgula e colocar qual vai ser o modelo que será usado. Então, vamos colocar o parâmetro model=''.

Vamos colocar o nome do modelo conforme o card do modelo no site do Hugging Face. Então, vamos até copiar o nome e colar dentro das aspas. É o modelo distilbert-base-encased-finetuned-sst-2-english. Agora, vamos executar a célula.

classificador_sentimento = pipeline('sentiment-analysis', model='distilbert-base-uncased-finetuned-sst-2-english')

Quando executamos, ele vai instalar uma série de coisas. Ele está obtendo aqui um tokenizer (tokenizador) para trabalhar com o texto, com as nossas palavras, que vamos ter dentro da avaliação, dentro da resenha. Tem um vocabulário que foi importado. E agora já conseguimos usar o modelo com isso tudo carregado.

Testando o modelo

Agora vamos testar esse modelo com alguma avaliação de produto. Na próxima linha de código, vamos escrever classificador_sentimento('').

Dentro das aspas, podemos escrever a frase de alguma avaliação.

Atenção: O modelo distilbert trabalha com língua inglesa. Por isso, vamos inserir uma avaliação em inglês.

Vamos colocar um texto bem curto, como "I love this product". A pessoa comprou um produto e está dizendo que o amou. Beleza, e agora vamos executar a célula.

classificador_sentimento('I love this product')

Rapidamente ele trouxe aqui para nós a classificação. Então, tem uma label que ele está marcando como positiva e também tem um score, que aponta a probabilidade de essa avaliação ser positiva.

Então, ele está dando 0.999, então a chance é quase de 100%, que a classe é positiva.

[{'label': 'POSITIVE', 'score': 0.9998788833618164}]

Conseguimos fazer isso de uma forma muito rápida, isso é muito bacana. Se você já trabalhou com processamento de linguagem natural antes, deve saber como é complexo criar um modelo que classifique para nós esse sentimento.

Existe todo um processo: temos um texto que precisa ser transformado ali em tokens, em algo numérico, depois precisamos passar por um processo muito extensivo de tratamento dos dados até chegar no momento de treinar o modelo e ter o resultado final. Então, com a pipeline que importamos, fizemos isso de uma forma muito rápida.

Podemos agora também testar uma frase negativa para ver o que acontece. Vamos escrever classificador_sentimento('').

Podemos testar uma frase em que a pessoa dizer estar completamente decepcionada com o produto. Então, vamos escrever em inglês 'I am totally disappointed with this product'. A pessoa está dizendo que ficou completamente decepcionada com o produto.

classificador_sentimento('I am totally disappointed in this product')

Vamos executar a célula e o retorno indica que o nosso sentimento nesse caso é negativo, com score bem alto, também de 0.999. Isso aponta que o modelo funciona corretamente.

[{'label': 'NEGATIVE', 'score': 0.9998010993003845}]

Mas tem um detalhe importante: esse modelo é utilizado para trabalhar com a língua inglesa, mas as avaliações que o nosso e-commerce tem, elas estão em português. No próximo vídeo, vamos buscar um modelo que trabalhe com a língua portuguesa. Esperamos você lá!

Analisando sentimentos - Selecionando o modelo

Iniciamos a utilização de modelos pré-treinados para a classificação de sentimentos. Utilizamos o modelo distilbert, testamos um sentimento positivo e um negativo, e o resultado foi muito satisfatório.

No entanto, agora precisamos de um modelo que atenda à nossa necessidade específica, que é classificar textos em português. Para isso, vamos retornar ao Hugging Face.

Encontrando uma biblioteca apropriada

Com a página do Hugging Face aberta, já pesquisamos bastante sobre modelos que poderiam resolver esse problema. Descobrimos uma biblioteca chamada "pysentimiento".

Vamos buscar por ela na caixa de busca na parte superior da página. Digitamos "pysentimiento" e encontramos a biblioteca logo abaixo de "Organizations".

A "pysentimiento" é uma biblioteca que trabalha com textos em Espanhol e Português. Existem vários modelos baseados nessa biblioteca. Após testar alguns deles, encontramos o "pysentimiento/bertweet-pt-sentiment", que se adequou muito bem a dados em Português.

Ao clicar nesse modelo, abrimos o seu card, que contém várias informações sobre o repositório em que foi treinado. O modelo foi treinado com dados em português e consegue classificar três labels diferentes: positivo, negativo ou neutro. Isso é muito interessante, pois também temos sentimentos que são neutros.

As instruções de uso do modelo indicam que devemos usá-lo diretamente com a biblioteca pysentimiento e importar uma função em seguida. Com isso, já conseguimos fazer a classificação. Vamos implementar isso agora no Google Colab.

Implementando no Google Colab

A primeira etapa é instalar a biblioteca. Para isso, digitamos pip install pysentimiento e executamos a célula. A instalação demora um pouco, então retornamos quando estiver pronta.

pip install pysentimiento

Após a instalação, recebemos um aviso para reiniciar a sessão. Clicamos em "Reiniciar sessão" e, após o reinício, podemos executar novamente o código de instalação para verificar se está tudo certo. Com a biblioteca instalada, podemos começar a usá-la.

Para fazer a nossa classificação, precisamos importar uma função da biblioteca. Digitamos from pysentimiento import create_analyzer e executamos a célula.

from pysentimiento import create_analyzer

Agora, vamos criar uma variável para armazenar o nosso modelo. Chamamos essa variável de modelo_analise_sentimento e atribuímos a ela a função create_analyzer() que acabamos de importar. Dentro dos parênteses da função, colocamos duas informações: task='sentiment' e lang='pt'. Executamos a célula e aguardamos as configurações serem feitas.

modelo_analise_sentimento = create_analyzer(task='sentiment', lang='pt')

Testando resenhas em português

Com o modelo pronto, vamos testar algumas resenhas para ver como ele está performando. Chamamos o modelo e usamos a função modelo_analise_sentimento.predict() para fazer a predição da classe. Dentro dos parênteses, colocamos a avaliação que a pessoa fez.

No primeiro caso, pegamos uma avaliação positiva:

modelo_analise_sentimento.predict('''
A fritadeira é sensacional, muito além do que imaginava. É linda, super funcional e muito fácil de manusear. Fácil de limpar e potente. Super recomendo.
''')

Ao executar a célula, obtemos o seguinte retorno:

AnalyzerOutput(output=POS, probas={POS: 0.989, NEU: 0.009, NEG: 0.002})

O POS indica que o sentimento é positivo. Em seguida, ele fornece as probabilidades para cada categoria: POS para a probabilidade de a avaliação ser positiva, que corresponde a 0.989, NEU para a probabilidade de ela ser neutra (0.009) e 0.002 de probabilidade de ser negativa (NEG).

Vamos testar outra avaliação:

modelo_analise_sentimento.predict('''
Após poucos meses de uso a carcaça de aço escovado começou a oxidar,
demonstrando a baixa qualidade de proteção. Fora esse detalhe, o produto cumpre o prometido.
''')

Executando a célula, o modelo classifica a avaliação como neutra:

AnalyzerOutput (output=NEU, probas={NEU: 0.921, NEG: 0.065, POS: 0.014})

Ele identificou que a probabilidade de a avaliação ser neutra é de 0.921, uma chance de 0.065 de ela ser negativa e 0.014 de probabilidade de ser positiva. Isso faz muito sentido.

Por fim, vamos testar mais um sentimento:

modelo_analise_sentimento.predict('''
Em menos de 1 ano parou de funcionar, enviei para assistência técnica por estar na garantia, trocaram o motor, passou a ficar menos potente e não durou 2 utilizações.
Isso se repetiu várias vezes, até que desisti de ficar levando lá e queimando de novo em seguida, vi outros clientes com o mesmo problema. Não comprem!!
''')

O resultado é a classificação negativa:

AnalyzerOutput (output=NEG, probas={NEG: 0.935, NEU: 0.056, POS: 0.009})

Assim, testamos três avaliações diferentes: uma positiva, uma neutra e uma negativa. O modelo conseguiu classificar corretamente os sentimentos das avaliações.

No entanto, temos várias avaliações e a ideia é aplicar esse modelo a todas elas. Vamos fazer isso no próximo vídeo com mais detalhes.

Sobre o curso Hugging Face: explorando e aplicando soluções com modelos de IA

O curso Hugging Face: explorando e aplicando soluções com modelos de IA possui 197 minutos de vídeos, em um total de 56 atividades. Gostou? Conheça nossos outros cursos de IA para Dados em Inteligência Artificial, ou leia nossos artigos de Inteligência Artificial.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda IA para Dados acessando integralmente esse e outros cursos, comece hoje!

Plus

De
R$ 1.800
por
12X
R$109
à vista R$1.308
  • Acesso a TODOS os cursos por 1 ano

    Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Certificado

    A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.

  • Mentorias com especialistas

    No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.

  • Comunidade exclusiva

    Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.

  • Acesso ao conteúdo das Imersões

    Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.

  • App Android e iOS para estudar onde quiser

    Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.

Matricule-se

Pro

De
R$ 2.400
por
12X
R$149
à vista R$1.788
  • Acesso a TODOS os cursos por 1 ano

    Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Certificado

    A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.

  • Mentorias com especialistas

    No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.

  • Comunidade exclusiva

    Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.

  • Acesso ao conteúdo das Imersões

    Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.

  • App Android e iOS para estudar onde quiser

    Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.

  • Luri, a inteligência artificial da Alura

    Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.

  • Alura Língua - Inglês e Espanhol

    Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.

Matricule-se

Ultra

12X
R$209
à vista R$2.508
  • Acesso a TODOS os cursos por 1 ano

    Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Certificado

    A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.

  • Mentorias com especialistas

    No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.

  • Comunidade exclusiva

    Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.

  • Acesso ao conteúdo das Imersões

    Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.

  • App Android e iOS para estudar onde quiser

    Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.

  • Luri, com mensagens ILIMITADAS

    Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.

  • Luri Vision, a IA que enxerga suas dúvidas

    Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.

  • Alura Língua - Inglês e Espanhol

    Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.

  • 6 Ebooks da Casa do Código

    Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.

Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas