metadata
language:
- ja
license_name: sarahina-non-commercial-license
license_link: LICENSE
tags:
- transformers
- sentence-similarity
- feature-extraction
- sentence-transformers
inference: false
datasets:
- hpprc/emb
- cl-nagoya/auto-wiki-qa
- cl-nagoya/ruri-dataset-ft
- hpprc/mqa-ja
- izumi-lab/llm-japanese-dataset
- sentence-transformers/NQ-retrieval
- sbintuitions/JSQuAD
- SkelterLabsInc/JaQuAD
- wikimedia/wikipedia
- cl-nagoya/nu-mnli
- castorini/mr-tydi
Sarashina-Embedding-v1-1B
「Sarashina-embedding-v1-1b」は、1.2Bパラメータの日本語LLM「Sarashina2.1-1B」をベースにした日本語テキスト埋め込みモデルです。
このモデルは、マルチステージの対照学習で訓練され、 JMTEB (Japanese Massive Text Embedding Benchmark)の16個のデータセットで(2024/12/1時点で)最高水準の平均スコアを達成しました。
このモデルは、文や段落などのテキストを1792次元の密ベクトル空間にマッピングし、意味的テキスト類似度、意味的検索、paraphrase mining、テキスト分類、クラスタリングなどに使用できます。
モデル詳細
モデル説明
- モデルタイプ: Sentence Transformer
- ベースモデル: Sarashina2.1-1B
- 最大シーケンス長: 8,192トークン
- 出力次元数: 1,792次元
- 類似度関数: コサイン類似度
- 言語: 日本語
- ライセンス: Sarashina Model NonCommercial License Agreement
モデルアーキテクチャ
SentenceTransformer(
(0): Transformer({'max_seq_length': 8192, 'do_lower_case': False}) with Transformer model: LlamaModel
(1): Pooling({'word_embedding_dimension': 1792, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': True, 'include_prompt': False})
)
使用方法
Sentence Transformersを使う方法
まず、Sentence Transformersライブラリをインストールします。
pip install -U sentence-transformers
次に、このモデルをロードし、推論を実行します。
from sentence_transformers import SentenceTransformer
# 🤗 Hubからモデルをダウンロードする
model = SentenceTransformer("sbintuitions/sarashina-embedding-v1-1b")
# 推論を実行する
sentences = [
'更級日記は、平安時代中期に菅原孝標女によって書かれた回想録です。',
'Sarashinaは、SB Intuitionsが開発した日本語大規模言語モデルです。これまでに7B, 13B, 70B, 8x70Bのモデルが公開されています。',
'サラシナエンベディングは日本語言語モデルをベースにした日本語埋め込みモデルです。'
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1792]
# 埋め込みの類似度スコアを取得する
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
注意
- "Query: ", "Document: "などのprefixを入力文の先頭に加える必要はありません。
- このモデルはSarashina Model NonCommercial License Agreementでライセンスされており、商用利用には制限があります。もしビジネスでこのモデルを活用することに興味がある場合は、気軽にコンタクトページにご連絡ください。
学習
"Sarashina-Embedding-v1-1B"は、以下の2段階の学習ステージによって行われています。
Stage 1: 弱教師あり学習
幅広いドメインに対して汎用的かつ高い性能を持つ埋め込みモデルを構築するため、独自webクロールデータとオープンデータで構成された弱教師データによる対照学習を行いました。
データセット
dataset | counts |
---|---|
AutoWikiQA | 50,521,135 |
web-crawled data (ours) | 47,370,649 |
MQA | 12,941,472 |
llm-japanese-dataset | 9,074,340 |
Wikipedia | 5,555,212 |
Quiz dataset (ours) | 988,478 |
Natural Questions | 132,796 |
JSQuAD | 62,859 |
SNOW(T15+T23) | 62,758 |
JaQuAD | 31,746 |
MKQA | 3,318 |
total | 126,744,763 |
Stage 2: ファインチューニング
より正確なクエリ-ドキュメント間の類似度をモデルに学習させるために、以下のデータセットでファインチューニングを行いました。
データセット
dataset | counts |
---|---|
JSNLI | 141,388 |
NU-MNLI | 67,987 |
Mr. TyDi (only Japanese subset) | 3,697 |
Natural Questions (sampled) | 20,000 |
total | 233,072 |
JMTEBによる性能評価
Model | Max Tokens | Avg. | Retrieval | STS | Classification | Reranking | Clustering | PairClassification |
---|---|---|---|---|---|---|---|---|
OpenAI/text-embedding-3-large[^oai] | 8191 | 74.05 | 74.48 | 82.52 | 77.58 | 93.58 | 53.32 | 62.35 |
cl-nagoya/ruri-large | 512 | 73.31 | 73.02 | 83.13 | 77.43 | 92.99 | 51.82 | 62.29 |
pkshatech/GLuCoSE-base-ja-v2 | 512 | 72.23 | 73.36 | 82.96 | 74.21 | 93.01 | 48.65 | 62.37 |
pkshatech/RoSEtta-base-ja | 1024 | 72.04 | 73.21 | 81.39 | 72.41 | 92.69 | 53.23 | 61.74 |
intfloat/multilingual-e5-large | 512 | 70.90 | 70.98 | 79.70 | 72.89 | 92.96 | 51.24 | 62.15 |
Sarashina-Embedding-v1-1B(This model) | 8192 | 75.50 | 77.61 | 82.71 | 78.37 | 93.74 | 53.86 | 62.00 |
ライセンス
このモデルはSarashina Model NonCommercial License Agreementに基づいて公開されています.
もしこのモデルの商用利用にご興味がある場合は、お気軽にコンタクトページへご連絡ください。
[^oai]: Benchmarked on April 23, 2024.