Armenian Text Embeddings 1
multilingual-e5-baseを最適化したアルメニア語テキスト埋め込みモデルで、意味検索と言語間理解をサポート
ダウンロード数 578
リリース時間 : 11/12/2024
モデル概要
このモデルはアルメニア語テキスト向けに高品質な密ベクトル表現を生成し、検索拡張生成(RAG)、意味検索、文書類似度計算などのタスクに適しています
モデル特徴
アルメニア語最適化
アルメニア語に特化して最適化され、より正確な意味表現を提供
言語間能力
multilingual-e5-baseベースで、英語とアルメニア語間の言語間理解能力を保持
効率的な訓練
DeepSpeed Stage 2最適化と混合精度訓練を採用し、訓練効率を向上
重み平均
基本モデル(0.6)と微調整モデル(0.4)の利点を組み合わせ、性能を向上
モデル能力
アルメニア語意味検索
文書類似度計算
言語間テキスト理解
テキスト分類
情報検索
使用事例
情報検索
アルメニア語レシピ検索
ユーザークエリに基づいて最も関連性の高いアルメニア伝統レシピをマッチング
クエリと関連レシピ内容を正確にマッチング可能
健康相談
栄養情報検索
タンパク質摂取量など健康関連の質問に回答
科学的アドバイスとユーザークエリを正確にマッチング可能
🚀 Armenian-Text-Embeddings-1
このモデルは、アルメニア語のテキスト埋め込みを生成するためのモデルです。Transformerベースのアーキテクチャを使用しており、多言語のe5-baseモデルをベースに微調整されています。このモデルは、検索拡張生成、意味検索、文書類似度計算などのタスクに使用できます。
🚀 クイックスタート
import torch.nn.functional as F
from torch import Tensor
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained('Metric-AI/armenian-text-embeddings-1')
model = AutoModel.from_pretrained('Metric-AI/armenian-text-embeddings-1')
def average_pool(last_hidden_states: Tensor,
attention_mask: Tensor) -> Tensor:
last_hidden = last_hidden_states.masked_fill(~attention_mask[..., None].bool(), 0.0)
return last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]
# Each input text should start with "query: " or "passage: ", even for non-English texts.
# For tasks other than retrieval, you can simply use the "query: " prefix.
input_texts = [
'query: Ինչպե՞ս պատրաստել տոլմա', # How to make tolma
'query: Քանի՞ գրամ սպիտակուց է հարկավոր օրական', # How many grams of protein needed daily
"""passage: Տոլմայի բաղադրատոմս՝
Բաղադրիչներ՝
- 500գ աղացած միս
- 1 բաժակ բրինձ
- Խաղողի տերևներ
- 2 գլուխ սոխ
- Համեմունքներ՝ աղ, սև պղպեղ, քարի
Պատրաստման եղանակը՝
1. Միսը խառնել բրնձի, մանր կտրատած սոխի և համեմունքների հետ
2. Խաղողի տերևները լվանալ և թողնել տաք ջրի մեջ 10 րոպե
3. Լցոնել տերևները և դասավորել կաթսայի մեջ
4. Եփել դանդաղ կրակի վրա 45-60 րոպե""", # Detailed tolma recipe
"""passage: Սպիտակուցի օրական չափաբաժինը կախված է մարդու քաշից, սեռից և ֆիզիկական ակտիվությունից:
Միջին հաշվով, կանանց համար խորհուրդ է տրվում 46-50 գրամ սպիտակուց օրական:
Մարզիկների համար այս թիվը կարող է հասնել մինչև 1.6-2 գրամ մարմնի քաշի յուրաքանչյուր կիլոգրամի համար:
Հղիների համար պահանջվում է լրացուցիչ 25 գրամ սպիտակուց:
Սպիտակուցի հարուստ աղբյուրներ են՝
- Հավի միս (31գ/100գ)
- Ձու (13գ/100գ)
- Ոսպ (25գ/100գ)
- Մածուն (3.5գ/100գ)"""] # Detailed protein intake advice
# Tokenize the input texts
batch_dict = tokenizer(input_texts, max_length=512, padding=True, truncation=True, return_tensors='pt')
outputs = model(**batch_dict)
embeddings = average_pool(outputs.last_hidden_state, batch_dict['attention_mask'])
# normalize embeddings
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:2] @ embeddings[2:].T) * 100
print(scores.tolist())
# [[83.96063232421875, 30.283924102783203], [32.504661560058594, 82.4246826171875]]
✨ 主な機能
- 検索拡張生成 (RAG)
- アルメニア語の意味検索
- 文書類似度計算
- クロスリンガルのテキスト理解
- テキスト分類タスク
- 情報検索
📦 インストール
このモデルはHugging FaceのTransformersライブラリを使用しています。以下のコマンドでインストールできます。
pip install transformers
💻 使用例
基本的な使用法
import torch.nn.functional as F
from torch import Tensor
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained('Metric-AI/armenian-text-embeddings-1')
model = AutoModel.from_pretrained('Metric-AI/armenian-text-embeddings-1')
def average_pool(last_hidden_states: Tensor,
attention_mask: Tensor) -> Tensor:
last_hidden = last_hidden_states.masked_fill(~attention_mask[..., None].bool(), 0.0)
return last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]
# Each input text should start with "query: " or "passage: ", even for non-English texts.
# For tasks other than retrieval, you can simply use the "query: " prefix.
input_texts = [
'query: Ինչպե՞ս պատրաստել տոլմա', # How to make tolma
'query: Քանի՞ գրամ սպիտակուց է հարկավոր օրական', # How many grams of protein needed daily
"""passage: Տոլմայի բաղադրատոմս՝
Բաղադրիչներ՝
- 500գ աղացած միս
- 1 բաժակ բրինձ
- Խաղողի տերևներ
- 2 գլուխ սոխ
- Համեմունքներ՝ աղ, սև պղպեղ, քարի
Պատրաստման եղանակը՝
1. Միսը խառնել բրնձի, մանր կտրատած սոխի և համեմունքների հետ
2. Խաղողի տերևները լվանալ և թողնել տաք ջրի մեջ 10 րոպե
3. Լցոնել տերևները և դասավորել կաթսայի մեջ
4. Եփել դանդաղ կրակի վրա 45-60 րոպե""", # Detailed tolma recipe
"""passage: Սպիտակուցի օրական չափաբաժինը կախված է մարդու քաշից, սեռից և ֆիզիկական ակտիվությունից:
Միջին հաշվով, կանանց համար խորհուրդ է տրվում 46-50 գրամ սպիտակուց օրական:
Մարզիկների համար այս թիվը կարող է հասնել մինչև 1.6-2 գրամ մարմնի քաշի յուրաքանչյուր կիլոգրամի համար:
Հղիների համար պահանջվում է լրացուցիչ 25 գրամ սպիտակուց:
Սպիտակուցի հարուստ աղբյուրներ են՝
- Հավի միս (31գ/100գ)
- Ձու (13գ/100գ)
- Ոսպ (25գ/100գ)
- Մածուն (3.5գ/100գ)"""] # Detailed protein intake advice
# Tokenize the input texts
batch_dict = tokenizer(input_texts, max_length=512, padding=True, truncation=True, return_tensors='pt')
outputs = model(**batch_dict)
embeddings = average_pool(outputs.last_hidden_state, batch_dict['attention_mask'])
# normalize embeddings
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:2] @ embeddings[2:].T) * 100
print(scores.tolist())
# [[83.96063232421875, 30.283924102783203], [32.504661560058594, 82.4246826171875]]
高度な使用法
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('Metric-AI/armenian-text-embeddings-1')
embeddings = model.encode(input_texts, normalize_embeddings=True)
📚 ドキュメント
モデル詳細
属性 | 详情 |
---|---|
モデル名 | Armenian-Text-Embeddings-1 |
モデルタイプ | アルメニア語のテキスト埋め込み |
ベースモデル | intfloat/multilingual-e5-base |
バージョン | 1.0.0 |
ライセンス | Apache 2.0 |
最終更新日 | 2024年11月 |
モデルアーキテクチャ | Transformerベースの埋め込みモデル |
入力 | アルメニア語のテキスト |
出力 | 密ベクトル埋め込み |
トレーニングデータ
データセット詳細
- ソース: 英語とアルメニア語の翻訳が含まれるRedditデータセット
- サイズ: 108万行のペア
- コンテンツタイプ: タイトルと本文のテキストペア
- トークン統計:
- トレーニングセット:
- 翻訳されたタイトルトークン: 23,921,393
- 翻訳された本文トークン: 194,200,654
- テストセット:
- 翻訳されたタイトルトークン: 242,443
- 翻訳された本文トークン: 1,946,164
- トレーニングセット:
- 分割比率: 99%トレーニング, 1%テスト
トレーニング手順
トレーニング詳細
- 重み平均:
- ベースモデル (multilingual-e5-base): 0.6の重み
- 微調整されたモデル: 0.4の重み
- トレーニング期間: 2日
- ハードウェア: 4台のNVIDIA A100 40GB GPU
- トレーニングパラメータ:
- エポック数: 5
- バッチサイズ: GPUごとに256 (合計256*4)
- 学習率: 5e-5
- 重み減衰: 0.01
- ウォームアップステップ: 1000
- 最大シーケンス長: 128トークン
- FP16トレーニング: 有効
- 勾配クリッピング: 1.0
最適化設定
- フレームワーク: DeepSpeed Stage 2
- オプティマイザー: 自動重み減衰付きAdamW
- 混合精度: 動的損失スケーリング付きFP16
- ZeRO最適化: Stage 2で以下の設定:
- Allgatherパーティション
- 通信の重複
- 連続した勾配
- 追加機能:
- 勾配チェックポイント
- テンソル並列 (サイズ: 2)
🔧 技術詳細
- モデルサイズ: ~278Mパラメータ (e5-baseに基づく)
- 埋め込み次元: 384
- 最大シーケンス長: 128トークン
- フレームワーク互換性:
- PyTorch
- Hugging Face Transformers
- DeepSpeed
📄 ライセンス
このモデルはApache 2.0ライセンスの下で提供されています。
引用
@misc{armenian-text-embeddings-1,
author = {Spartak Bughdaryan, Zaruhi Navasardyan, Bagrat Minasyan, Hrant Davtyan},
title = {Armenian-Text-Embeddings-1: Enhanced Armenian Language Embeddings},
year = {2024},
howpublished = {\url{https://metric.am/blog/announcing-armenian-text-embeddings/}}
}
追加情報
ベースモデルの参照
- multilingual-e5-base: https://huggingface.co/intfloat/multilingual-e5-base
謝辞
- intfloatによるオリジナルのmultilingual-e5-baseモデル
- ソースコンテンツを提供したRedditコミュニティ
- 最適化ツールキットを提供したDeepSpeedチーム
バージョン履歴
- 1.0.0 (2024年11月): 初回リリース
Jina Embeddings V3
Jina Embeddings V3 は100以上の言語をサポートする多言語文埋め込みモデルで、文の類似度と特徴抽出タスクに特化しています。
テキスト埋め込み
Transformers 複数言語対応

J
jinaai
3.7M
911
Ms Marco MiniLM L6 V2
Apache-2.0
MS Marcoパッセージランキングタスクで訓練されたクロスエンコーダモデル、情報検索におけるクエリ-パッセージ関連性スコアリング用
テキスト埋め込み 英語
M
cross-encoder
2.5M
86
Opensearch Neural Sparse Encoding Doc V2 Distill
Apache-2.0
蒸留技術に基づくスパース検索モデルで、OpenSearch向けに最適化されており、推論不要のドキュメントエンコーディングをサポートし、検索関連性と効率性においてV1版を上回ります
テキスト埋め込み
Transformers 英語

O
opensearch-project
1.8M
7
Sapbert From PubMedBERT Fulltext
Apache-2.0
PubMedBERTに基づく生物医学エンティティ表現モデルで、自己アライメント事前学習により意味関係の捕捉を最適化します。
テキスト埋め込み 英語
S
cambridgeltl
1.7M
49
Gte Large
MIT
GTE-Largeは強力なセンテンストランスフォーマーモデルで、文の類似度とテキスト埋め込みタスクに特化しており、複数のベンチマークテストで優れた性能を発揮します。
テキスト埋め込み 英語
G
thenlper
1.5M
278
Gte Base En V1.5
Apache-2.0
GTE-base-en-v1.5 は英語の文章変換モデルで、文章類似度タスクに特化しており、複数のテキスト埋め込みベンチマークで優れた性能を発揮します。
テキスト埋め込み
Transformers 複数言語対応

G
Alibaba-NLP
1.5M
63
Gte Multilingual Base
Apache-2.0
GTE Multilingual Base は50以上の言語をサポートする多言語文埋め込みモデルで、文類似度計算などのタスクに適しています。
テキスト埋め込み
Transformers 複数言語対応

G
Alibaba-NLP
1.2M
246
Polybert
polyBERTは、完全に機械駆動の超高速ポリマー情報学を実現するための化学言語モデルです。PSMILES文字列を600次元の密なフィンガープリントにマッピングし、ポリマー化学構造を数値形式で表現します。
テキスト埋め込み
Transformers

P
kuelumbus
1.0M
5
Bert Base Turkish Cased Mean Nli Stsb Tr
Apache-2.0
トルコ語BERTベースの文埋め込みモデルで、意味的類似性タスクに最適化
テキスト埋め込み
Transformers その他

B
emrecan
1.0M
40
GIST Small Embedding V0
MIT
BAAI/bge-small-en-v1.5モデルを微調整したテキスト埋め込みモデルで、MEDIデータセットとMTEB分類タスクデータセットで訓練され、検索タスクのクエリエンコーディング能力を最適化しました。
テキスト埋め込み
Safetensors 英語
G
avsolatorio
945.68k
29
おすすめAIモデル
Llama 3 Typhoon V1.5x 8b Instruct
タイ語専用に設計された80億パラメータの命令モデルで、GPT-3.5-turboに匹敵する性能を持ち、アプリケーションシナリオ、検索拡張生成、制限付き生成、推論タスクを最適化
大規模言語モデル
Transformers 複数言語対応

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-TinyはSODAデータセットでトレーニングされた超小型対話モデルで、エッジデバイス推論向けに設計されており、体積はCosmo-3Bモデルの約2%です。
対話システム
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
RoBERTaアーキテクチャに基づく中国語抽出型QAモデルで、与えられたテキストから回答を抽出するタスクに適しています。
質問応答システム 中国語
R
uer
2,694
98