🚀 意图分类微调模型
本项目是一个用于意图分类的微调模型,基于KLUE RoBERTa小模型在3i4k数据集上进行微调,可对不同类型的语句意图进行分类。
🚀 快速开始
本项目主要围绕模型的微调、使用和评估展开,下面将详细介绍各部分内容。
✨ 主要特性
- 预训练模型:使用 klue/roberta-small 作为预训练模型。
- 数据集:采用 3i4k 数据集进行微调,该数据集包含训练集、验证集和测试集。
- 标签信息:涵盖多种语句意图标签,如片段、陈述、问题、命令等。
- 训练参数:设置了训练的轮数、批次大小、优化器等参数。
📦 安装指南
本README未提及具体安装步骤,可参考相关依赖库(如transformers、keras等)的官方文档进行安装。
💻 使用示例
基础用法
from transformers import RobertaTokenizerFast, RobertaForSequenceClassification, TextClassificationPipeline
HUGGINGFACE_MODEL_PATH = "bespin-global/klue-roberta-small-3i4k-intent-classification"
loaded_tokenizer = RobertaTokenizerFast.from_pretrained(HUGGINGFACE_MODEL_PATH )
loaded_model = RobertaForSequenceClassification.from_pretrained(HUGGINGFACE_MODEL_PATH )
text_classifier = TextClassificationPipeline(
tokenizer=loaded_tokenizer,
model=loaded_model,
return_all_scores=True
)
text = "your text"
preds_list = text_classifier(text)
best_pred = preds_list[0]
print(f"Label of Best Intentatioin: {best_pred['label']}")
print(f"Score of Best Intentatioin: {best_pred['score']}")
📚 详细文档
微调信息
- 预训练模型:klue/roberta-small
- 微调数据集:3i4k
- 训练集:46,863
- 验证集:8,271(占训练集的15%)
- 测试集:6,121
- 标签信息
- 0: "fragment"(片段)
- 1: "statement"(陈述)
- 2: "question"(问题)
- 3: "command"(命令)
- 4: "rhetorical question"(反问句)
- 5: "rhetorical command"(反问命令)
- 6: "intonation-dependent utterance"(语调依赖语句)
- 训练参数
{
"epochs": 3 (setting 10 but early stopped),
"batch_size":32,
"optimizer_class": "<keras.optimizer_v2.adam.Adam'>",
"optimizer_params": {
"lr": 5e-05
},
"min_delta": 0.01
}
评估结果
precision recall f1-score support
command 0.89 0.92 0.90 1296
fragment 0.98 0.96 0.97 600
intonation-depedent utterance 0.71 0.69 0.70 327
question 0.95 0.97 0.96 1786
rhetorical command 0.87 0.64 0.74 108
rhetorical question 0.61 0.63 0.62 174
statement 0.91 0.89 0.90 1830
accuracy 0.90 6121
macro avg 0.85 0.81 0.83 6121
weighted avg 0.90 0.90 0.90 6121
📄 许可证
本项目采用 CC BY-NC 4.0 许可证。
👥 引用与作者
作者为 Jaehyeong,所属公司为 Bespin Global。