语言:
- 越南语
许可证: apache-2.0
库名称: transformers
标签:
- transformers
- cross-encoder
- rerank
管道标签: 文本分类
小部件:
- 文本: 越南哪个省面积最大
输出:
- 标签: 越南面积最大的省是乂安省
分数: 0.99999
- 标签: 越南面积最小的省是北宁省
分数: 0.0001
重排序器
与嵌入模型不同,重排序器将问题和文档作为输入,直接输出相似度而非嵌入向量。
通过输入查询和段落,您可以从重排序器获得相关性分数。
该分数可通过sigmoid函数映射到[0,1]区间内的浮点值。
使用方法
使用FlagEmbedding
pip install -U FlagEmbedding
获取相关性分数(分数越高表示越相关):
from FlagEmbedding import FlagReranker
reranker = FlagReranker('namdp-ptit/ViRanker',
use_fp16=True)
score = reranker.compute_score(['越南最后一位皇帝是谁', '保大皇帝是我国最后一位皇帝'])
print(score)
score = reranker.compute_score(['越南最后一位皇帝是谁', '保大皇帝是我国最后一位皇帝'],
normalize=True)
print(score)
scores = reranker.compute_score(
[
['越南最后一位皇帝是谁', '保大皇帝是我国最后一位皇帝'],
['越南最后一位皇帝是谁', '李南帝是我国第一位皇帝']
]
)
print(scores)
scores = reranker.compute_score(
[
['越南最后一位皇帝是谁', '保大皇帝是我国最后一位皇帝'],
['越南最后一位皇帝是谁', '李南帝是我国第一位皇帝']
],
normalize=True
)
print(scores)
使用Huggingface transformers
pip install -U transformers
获取相关性分数(分数越高表示越相关):
import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('namdp-ptit/ViRanker')
model = AutoModelForSequenceClassification.from_pretrained('namdp-ptit/ViRanker')
model.eval()
pairs = [
['越南最后一位皇帝是谁', '保大皇帝是我国最后一位皇帝'],
['越南最后一位皇帝是谁', '李南帝是我国第一位皇帝']
],
with torch.no_grad():
inputs = tokenizer(pairs, padding=True, truncation=True, return_tensors='pt', max_length=512)
scores = model(**inputs, return_dict=True).logits.view(-1, ).float()
print(scores)
微调
数据格式
训练数据应为json文件,每行是一个字典,格式如下:
{"query": str, "pos": List[str], "neg": List[str]}
query
是查询,pos
是正文本列表,neg
是负文本列表。如果某个查询没有负文本,可以从整个语料库中随机采样一些作为负样本。
此外,对于训练数据中的每个查询,我们使用LLM通过要求LLM创建与'pos'中文档相反的文档来生成困难负样本。
性能
下表是我们在MS MMarco Passage Reranking - Vi - Dev数据集上与其他预训练Cross-Encoders的比较结果。
联系方式
电子邮件: phuongnamdpn2k2@gmail.com
领英: Dang Phuong Nam
脸书: Phương Nam
支持项目
如果您觉得这个项目有帮助并希望支持其持续发展,可以通过以下方式贡献:
- 给仓库加星: 通过给仓库加星表达您的支持。您的支持激励我们进一步开发和改进。
- 贡献: 我们欢迎您的贡献!您可以通过报告错误、提交拉取请求或建议新功能来帮助改进项目。
- 捐赠: 如果您想提供财务支持,可以考虑捐赠。您可以通过以下方式捐赠:
- 越南外贸银行: 9912692172 - DANG PHUONG NAM
感谢您的支持!
引用
请引用为
@misc{ViRanker,
title={ViRanker: 越南文本排序的交叉编码器模型},
author={Nam Dang Phuong},
year={2024},
publisher={Huggingface},
}