/ Модель

Характеристики

Контекст
40 960 токенов
Параметры
3,7 млрд
Лицензия
Apache 2.0
Архитектура
qwen3 · dense
Базовая модель
Qwen3-Reranker-4B
Библиотека
transformers
Опубликована
2 окт 2026

EventTwin

Генерация текстаТекст → текст

EventTwin v2.5 — китайский реранкер для оценки вероятности того, что две новости описывают одно и то же событие.

140скачиваний за 30 дней0лайковвеса обновлены11 окт 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

EventTwin v2.5 — модель Ма Идина для определения того, описывают ли два китайских текста одно и то же реальное событие. Она предназначена для сопоставления новостных сообщений, междокументной кореференции событий и дедупликации новостей; выдаёт калиброванную вероятность совпадения от 0 до 1. Модель построена на Qwen/Qwen3-Reranker-4B: базовую модель дообучили с LoRA и объединили веса. В репозитории указаны 3,7 млрд параметров, архитектура Qwen3ForCausalLM и контекст до 40 960 токенов; для версии v2.5 обучение длинных пар проводилось с длиной последовательности до 2048 токенов.

Модель поддерживает короткие пары текстов и длинные статьи: для коротких пар README рекомендует ограничивать каждый текст 200 символами, а длинные статьи подавать целиком, до 1800 символов на сторону. Заявленные сильные стороны v2.5 — различение событий с похожими формулировками, калибровка вероятностей и работа с длинными текстами. Модель рассчитана на китайский язык; её проверяли на новостных сюжетах, включая спорт, развлечения, науку, общественные и международные события.

Ограничения включают пропуск около 1,7% положительных пар в описанном тесте, зависимость качества от соблюдения протокола длины и возможное ухудшение на данных вне обучающего домена, который включает синтетические события и корпоративные новости. Веса размером около 8 ГБ требовательны к ресурсам, а длинные пары обрабатываются в 3–6 раз медленнее коротких. Код и веса распространяются по Apache 2.0; обучающие и оценочные данные EventTwin-Data имеют лицензию CC BY-NC 4.0.

Сценарии применения

  • дедупликация китайских новостных сообщений
  • кластеризация новостей по событиям
  • поиск сообщений о том же событии в разных источниках
  • сопоставление длинных новостных статей
  • сравнение новости с карточкой кластера

Ограничения

В описанном тесте доля пропусков положительных пар составляет 1,7%; качество зависит от длины входных текстов и может снижаться при смещении домена. Для длинных пар инференс в 3–6 раз медленнее, чем для коротких, а веса занимают около 8 ГБ.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

EventTwin v2.5 · 中文同事件判定器

TL;DR (EN) — EventTwin judges whether two event descriptions refer to the same real-world event (cross-document event coreference / news deduplication) with temperature-calibrated probabilities. v2.5 adds true long-text judgment: 12k article pairs (400/900/1800-char tiers × same-event / subtle-hard-negative / cluster-card combinations, key facts buried at random positions, 79-event-type corpus spanning sports/entertainment/science/civic/international news) trained at max_len 2048. Result: pos AUROC 0.950 (family record), ECE 0.055 (family's best), overall 0.986, truth-based false-merge 2.4% (family's lowest single model) — and on a held-out set of 2,218 fresh-seed long pairs, subtle same-action-different-stage negatives are judged at 100% accuracy (predecessor: 42%). Protocol note: short pairs keep the 200-char truncation; long-article pairs should be fed full-length. Prior profiles remain as tags (v2.4 / v2.3 / v2.2 / v2.1 / v2.0 / v1.x). Data: EventTwin-Data.


这个模型做什么

输入两个中文事件描述,输出**"同一现实事件"的概率**(0-1,已校准)。用于新闻流式 聚类的核心判定:"这两条报道说的是同一件事吗"——同一动作的不同媒体报道=同事件; 同产品两次调价/宣布与交割=不同事件。

⚠️ 输入协议(v2.x 必读)

v2.0 的官方推理协议:每侧文本截断到 200 字符,再套 Qwen3-Reranker 官方模板, 取序列末位 yes/no 双 logit,除温度 T=0.7324 后 softmax(v2.5)。

长文输入(v2.5 新):v2.5 训练时 max_len=2048,长文对(新闻正文×正文 / 正文×簇卡)应 全文输入(每侧 ≤1800 字实测最优),不要套 200 字截断——200 字协议仅适用于短句对 (v2.0 实测长对截断损失 ~9pt,v2.5 全长输入下 400/900/1800 字三档 held-out acc ≥0.998)。

import torch, json
from transformers import AutoModelForCausalLM, AutoTokenizer

