CoolFace
Modelpublic

marcosremar2/cefr-classifier-pt-mdeberta-v3-enem

sourceHugging Faceupdated 8mo agoView on Hugging Face
1likes13downloads
Model Card

CEFR Classifier PT - Classificador de Nivel Linguistico

Classificador automatico de nivel CEFR (A1-C1) para textos em portugues usando mDeBERTa-v3.

Accuracy: 96.43% | F1 Weighted: 96.42%

Modelo

O modelo treinado esta disponivel no HuggingFace:

https://huggingface.co/marcosremar2/cefr-classifier-pt-mdeberta-v3-enem

Como Usar

python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

# Carregar modelo
model_name = "marcosremar2/cefr-classifier-pt-mdeberta-v3-enem"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

# Classificar texto
text = "Eu gosto de estudar portugues."
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512)

with torch.no_grad():
    outputs = model(**inputs)
    probs = torch.softmax(outputs.logits, dim=-1)
    pred = torch.argmax(probs, dim=-1).item()

levels = ["A1", "A2", "B1", "B2", "C1"]
print(f"Nivel: {levels[pred]} ({probs[0][pred]:.0%})")

Niveis CEFR

NivelDescricaoExemplo
A1Iniciante"Eu sou Maria. Eu gosto de cafe."
A2Basico"Ontem eu fui ao mercado e comprei frutas."
B1Intermediario"Embora estivesse chovendo, decidimos sair."
B2Intermediario Superior"A urbanizacao impacta a qualidade de vida nas cidades."
C1Avancado"A analise sociolinguistica revela variacoes dialetais legitimas."

Resultados

Metricas por Classe

NivelPrecisionRecallF1 Score
A10.921.000.96
A21.000.910.95
B10.970.980.98
B20.910.910.91
C11.001.001.00

Comparacao com Outros Modelos

ModeloAccuracyParametros
mDeBERTa-v3 + ENEM96.43%280M
mDeBERTa-v3 (sem ENEM)88.10%280M
XLM-RoBERTa Large~82%560M
XLM-RoBERTa Base~78%278M

Datasets Utilizados

Datasets com Labels CEFR

DatasetFonteTextos
NLI-PT v2.0PEAPLE2, Leiria, COPLE~800
UniversalCEFRHuggingFace (cople2pt, peapl2pt)~940
HablaculturaEspanhol (transfer learning)~650

Datasets com Mapeamento para CEFR

DatasetMapeamentoTextos
ENEM Essays800+ → C1, 600-799 → B2, 400-599 → B1, 200-399 → A2~3,500
Corpus ReadabilityFund.I → A1, Fund.II → A2, Medio → B1, Superior → B2~1,400
PorSimplesSentSimplificado → A2, Natural → B1, Original → B2~6,000

Total apos balanceamento: 18,790 textos

Estrutura do Projeto

cefr-classifier-pt/
├── src/                    # Codigo fonte
│   ├── config.py          # Configuracoes
│   ├── model.py           # CEFRClassifier
│   ├── dataset.py         # Utilitarios de dataset
│   └── train.py           # Script de treinamento
│
├── jobs/                   # Configuracao SkyPilot
│   └── skypilot-job.yaml  # Job de treinamento
│
└── README.md

Treinamento

O treinamento e feito na nuvem usando SkyPilot:

bash
# Instalar SkyPilot
pip install "skypilot[vast]"

# Configurar credenciais
sky check

# Lancar treinamento
sky launch jobs/skypilot-job.yaml

# Acompanhar logs
sky logs <cluster-name>

# Encerrar cluster
sky down <cluster-name>

Configuracao do Treinamento

  • —Modelo: microsoft/mdeberta-v3-base
  • —Classes: 5 (A1, A2, B1, B2, C1)
  • —Epochs: 10
  • —Learning Rate: 2e-5
  • —Batch Size: 16
  • —FP16: Desabilitado (mDeBERTa nao suporta)
  • —Early Stopping: patience 3

Inspiracao Metodologica

Este modelo foi inspirado pela abordagem proposta em Gaillat et al. (2021):

Gaillat, T., Simpkin, A., Ballier, N., Alexopoulou, T., Bodain, Y., & Thouesny, S. (2021). "Predicting CEFR levels in learners of English: The use of microsystem criterial features in a machine learning approach." ReCALL, 33(2), 161-180. Cambridge University Press. DOI: 10.1017/S0958344021000021

O paper demonstrou a eficacia de classificadores supervisionados para predicao de niveis CEFR em textos de aprendizes de linguas, alcancando 82% de accuracy em dados internos.

Nossa contribuicao:

  • —Adaptacao para portugues brasileiro (lingua de baixo recurso para CEFR)
  • —Combinacao de multiplos datasets com mapeamentos para CEFR (incluindo ENEM)
  • —Uso do mDeBERTa-v3, que oferece melhor representacao multilingual
  • —96.43% de accuracy - superando significativamente o baseline do paper original

Referencias

Modelo Base

  • —He et al. (2021) - "DeBERTa: Decoding-enhanced BERT with Disentangled Attention"
  • —He et al. (2023) - "DeBERTaV3: Improving DeBERTa using ELECTRA-Style Pre-Training"

Datasets

Licenca

MIT License