plamo-embedding-1b / README_ja.md
kaitos255's picture
update README
98db8b2
metadata
language:
  - ja
library_name: transformers
license: apache-2.0
pipeline_tag: sentence-similarity
tags:
  - feature-extraction
  - sentence-similarity
  - transformers

PLaMo-Embedding-1B

モデルの概要

PLaMo-Embedding-1Bは、Preferred Networks, Inc. によって開発された日本語テキスト埋め込みモデルです。

日本語の文章を入力することで数値ベクトルに変換することができ、情報検索、テキスト分類、クラスタリングなどをはじめとした幅広い用途でお使い頂けます。

日本語テキスト埋め込みのためのベンチマークであるJMTEBにおいて、2025年4月初頭時点でトップクラスのスコアを達成しました。 特に検索タスクにおいて一際優れた性能を示しています。

PLaMo-Embedding-1Bは Apache v2.0 ライセンスで公開されており、商用利用を含めて自由にお使い頂けます。

技術的詳細については次のTech Blog (Ja) をご参照ください: https://tech.preferred.jp/ja/blog/plamo-embedding-1b/

使用方法

Requirements

sentencepiece
torch
transformers

サンプルコード

import torch
import torch.nn.functional as F
from transformers import AutoModel, AutoTokenizer

# 🤗 Huggingface Hubから以下のようにしてモデルをダウンロードできます
tokenizer = AutoTokenizer.from_pretrained("pfnet/plamo-embedding-1b", trust_remote_code=True)
model = AutoModel.from_pretrained("pfnet/plamo-embedding-1b", trust_remote_code=True)

device = "cuda" if torch.cuda.is_available() else "cpu"
model = model.to(device)

query = "PLaMo-Embedding-1Bとは何ですか?"
documents = [
    "PLaMo-Embedding-1Bは、Preferred Networks, Inc. によって開発された日本語テキスト埋め込みモデルです。",
    "最近は随分と暖かくなりましたね。"
]

with torch.inference_mode():
    # 情報検索におけるクエリ文章の埋め込みに関しては、`encode_query` メソッドを用いてください
    # tokenizerも渡す必要があります
    query_embedding = model.encode_query(query, tokenizer)
    # それ以外の文章に関しては、 `encode_document` メソッドを用いてください
    # 情報検索以外の用途についても、 `encode_document` メソッドを用いてください
    document_embeddings = model.encode_document(documents, tokenizer)

# モデルに文章を入力して得られたベクトル間の類似度は、近い文章は高く、遠い文章は低くなります
# この性質を用いて情報検索などに活用することができます
similarities = F.cosine_similarity(query_embedding, document_embeddings)
print(similarities)
# tensor([0.8812, 0.5533])

encode_document, encode_query では、モデルの最大コンテキスト長である4096を超えた文章は切り捨てられるのでご注意ください。特に encode_query では、内部でprefixが付与されており、この分僅かに最大コンテキスト長が短くなっています。

ベンチマーク結果

日本語テキスト埋め込みのためのベンチマークであるJMTEBを用いて性能評価を行いました。

Model Avg. Retrieval STS Classification Reranking Clustering PairClassification
intfloat/multilingual-e5-large 70.90 70.98 79.70 72.89 92.96 51.24 62.15
pkshatech/GLuCoSE-base-ja-v2 72.23 73.36 82.96 74.21 93.01 48.65 62.37
OpenAI/text-embedding-3-large 74.05 74.48 82.52 77.58 93.58 53.32 62.35
cl-nagoya/ruri-large-v2 74.55 76.34 83.17 77.18 93.21 52.14 62.27
Sarashina-Embedding-v1-1B 75.50 77.61 82.71 78.37 93.74 53.86 62.00
PLaMo-Embedding-1B (This model) (*) 76.10 79.94 83.14 77.20 93.57 53.47 62.37

(*): コンテキスト長1024で計測。モデルとしてはコンテキスト長4096まで対応していますが、学習時に入れているコンテキスト長が1024までのため、1024で計測しています。ただし、4096で評価してもそこまでスコア平均に影響がないことがわかっています (Tech Blog参照 (Ja))。

モデル詳細

  • モデルサイズ: 1B
  • 最大コンテキスト長: 4096トークン
  • 埋め込み次元: 2048
  • 類似度計測に用いる関数: cosine類似度
  • 開発元: Preferred Networks, Inc
  • 対応言語: 日本語
  • ライセンス: Apache v2.0

ライセンス

PLaMo-Embedding-1Bは Apache License, Version 2.0 のもとで公開されており、商用利用を含めて自由にお使い頂けます。

How to cite

@online{PLaMoEmbedding1B,
    author    = {Preferred Networks, Inc},
    title     = {PLaMo-Embedding-1B},
    year      = {2025},
    url       = {https://huggingface.co/pfnet/plamo-embedding-1b},
    urldate   = {2025-04-17}
}