/ Модель

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

Контекст
8 192 токена
Параметры
377 млн
Лицензия
Apache 2.0
Архитектура
ultrabert · dense
Базовая модель
UltraBERT-380M
Библиотека
sentence-transformers
Опубликована
16 окт 2026

finecat-nli-ultra-l

Заполнение пропусковТекст → текст

Англоязычный кросс-энкодер для классификации отношений между текстом и утверждением, включая zero-shot-тегирование и проверку обоснованности ответов.

81скачиваний за 30 дней1лайквеса обновлены17 окт 2026

Бенчмарки

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

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

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

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

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

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

dleemiller/finecat-nli-ultra-l — дообученный на FineCat-NLI англоязычный кросс-энкодер для вывода по паре «текст — утверждение». Модель оценивает, следует ли утверждение из текста, противоречит ему или остаётся нейтральным; вероятности классов можно использовать для классификации без примеров, содержащих размеченные категории.

Модель построена на UltraBERT-380M, имеет 377,5 млн параметров и опубликована в формате safetensors для библиотеки Sentence Transformers. В README описаны применение для тематической классификации, маршрутизации запросов, проверки ответов по найденным фрагментам и модерации. В приведённых оценках она показывает среднюю точность 0,8234 на наборе из 45 датасетов; результаты зависят от задачи и не гарантируют корректность отдельных предсказаний.

Карточка указывает английский язык и лицензию Apache-2.0. Модель менее пригодна для проверки финансовых и общих юридических утверждений, а также для рассуждений о пресуппозициях; README также приводит ограничения контекста оценки для некоторых сравнительных моделей, но не устанавливает отдельное значение контекстного окна этой модели.

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

  • классификация тем по тексту и набору утверждений
  • маршрутизация запросов пользователей по намерению
  • проверка ответов по найденным фрагментам в RAG
  • сопоставление текста с правилами модерации
  • классификация вариантов ответа по отношению к исходному тексту

Ограничения

В README отмечена меньшая пригодность для финансовой и общей юридической проверки, а также для рассуждений о пресуппозициях. Оценки на наборах данных не гарантируют точность для конкретного текста или предметной области.

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

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

Открыть на Hugging Face

FineCat-NLI Ultra Large

Natural Language Inference (NLI): the Swiss Army knife of encoders

Provide a text (premise) and statement (hypothesis), and it returns calibrated probabilities that the text entails, contradicts, or is neutral to the statement. A multiple-choice question is one statement per option.

Examples

UseText → statementResult
Routing / triagerequest → "The user wants to set an alarm."97.3% (MASSIVE intents)
RAG groundingretrieved passages → generated answer0.82 F1 (RAGTruth)
Guardrails / Moderationmessage → policy statement92.0% (CrossingGuard), 94.0% (Wikipedia insults)
Zero-shot classification / taggingreview → "This review is positive."92.8% (18 tasks)
Clinical extractionclinical note → "The patient is unemployed."98.2% (SDOH-NLI)

380M parameters · documents up to 32k tokens · ~625 pairs/s · Apache-2.0

from sentence_transformers import CrossEncoder

model = CrossEncoder("dleemiller/finecat-nli-ultra-l", trust_remote_code=True)
text = "My card was charged twice for the same order."
labels = ["billing", "shipping", "account access"]
probs = model.predict([(text, f"This text is about {l}.") for l in labels], apply_softmax=True)
print({l: round(float(p[0]), 3) for l, p in zip(labels, probs)})  # p[0] = P(entailment)
# {'billing': 0.88, 'shipping': 0.13, 'account access': 0.04}

More in Recommended Applications and the 45-dataset evaluation.


Table of Contents


NLI Evaluation Results

F1-Micro scores (equivalent to accuracy) for each dataset. Performance was measured at bs=32 using a Nvidia Blackwell PRO 6000 Max-Q.

