Clasificador binario multilingüe que decide si una frase es un claim verificable
(
1) o no (
0). Fine-tune de
microsoft/mdeberta-v3-base
(
DebertaV2ForSequenceClassification, 2 clases).
El int8 usa cuantización estática QDQ: pesos int8, activaciones int16, atención en fp32
y embeddings int8 weight-only. Reduce el tamaño ~48 % respecto al fp32 y conserva la
macro-F1 (0.9967). Es estable frente al padding: max|Δprob| = 0.0020 entre puntuar una
frase aislada o rellenada en un lote, con 0 cambios de veredicto.
1from transformers import AutoTokenizer, AutoModelForSequenceClassification
2import torch
3
4repo = "<ORG>/claim-gate-mdeberta"
5tok = AutoTokenizer.from_pretrained(repo)
6model = AutoModelForSequenceClassification.from_pretrained(repo).eval()
7
8enc = tok("El PIB de España creció un 3% en 2023.", return_tensors="pt",
9 truncation=True, max_length=64)
10with torch.no_grad():
11 prob_claim = model(**enc).logits.softmax(-1)[0, 1].item()
12print(prob_claim >= 0.5, prob_claim) # True 0.99...
1from optimum.onnxruntime import ORTModelForSequenceClassification
2from transformers import AutoTokenizer
3
4repo = "<ORG>/claim-gate-mdeberta"
5tok = AutoTokenizer.from_pretrained(repo)
6model = ORTModelForSequenceClassification.from_pretrained(repo, subfolder="onnx",
7 file_name="model.onnx")
1import numpy as np, onnxruntime as ort
2from tokenizers import Tokenizer
3
4tok = Tokenizer.from_file("tokenizer.json")
5tok.enable_truncation(max_length=64)
6tok.enable_padding(pad_id=0, pad_token="[PAD]")
7enc = tok.encode_batch(["El PIB de España creció un 3% en 2023."])
8
9sess = ort.InferenceSession("onnx/model.onnx", providers=["CPUExecutionProvider"])
10feed = {
11 "input_ids": np.array([e.ids for e in enc], dtype=np.int64),
12 "attention_mask": np.array([e.attention_mask for e in enc], dtype=np.int64),
13}
14logits = sess.run(None, feed)[0]
15prob_claim = np.exp(logits - logits.max(-1, keepdims=True))
16prob_claim = (prob_claim / prob_claim.sum(-1, keepdims=True))[:, 1]
Este modelo es un fine-tune de DeBERTaV3. Si lo usas, cita los papers del base model:
1@misc{he2021debertav3,
2 title={DeBERTaV3: Improving DeBERTa using ELECTRA-Style Pre-Training with Gradient-Disentangled Embedding Sharing},
3 author={Pengcheng He and Jianfeng Gao and Weizhu Chen},
4 year={2021},
5 eprint={2111.09543},
6 archivePrefix={arXiv},
7 primaryClass={cs.CL}
8}
9
10@inproceedings{he2021deberta,
11 title={DeBERTa: Decoding-enhanced BERT with Disentangled Attention},
12 author={Pengcheng He and Xiaodong Liu and Jianfeng Gao and Weizhu Chen},
13 booktitle={International Conference on Learning Representations},
14 year={2021},
15 url={https://openreview.net/forum?id=XPZIaotutsD}
16}