/ Модель

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

Контекст
1 024 токена
Параметры
253 млн
Лицензия
MIT
Архитектура
bart · dense
Опубликована
10 окт 2024

bart-large-mnli

Классификация текстаТекст → label10 профессий

Производная модели facebook/bart-large-mnli. BART-large, дообученная на MultiNLI, классифицирует тексты по заданным пользователем меткам без отдельного обучения на этих классах.

64скачиваний за 30 дней0лайковвеса обновлены10 окт 2024

Бенчмарки

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

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

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

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

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

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

Карточка модели katanemo/bart-large-mnli на Hugging Face совпадает с карточкой facebook/bart-large-mnli, поэтому описание составлено по ней.

facebook/bart-large-mnli — контрольная точка BART-large от Facebook, дообученная на датасете MultiNLI для распознавания отношений логического следования между текстами. Модель применяют для классификации без заранее заданного набора классов: исходный текст рассматривается как предпосылка, а для каждой кандидатной метки формируется гипотеза, например «Этот текст о политике». Вероятности следования и противоречия преобразуются в оценки меток.

Модель подходит для тематической классификации, маршрутизации текстов по пользовательским категориям и других задач, где нужно оценить соответствие текста произвольным меткам. Архитектура — BART-large с классификатором последовательностей, размер — 252,8 млн параметров, контекст — до 1024 токенов. Репозиторий содержит варианты PyTorch, Flax и Safetensors. Лицензия — MIT.

Качество зависит от формулировки кандидатных меток и гипотез, а также от того, насколько задача соответствует обучению на MNLI; оценки модели не гарантируют правильную классификацию. Для нескольких одновременно верных меток предусмотрен режим независимой оценки каждого класса.

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

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

Ограничения

Результаты чувствительны к формулировкам меток и гипотез, а перенос на задачи, отличающиеся от обучения на MNLI, может быть менее надёжным. Максимальная длина контекста составляет 1024 токена.

Для каких профессий подходит10

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

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

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

Открыть на Hugging Face

bart-large-mnli

This is the checkpoint for bart-large after being trained on the MultiNLI (MNLI) dataset.

Additional information about this model:

NLI-based Zero Shot Text Classification

Yin et al. proposed a method for using pre-trained NLI models as a ready-made zero-shot sequence classifiers. The method works by posing the sequence to be classified as the NLI premise and to construct a hypothesis from each candidate label. For example, if we want to evaluate whether a sequence belongs to the class "politics", we could construct a hypothesis of This text is about politics.. The probabilities for entailment and contradiction are then converted to label probabilities.

This method is surprisingly effective in many cases, particularly when used with larger pre-trained models like BART and Roberta. See this blog post for a more expansive introduction to this and other zero shot methods, and see the code snippets below for examples of using this model for zero-shot classification both with Hugging Face's built-in pipeline and with native Transformers/PyTorch code.

With the zero-shot classification pipeline

The model can be loaded with the zero-shot-classification pipeline like so:

from transformers import pipeline
classifier = pipeline("zero-shot-classification",
                      model="facebook/bart-large-mnli")

You can then use this pipeline to classify sequences into any of the class names you specify.

sequence_to_classify = "one day I will see the world"
candidate_labels = ['travel', 'cooking', 'dancing']
classifier(sequence_to_classify, candidate_labels)
#{'labels': ['travel', 'dancing', 'cooking'],
# 'scores': [0.9938651323318481, 0.0032737774308770895, 0.002861034357920289],
# 'sequence': 'one day I will see the world'}

If more than one candidate label can be correct, pass multi_label=True to calculate each class independently:

candidate_labels = ['travel', 'cooking', 'dancing', 'exploration']
classifier(sequence_to_classify, candidate_labels, multi_label=True)
#{'labels': ['travel', 'exploration', 'dancing', 'cooking'],
# 'scores': [0.9945111274719238,
#  0.9383890628814697,
#  0.0057061901316046715,
#  0.0018193122232332826],
# 'sequence': 'one day I will see the world'}

With manual PyTorch

# pose sequence as a NLI premise and label as a hypothesis
from transformers import AutoModelForSequenceClassification, AutoTokenizer
nli_model = AutoModelForSequenceClassification.from_pretrained('facebook/bart-large-mnli')
tokenizer = AutoTokenizer.from_pretrained('facebook/bart-large-mnli')

premise = sequence
hypothesis = f'This example is {label}.'

# run through model pre-trained on MNLI
x = tokenizer.encode(premise, hypothesis, return_tensors='pt',
                     truncation_strategy='only_first')
logits = nli_model(x.to(device))[0]

# we throw away "neutral" (dim 1) and take the probability of
# "entailment" (2) as the probability of the label being true 
entail_contradiction_logits = logits[:,[0,2]]
probs = entail_contradiction_logits.softmax(dim=1)
prob_label_is_true = probs[:,1]

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

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

GPU в ailist

Универсальный рантайм · text-classification

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

Подбираем GPU…

Класс архитектуры
BartForSequenceClassification
Ревизия весов
77fa764

0 моделей