license: bigscience-bloom-rail-1.0
datasets:
- unicamp-dl/mmarco
- rajpurkar/squad
language:
- fr
- en
pipeline_tag: text-ranking
Bloomz-560m 重排序模型
本重排序模型基于cmarkea/bloomz-560m-dpo-chat模型构建,旨在衡量问题(查询)与上下文之间的语义相关性。通过标准化评分机制,该模型可帮助筛选开放域问答(ODQA)场景中检索器输出的查询/上下文匹配结果,并以比检索器更高效的建模方式重新排序结果。但受限于计算成本,此类建模方式不适合直接用于数据库搜索。
作为语言无关模型,本产品支持法语和英语双语处理。其独特优势在于跨语言评分时不受单语环境(英语或法语)行为影响,能保持稳定表现。
训练数据
训练集由mMARCO数据集(包含查询/正例/困难负例三元组)和SQuAD训练集(经处理形成类似三元组)组成。针对SQuAD数据,我们采用同主题但不同问题集的上下文作为困难负例,确保负例样本与查询主题相关但不包含答案。
最终将三元组展开为查询/上下文句对,正例标记为1,负例标记为0。每个句对中的查询和上下文语言均随机均匀选择法语或英语。
性能评估
使用SQuAD验证集进行评估,选取每段落首问及其对应段落(应排名Top-1的Oracle上下文)。评估语料包含1204个查询/上下文对,按主题统计如下:
主题名称 |
上下文数量 |
主题名称 |
上下文数量 |
诺曼人 |
39 |
公民不服从运动 |
26 |
计算复杂性理论 |
48 |
建筑工程 |
22 |
南加州 |
39 |
私立学校 |
26 |
英国天空电视台 |
22 |
哈佛大学 |
30 |
澳大利亚维多利亚州 |
25 |
佛罗里达州杰克逊维尔市 |
21 |
胡格诺派 |
44 |
经济不平等 |
44 |
蒸汽机 |
46 |
芝加哥大学 |
37 |
氧气 |
43 |
元朝 |
47 |
1973年石油危机 |
24 |
免疫系统 |
49 |
欧盟法律 |
40 |
政府间气候变化专门委员会 |
24 |
亚马逊雨林 |
21 |
质数 |
31 |
栉水母门 |
31 |
莱茵河 |
44 |
加州弗雷斯诺市 |
28 |
苏格兰议会 |
39 |
分组交换技术 |
23 |
伊斯兰主义 |
39 |
黑死病 |
23 |
帝国主义 |
39 |
地质学 |
25 |
华沙 |
49 |
药学 |
26 |
法国-印第安战争 |
46 |
力 |
44 |
|
|
同语言评估(法语/法语)
模型(法语/法语) |
Top均值 |
Top标准差 |
Top-1 (%) |
Top-10 (%) |
Top-100 (%) |
MRR (x100) |
Top得分均值 |
Top得分标准差 |
BM25 |
14.47 |
92.19 |
69.77 |
92.03 |
98.09 |
77.74 |
无 |
无 |
CamemBERT |
5.72 |
36.88 |
69.35 |
95.51 |
98.92 |
79.51 |
0.83 |
0.37 |
蒸馏版CamemBERT |
5.54 |
25.90 |
66.11 |
92.77 |
99.17 |
76.00 |
0.80 |
0.39 |
mMiniLMv2-L12 |
4.43 |
30.27 |
71.51 |
95.68 |
99.42 |
80.17 |
0.78 |
0.38 |
多语言RoBERTa |
15.13 |
60.39 |
57.23 |
83.87 |
96.18 |
66.21 |
0.53 |
0.11 |
本模型560m版 |
1.49 |
2.58 |
83.55 |
99.17 |
100 |
89.98 |
0.93 |
0.15 |
本模型3b版 |
1.22 |
1.06 |
89.37 |
99.75 |
100 |
93.79 |
0.94 |
0.10 |
跨语言评估(法语查询/英语上下文)
模型(法语/英语) |
Top均值 |
Top标准差 |
Top-1 (%) |
Top-10 (%) |
Top-100 (%) |
MRR (x100) |
Top得分均值 |
Top得分标准差 |
BM25 |
288.04 |
371.46 |
21.93 |
41.93 |
55.15 |
28.41 |
无 |
无 |
CamemBERT |
12.20 |
61.39 |
59.55 |
89.71 |
97.42 |
70.38 |
0.65 |
0.47 |
蒸馏版CamemBERT |
40.97 |
104.78 |
25.66 |
64.78 |
88.62 |
38.83 |
0.53 |
0.49 |
mMiniLMv2-L12 |
6.91 |
32.16 |
59.88 |
89.95 |
99.09 |
70.39 |
0.61 |
0.46 |
多语言RoBERTa |
79.32 |
153.62 |
27.91 |
49.50 |
78.16 |
35.41 |
0.40 |
0.12 |
本模型560m版 |
1.51 |
1.92 |
81.89 |
99.09 |
100 |
88.64 |
0.92 |
0.15 |
本模型3b版 |
1.22 |
0.98 |
89.20 |
99.84 |
100 |
93.63 |
0.94 |
0.10 |
评估显示跨语言场景对模型性能影响微弱。建议在RAG类应用中设置0.8的阈值过滤检索器输出,可有效降低上下文噪声。
使用指南
以下示例基于Transformers库的Pipeline API:
from transformers import pipeline
reranker = pipeline(
task='text-classification',
model='cmarkea/bloomz-560m-reranking',
top_k=None
)
query: str
contexts: List[str]
similarities = reranker(
[
dict(
text=context,
text_pair=query
)
for context in contexts
]
)
score_label_1 = [
next(item['score'] for item in entry if item['label'] == 'LABEL_1')
for entry in similarities
]
contexts_reranked = sorted(
zip(score_label_1, contexts),
key=lambda x: x[0],
reverse=True
)
score, contexts_cleaned = zip(
*filter(
lambda x: x[0] >= 0.8,
contexts_reranked
)
)
引用
@online{DeBloomzReranking,
作者 = {Cyrile Delestre},
机构 = {法国阿凯亚信贷集团},
网址 = {https://huggingface.co/cmarkea/bloomz-3b-reranking},
年份 = {2024},
关键词 = {自然语言处理;Transformer模型;大语言模型;Bloomz},
}