tok = AutoTokenizer.from_pretrained("MaYiding/EventTwin")
tok.padding_side = "left"                                   # ★ 左 padding
model = AutoModelForCausalLM.from_pretrained("MaYiding/EventTwin").eval()
T = 0.854                                                   # calibration.json

PFX = ("<|im_start|>system\nJudge whether the Document meets the requirements based on the "
       "Query. Only give me the judgment and do not output any other words or explanations. "
       'The judgment should be "yes" or "no".<|im_end|>\n<|im_start|>user\nQuery: ')
SFX, SFX2 = "\nDocument: ", "\nJudgment: <|im_end|>\n<|im_start|>assistant\n"
yes_id = tok("yes", add_special_tokens=False)["input_ids"][0]
no_id  = tok("no",  add_special_tokens=False)["input_ids"][0]

def same_event_prob(a: str, b: str) -> float:
    a, b = a[:200], b[:200]                                 # ★ 200 字截断(官方协议)
    inp = tok(f"{PFX}{a}{SFX}{b}{SFX2}", return_tensors="pt", truncation=True,
              max_length=512, add_special_tokens=False)
    with torch.no_grad():
        la = model(**inp).logits[:, -1, :].float()          # ★ 左 padding 下 -1 即末位
    two = torch.stack([la[:, no_id], la[:, yes_id]], dim=-1)
    return float(torch.softmax(two / T, dim=-1)[0, 1])

same_event_prob("小米YU7正式上市,售价25.35万元起,共推出三款车型",
                "小米发布YU7系列 售价25.35万起")                # ≈ 0.93

为什么必须截断:实测同一权重,全文输入(均长 135 字、9% 超 200 字)总体 AUROC 0.834,200 字截断 0.963(+13pt)——长尾证据/范围后缀会让 decoder 分心(与判定模型 普遍的 context-rot 现象同族)。训练数据文本本身均长 ~135 字,截断即回到训练分布。 批量推理与级联路由示例:GitHub inference_v2.py。

版本对比:v1.x 家族 vs v2.0 - v2.5

基准 = 1,000 对双教师确认金标(EventTwin-Data); v1.x 系列为 568M encoder 基座(bge-reranker-v2-m3),v2.x 为 4B decoder 基座 (Qwen3-Reranker-4B)。所有版本可从本仓库获取(v2.5 = main;v2.4/v2.3/v2.2/v2.1/v2.0/v1.2/v1.1/v1.0 为 tag)。

判别力

指标v1.0v1.2v2.1(tag)v2.3(tag)v2.4(tag)v2.5(main)
总体 AUROC0.9090.9030.9830.9850.9830.986
灰带 AUROC(最难层)0.8660.7930.9820.9820.9790.982
pos AUROC(措辞多样同事件)0.7670.8470.9260.9380.9240.950(纪录)
总体 ECE0.1870.2610.0760.0940.0570.055(最佳)
与教师一致率0.7960.7180.9510.9690.9620.960
基座 / 参数568M568M4B4B4B4B

(v2.2 0.985/v2.0 0.963/v1.1 0.895/v1.3 0.902 已略;完整数据见 GitHub 训练档案。)

置信分带行为(级联生产口径)

真值口径(按 1,000 对终版金标真值统计):

指标v2.1(tag)v2.3(tag)v2.4(tag)v2.5(main)
误自动并率(真负例≥0.9 / ≥0.95)2.9% / 2.8%2.8% / 2.8%3.3% / 3.3%2.4% / 2.2%
自动并覆盖(真正例≥0.9)91.3%95.4%95.0%92.9%
漏并率(真正例≤0.1)1.7%0.0%0.8%1.7%
灰带升级率(0.1-0.9,难例分层集)13.4%23.7%4.0%3.8%

双流量画像:

流量画像模型误并漏并升级率@默认
最坏情形(benchmark 分层难例)v2.32.8%0.0%23.7%
v2.43.3%0.8%4.0%
v2.52.4%1.7%3.8%
自然难度(生产 val 口径)v2.30.4%0.4%9.5%
v2.40.4%0.4%4.1%
v2.50.25%0.5%3.5%

v2.5 是家族首个"误并最低 + 升级率最低 + 判别力纪录"三项兼得的版本。代价:漏并从 v2.3 的 0% 回到 1.7%(金标)——漏并零容忍场景用 v2.3;均衡与长文场景用 v2.5。

生产阈值建议:v2.5 的校准特性与 v2.4 不同,推荐默认档回到 [0.1, 0.9](生产 esc 3.5% / FM 0.25% / miss 0.53%);预算紧可抬 t_low 至 0.2(esc 1.3%、miss 1.2%)。 t_high 保持 0.9。长文对全文输入(见上方协议说明)。

