🚀 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
