Downloads · 30 days
7
12% of all-time downloads
afafos/trade-news-dedup-roberta-large-nli
trade-news-dedup-roberta-large-nli is a text classification model from afafos. Use it when you need a label for a piece of text. It is set up for transformers. The card lists the license as mit.
Event-level duplicate detection in trade news — NLI-based classifier (RoBERTa-large), fine-tuned on the weakly-supervised SilverSet of the TradeNewsEventDedup project.
Downloads · 30 days
7
12% of all-time downloads
All-time downloads
60
Public
Parameters
355M
1.4 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors1.4 GB · 100%
From the Hugging Face model README
Event-level duplicate detection in trade news — NLI-based classifier (RoBERTa-large), fine-tuned on the weakly-supervised SilverSet of the TradeNewsEventDedup project.
Обнаружение дубликатов событий во внешнеторговых новостях: бинарная классификация пар новостных саммари (дубликат / не-дубликат) на уровне идентичности торгового события.
⭐ Highest PR-AUC and Recall on the GoldSet; largest relative gain from fine-tuning.
Given two trade-news summaries, predict whether they describe the same real-world trade
event (same country, commodity, trade action, numerical values and time) — not mere text
similarity. The model was fine-tuned with structured hard negatives (semantically close but
materially different cases: updates U and related events R).
ynie/roberta-large-snli_mnli_fever_anli_R1_R2_R3-nlilyutovad/TradeNewsEventDedup — SilverSet (16,097 LLM-labeled pairs, fine-tuning only)0); use a symmetric average over both input orderings. See finetune_meta.json for head_info.| Metric | Value |
|---|---|
| PR-AUC | 0.9396 |
| F1 | 0.8968 |
| Accuracy | 0.9095 |
| Recall | 0.9444 |
Thresholds are tuned on the GoldSet (optimistic estimate). Baselines (lexical/embedding similarity) reach high recall but low precision; fine-tuning with hard negatives improves precision and reduces false positives. Full protocol and ablations are in the paper.
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
repo = "afafos/trade-news-dedup-roberta-large-nli"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForSequenceClassification.from_pretrained(repo).eval()
a = "Iraq and Lebanon signed an agreement and seven MoUs on trade and investment."
b = "Iraq and Lebanon announced a new partnership framework, including seven MoUs."
def dup_score(x, y):
with torch.no_grad():
logits = model(**tok(x, y, return_tensors="pt", truncation=True)).logits
return torch.softmax(logits, dim=-1)[0, 0].item() # index 0 == entailment ~ duplicate
# symmetric signal over both orderings (see finetune_meta.json -> head_info)
p_duplicate = 0.5 * (dup_score(a, b) + dup_score(b, a))
print(p_duplicate)
@misc{tradenews_event_dedup,
title = {Event-Level Duplicate Detection in Trade News under Hard-Negative Supervision},
author = {Liutova, Daria and Kamalov, Said and Afanasev, Andrew and Mukhtarov, Timerlan},
year = {2026},
note = {Dataset: lyutovad/TradeNewsEventDedup; Code: https://github.com/SaidKamalov/trade-news-duplicates}
}