Modelfinecat45-set avgmnlimnli_mismatchedsnlianli_r1anli_r2anli_r3wanlilingnliThroughput (samples/s)Peak GPU Mem (MB)
dleemiller/finecat-nli-v2-xl0.84450.82820.92020.91910.93560.78600.66000.60670.77100.8834254.424649.37
dleemiller/finecat-nli-ultra-l0.83880.82340.91270.91310.93030.79100.64000.58330.76940.8714624.671857.54
dleemiller/finecat-nli-v2-l0.83590.82040.91650.91270.93280.77400.60200.57330.76740.8776636.711982.06
MoritzLaurer/DeBERTa-v3-large-mnli-fever-anli-ling-wanli0.82330.68210.91210.90790.88980.79600.68300.64000.77000.8821454.963250.44
dleemiller/finecat-nli-l0.82270.73720.91520.92650.91620.74800.57000.54330.77060.8742539.041838.06
tasksource/ModernBERT-large-nli0.79590.73220.89830.92290.91880.72600.51100.49250.69780.8504543.441838.06
dleemiller/ModernCE-large-nli0.78110.68770.90880.92050.92730.66300.48600.44080.65760.8566540.741838.06
cross-encoder/nli-deberta-v3-large0.76180.59800.90190.90490.92200.53000.41700.37580.65480.8466448.353250.44

45-set avg: macro accuracy over the 45 datasets, each model at its own maximum context (512 tokens for the DeBERTa models).


Usage

Label Map:

  • entailment: 0
  • neutral: 1
  • contradiction: 2

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

pip install -U sentence-transformers "transformers>=5"

Then you can load the model and run inference. UltraBERT uses custom model code, so pass trust_remote_code=True.

from sentence_transformers import CrossEncoder
import numpy as np

model = CrossEncoder("dleemiller/finecat-nli-ultra-l", trust_remote_code=True)
id2label = model.model.config.id2label  # {0:'entailment', 1:'neutral', 2:'contradiction'}

pairs = [
    ("The glass fell off the counter and shattered on the tile.",
     "The glass broke when it hit the floor."),          # E
    ("The store opens at 9 a.m. every day.",
     "The store opens at 7 a.m. on weekdays."),          # C
    ("A researcher presented results at the conference.",
     "The presentation won the best paper award."),       # N
    ("It started raining heavily, so the match was postponed.",
     "The game was delayed due to weather."),             # E
    ("Every seat on the flight was taken.",
     "There were several empty seats on the plane."),     # C
]

logits = model.predict(pairs)  # shape: (5, 3)

for (prem, hyp), row in zip(pairs, logits):
    pred_idx = int(np.argmax(row))
    pred = id2label[pred_idx]
    print(f"[{pred}]  Premise: {prem}  |  Hypothesis: {hyp}")


Recommended Applications

Frame each check as a premise (text) and hypothesis (statement), and use the entailment probability.

ApplicationExample hypothesisSupporting results
Zero-shot tagging / topic classification"This text is about billing."zs_meta, fin_topics
Routing and decisions in agent pipelines"The user wants to cancel an order."zs_meta, mnli, snli
RAG grounding / hallucination checksEach answer sentence vs. retrieved passagesragtruth, wice, vitaminc
Contract and policy review"The agreement permits sharing data with third parties."contractnli_a/b, control, docnli
Biomedical and health claim checkingClaim vs. abstract, clinical note or trial eligibility criteriasdoh_nli, biosift, bionli, scifact, pubhealth, nli4ct
Logical / rule-based reasoning over documents"Under these rules, the applicant qualifies."fol, control
Dialogue fact-checkingAssistant reply vs. knowledge sourcedialfact, vitaminc
Guardrails / policy matchingPolicy statement vs. user or model textcrossingguard
Stance detection"The author supports the proposal."vast

Less suited: financial and general legal verification (findver, legal_domain), and presupposition reasoning (nope_adv).


Extended Evaluation (45 datasets)

