Armenian Text Embeddings 1
基於multilingual-e5-base優化的亞美尼亞語文本嵌入模型,支持語義搜索和跨語言理解
下載量 578
發布時間 : 11/12/2024
模型概述
該模型專門針對亞美尼亞語文本生成高質量的稠密向量表示,適用於檢索增強生成(RAG)、語義搜索和文檔相似度計算等任務
模型特點
亞美尼亞語優化
專門針對亞美尼亞語進行優化,提供更準確的語義表示
跨語言能力
基於multilingual-e5-base,保留英語和亞美尼亞語之間的跨語言理解能力
高效訓練
採用DeepSpeed Stage 2優化和混合精度訓練,提高訓練效率
權重平均
結合基礎模型(0.6)和微調模型(0.4)的優勢,提升性能
模型能力
亞美尼亞語語義搜索
文檔相似度計算
跨語言文本理解
文本分類
信息檢索
使用案例
信息檢索
亞美尼亞語食譜搜索
根據用戶查詢匹配最相關的亞美尼亞傳統食譜
能準確匹配查詢與相關食譜內容
健康諮詢
營養信息檢索
回答關於蛋白質攝入量等健康相關問題
能準確匹配科學建議與用戶查詢
🚀 亞美尼亞文本嵌入模型 1
本項目提供了一個用於亞美尼亞語的文本嵌入模型,能夠將亞美尼亞語的文本轉換為密集向量表示,可廣泛應用於檢索增強生成、語義搜索等多個自然語言處理任務,為亞美尼亞語的相關應用提供了有力支持。
🚀 快速開始
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)。
- 可進行亞美尼亞語的語義搜索。
- 能夠計算文檔相似度。
- 支持跨語言文本理解。
- 適用於文本分類任務和信息檢索。
💻 使用示例
基礎用法
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的嵌入模型 |
輸入 | 亞美尼亞語文本 |
輸出 | 密集向量嵌入 |
預期用途
主要預期用途
- 檢索增強生成(RAG)
- 亞美尼亞語的語義搜索
- 文檔相似度計算
- 跨語言文本理解
- 文本分類任務
- 信息檢索
訓練數據
數據集詳情
- 來源:包含英語 - 亞美尼亞語翻譯的Reddit數據集
- 規模:108萬對行
- 內容類型:標題和正文文本對
- 分詞統計:
- 訓練集:
- 翻譯後的標題分詞:23,921,393
- 翻譯後的正文分詞:194,200,654
- 測試集:
- 翻譯後的標題分詞:242,443
- 翻譯後的正文分詞:1,946,164
- 訓練集:
- 劃分比例:99%訓練集,1%測試集
訓練過程
訓練詳情
- 權重平均:
- 基礎模型(multilingual-e5-base):權重0.6
- 微調模型:權重0.4
- 訓練時長:2天
- 硬件:4 x 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,具有以下特性:
- 全收集分區
- 重疊通信
- 連續梯度
- 附加特性:
- 梯度檢查點
- 張量並行(大小:2)
性能和侷限性
能力
- 對亞美尼亞語的語義相似度任務有效。
- 適用於文檔分類和聚類。
侷限性
- 在特定領域術語上的性能可能會有所不同。
- 可能無法有效捕捉亞美尼亞語特定的文化背景。
- 受訓練數據翻譯質量的限制。
已知偏差
- 可能表現出Reddit內容中存在的偏差。
環境影響
- 訓練硬件:4 x NVIDIA A100 40GB
- 訓練時長:48小時
- 估計能耗:384 kWh(基於A100功耗估計)
倫理考量
- 數據隱私:訓練數據來自公開的Reddit內容。
- 潛在濫用:可能被濫用於內容操縱或垃圾信息。
- 偏差:可能延續Reddit內容中存在的社會偏差。
- 建議:
- 監控系統輸出以檢測有害內容。
- 在生產使用中實施內容過濾。
- 建議定期進行偏差評估。
技術規格
- 模型大小:約2.78億個參數(基於e5-base)
- 嵌入維度:384
- 最大序列長度:128個分詞
- 框架兼容性:
- PyTorch
- Hugging Face Transformers
- DeepSpeed
引用
@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月):初始版本發佈
📄 許可證
本模型使用Apache 2.0許可證。
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架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98