Skip to content

msc2020/labs_ml_genai

Repository files navigation

Labs

Fine-tuning de modelo para sumarização de diálogos de atendimento ao cliente pelo Twitter

A fim de buscar melhorar a performance em tarefas de sumarização do dataset contendo diálogos de atendimento ao cliente pelo Twitter, realizamos o fine-tuning de forma local de um modelo disponibilizado na Hugging Face.

model rouge1 rouge2 rougeL rougeLsum
Falconsai/text_summarization "tunado" 0.407386 0.180734 0.337834 0.337445
Falconsai/text_summarization (original) 0.263383 0.10831 0.215001 0.213951

Após o fine-tuning, criamos uma app local simples com o Gradio para facilitar na interação via interface gráfica. Abaixo temos exemplos da sumarização realizada pelo modelo treinado.



Conteúdo
  • Prepara datasets de treino, validação e teste, unindo diálogos no Twitter referentes ao atendimento de clientes e uma sumarização humana deste diálogo.

  • Aplica modelos de sumarização (sem fine-tuning) aos diálogos dos datasets pré-processados e avalia a performance com a métrica ROUGE.

  • De forma local, realiza o fine-tuning de modelos disponibilizados na Hugging Face para sumarização.

  • Compara performance do modelo "tunado" com a versão padrão.

  • Cria aplicação com Gradio, disponibilizando o modelo "tunado" para tarefa de sumarização via navegador web.

  • Testa o app sumarizador via localhost.


Datasets

Notebooks



Sumarização e avaliação de desempenho de diálogos de atendimento ao cliente pelo Twitter

Preparamos um dataset contendo posts no Twitter com diálogos de atendimento ao cliente, incluindo uma sumarização abstrativa humana. Aplicamos três modelos de IA generativa para tarefa de sumarização do diálogo. Comparamos dois modelos especializados na tarefa de sumarização (T5 e Falconsai) e um não especializado nesta tarefa. A performance dos modelos foi medida com a métrica ROUGE, que em linhas gerais mensura à sobreposição de n-gramas entre o texto da sumarização gerada pelos modelos de IA e a sumarização gerada por um humano (ground truth).



Conteúdo
  • Constrói dataset contendo diálogos de atendimento ao cliente pelo Twitter e sumarização humana.

  • Aplica modelos disponilizados na Hugging Face para sumarização dos diálogos.

  • Calcula métrica ROUGE para cada um dos modelos e compara resultados.


Datasets

Notebooks



Usando RAG local para análise de um artigo científico

Construímos um sistema RAG que é capaz de responder perguntas sobre um artigo científico. Para esta tarefa, inicialmente extraímos o conteúdo das páginas em PDF do artigo. Em seguida, utilizando modelos disponibilizados pela Hugging Face, preparamos o dataset e usamos um modelo LLM local que limita suas respostas ao contexto fornecido.



Conteúdo
  • Extrai informações de PDFs correspondentes as páginas do artigo.

  • Prepara dataset para base vetorial FAISS.

  • Constrói RAG especialista no artigo científico usado como input.

  • Realiza testes.


Dataset

Notebooks



Melhorias na modelagem para predição de sucesso em uma campanha de telemarketing

A partir do uso de diferentes técnicas de ML, buscamos melhorar as métricas de performance obtidas para a tarefa de classificar se um cliente realizará um depósito, após um contato de telemarketing. Usamos LLM para analisar os resultados.



Conteúdo
  • Construção de um modelo baseline utilizando AutoML.

  • Feature engineering para criação de novos atributos.

  • Uso de PCA para gerar features.

  • Comparação entre as métricas de performance do modelo baseline e dos modelos candidatos.

  • Explicação dos resultados de performance com ajuda de um LLM.


Dataset

Notebook

Modelagem anterior



Análise da influência de argumentos persuasivos sobre um LLM

No trabalho "Measuring the Persuasiveness of Language Models" é estudado como argumentos persuasivos, gerados por LLM, podem afetar as avaliações feitas por pessoas.

Em um primeiro momento, os participantes do estudo precisam avaliar uma alegação em uma escala Likert de 1 a 7 (rating_initial). Após essa avaliação, é pedido que novamente as pessoas façam uma avaliação (rating_final), agora levando em conta argumentos gerados por modelos LLMs (compactos e de fronteira). Os autores consideram uma forma simples de medir o efeito persuasivo deste argumento na resposta, utilizando a seguinte métrica: persuasiveness_metric = rating_final - rating_initial.

Motivado por este estudo, cujo dataset é disponibilizado na Hugging Face (Anthropic/persuasion), realizamos testes para checar o efeito dos argumentos persuasivos (argument) nas avaliações que um modelo de LLM, escolhido para testes, realiza das alegações (claim) disponibilizadas na base de dados.


Será que o modelo LLM usado nos testes, após levar em conta argumentos persuasivos em seu contexto, muda sua avaliação inicial? Que fatores podem influenciar nessa possível mudança?



Conteúdo
  • Checa algumas informações sobre o dataset Anthropic/persuasion, seguindo o artigo: "Measuring the Persuasiveness of Language Models".

  • Realiza testes com modelos LLM em subconjunto de amostras para um estudo inicial.

  • Prepara dataset para testes considerando os argumentos persuasivos gerados pelo modelo Claude 3 Opus de acordo com os seguintes tipos de prompt, descritos no artigo:

    • Compelling Case (convincente): o modelo gera um argumento convincente, buscando convencer alguém em cima do muro.

    • Logical Reasoning (lógico): o modelo elabora argumentos usando raciocínio lógico, tentando trazer clareza e transparência nos seus argumentos.

    • Expert Writer Rhetorics (retórico): o modelo cria argumentos persuasivos como um especialista em retórica, utilizando-se de pathos (apelo às emoções do leitor; por ex., contar uma história emocionante para gerar empatia), logos (apelo à lógica e razão; por ex., apresentar estatísticas na argumentação) e ethos (apelo à credibilidade ou autoridade; por ex., citar especialistas numa certa área).

    • Deceptive (falacioso): o modelo formula argumentos que parecem verossímeis, mas são amparados por fatos e fontes inventadas, de forma que o argumento criado seja o mais convincente possível.

  • Roda localmente um modelo LLM disponibilizado na Hugging Face para classificar as alegações humanas com e sem a presença dos argumentos persuasivos.

  • Usa a estrutura do artigo para classificação das alegações feitas pelo modelo LLM de testes:

    • 1 - Strongly oppose

    • 2 - Oppose

    • 3 - Somewhat oppose

    • 4 - Neither oppose nor support

    • 5 - Somewhat support

    • 6 - Support

    • 7 - Strongly support

  • Gera gráficos para análise dos resultados


Notebooks




Modelagem com auto ML e LLM para predição de sucesso em campanha de telemarketing

Objetivo

Classificar se um cliente irá (ou não) realizar um depósito, levando em conta informações de campanhas de marketing via telefone.


Conteúdo
  • Uso de auto ML para análise exploratória (EDA) e treinamento de modelos de machine learning.

  • Análise de correlação de features; geração de gráficos e visualizações para EDA.

  • Geração de relatórios automatizados em html, contendo informações sobre a qualidade do dataset de treino.

  • Cálculo de métricas de performance para o modelo ótimo.

  • Uso de LLM para explicar os resultados obtidos.


Dataset

Notebook



Multi-agentes de IA para análises de revisões de papers

A partir de uma base de reviews de artigos (UCI) e Langchain, criamos uma chain com três agentes para analisar questões sobre um tema escolhido por um usuário. A partir deste input, o mini sistema de multi-agentes busca esclarecer a questão/tópico questionado: um deles responde as questões de forma generalista; outro busca responder usando o contexto do dataset disponibilizado (RAG); e outro realiza uma busca de vídeos no Youtube para complementar a resposta.


Conteúdo
  • Criação de vector store (FAISS) a partir de embbedings calculados com um modelo disponibilizado na Hugging Face.

  • Buscas por similaridade e prompts com retrievers.

  • Testes com elementos do Langchain: prompt template, tools, retrievers, chains e runnable parallel.

  • Implementação de multi-agentes com tools e RAG.


Notebooks



RAG local para sessão de perguntas e resposta sobre o cardápio de hoje

Neste lab testamos a extração de conteúdo de texto via OCR de uma imagem de cardápio. Realizamos o parsing do texto OCR com LLM e implementamos uma agente com RAG simples para responder questões sobre o cardápio fornecido.


Conteúdo
  • Usa OCR (Tesseract) para extrair informações de um cardápio na forma de imagem (PNG).

  • Realiza o parsing das informações extraídas usando uma LLM.

  • Exporta as informações estruturadas com CSV e JSON.

  • Gera embedding a partir de informações da imagem do cardápio estruturadas, usando modelo disponibilizado pela Hugging Face.

  • Cria banco vetorial (FAISS) e realiza buscas semânticas.

  • Realiza sessão de perguntas e respostas sobre o cardápio fornecido.


Notebooks

About

Testes com ML e GenAI para fins de estudos.

Resources

Stars

Watchers

Forks

Contributors