/ Модель

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

Контекст
512 токенов
Параметры
12 млн
Архитектура
bert · dense
Опубликована
2 мар 2022

bert-multitask-query-classifiers

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

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

30скачиваний за 30 дней10лайковвеса обновлены9 ноя 2023

Бенчмарки

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

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

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

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

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

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

shahrukhx01/bert-multitask-query-classifiers — модель на основе BERT с двумя классификационными головами для определения типа коротких текстовых фрагментов. Одна голова различает предложения с ключевыми словами и утверждения или вопросы, другая — утверждения и вопросы. Модель содержит около 12 млн параметров, принимает текст и поддерживает контекст до 512 токенов.

Модель предназначена для классификации запросов и предложений, например для разделения ключевых фраз, утверждений и вопросов. В карточке указаны наборы Quora Keyword Pairs и Spaadia SQuaD pairs. Она опубликована в форматах PyTorch и Safetensors; лицензия в предоставленных данных не указана.

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

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

Ограничения

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

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

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

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

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

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

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

Открыть на Hugging Face

A Multi-task learning model with two prediction heads

  • One prediction head classifies between keyword sentences vs statements/questions
  • Other prediction head corresponds to classifier for statements vs questions

Scores

Spaadia SQuaD Test acc: 0.9891
Quora Keyword Pairs Test acc: 0.98048

Datasets:

Quora Keyword Pairs: https://www.kaggle.com/stefanondisponibile/quora-question-keyword-pairs Spaadia SQuaD pairs: https://www.kaggle.com/shahrukhkhan/questions-vs-statementsclassificationdataset

Article

Medium article

Demo Notebook

Colab Notebook Multi-task Query classifiers

Clone the model repo

git clone https://huggingface.co/shahrukhx01/bert-multitask-query-classifiers
%cd bert-multitask-query-classifiers/

Load model

from multitask_model import BertForSequenceClassification
from transformers import AutoTokenizer
import torch
model = BertForSequenceClassification.from_pretrained(
        "shahrukhx01/bert-multitask-query-classifiers",
        task_labels_map={"quora_keyword_pairs": 2, "spaadia_squad_pairs": 2},
    )
tokenizer = AutoTokenizer.from_pretrained("shahrukhx01/bert-multitask-query-classifiers")

Run inference on both Tasks

from multitask_model import BertForSequenceClassification
from transformers import AutoTokenizer
import torch
model = BertForSequenceClassification.from_pretrained(
        "shahrukhx01/bert-multitask-query-classifiers",
        task_labels_map={"quora_keyword_pairs": 2, "spaadia_squad_pairs": 2},
    )
tokenizer = AutoTokenizer.from_pretrained("shahrukhx01/bert-multitask-query-classifiers")

## Keyword vs Statement/Question Classifier
input = ["keyword query", "is this a keyword query?"]
task_name="quora_keyword_pairs"
sequence = tokenizer(input, padding=True, return_tensors="pt")['input_ids']
logits = model(sequence, task_name=task_name)[0]
predictions = torch.argmax(torch.softmax(logits, dim=1).detach().cpu(), axis=1)
for input, prediction in zip(input, predictions):
  print(f"task: {task_name}, input: {input} \n prediction=> {prediction}")
  print()
  

## Statement vs Question Classifier
input = ["where is berlin?", "is this a keyword query?", "Berlin is in Germany."]
task_name="spaadia_squad_pairs"
sequence = tokenizer(input, padding=True, return_tensors="pt")['input_ids']
logits = model(sequence, task_name=task_name)[0]
predictions = torch.argmax(torch.softmax(logits, dim=1).detach().cpu(), axis=1)
for input, prediction in zip(input, predictions):
  print(f"task: {task_name}, input: {input} \n prediction=> {prediction}")
  print()

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
BertForSequenceClassification
Ревизия весов
1215cf3

0 моделей