0 / 0
資料の 英語版 に戻る
Granite埋め込み 107m 多言語モデルカード
最終更新: 2025年1月16日
Granite埋め込み 107m 多言語モデルカード

granite-embedding-107m-multilingualは Graniteの 107Mのビエンコーダー埋め込みモデルで、高品質なテキスト埋め込みを生成するために使用できます。 このモデルは、サイズ384の埋め込みベクトルを生成し、オープンソースの関連性ペアデータセットと、企業に優しい寛容なライセンス、および IBMが収集・生成したデータセットを組み合わせてトレーニングされています。 このモデルは、コントラスト・ファインチューニング、知識の蒸留、モデルの統合を用いて開発され、パフォーマンスが向上しています。

サポートされている言語

英語、ドイツ語、スペイン語、フランス語、日本語、ポルトガル語、アラビア語、チェコ語、イタリア語、韓国語、オランダ語、中国語。 ユーザーは、これらの12言語以外の言語については、 granite-embedding-107m-multilingualを微調整することができます。

用途

このモデルは、与えられたテキストに対して固定長のベクトル表現を生成するように設計されており、テキストの類似性、検索、検索アプリケーションに使用することができます。

文変換器との併用

このモデルSentenceTransformer ライブラリと互換性があり、非常に使いやすいです

まず、文変換ライブラリをインストールします。

pip install sentence_transformers

このモデルは、テキストのペアをエンコードし、それらの表現間の類似性を求めるために使用できます。

from sentence_transformers import SentenceTransformer, util

model_path = "ibm-granite/granite-embedding-107m-multilingual"
# Load the Sentence Transformer model
model = SentenceTransformer(model_path)

input_queries = [
    ' Who made the song My achy breaky heart? ',
    'summit define'
    ]

input_passages = [
    "Achy Breaky Heart is a country song written by Don Von Tress. Originally titled Don't Tell My Heart and performed by The Marcy Brothers in 1991. ",
    "Definition of summit for English Language Learners. : 1 the highest point of a mountain : the top of a mountain. : 2 the highest level. : 3 a meeting or series of meetings between the leaders of two or more governments."
    ]

# encode queries and passages
query_embeddings = model.encode(input_queries)
passage_embeddings = model.encode(input_passages)

# calculate cosine similarity
print(util.cos_sim(query_embeddings, passage_embeddings))

Huggingface Transformersとの併用

これは、Transformerライブラリと PyTorch を使用した granite-embedding-107m-multilingualの使用方法の簡単な例です。

まず、必要なライブラリをインストールします。

pip install transformers torch

このモデルは、テキストのペアをエンコードするために使用できます。

import torch
from transformers import AutoModel, AutoTokenizer

model_path = "ibm-granite/granite-embedding-107m-multilingual"

# Load the model and tokenizer
model = AutoModel.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)
model.eval()

input_queries = [
    ' Who made the song My achy breaky heart? ',
    'summit define'
    ]

# tokenize inputs
tokenized_queries = tokenizer(input_queries, padding=True, truncation=True, return_tensors='pt')

# encode queries
with torch.no_grad():
    # Queries
    model_output = model(**tokenized_queries)
    # Perform pooling. granite-embedding-107m-multilingual uses CLS Pooling
    query_embeddings = model_output[0][:, 0]

# normalize the embeddings
query_embeddings = torch.nn.functional.normalize(query_embeddings, dim=1)

評価

以下に、英語 (15 タスク)、ドイツgranite-embedding-107m-multilingual (4 タスク)、スペイン語 (2 タスク)、フランス語 (5 タスク)、日本語 (2 タスク)、アラビア語 (1 タスク)、韓国語 (1 タスク)、中国語 (8 タスク) に対する Multilingual Miracl (18 言語)、Mintaka 検索 (8 言語)、MTEB 検索における granite-embedding-107m-multilingual モデルの平均パフォーマンスを報告します。 granite-embedding-107m-multilingualモデルは、同様の埋め込み寸法を持つ他のモデルの2倍の速度です。

表 1. granite-embedding-107m-multilingualのベンチマークスコア
モデル パラメータ(M) 埋め込み寸法 Miracl (18) ミントカ回収 (8) MTEB 英語 (15) MTEB ドイツ語 (4) MTEB スペイン語 (2) MTEB フランス語 (5) MTEB 日本語 (2) MTEB アラビア語 (1) MTEB 韓国語 (1) MTEB 中国語 (8)
granite-embedding-107m-multilingual 107 384 55.9 22.6 45.3 70.3 48.7 51.1 59.0 63.2 70.5 40.8

