IA Feminista

Este modelo faz classificação temática de projetos de lei relacionados a gênero a partir da ementa disponibilizada pela Câmara e o Senado brasileiro.

Ele foi desenvolvido a partir do ajuste fino (fine-tuning para classificação) do Congretimbau, que por sua vez é uma versão do BERTimbau adaptada (com técnicas de pré-treino continuado via modelagem de linguagem mascarada) para ementas de projetos de lei. O modelo deve ser usado em conjunto com o tokenizador do BERTimbau, conforme o exemplo abaixo.

O modelo atinge as seguintes métricas no conjunto de dados de teste:

  • Perda(loss): 0.5892
  • Acurácia: 0.8155
  • F1: 0.7939
  • Recall: 0.7935
  • Precisão: 0.8063

Mais informações sobre o modelo e o código utilizado podem ser encontrados no repositório do Github.

Descrição do modelo

O modelo tem como objetivo fazer uma classificação multirrótulo a partir da ementa dos projetos de lei.

As ementas são atribuídas a uma das seguintes categorias:

{0: 'economia',
 1: 'genero',
 2: 'dignidade sexual',
 3: 'violencia contra a mulher',
 4: 'politica',
 5: 'direitos sexuais e reprodutivos',
 6: 'direitos sociais',
 7: 'maternidade',
 8: 'feminicidio'}

A definição de cada categoria está descrita na seção "Categorias" abaixo.

Resultados

As métricas reportadas abaixo foram obtidas a partir do conjunto de teste dos dados anotados.

Categoria Precisão Recall F1-Score Suporte
dignidade sexual 0.94 0.88 0.91 17
direitos sexuais e reprodutivos 0.89 0.84 0.86 19
direitos sociais 0.61 0.58 0.59 19
economia 0.78 0.50 0.61 14
feminicidio 0.67 0.80 0.73 5
genero 0.81 1.00 0.90 13
maternidade 0.70 0.74 0.72 19
politica 1.00 0.88 0.93 8
violencia contra a mulher 0.86 0.93 0.89 54
Acurácia 0.82 168
Média (macro) 0.81 0.79 0.79 168
Média ponderada 0.82 0.82 0.81 168

Casos de uso e limitações

O modelo deve ser usado para prover uma classificação temática inicial dos projetos de lei. Os temas atribuídos pelo modelo devem ser validado posteriormente por um profissional responsável. Recomenda-se também considerar a utilização de múltiplas classes, uma vez que a acurácia top-k (para k = 2) do modelo é de 95%.

O código abaixo demonstra um exemplo de utilização do modelo para inferência no conjunto de dados de teste:

from datasets import Dataset, load_dataset
dataset = load_dataset("azmina/ementas_anotadas")

cols = ["text","label"]
fix_columns = {"label_tema":"label"}

test = dataset["test"].to_pandas().rename(columns=fix_columns)[cols]

from transformers import AutoModelForSequenceClassification, AutoConfig, AutoTokenizer
from torch import cuda
import torch

device = 'cuda' if cuda.is_available() else 'cpu'

model_name = "azmina/ia_feminista_tema"
tokenizer = 'neuralmind/bert-base-portuguese-cased'

tokenizer = AutoTokenizer.from_pretrained(tokenizer)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
model.to(device)

config = AutoConfig.from_pretrained(model_name)

class_mapping = config.id2label

def inference(string):
    tokens = tokenizer(string, truncation=True, max_length=512, return_tensors="pt")

    tokens = {key: value.to(device) for key, value in tokens.items()}

    with torch.no_grad():
        outputs = model(**tokens)

    predicted_index = outputs.logits.argmax(dim=-1).item()
    # Retorna a principal classe predita
    predicted_class = class_mapping[predicted_index]
    # Lista as probabilidades de todas as classes
    all_proba = outputs.logits.softmax(dim=-1).tolist()[0]
    # Retorna a probabilidade da classe 
    pred_proba = all_proba[predicted_index]

    return predicted_class, all_proba, pred_proba


test["pred_label"], test["all_proba"], test["pred_proba"] = zip(*test["text"].apply(lambda x: inference(x)))

Entre as limitações do modelo, destaca-se a taxa de acerto variável de acordo com a classe (consulte a tabela acima para mais detalhes). Recomenda-se cautela com casos de uso envolvendo decisões de risco, em especial nas classes com baixa taxa de acerto.

Dados de treinamento e avaliação

Para treinar o modelo, foi utilizado um conjunto de dados anotado pelo Instituto AzMina.

Mais informações e o acesso aos dados podem ser obtidos no seguinte link: https://huggingface.co/azmina/ementas_anotadas

Treinamento

O treinamento (fine-tuning) foi feita em duas etapas.

Na primeira, foi usado o dataset de validação para monitorar o treinamento do modelo, utilizando técnicas de EarlyStopping. A avaliação comparativa com outros modelos foi feita com base no dataset de teste.

