🚀 prudant/lsg_4096_sentence_similarity_spanish のLSGバリアント
このモデルは、自然言語処理タスクにおける文の類似度を測定するためのモデルです。Local Sparse Global (LSG) アテンションメカニズムを用いることで、長いシーケンスを効率的に処理できるようになりました。
🚀 クイックスタート
このモデルを使用するには、以下の手順に従ってください。まず、必要なライブラリをインポートし、トークナイザーとモデルをロードします。その後、文の埋め込みを計算するための関数を定義します。
import torch.nn.functional as F
from transformers import AutoTokenizer, AutoModel
import torch
tokenizer = AutoTokenizer.from_pretrained('prudant/lsg_4096_sentence_similarity_spanish')
model = AutoModel.from_pretrained('prudant/lsg_4096_sentence_similarity_spanish', trust_remote_code=True)
def mean_pooling(model_output, attention_mask):
token_embeddings = model_output[0]
input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
✨ 主な機能
- 長いシーケンスの効率的な処理: LSGアテンションメカニズムを用いることで、最大4096トークンの長いシーケンスを効率的に処理できます。
- 高精度: 長いシーケンスでも高精度を維持し、文の類似度を正確に測定できます。
📦 インストール
このモデルを使用するには、transformers
ライブラリが必要です。以下のコマンドでインストールできます。
pip install transformers
💻 使用例
基本的な使用法
以下のコードは、このモデルを使用して文の埋め込みを計算し、文の類似度を測定する例です。
sentences = [
'Esa es una persona feliz',
"Ese es un perro feliz",
"Esa es una persona muy feliz",
"Hoy es un día soleado",
"Esa es una persona alegre",
]
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
model_output = model(**encoded_input)
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
print("Sentence embeddings:")
print(sentence_embeddings)
normalized_embeddings = F.normalize(sentence_embeddings, p=2, dim=1)
cosine_similarities = F.cosine_similarity(normalized_embeddings[0].unsqueeze(0), normalized_embeddings[1:], dim=1)
print(cosine_similarities)
📚 ドキュメント
概要
このモデルは hiiamsid/sentence_similarity_spanish_es の拡張版で、Local Sparse Global (LSG) アテンションメカニズムを用いて変換されています。LSGへの適応により、長いシーケンスを効率的に処理できるようになり、より広範な自然言語処理タスクで汎用性と堅牢性が向上しました。
LSGアーキテクチャについて
LSG (Local Sparse Global) アテンションは、Transformerモデルにおける従来の自己アテンションメカニズムの制限を緩和するために設計された最先端のアプローチです。特に、長いシーケンスの処理において、LSGアテンションは局所的、疎な、およびグローバルなアテンションを組み合わせることで、計算コストを大幅に削減しながら、モデルの性能を維持、または向上させます。
モデルの適応
このLSGバリアントは、元のモデルから適応されており、主な目的は長いテキスト入力を効率的に処理する能力を拡張することです。この拡張により、モデルは以前のベースモデルでは困難であった長いシーケンス長でも、高精度と効率を維持できるようになりました。
使用例
LSGで強化されたこのモデルは、長い文書の埋め込みに関するタスクに特に適しています。
🔧 技術詳細
このモデルは、LSG (Local Sparse Global) アテンションメカニズムを用いることで、長いシーケンスを効率的に処理できるようになりました。LSGアテンションは、局所的、疎な、およびグローバルなアテンションを組み合わせることで、計算コストを大幅に削減しながら、モデルの性能を維持、または向上させます。
📄 ライセンス
このモデルは、Apache License 2.0の下で提供されています。
謝辞
このモデルは Darío Muñoz Prudantによって適応されました。Hugging FaceコミュニティとLSGアテンションメカニズムの貢献者たちのリソースとサポートに感謝します。