モデルアーキテクチャ

granite-embedding-107m-multilingualモデルは IBMで内部的にトレーニングされたエンコーダー専用の XLM-RoBERTa のようなトランフォーマーに基づいています。

表 2. Granite 埋め込みモデルのアーキテクチャの詳細
モデル granite-embedding-30m-english granite-embedding-125m-english granite-embedding-107m-multilingual granite-embedding-278m-multilingual
埋め込みサイズ 384 768 384 768
層の数 6 12 6 12
注目ヘッドの数 12 12 12 12
中サイズ 1536 3072 1536 3072
活性化関数 GeLU GeLU GeLU GeLU
語彙の量 50265 50265 250002 250002
最大シーケンス長 512 512 512 512
パラメーターの数 30M 125M 107M 278M

データの学習

全体として、トレーニングデータは4つの主要なソースで構成されています。(1)ウェブから収集した教師なしのタイトルのペアデータ、(2)企業に配慮した寛容なライセンスで公開されているペアデータ、(3)特定の技術領域を対象とした IBMのペアデータ、(4) IBM合成データ。 データは以下に列挙されています

表 3. granite-embedding-107m-multilingualの学習データ
データ・セット 番号 ペア
MC4 52,823,484
多言語ウェブホスティング 12,369,322
英語版ウィキペディア 20,745,403
多言語ウィキメディア 2,911,090
ミラクルコーパス タイトル ・本文) 10,120,398
Stack Exchange 重複した質問(タイトル) 304,525
Stack Exchange 重複した質問(タイトル) 304,525
Stack Exchange 重複した質問(本文) 250,519
Stack Exchangeの機械翻訳 重複した質問(タイトル) 187,195
Stack Exchange タイトル、回答)のペア 4,067,139
Stack Exchange タイトル、本文) のペア 23,978,013
Stack Exchange タイトル、本文) のペア 23,978,013
Stack Exchangeの機械翻訳 タイトル 本文、回答)のペア 1,827,15
SearchQA 582,261
S2ORCタイトル、アブストラクト) 41,769,185
WikiAnswers 重複した質問のペア 77,427,422
CCニュース 614,664
XSum 226,711
SimpleWiki 102,225
機械翻訳による言語横断型対訳コーパス 28,376,115
SPECTER 引用トリプレット 684,100
SPECTER引用トリプレットの機械翻訳 4,104,600
自然な質問(NQ) 100,231
SQuAD2.0 87,599
HotpotQA 85,000
109,810
PubMed 20,000,000
多言語ミラクルトリプルズ 81,409
多言語 MrTydi トリプル 48,715
Sadeeem 質問 回答 4,037
DBPediaのタイトルのペア 4,635,922
合成:英語クエリ-ウィキペディアの文章 1,879,093
合成:英語のファクト・ベリフィケーション 9,888
合成:多言語クエリ-Wikipediaの文章 300,266
合成:多言語ニュース要約 37,489
IBM 社内での3倍 40,290
IBM 社内タイトルの組み合わせ 1,524,586

注目すべきは、その非商用ライセンスのため、私たちはトレーニング用コーパスに人気の高いMS-MARCO検索用データセットを使用していないことです。一方、他のオープンソースモデルは、その質の高さから、このデータセットを使用してトレーニングを行っています。

インフラストラクチャー

私たちは、 NVIDIA A100 80gb GPU を搭載した IBM のコンピューティング クラスターである Cognitive Compute Cluster を使用して Granite Embedding モデルをトレーニングします。 このクラスタは、複数のGPU上でモデルをトレーニングするための拡張性と効率性に優れたインフラを提供します。

倫理的な考慮事項と限界

基本言語モデルのトレーニングに使用された英語のデータは、憎悪、虐待、冒涜的な表現を含むテキストを削除するようフィルタリングされました。

リソース

  • Granite の最新のアップデートについて学ぶ: IBM Granite Web サイト
  • チュートリアル、ベスト プラクティス、迅速なエンジニアリング アドバイスを活用して始めましょう: IBM Granite ドキュメント
  • Graniteの最新の学習リソースについて学ぼう IBM