语言:
- 英文
许可证: Apache-2.0
标签:
- 句子转换器
- 交叉编码器
- 文本分类
- 训练生成
- 数据集规模:578402
- 损失函数:二元交叉熵损失
基础模型: prajjwal1/bert-tiny
流水线标签: 文本排序
库名称: sentence-transformers
评估指标:
- 平均精度(map)
- 前10名平均倒数排名(mrr@10)
- 前10名归一化折损累积增益(ndcg@10)
二氧化碳排放:
排放量: 7.3866990525881215克
能耗: 0.019003501532248668千瓦时
数据来源: codecarbon
训练类型: 微调
云端训练: 否
CPU型号: 第13代英特尔酷睿i7-13700K
内存总量: 31.777088165283203GB
训练时长: 0.099小时
使用硬件: 1块NVIDIA GeForce RTX 3090显卡
模型索引:
- 名称: 基于GooAQ训练的BERT-tiny模型
结果: []
基于GooAQ训练的BERT-tiny模型
这是一个从prajjwal1/bert-tiny微调而来的交叉编码器模型,使用sentence-transformers库开发。该模型可计算文本对的相似度分数,适用于语义文本相似度、语义搜索、复述挖掘、文本分类、聚类等多种任务。
本模型使用train_script.py训练脚本进行训练。
模型详情
模型描述
模型来源
使用方法
直接使用(Sentence Transformers)
首先安装Sentence Transformers库:
pip install -U sentence-transformers
然后加载模型并进行推理:
from sentence_transformers import CrossEncoder
model = CrossEncoder("cross-encoder-testing/reranker-bert-tiny-gooaq-bce")
pairs = [
['JavaScript开发者需求量大吗?', "根据开发者技能测试平台DevSkiller的报告,JavaScript是2020年IT行业最需求的技能。该报告《2020年顶级IT技能报告:需求与招聘趋势》显示,与去年相比,JavaScript与Java的位置发生了互换,Java今年排名第三,落后于SQL。"],
['JavaScript开发者需求量大吗?', '两者的主要区别在于:JavaScript是编程语言,而AngularJS是基于JavaScript的框架。...它也是所有基于JavaScript技术的基础,如jquery、angular JS、bootstrap JS等。Angular JS是用JavaScript编写的框架,采用MVC架构。'],
['JavaScript开发者需求量大吗?', 'Java应用程序在虚拟机或网页浏览器中运行,而JavaScript在网页浏览器中运行。Java代码需要编译,而JavaScript代码以文本形式存在于网页中。JavaScript是面向对象的脚本语言,而Java是面向对象的编程语言。'],
['JavaScript开发者需求量大吗?', 'body标签中的内容是需要显示的实际内容。body中的JavaScript会在读取和渲染页面时执行。head中的JavaScript会在渲染任何内容之前解释。'],
['JavaScript开发者需求量大吗?', '网页应用通常使用JavaScript、CSS和HTML5构建。与移动应用不同,网页应用没有标准的软件开发工具包。不过开发者可以使用模板。相比移动应用,网页应用通常构建更快更容易——但功能上要简单得多。'],
]
scores = model.predict(pairs)
print(scores.shape)
ranks = model.rank(
'JavaScript开发者需求量大吗?',
[
"根据开发者技能测试平台DevSkiller的报告,JavaScript是2020年IT行业最需求的技能...",
'两者的主要区别在于:JavaScript是编程语言...',
'Java应用程序在虚拟机或网页浏览器中运行...',
'body标签中的内容是需要显示的实际内容...',
'网页应用通常使用JavaScript、CSS和HTML5构建...',
]
)
评估结果
交叉编码器重排序评估
指标 |
gooaq-dev |
NanoMSMARCO |
NanoNFCorpus |
NanoNQ |
map |
0.5677 (+0.0366) |
0.4280 (-0.0616) |
0.3397 (+0.0787) |
0.4149 (-0.0047) |
mrr@10 |
0.5558 (+0.0318) |
0.4129 (-0.0646) |
0.5196 (+0.0198) |
0.4132 (-0.0135) |
ndcg@10 |
0.6157 (+0.0245) |
0.4772 (-0.0632) |
0.3308 (+0.0058) |
0.4859 (-0.0147) |
交叉编码器Nano BEIR评估
指标 |
值 |
map |
0.3942 (+0.0041) |
mrr@10 |
0.4486 (-0.0194) |
ndcg@10 |
0.4313 (-0.0241) |
训练详情
训练数据集
- 规模: 578,402个训练样本
- 列:
question
, answer
和label
- 基于前1000个样本的近似统计:
|
问题 |
答案 |
标签 |
类型 |
字符串 |
字符串 |
整数 |
详情 |
|
- 最小:51字符
- 平均:252.46字符
- 最大:405字符
|
|
训练超参数
- 评估策略: 按步骤
- 每设备训练批量大小: 2048
- 每设备评估批量大小: 2048
- 学习率: 0.0005
- 训练轮数: 1
- 预热比例: 0.1
- 随机种子: 12
- 使用BF16: 是
环境影响
使用CodeCarbon测量碳排放:
- 能耗: 0.019千瓦时
- 碳排放: 0.007千克CO2
- 训练时长: 0.099小时
训练硬件
- 云端训练: 否
- GPU型号: 1块NVIDIA GeForce RTX 3090
- CPU型号: 第13代英特尔酷睿i7-13700K
- 内存大小: 31.78GB
框架版本
- Python: 3.11.6
- Sentence Transformers: 3.5.0.dev0
- Transformers: 4.48.3
- PyTorch: 2.5.0+cu121
- Accelerate: 1.3.0
- Datasets: 2.20.0
- Tokenizers: 0.21.0
引用
BibTeX引用
Sentence Transformers
@inproceedings{reimers-2019-sentence-bert,
title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
author = "Reimers, Nils and Gurevych, Iryna",
booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
month = "11",
year = "2019",
publisher = "Association for Computational Linguistics",
url = "https://arxiv.org/abs/1908.10084",
}