/ Модель

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

Контекст
512 токенов
Параметры
3,3 млрд
Лицензия
MIT
Архитектура
albert · dense
Опубликована
19 мая 2023

zero-shot-classify-SSTuning-ALBERT

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

Модель на базе ALBERT для классификации текстов по заданным меткам без дообучения, например для определения тональности и тематики.

52скачиваний за 30 дней5лайковвеса обновлены28 мая 2023

Бенчмарки

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

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

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

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

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

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

DAMO-NLP-SG/zero-shot-classify-SSTuning-ALBERT — модель для классификации текста без дообучения на конкретных классах, разработанная авторами работы Zero-Shot Text Classification via Self-Supervised Tuning и впервые опубликованная в этом репозитории. Она основана на albert-xxlarge-v2 и обучена методом self-supervised tuning: на неразмеченных данных модель осваивает задачу First Sentence Prediction, связанную с форматом классификации.

Модель предназначена для классификации по заданным пользователем меткам, например для анализа тональности и определения тематики. Вариант ALBERT содержит 235 млн параметров по README; метаданные каталога указывают 3,3 млрд параметров. При использовании рекомендуется задавать от 2 до 20 меток. Контекст составляет до 512 токенов. Модель принимает текст и выдаёт оценки классов; она работает медленнее вариантов SSTuning на RoBERTa-base и RoBERTa-large, но в сравнении авторов показывает более высокую точность.

Лицензия — MIT. Количественные показатели производительности зависят от данных и сценария; в README приведено только качественное сравнение вариантов.

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

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

Ограничения

Рекомендуется использовать от 2 до 20 меток; модель работает медленнее вариантов SSTuning на RoBERTa-base и RoBERTa-large. В README не указаны поддерживаемые языки.

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

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

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

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

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

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

Открыть на Hugging Face

Zero-shot text classification (model based on albert-xxlarge-v2) trained with self-supervised tuning

Zero-shot text classification model trained with self-supervised tuning (SSTuning). It was introduced in the paper Zero-Shot Text Classification via Self-Supervised Tuning by Chaoqun Liu, Wenxuan Zhang, Guizhen Chen, Xiaobao Wu, Anh Tuan Luu, Chip Hong Chang, Lidong Bing and first released in this repository.

The model backbone is albert-xxlarge-v2.

Model description

The model is tuned with unlabeled data using a learning objective called first sentence prediction (FSP). The FSP task is designed by considering both the nature of the unlabeled corpus and the input/output format of classification tasks. The training and validation sets are constructed from the unlabeled corpus using FSP.

During tuning, BERT-like pre-trained masked language models such as RoBERTa and ALBERT are employed as the backbone, and an output layer for classification is added. The learning objective for FSP is to predict the index of the correct label. A cross-entropy loss is used for tuning the model.

Model variations

There are three versions of models released. The details are:

ModelBackbone#paramsaccuracySpeed#Training data
zero-shot-classify-SSTuning-baseroberta-base125MLowHigh20.48M
zero-shot-classify-SSTuning-largeroberta-large355MMediumMedium5.12M
zero-shot-classify-SSTuning-ALBERTalbert-xxlarge-v2235MHighLow5.12M

Please note that zero-shot-classify-SSTuning-base is trained with more data (20.48M) than the paper, as this will increase the accuracy.

Intended uses & limitations

The model can be used for zero-shot text classification such as sentiment analysis and topic classification. No further finetuning is needed.

The number of labels should be 2 ~ 20.

How to use

You can try the model with the Colab Notebook.

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch, string, random

tokenizer = AutoTokenizer.from_pretrained("albert-xxlarge-v2")
model = AutoModelForSequenceClassification.from_pretrained("DAMO-NLP-SG/zero-shot-classify-SSTuning-ALBERT")

text = "I love this place! The food is always so fresh and delicious."
list_label = ["negative", "positive"]

device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu')
list_ABC = [x for x in string.ascii_uppercase]

def check_text(model, text, list_label, shuffle=False): 
    list_label = [x+'.' if x[-1] != '.' else x for x in list_label]
    list_label_new = list_label + [tokenizer.pad_token]* (20 - len(list_label))
    if shuffle: 
        random.shuffle(list_label_new)
    s_option = ' '.join(['('+list_ABC[i]+') '+list_label_new[i] for i in range(len(list_label_new))])
    text = f'{s_option} {tokenizer.sep_token} {text}'

    model.to(device).eval()
    encoding = tokenizer([text],truncation=True, max_length=512,return_tensors='pt')
    item = {key: val.to(device) for key, val in encoding.items()}
    logits = model(**item).logits
    
    logits = logits if shuffle else logits[:,0:len(list_label)]
    probs = torch.nn.functional.softmax(logits, dim = -1).tolist()
    predictions = torch.argmax(logits, dim=-1).item() 
    probabilities = [round(x,5) for x in probs[0]]

    print(f'prediction:    {predictions} => ({list_ABC[predictions]}) {list_label_new[predictions]}')
    print(f'probability:   {round(probabilities[predictions]*100,2)}%')

check_text(model, text, list_label)
# prediction:    1 => (B) positive.
# probability:   98.64%

BibTeX entry and citation info

@inproceedings{acl23/SSTuning,
  author    = {Chaoqun Liu and
               Wenxuan Zhang and
               Guizhen Chen and
               Xiaobao Wu and
               Anh Tuan Luu and
               Chip Hong Chang and 
               Lidong Bing},
  title     = {Zero-Shot Text Classification via Self-Supervised Tuning},
  booktitle = {Findings of the Association for Computational Linguistics: ACL 2023},
  year      = {2023},
  url       = {https://arxiv.org/abs/2305.11442},
}

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей