/ Модель

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

Контекст
514 токенов
Параметры
305 млн
Лицензия
Apache 2.0
Архитектура
xlm-roberta · dense
Опубликована
27 янв 2024

multilingual-e5-language-detection

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

Многоязычный классификатор на основе multilingual-e5-base, определяющий язык текста среди 45 вариантов.

500скачиваний за 30 дней13лайковвеса обновлены27 янв 2024

Бенчмарки

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

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

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

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

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

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

Mike0307/multilingual-e5-language-detection — модель классификации текста для определения языка. Она разработана на основе multilingual-e5-base и дообучена на наборе данных common_language; архитектура — XLM-RoBERTa для классификации последовательностей, размер — 305,2 млн параметров. Модель поддерживает определение 45 языков и принимает текст длиной до 514 токенов.

Модель подходит для автоматической разметки языка коротких сообщений и документов, маршрутизации текста по языковым конвейерам и предварительной фильтрации многоязычных корпусов. В README заявлена общая точность 98,37% на тестовой части common_language; результаты зависят от данных и условий оценки. Распространяется по лицензии Apache-2.0.

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

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

Ограничения

Заявленная точность 98,37% получена на тестовом наборе common_language и не гарантирует такие же результаты на других данных. Ограничена 45 языками и контекстом до 514 токенов.

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

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

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

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

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

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

Открыть на Hugging Face

Overview

This model supports the detection of 45 languages, and it's fine-tuned using multilingual-e5-base model on the common-language dataset. The overall accuracy is 98.37%, and more evaluation results are shown the below.

Download the model

from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained('Mike0307/multilingual-e5-language-detection')
model = AutoModelForSequenceClassification.from_pretrained('Mike0307/multilingual-e5-language-detection', num_labels=45)

Example of language detection

import torch

languages = [
    "Arabic", "Basque", "Breton", "Catalan", "Chinese_China", "Chinese_Hongkong", 
    "Chinese_Taiwan", "Chuvash", "Czech", "Dhivehi", "Dutch", "English", 
    "Esperanto", "Estonian", "French", "Frisian", "Georgian", "German", "Greek", 
    "Hakha_Chin", "Indonesian", "Interlingua", "Italian", "Japanese", "Kabyle", 
    "Kinyarwanda", "Kyrgyz", "Latvian", "Maltese", "Mongolian", "Persian", "Polish", 
    "Portuguese", "Romanian", "Romansh_Sursilvan", "Russian", "Sakha", "Slovenian", 
    "Spanish", "Swedish", "Tamil", "Tatar", "Turkish", "Ukranian", "Welsh"
]

def predict(text, model, tokenizer, device = torch.device('cpu')):
    model.to(device)
    model.eval()
    tokenized = tokenizer(text, padding='max_length', truncation=True, max_length=128, return_tensors="pt")
    input_ids = tokenized['input_ids']
    attention_mask = tokenized['attention_mask']
    with torch.no_grad():
        input_ids = input_ids.to(device)
        attention_mask = attention_mask.to(device)
        outputs = model(input_ids=input_ids, attention_mask=attention_mask)
    logits = outputs.logits
    probabilities = torch.nn.functional.softmax(logits, dim=1)
    return probabilities

def get_topk(probabilities, languages, k=3):
    topk_prob, topk_indices = torch.topk(probabilities, k)
    topk_prob = topk_prob.cpu().numpy()[0].tolist()
    topk_indices = topk_indices.cpu().numpy()[0].tolist()
    topk_labels = [languages[index] for index in topk_indices]
    return topk_prob, topk_labels

text = "你的測試句子"
probabilities = predict(text, model, tokenizer)
topk_prob, topk_labels = get_topk(probabilities, languages)
print(topk_prob, topk_labels)

# [0.999620258808, 0.00025940246996469, 2.7690215574693e-05]
# ['Chinese_Taiwan', 'Chinese_Hongkong', 'Chinese_China']

Evaluation Results

The test datasets refers to the common_language test datasets.

indexlanguageprecisionrecallf1-scoresupport
0Arabic1.001.001.00151
1Basque0.991.001.00111
2Breton1.000.900.95252
3Catalan0.960.990.9796
4Chinese_China0.981.000.99100
5Chinese_Hongkong0.970.870.92115
6Chinese_Taiwan0.920.980.95170
7Chuvash0.981.000.99137
8Czech0.981.000.99128
9Dhivehi1.001.001.00111
10Dutch0.991.000.99144
11English0.961.000.9898
12Esperanto0.980.980.98107
13Estonian1.000.990.9993
14French0.951.000.98106
15Frisian1.000.980.99117
16Georgian1.001.001.00110
17German1.001.001.00101
18Greek1.001.001.00153
19Hakha_Chin0.991.000.99202
20Indonesian0.990.990.99150
21Interlingua0.960.970.96182
22Italian0.990.940.96100
23Japanese1.001.001.00144
24Kabyle1.000.960.98156
25Kinyarwanda0.971.000.99103
26Kyrgyz0.981.000.99129
27Latvian0.980.980.98171
28Maltese0.990.980.98152
29Mongolian1.001.001.00112
30Persian1.001.001.00123
31Polish0.910.990.95128
32Portuguese0.940.990.96124
33Romanian1.001.001.00152
34Romansh_Sursilvan0.990.950.97106
35Russian0.990.990.99100
36Sakha0.991.001.00105
37Slovenian0.991.001.00166
38Spanish0.960.950.9594
39Swedish0.991.000.99190
40Tamil1.001.001.00135
41Tatar1.000.960.98173
42Turkish1.001.001.00137
43Ukranian0.991.001.00126
44Welsh0.981.000.99103
macro avg0.980.990.985963
weighted avg0.980.980.985963
overall accuracy0.98375963

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей