🚀 瑠璃(Ruri):日本語汎用テキスト埋め込みモデル
瑠璃(Ruri) は、日本語の文章をベクトル表現に変換するためのモデルです。文章の類似度計算や特徴抽出など、様々な自然言語処理タスクに利用できます。
🚀 クイックスタート
注意: v3モデルがリリースされました!
今後は以下のv3モデルの使用をおすすめします。
✨ 主な機能
- 文章の類似度計算に適した埋め込み表現を生成します。
- 日本語の自然言語処理タスクに特化しています。
- 複数のモデルサイズが用意されており、用途に応じて選択できます。
📦 インストール
まず、Sentence Transformersライブラリをインストールします。
pip install -U sentence-transformers fugashi sentencepiece unidic-lite
💻 使用例
基本的な使用法
import torch.nn.functional as F
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("cl-nagoya/ruri-base")
sentences = [
"クエリ: 瑠璃色はどんな色?",
"文章: 瑠璃色(るりいろ)は、紫みを帯びた濃い青。名は、半貴石の瑠璃(ラピスラズリ、英: lapis lazuli)による。JIS慣用色名では「こい紫みの青」(略号 dp-pB)と定義している[1][2]。",
"クエリ: ワシやタカのように、鋭いくちばしと爪を持った大型の鳥類を総称して「何類」というでしょう?",
"文章: ワシ、タカ、ハゲワシ、ハヤブサ、コンドル、フクロウが代表的である。これらの猛禽類はリンネ前後の時代(17~18世紀)には鷲類・鷹類・隼類及び梟類に分類された。ちなみにリンネは狩りをする鳥を単一の目(もく)にまとめ、vultur(コンドル、ハゲワシ)、falco(ワシ、タカ、ハヤブサなど)、strix(フクロウ)、lanius(モズ)の4属を含めている。",
]
embeddings = model.encode(sentences, convert_to_tensor=True)
print(embeddings.size())
similarities = F.cosine_similarity(embeddings.unsqueeze(0), embeddings.unsqueeze(1), dim=2)
print(similarities)
📚 ドキュメント
JMTEBベンチマーク
JMTEBを使用して評価された結果です。
モデル詳細
モデル説明
属性 |
详情 |
モデルタイプ |
Sentence Transformer |
ベースモデル |
cl-nagoya/ruri-pt-base |
最大シーケンス長 |
512 tokens |
出力次元数 |
768 |
類似度関数 |
コサイン類似度 |
言語 |
日本語 |
ライセンス |
Apache 2.0 |
論文 |
https://arxiv.org/abs/2409.07737 |
完全なモデルアーキテクチャ
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)
フレームワークバージョン
- Python: 3.10.13
- Sentence Transformers: 3.0.0
- Transformers: 4.41.2
- PyTorch: 2.3.1+cu118
- Accelerate: 0.30.1
- Datasets: 2.19.1
- Tokenizers: 0.19.1
🔧 技術詳細
このモデルは、Sentence Transformerアーキテクチャをベースに構築されています。具体的には、BertModelを使用して文章をエンコードし、Pooling層を用いて単語埋め込みを集約して文章埋め込みを生成します。
📄 ライセンス
このモデルはApache License, Version 2.0の下で公開されています。
引用
@misc{
Ruri,
title={{Ruri: Japanese General Text Embeddings}},
author={Hayato Tsukagoshi and Ryohei Sasano},
year={2024},
eprint={2409.07737},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2409.07737},
}