长文能力(v2.5 新,held-out 真泛化)

换种子全新生成的 2,218 对长文(400/900/1800 字 × 同事件/微差硬负/簇卡):

类型v2.5v2.4
同事件长文×长文0.9921.000
微差负例(同动作词仅阶段差)1.0000.417
长文×簇卡(正/负)1.000 / 1.0001.000 / 0.471
全体0.99770.7809

v2.4 会把"同主体同动作、仅计划vs已完成"的长文对高置信误并(负例均分 0.61);v2.5 完全免疫(负例均分 0.035)——这是 v2.5 的核心增量能力。

选型建议

  • v2.5(main)· 综合旗舰:pos 0.950 纪录 + ECE 0.055 最佳 + 误并双画像最低 + 升级率 3.8% + 唯一支持真长文输入(1800 字/侧 held-out acc 0.998+)——默认之选;
  • v2.3(tag)· 零漏并档:金标漏并 0.0%(v2.5 为 1.7%)——漏并零容忍或纯短句 对抗流量用;
  • v2.4(tag)· 校准果断档:v2.5 的直接前身,多数指标被 v2.5 覆盖,保留作对照;
  • v1.2(tag)· 零误并闸门 / v1.0(tag)· 轻量独立(568M);
  • v2.2(tag):覆盖极致 96.7%;v2.1/v2.0:历史档案。

对照参考:教师(商业判定 API,闭源)0.998 / ECE 0.062;通用 embedding-8B 0.977 但 ECE 0.563(分数不可当概率用)。

v2.5 训练方法

  • 基座(历代相同):Qwen/Qwen3-Reranker-4B
    • LoRA(r=32) + 权重合并发布
  • 长文数据(本版核心):12,015 对长文事件对——4 类配对(长文×长文同事件 / 长文×长文 微差硬负 / 长文×簇卡正 / 负)× 3 长度档(400/900/1800 字/侧),虚构事件覆盖 79 类 事件类型(体育/文娱/科技/社会/国际/民生全谱系),关键事实在文中位置随机埋点(考验 事件中心性而非头部启发式),微差负例=同主体同对象同动作词仅阶段不同(计划/宣布 vs 已完成),GLM 边界规则判官过滤(不一致即弃)
  • 其余数据:v2.4 全量(精化标签 37k + 四象限 + 合成 12k + 边界 9.2k + hardneg 8.4k)
  • 协议升级:训练 max_len 1152→2048(batch 2 + 梯度检查点,24G 单卡 55k 步 ~9h)
  • 温度后校准:T=0.7324

v2.5 基准结果

层nAUROCECE
OVERALL10000.98590.055
灰带(最难)3000.9824—
pos(措辞多样同事件)3000.9503(纪录)—
长文 held-out(全新种子)2218—acc 0.9977

版本说明

公开版本号与内部迭代代号解耦:v1.0=v8 / v1.1=v9 / v1.2=v10a / v2.0=v15_4b_merged / v2.1=v23b / v2.2=v24b / v2.3=v26 / v2.4=v29 / v2.5=v32_4b_merged。MAJOR 位 = 换基模或代际跃升;MINOR 位 = 同基模数据/配方升级。v2.5 的方法论遗产:长文数据同时 提升了短对金标(v29→v31 的"以金标换生产"滑坡被逆转)——跨长度档的数据是天然正则化器。

局限(如实)

  • 漏并 1.7%(v2.3 为 0%):真灰带的同事件对会落到低分带——漏并零容忍用 v2.3;
  • 覆盖 92.9%(v2.3 95.4%):更多同事件对落入中分带而非 ≥0.9;
  • 输入协议分长度:短句对用 200 字截断(训练分布),长文对全文——混用会各损失数个点;
  • 域偏移:虽已拓到 79 类事件类型,训练语料仍为虚构合成事件+企业新闻域;
  • 4B 权重 8GB(CPU 不可用);长文推理延迟约为短对的 3-6 倍。

引用

@misc{eventtwin-2026,
  title  = {EventTwin: A Calibrated Chinese Cross-Encoder Family for Same-Event Judgment},
  author = {Ma, Yiding},
  year   = {2026},
  url    = {https://huggingface.co/MaYiding/EventTwin},
  note   = {v2.0: Qwen3-Reranker-4B + distillation + multi-register synthesis; data: MaYiding/EventTwin-Data}
}

许可

Apache 2.0(基座 Qwen3-Reranker-4B 与 bge-reranker-v2-m3 均为 Apache 2.0)。 训练与评测数据在 EventTwin-Data(CC BY-NC 4.0)。

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
Qwen3ForCausalLM
Ревизия весов
e8b2460

0 моделей