/ Модель

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

Контекст
514 токенов
Параметры
659 млн
Лицензия
MIT
Архитектура
xlm-roberta · dense
Опубликована
2 мар 2022

xlm-roberta-large-xnli

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

Мультиязычная модель XLM-RoBERTa Large для zero-shot-классификации текстов по заданным пользователем категориям.

2 млнскачиваний за 30 дней298лайковвеса обновлены16 окт 2024

Бенчмарки

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

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

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

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

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

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

joeddav/xlm-roberta-large-xnli — мультиязычная модель классификации текста, разработанная на основе XLM-RoBERTa Large и дообученная на данных для вывода по тексту (NLI), включая MNLI и XNLI. Она предназначена прежде всего для zero-shot-классификации: пользователь задаёт текст и набор меток, а модель оценивает соответствие текста каждой метке без отдельного обучения на этих категориях.

Модель содержит около 658,7 млн параметров, использует архитектуру XLM-RoBERTa для классификации последовательностей и принимает текст с контекстным окном до 514 токенов. Она рассчитана на работу на 15 языках XNLI: английском, французском, испанском, немецком, греческом, болгарском, русском, турецком, арабском, вьетнамском, тайском, китайском, хинди, суахили и урду. Можно задавать метки на одном языке, а классифицируемый текст подавать на другом.

Подходит для тематической разметки, маршрутизации обращений и других задач классификации с пользовательскими категориями, особенно в мультиязычных сценариях. Для классификации только на английском в карточке рекомендованы модели семейства BART MNLI. Модель распространяется по лицензии MIT.

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

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

Ограничения

Для классификации только на английском карточка рекомендует модели BART MNLI. Для языков за пределами 15 языков XNLI модель может работать, но такая применимость описана как потенциальная эффективность, а не как основное назначение.

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

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

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

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

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

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

Открыть на Hugging Face

xlm-roberta-large-xnli

Model Description

This model takes xlm-roberta-large and fine-tunes it on a combination of NLI data in 15 languages. It is intended to be used for zero-shot text classification, such as with the Hugging Face ZeroShotClassificationPipeline.

Intended Usage

This model is intended to be used for zero-shot text classification, especially in languages other than English. It is fine-tuned on XNLI, which is a multilingual NLI dataset. The model can therefore be used with any of the languages in the XNLI corpus:

  • English
  • French
  • Spanish
  • German
  • Greek
  • Bulgarian
  • Russian
  • Turkish
  • Arabic
  • Vietnamese
  • Thai
  • Chinese
  • Hindi
  • Swahili
  • Urdu

Since the base model was pre-trained trained on 100 different languages, the model has shown some effectiveness in languages beyond those listed above as well. See the full list of pre-trained languages in appendix A of the XLM Roberata paper

For English-only classification, it is recommended to use bart-large-mnli or a distilled bart MNLI model.

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="joeddav/xlm-roberta-large-xnli")

You can then classify in any of the above languages. You can even pass the labels in one language and the sequence to classify in another:

# we will classify the Russian translation of, "Who are you voting for in 2020?"
sequence_to_classify = "За кого вы голосуете в 2020 году?"
# we can specify candidate labels in Russian or any other language above:
candidate_labels = ["Europe", "public health", "politics"]
classifier(sequence_to_classify, candidate_labels)
# {'labels': ['politics', 'Europe', 'public health'],
#  'scores': [0.9048484563827515, 0.05722189322113991, 0.03792969882488251],
#  'sequence': 'За кого вы голосуете в 2020 году?'}

The default hypothesis template is the English, This text is {}. If you are working strictly within one language, it may be worthwhile to translate this to the language you are working with:

sequence_to_classify = "¿A quién vas a votar en 2020?"
candidate_labels = ["Europa", "salud pública", "política"]
hypothesis_template = "Este ejemplo es {}."
classifier(sequence_to_classify, candidate_labels, hypothesis_template=hypothesis_template)
# {'labels': ['política', 'Europa', 'salud pública'],
#  'scores': [0.9109585881233215, 0.05954807624220848, 0.029493311420083046],
#  'sequence': '¿A quién vas a votar en 2020?'}

With manual PyTorch

# pose sequence as a NLI premise and label as a hypothesis
from transformers import AutoModelForSequenceClassification, AutoTokenizer
nli_model = AutoModelForSequenceClassification.from_pretrained('joeddav/xlm-roberta-large-xnli')
tokenizer = AutoTokenizer.from_pretrained('joeddav/xlm-roberta-large-xnli')

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]

Training

This model was pre-trained on set of 100 languages, as described in the original paper. It was then fine-tuned on the task of NLI on the concatenated MNLI train set and the XNLI validation and test sets. Finally, it was trained for one additional epoch on only XNLI data where the translations for the premise and hypothesis are shuffled such that the premise and hypothesis for each example come from the same original English example but the premise and hypothesis are of different languages.

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей