akiFQCint's picture
update: markdown
4c6010c
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、テキスト分類、クラスタリングなどに使用できます。

モデル詳細

モデル説明

モデルアーキテクチャ

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.