AI ExplorerAI Explorer
OutilsCatégoriesSitesLLMsComparerQuiz IAAlternativesPremium

—

Outils IA

—

Sites & Blogs

—

LLMs & Modèles

—

Catégories

AI Explorer

Trouvez et comparez les meilleurs outils d'intelligence artificielle pour vos projets.

Fait avecen France

Explorer

  • Tous les outils
  • Sites & Blogs
  • LLMs & Modèles
  • Comparer
  • Chatbots
  • Images IA
  • Code & Dev

Entreprise

  • Premium
  • À propos
  • Contact
  • Blog

Légal

  • Mentions légales
  • Confidentialité
  • CGV

© 2026 AI Explorer. Tous droits réservés.

AccueilLLMssentence bert base ja mean tokens v2

sentence bert base ja mean tokens v2

par sonoisa

Open source · 42k downloads · 51 likes

2.1
(51 avis)EmbeddingAPI & Local
À propos

Ce modèle est une version améliorée du modèle japonais Sentence-BERT, spécialement conçu pour encoder des phrases en japonais en vecteurs sémantiques de haute qualité. Il utilise une fonction de perte plus performante que la version précédente, ce qui lui permet d'atteindre une précision supérieure de 1,5 à 2 points sur des jeux de données internes. Entraîné sur la base d'un modèle BERT japonais pré-entraîné, il excelle dans la compréhension contextuelle et la similarité sémantique entre phrases. Ses principaux cas d'usage incluent la recherche d'informations, la classification de textes ou la détection de plagiat en japonais. Ce qui le distingue est sa capacité à générer des représentations vectorielles plus précises et cohérentes pour les applications nécessitant une analyse fine du langage japonais.

Documentation

This is a Japanese sentence-BERT model.

日本語用Sentence-BERTモデル(バージョン2)です。

バージョン1よりも良いロス関数であるMultipleNegativesRankingLossを用いて学習した改良版です。
手元の非公開データセットでは、バージョン1よりも1.5〜2ポイントほど精度が高い結果が得られました。

事前学習済みモデルとしてcl-tohoku/bert-base-japanese-whole-word-maskingを利用しました。
従って、推論の実行にはfugashiとipadicが必要です(pip install fugashi ipadic)。

旧バージョンの解説

https://qiita.com/sonoisa/items/1df94d0a98cd4f209051

モデル名を"sonoisa/sentence-bert-base-ja-mean-tokens-v2"に書き換えれば、本モデルを利用した挙動になります。

使い方

Python
from transformers import BertJapaneseTokenizer, BertModel
import torch


class SentenceBertJapanese:
    def __init__(self, model_name_or_path, device=None):
        self.tokenizer = BertJapaneseTokenizer.from_pretrained(model_name_or_path)
        self.model = BertModel.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).numpy()
        return torch.stack(all_embeddings)


MODEL_NAME = "sonoisa/sentence-bert-base-ja-mean-tokens-v2"  # <- v2です。
model = SentenceBertJapanese(MODEL_NAME)

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

print("Sentence embeddings:", sentence_embeddings)
Liens & Ressources
Spécifications
CatégorieEmbedding
AccèsAPI & Local
LicenceOpen Source
TarificationOpen Source
Note
2.1

Essayer sentence bert base ja mean tokens v2

Accédez directement au modèle