/ Модель

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

Контекст
514 токенов
Параметры
138 млн
Лицензия
Apache 2.0
Архитектура
luke · dense
Опубликована
19 мар 2023

sentence-luke-japanese-base-lite

ЭмбеддингиТекст → embedding8 профессий

Дообученная японская Sentence-LUKE-модель для получения эмбеддингов предложений и оценки их семантического сходства.

3 983скачиваний за 30 дней14лайковвеса обновлены12 дек 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sonoisa разработал Sentence-LUKE — модель для получения векторных представлений японских предложений. Она дообучена на том же наборе данных и с теми же настройками, что и японская Sentence-BERT. По оценке автора на его закрытом наборе данных, количественное качество сопоставимо с Sentence-BERT или выше примерно на 0,5 процентного пункта, а качественные результаты лучше. Модель основана на предварительно обученной studio-ousia/luke-japanese-base-lite, имеет 138,4 млн параметров и контекст до 514 токенов.

Модель предназначена для извлечения признаков и сравнения сходства японских предложений, например для поиска семантически близких текстов. Для запуска вывода требуется SentencePiece. Репозиторий содержит веса PyTorch и safetensors и распространяется по лицензии Apache-2.0.

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

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

Ограничения

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

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

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

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

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

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

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

Открыть на Hugging Face

This is a Japanese sentence-LUKE model.

日本語用Sentence-LUKEモデルです。

日本語Sentence-BERTモデルと同一のデータセットと設定で学習しました。
手元の非公開データセットでは、日本語Sentence-BERTモデルと比べて定量的な精度が同等〜0.5pt程度高く、定性的な精度は本モデルの方が高い結果でした。

事前学習済みモデルとしてstudio-ousia/luke-japanese-base-liteを利用させていただきました。

推論の実行にはSentencePieceが必要です(pip install sentencepiece)。

使い方

from transformers import MLukeTokenizer, LukeModel
import torch


class SentenceLukeJapanese:
    def __init__(self, model_name_or_path, device=None):
        self.tokenizer = MLukeTokenizer.from_pretrained(model_name_or_path)
        self.model = LukeModel.from_pretrained(model_name_or_path)
        self.model.eval()

        if device is None:
            device = "cuda" if torch.cuda.is_available() else "cpu"
        self.device = torch.device(device)
        self.model.to(device)

    def _mean_pooling(self, model_output, attention_mask):
        token_embeddings = model_output[0] #First element of model_output contains all token embeddings
        input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
        return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)

    @torch.no_grad()
    def encode(self, sentences, batch_size=8):
        all_embeddings = []
        iterator = range(0, len(sentences), batch_size)
        for batch_idx in iterator:
            batch = sentences[batch_idx:batch_idx + batch_size]

            encoded_input = self.tokenizer.batch_encode_plus(batch, padding="longest", 
                                           truncation=True, return_tensors="pt").to(self.device)
            model_output = self.model(**encoded_input)
            sentence_embeddings = self._mean_pooling(model_output, encoded_input["attention_mask"]).to('cpu')

            all_embeddings.extend(sentence_embeddings)

        return torch.stack(all_embeddings)


MODEL_NAME = "sonoisa/sentence-luke-japanese-base-lite"
model = SentenceLukeJapanese(MODEL_NAME)

sentences = ["暴走したAI", "暴走した人工知能"]
sentence_embeddings = model.encode(sentences, batch_size=8)

print("Sentence embeddings:", sentence_embeddings)

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
LukeModel
Ревизия весов
077a25f

0 моделей