language: zh
license: apache-2.0
library_name: setfit
tags:
- setfit
- absa
- sentence-transformers
- text-classification
- generated_from_setfit_trainer
datasets:
- tomaarsen/setfit-absa-semeval-restaurants
metrics:
- accuracy
widget:
- text: 葡萄酒瓶:葡萄酒价格实惠且品质优良。
- text: 世界:我还点了Change Mojito,简直好喝到飞起。
- text: 吧台:我们喝桑格利亚汽酒时仍坐在吧台,但转身背对吧台后再转回来时,2美元不见了,旁边的人说是调酒师拿走的。
- text: 建议:友情提示,记得留点胃口吃意面,提拉米苏更是必尝。
- text: 调酒师:我们喝桑格利亚汽酒时仍坐在吧台,但转身背对吧台后再转回来时,2美元不见了,旁边的人说是调酒师拿走的。
pipeline_tag: text-classification
inference: false
co2_eq_emissions:
emissions: 18.322516829847984
source: codecarbon
training_type: fine-tuning
on_cloud: false
cpu_model: 第13代英特尔酷睿i7-13700K
ram_total_size: 31.777088165283203
hours_used: 0.303
hardware_used: 1 x NVIDIA GeForce RTX 3090
base_model: BAAI/bge-small-en-v1.5
model-index:
- name: 基于BAAI/bge-small-en-v1.5的SetFit方面模型(应用于SemEval 2014任务4餐厅数据集)
results:
- task:
type: text-classification
name: 文本分类
dataset:
name: SemEval 2014任务4(餐厅)
type: tomaarsen/setfit-absa-semeval-restaurants
split: test
metrics:
- type: accuracy
value: 0.8623188405797102
name: 准确率
基于BAAI/bge-small-en-v1.5的SetFit方面模型(应用于SemEval 2014任务4餐厅数据集)
这是一个基于SetFit框架、在SemEval 2014任务4(餐厅)数据集上训练的模型,可用于方面级情感分析(ABSA)。该SetFit模型使用BAAI/bge-small-en-v1.5作为句子嵌入模型,分类器采用逻辑回归。特别说明,本模型负责筛选方面术语候选词。
模型采用高效的小样本学习技术训练,包含两个阶段:
- 通过对比学习微调句子嵌入模型
- 基于微调后的句子嵌入特征训练分类头
本模型是一个大型ABSA系统的组成部分,完整流程如下:
- 使用spaCy模型初步筛选可能的方面术语候选词
- 通过本SetFit模型对候选词进行过滤
- 使用另一个SetFit模型对过滤后的方面术语进行情感极性分类
模型详情
模型描述
模型来源
类别标签
标签 |
示例 |
方面术语 |
- '员工:但工作人员对我们的态度太恶劣了。'
- "食物:公平地说,唯一的亮点是食物,虽然高于平均水平,但无法弥补Teodora餐厅的其他缺点。"
- "食物:所有菜品都出类拔萃,厨房团队技艺精湛,无论菜单是否有列,都能骄傲地烹制出你想吃的任何菜肴。"
|
非方面术语 |
- "因素:公平地说,唯一的亮点是食物,虽然高于平均水平,但无法弥补Teodora餐厅的其他缺点。"
- "缺点:公平地说,唯一的亮点是食物,虽然高于平均水平,但无法弥补Teodora餐厅的其他缺点。"
- "Teodora:公平地说,唯一的亮点是食物,虽然高于平均水平,但无法弥补Teodora餐厅的其他缺点。"
|
评估
评估指标
使用方式
直接推理
首先安装SetFit库:
pip install setfit
然后加载模型进行推理:
from setfit import AbsaModel
model = AbsaModel.from_pretrained(
"tomaarsen/setfit-absa-bge-small-en-v1.5-restaurants-aspect",
"tomaarsen/setfit-absa-bge-small-en-v1.5-restaurants-polarity",
)
preds = model("食物很棒,但场地实在太拥挤了。")
训练详情
训练集统计
训练集 |
最小值 |
中位数 |
最大值 |
词数 |
4 |
19.3576 |
45 |
标签 |
训练样本数 |
非方面术语 |
170 |
方面术语 |
255 |
训练超参数
- 批大小: (256, 256)
- 训练轮数: (5, 5)
- 最大步数: 5000
- 采样策略: 过采样
- 编码器学习率: (2e-05, 1e-05)
- 分类头学习率: 0.01
- 损失函数: 余弦相似度损失
- 距离度量: 余弦距离
- 边界值: 0.25
- 端到端训练: 否
- 自动混合精度: 是
- 预热比例: 0.1
- 随机种子: 42
- 最大评估步数: -1
- 训练结束时加载最佳模型: 是
训练结果
训练轮数 |
步数 |
训练损失 |
验证损失 |
0.0027 |
1 |
0.2498 |
- |
0.1355 |
50 |
0.2442 |
- |
0.2710 |
100 |
0.2462 |
0.2496 |
0.4065 |
150 |
0.2282 |
- |
0.5420 |
200 |
0.0752 |
0.1686 |
0.6775 |
250 |
0.0124 |
- |
0.8130 |
300 |
0.0128 |
0.1884 |
0.9485 |
350 |
0.0062 |
- |
1.0840 |
400 |
0.0012 |
0.183 |
1.2195 |
450 |
0.0009 |
- |
1.3550 |
500 |
0.0008 |
0.2072 |
1.4905 |
550 |
0.0031 |
- |
1.6260 |
600 |
0.0006 |
0.1716 |
1.7615 |
650 |
0.0005 |
- |
1.8970 |
700 |
0.0005 |
0.1666 |
2.0325 |
750 |
0.0005 |
- |
2.1680 |
800 |
0.0004 |
0.2086 |
2.3035 |
850 |
0.0005 |
- |
2.4390 |
900 |
0.0004 |
0.183 |
2.5745 |
950 |
0.0004 |
- |
2.7100 |
1000 |
0.0036 |
0.1725 |
2.8455 |
1050 |
0.0004 |
- |
2.9810 |
1100 |
0.0003 |
0.1816 |
3.1165 |
1150 |
0.0004 |
- |
3.2520 |
1200 |
0.0003 |
0.1802 |
环境影响
碳排放通过CodeCarbon测算:
- 碳排放量: 0.018千克CO2
- 计算时长: 0.303小时
训练硬件
- 云平台: 否
- GPU型号: 1 x NVIDIA GeForce RTX 3090
- CPU型号: 第13代英特尔酷睿i7-13700K
- 内存容量: 31.78 GB
框架版本
- Python: 3.9.16
- SetFit: 1.0.0.dev0
- Sentence Transformers: 2.2.2
- spaCy: 3.7.2
- Transformers: 4.29.0
- PyTorch: 1.13.1+cu117
- Datasets: 2.15.0
- Tokenizers: 0.13.3
引用
BibTeX
@article{https://doi.org/10.48550/arxiv.2209.11055,
doi = {10.48550/ARXIV.2209.11055},
url = {https://arxiv.org/abs/2209.11055},
author = {Tunstall, Lewis and Reimers, Nils and Jo, Unso Eun Seo and Bates, Luke and Korat, Daniel and Wasserblat, Moshe and Pereg, Oren},
keywords = {计算与语言(cs.CL), 计算机与信息科学, 计算机与信息科学},
title = {无需提示的高效小样本学习},
publisher = {arXiv},
year = {2022},
copyright = {知识共享署名4.0国际许可协议}
}