🚀 fjmgAI/col1 - 210M - EuroBERT模型
fjmgAI/col1-210M-EuroBERT
是一個基於 EuroBERT/EuroBERT - 210m
微調的模型,可將句子和段落映射為128維的密集向量序列,適用於語義文本相似度任務,在西班牙語應用的高效語義搜索場景中表現出色。
🚀 快速開始
安裝依賴
首先,你需要安裝 PyLate
庫:
pip install -U pylate
計算相似度
以下是一個使用該模型計算句子相似度的示例代碼:
import torch
from pylate import models
model = models.ColBERT("fjmgAI/col1-210M-EuroBERT", trust_remote_code=True)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
query = "¿Cuál es la capital de España?"
positive_doc = "La capital de España es Madrid."
negative_doc = "Florida es un estado en los Estados Unidos."
sentences = [query, positive_doc, negative_doc]
inputs = model.tokenize(sentences)
inputs = {key: value.to(device) for key, value in inputs.items()}
with torch.no_grad():
embeddings_dict = model(inputs)
embeddings = embeddings_dict['token_embeddings']
def colbert_similarity(query_emb, doc_emb):
"""
Computes ColBERT-style similarity between query and document embeddings.
Uses maximum similarity (MaxSim) between individual tokens.
Args:
query_emb: [query_tokens, embedding_dim]
doc_emb: [doc_tokens, embedding_dim]
Returns:
Normalized similarity score
"""
similarity_matrix = torch.matmul(query_emb, doc_emb.T)
max_similarities = similarity_matrix.max(dim=1)[0]
return max_similarities.sum() / query_emb.shape[0]
query_emb = embeddings[0]
positive_emb = embeddings[1]
negative_emb = embeddings[2]
positive_score = colbert_similarity(query_emb, positive_emb)
negative_score = colbert_similarity(query_emb, negative_emb)
print(f"Similarity with positive document: {positive_score.item():.4f}")
print(f"Similarity with negative document: {negative_score.item():.4f}")
✨ 主要特性
- 基於
EuroBERT/EuroBERT - 210m
進行微調,提升了模型性能。
- 使用
PyLate
進行微調,在 rag - comprehensive - triplets
數據集上進行對比訓練。
- 能夠將句子和段落映射為128維的密集向量,適用於語義文本相似度任務。
- 採用 MaxSim 運算符,可在標記級別比較嵌入,適用於問答和文檔檢索等西班牙語應用。
📦 安裝指南
安裝所需的庫:
pip install -U pylate
📚 詳細文檔
基礎模型
EuroBERT/EuroBERT - 210m
微調方法
使用 PyLate 進行微調,在 [rag - comprehensive - triplets](https://huggingface.co/datasets/baconnier/rag - comprehensive - triplets) 數據集上進行對比訓練。
數據集
[baconnier/rag - comprehensive - triplets
](https://huggingface.co/datasets/baconnier/rag - comprehensive - triplets)
該數據集經過篩選,包含303,000個西班牙語示例,專為 rag - comprehensive - triplets
任務設計。
微調細節
- 採用 對比訓練(Contrastive Training) 方法進行訓練。
- 使用
pylate.evaluation.colbert_triplet.ColBERTTripletEvaluator
進行評估。
評估指標
框架版本
屬性 |
詳情 |
Python |
3.10.12 |
Sentence Transformers |
3.4.1 |
PyLate |
1.1.7 |
Transformers |
4.48.2 |
PyTorch |
2.5.1+cu121 |
Accelerate |
1.2.1 |
Datasets |
3.3.1 |
Tokenizers |
0.21.0 |
🔧 技術細節
該模型基於 EuroBERT/EuroBERT - 210m
進行微調,使用 PyLate
庫在 rag - comprehensive - triplets
數據集上進行對比訓練。通過將句子和段落映射為128維的密集向量,利用 MaxSim 運算符在標記級別比較嵌入,實現語義文本相似度計算。
📄 許可證
本模型採用 apache - 2.0
許可證。
開發者
fjmgAI