Accuracy on the test splits of 45 NLI and adjacent datasets. 2-way datasets (entailed vs. not) are scored as entailment vs. any non-entailment prediction. DocNLI and VitaminC are evaluated on fixed random subsets of 1,000 and 10,000 pairs. FRANK (news-summary factuality) is scored per summary sentence: each sentence vs. its source article, labelled by the majority annotator judgment.

Datasetnfinecat-nli-ultra-l27B teacher (fast mode)
finecat180120.83870.8656
mnli98150.91270.9311
mnli_mismatched98300.91330.9305
snli98240.93030.9399
anli_r110000.79100.8630
anli_r210000.64000.7490
anli_r312000.58080.7100
wanli50000.76940.7796
lingnli73610.87090.8958
glue_diagnostic11000.74730.8118
med53800.79390.8039
nan_nli2580.72090.7403
scone_test10001.00000.9980
nmonli_test2001.00001.0000
conjnli6230.74640.7335
nope_adv3450.51590.5768
nli4ct1990.79900.8693
sdoh_nli9900.98180.9848
healthver2300.77390.7565
scifact3000.86670.8433
biosift10000.92800.9210
scientsbank9710.74560.7683
beetle8190.61170.6325
legal_domain11630.54940.6389
findver5000.65000.7660
dialfact14990.83120.8586
frank_sent31760.75540.8234
ragtruth14970.84300.8691
vast15000.78000.8053
zs_meta54000.92780.9344
seahorse8000.85000.8638
pubhealth6000.83830.8650
bionli6000.89830.9333
fin_topics6000.96830.9633
vitaminc100000.89050.9351
docnli10000.8350—
contractnli_a17070.93200.9285
contractnli_b20740.89540.9021
control8000.73380.8087
fol102770.85620.8430
scitail21260.96330.9652
wice9580.87160.9144
sick49060.93110.9213
crossingguard53970.91980.9344
hans150000.85510.9209

Macro average over the 45 datasets: 0.8234.

Training Details

This model is a fine-tune of dmis-lab/UltraBERT-380M, trained on the dleemiller/FineCat-NLI-Reason dataset, a compilation of several high-quality NLI data sources with quality screening and reduction of easy samples in the training split. Also includes additional NLI, fact verification and long document sources (2.05M pairs in total). The training uses logit distillation from an NLI finetune of Qwen3.8-27B.

Distillation loss looks like this: $$ \begin{equation} \mathcal{L} = \alpha \cdot \mathcal{L}_{\text{CE}}(z^{(s)}, y) + \beta \cdot T^2 \cdot \mathrm{KL}\left(\sigma(z^{(t)}/T) ,|, \sigma(z^{(s)}/T)\right) \end{equation} $$

where \(z^{(s)}\) and \(z^{(t)}\) are the student and teacher logits, \(y\) are the ground truth labels, \(\alpha = 0.2\), \(\beta = 0.8\) and \(T = 1\).

Training inputs keep the full documents the teacher labelled (up to 8k tokens). The model was trained for 3 epochs at a constant learning rate followed by a 1-epoch cooldown. The released weights are an average of the final weights and an earlier exponential-moving-average checkpoint, with the output temperature calibrated on the validation split. UltraBERT is fine-tuned with its native classification head (first-token pooling) and the UltraBERT authors' optimizer settings (weight decay 0.1, 5% warmup), at a learning rate of 1.5e-5.


Acknowledgments

We thank the creators and contributors of dmis-lab (UltraBERT) and the Qwen team for making their work available. This model would not be possible without their efforts and open source contributions.

Citation

@misc{nli-compiled-2025,
  title = {FineCat NLI Dataset},
  author = {Lee Miller},
  year = {2025},
  howpublished = {Refined compilation of 6 major NLI datasets}
}

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

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

GPU в ailist

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

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Класс архитектуры
UltrabertForSequenceClassification
Ревизия весов
8e04491

0 моделей