/ Модель

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

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

roberta-base-nli-stsb-bg

Сходство предложенийТекст → score7 профессий

Модель XLM-RoBERTa строит эмбеддинги болгарских предложений для поиска и оценки их смыслового сходства.

119скачиваний за 30 дней2лайкавеса обновлены18 апр 2022

Бенчмарки

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

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

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

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

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

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

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

rmihaylov/roberta-base-nli-stsb-bg — многоязычная модель на архитектуре XLM-RoBERTa для построения эмбеддингов предложений на болгарском языке. Разработчик обучил её на закрытых параллельных данных на болгарском и английском языках, используя подход Sentence-BERT: переводы одного предложения должны располагаться близко друг к другу в векторном пространстве. Модель чувствительна к регистру.

Модель предназначена для оценки сходства предложений и задач, где требуется сопоставлять болгарские тексты по смыслу. Она содержит 305,2 млн параметров, принимает текст и выдаёт векторные представления; максимальный контекст — 514 токенов. Репозиторий содержит веса PyTorch, лицензия — MIT.

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

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

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

Ограничения

Модель чувствительна к регистру, обучена на закрытых болгарско-английских параллельных данных, а карточка не содержит количественных оценок качества.

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

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

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

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

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

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

Открыть на Hugging Face

ROBERTA BASE (cased) trained on private Bulgarian-English parallel data

This is a Multilingual Roberta model. It could be used for creating embeddings of Bulgarian sentences.

Using the ideas from Sentence-BERT, the training is based on the idea that a translated sentence should be mapped to the same location in the vector space as the original sentence.

This model is cased: it does make a difference between bulgarian and Bulgarian.

It was trained on private Bulgarian-English parallel data.

How to use

Here is how to use this model in PyTorch:

>>> import scipy
>>> import torch
>>> from transformers import AutoModel, AutoTokenizer
>>> 
>>> model = AutoModel.from_pretrained('rmihaylov/roberta-base-nli-stsb-bg')
>>> tokenizer = AutoTokenizer.from_pretrained('rmihaylov/roberta-base-nli-stsb-bg')
>>>
>>> def embed(text):
>>>     inputs = tokenizer.encode_plus(text, return_tensors='pt')
>>>     outputs = model(**inputs)
>>>     sequence_output = outputs[0]
>>>     input_mask_expanded = inputs['attention_mask'].unsqueeze(-1).expand(sequence_output.size()).float()
>>>     embeddings = torch.sum(sequence_output * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
>>>     return embeddings.detach().numpy()[0]
>>> 
>>> 
>>> query_embedding = embed("Какви са съставките на бисквитките?")
>>> 
>>> questions = [
>>>     "Какво е бисквитка?",
>>>     "От какво са направени бисквитките?",
>>>     "Използват ли в Англия думата бисквитки?",
>>>     "Къде се правят бисквитките?",
>>>     "Какви видове бисквитки има?",
>>>     "Къде човек може да купи бисквитки?",
>>>     "Откъде дойде думата бисквитка?",
>>>     "Кое е чудовището на бисквитките?",
>>>     "Как да си направите бисквитки у дома?",
>>>     "Колко калории има типичната бисквитка?",
>>>     "Какви напитки вървят добре с бисквитките?",
>>>     "Бисквитките наричат ли се също сладки?"
>>>     ]
>>> 
>>> corpus, corpus_embeddings = [], []
>>> for question in questions:
>>>     embedding = embed(question)
>>>     corpus.append(question)
>>>     corpus_embeddings.append(embedding)
>>> 
>>> distances = scipy.spatial.distance.cdist([query_embedding], corpus_embeddings, "cosine")[0]
>>> 
>>> results = zip(range(len(distances)), distances)
>>> results = sorted(results, key=lambda x: x[1])
>>> 
>>> print([[corpus[idx].strip(), (1.0 - distance)] for idx, distance in results])

[['Какви видове бисквитки има?', 0.9749538412820795],
 ['От какво са направени бисквитките?', 0.9720467855849998],
 ['Къде се правят бисквитките?', 0.9622582076645853],
 ['Какво е бисквитка?', 0.9352896865855094],
 ['Използват ли в Англия думата бисквитки?', 0.8981422328370646],
 ['Откъде дойде думата бисквитка?', 0.8955433698658758],
 ['Кое е чудовището на бисквитките?', 0.8902666858687854],
 ['Бисквитките наричат ли се също сладки?', 0.8839303534407483],
 ['Какви напитки вървят добре с бисквитките?', 0.8582087653310524],
 ['Къде човек може да купи бисквитки?', 0.8570532540073935],
 ['Колко калории има типичната бисквитка?', 0.8387529949080176],
 ['Как да си направите бисквитки у дома?', 0.8243675958097614]]

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

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

GPU в ailist

Универсальный рантайм

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

Подбираем GPU…

Класс архитектуры
XLMRobertaModel
Ревизия весов
632772f

0 моделей