Para o treinamento do modelo final, este disponibilizado aqui, o dataset de validação foi incorporado aos dados de treinamento, mantendo o dataset de teste separado para fins de avaliação. Neste caso, não foi utilizado técnicas de EarlyStopping e o ajuste dos hiperparâmetros foi feito manualmente a partir de experimentos monitorados.

Categorias

  • dignidade sexual: refere-se ao reconhecimento do valor de cada indivíduo em relação à sua sexualidade. Isso implica que todas as pessoas têm o direito de viver sua sexualidade de maneira plena e respeitosa, sem discriminação ou violência. A dignidade sexual garante as relações interpessoais sejam baseadas no respeito mútuo e no consentimento. Neste conjunto de projetos de lei, estão incluídos nessa categoria todos os textos que envolvem crimes contra a dignidade sexual, incluindo estupro e atos relacionados, violação sexual mediante fraude, assédio sexual, divulgação de cena de sexo ou de pornografia, tráfico de pessoas e ato obsceno.
  • direitos sexuais e reprodutivos: conjunto de direitos humanos que garantem a todos os indivíduos liberdade e capacidade para decidir sobre sua vida sexual e reprodutiva. Isso inclui o direito à informação, à educação, ao acesso a serviços de saúde reprodutiva, ao aborto, ao planejamento familiar, assistência médica durante a gravidez, parto e pós-parto e ao livre exercício da sexualidade.
  • direitos sociais: aqueles que garantem condições mínimas de vida digna a todos os indivíduos, incluindo acesso à educação, saúde, trabalho, moradia e seguridade social. Esses direitos visam promover a igualdade e a justiça social, assegurando que todos tenham oportunidades iguais para desenvolver seu potencial humano.
  • economia: todos os projetos de lei que envolver questões de produção, distribuição, acumulação e consumo de bens materiais com recorte de gênero. A categoria inclui, por exemplo, a concessão de benefícios financeiros exclusivos para mulheres e pessoas LGBT, participação econômica de mulheres e outros grupos, abordando temas como igualdade salarial, empreendedorismo feminino, inclusão no mercado de trabalho, acesso a crédito e medidas para combater a precarização do trabalho feminino.
  • feminicidio: assassinato de mulheres motivado por questões de gênero, ou seja, por ela ser do sexo feminino. Inclui projetos para prevenir, combater e punir o feminicídio, como políticas para a prevenção, investigação e julgamento de crimes de feminicídio, bem como medidas de apoio e proteção às vítimas de violência de gênero.
  • genero: construções sociais e culturais atribuídas aos papéis masculinos e femininos na sociedade, que influenciam comportamentos, oportunidades e relações entre os sexos. O conceito de gênero é fundamental para entender desigualdades sociais e promover políticas que visem à equidade. Eeste conjunto de projetos de lei, inclui propostas sobre ideologia de gênero, igualdade de gênero, lgbtfobia, orientação sexual e identidade de gênero, propostas para promover a igualdade e eliminar discriminações e preconceitos baseados no gênero, medidas para garantir direitos e oportunidades iguais para mulheres, homens, pessoas trans e não-binárias em áreas como trabalho, educação, saúde, segurança e participação política.
  • maternidade: é a qualidade ou estado de ser mãe, envolvendo não apenas o ato biológico da gestação e do parto, mas também o cuidado, educação e proteção oferecidos à criança. Inclui iniciativas sobre licença-maternidade, saláario maternidade e adoção, proteção no ambiente de trabalho, acesso a creches, políticas de apoio à amamentação e assistência a mães em situação de vulnerabilidade.
  • politica: atividade relacionada à governança do Estado nos níveis minucipal, estadual e federal, e às relações de poder entre indivíduos ou grupos. Envolve projetos de lei voltados à participação política das mulheres e à promoção da equidade de gênero na esfera política. Incluem propostas para aumentar a representatividade feminina em cargos eletivos e de liderança, além de garantir a participação em processos de tomada de decisão e elaboração de políticas públicas.
  • violencia contra a mulher: qualquer ato de violência baseado no gênero que resulte em danos para mulheres. Inclui projetos para prevenir, punir e erradicar a violência contra mulheres em todas as suas formas, incluindo violência física, psicológica, sexual, patrimonial e moral. Envolvem políticas de proteção, atendimento e apoio às vítimas, bem como campanhas educativas e ações para responsabilizar os agressores. Essa categoria inclui todos os tipos de violência contra mulheres, com exceção dos crimes contra a dignidade sexual, que estão agrupados em categoria homônima.

Hiperparâmetros de treinamento

  • learning_rate: 1e-05
  • train_batch_size: 32
  • eval_batch_size: 32
  • seed: 5151
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: linear
  • lr_scheduler_warmup_steps: 50
  • num_epochs: 8

Versões

  • Transformers 4.45.1
  • Pytorch 2.4.1+cu121
  • Datasets 3.0.1
  • Tokenizers 0.20.0
Downloads last month
97
Safetensors
Model size
334M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for azmina/ia-feminista-bert-tema

Finetuned
(5)
this model

Dataset used to train azmina/ia-feminista-bert-tema