File size: 6,121 Bytes
98db8b2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
---

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](https://github.com/sbintuitions/JMTEB)において、2025年4月初頭時点でトップクラスのスコアを達成しました。
特に検索タスクにおいて一際優れた性能を示しています。

PLaMo-Embedding-1Bは [Apache v2.0](https://www.apache.org/licenses/LICENSE-2.0) ライセンスで公開されており、商用利用を含めて自由にお使い頂けます。

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

## 使用方法

### Requirements
```

sentencepiece

torch

transformers

```

### サンプルコード
```python

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](https://github.com/sbintuitions/JMTEB)を用いて性能評価を行いました。

 Model                                         |Avg.      | Retrieval   | STS       | Classification   | Reranking   | Clustering   | PairClassification   |
|:----------------------------------------------|:----------|:------------|:----------|:-----------------|:------------|:-------------|:---------------------|
| [intfloat/multilingual-e5-large](https://huggingface.co/intfloat/multilingual-e5-large)       |70.90     | 70.98       | 79.70     | 72.89            | 92.96       | 51.24        | 62.15                |
| [pkshatech/GLuCoSE-base-ja-v2](https://huggingface.co/pkshatech/GLuCoSE-base-ja-v2)   |72.23     | 73.36       | 82.96     | 74.21            | 93.01       | 48.65        | 62.37                |
| [OpenAI/text-embedding-3-large](https://openai.com/index/new-embedding-models-and-api-updates/)      |74.05 | 74.48   | 82.52     | 77.58        | 93.58   | 53.32        | 62.35                |
| [cl-nagoya/ruri-large-v2](https://huggingface.co/cl-nagoya/ruri-large-v2)     |74.55     | 76.34       | 83.17     | 77.18            | 93.21       | 52.14        | 62.27                |
|[Sarashina-Embedding-v1-1B](https://huggingface.co/sbintuitions/sarashina-embedding-v1-1b)|75.50|77.61|82.71|**78.37**|**93.74**|**53.86**|62.00|
|||
|[**PLaMo-Embedding-1B**](https://huggingface.co/pfnet/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](https://tech.preferred.jp/ja/blog/plamo-embedding-1b/)参照 (Ja))。

## モデル詳細

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

## ライセンス

PLaMo-Embedding-1Bは [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-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}

}

```