marcosremar2/cefr-classifier-pt-mdeberta-v3-enem
113
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-enemComo Usar
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
Resultados
Metricas por Classe
Comparacao com Outros Modelos
Datasets Utilizados
Datasets com Labels CEFR
Datasets com Mapeamento para CEFR
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.mdTreinamento
O treinamento e feito na nuvem usando SkyPilot:
# 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
