许可证:apache-2.0
标签:
- 源自keras回调生成
模型索引:
- 名称:kasrahabib/KM45L6V2OC
结果:[]
语言:
- 英语
交互示例:
- 文本:"START NEW PROJECT功能应允许用户创建新项目。"
示例标题:"需求1"
- 文本:"邮箱字符串格式为x@x.x,长度小于31字符且不为空。"
示例标题:"需求2"
kasrahabib/KM45L6V2OC
该模型是基于sentence-transformers/all-MiniLM-L6-v2微调的版本,用于将软件需求分类为功能性(F)与非功能性(NF)类型,训练数据来自软件需求数据集(SWARD)。评估集结果如下:
- 训练损失:0.0107
- 验证损失:0.0404
- 训练轮次:14
- 最终宏观F1分数:0.99
标签说明:
0或F → 功能性需求;
1或NF → 非功能性需求;
使用流程
from transformers import pipeline
frame_work = 'tf'
task = 'text-classification'
model_ckpt = 'kasrahabib/KM45L6V2OC'
software_requirment_cls = pipeline(task=task, model=model_ckpt, framework=frame_work)
example_1_f = 'START NEW PROJECT功能应允许用户创建新项目。'
example_2_nf = '邮箱字符串格式为x@x.x,长度小于31字符且不为空。'
software_requirment_cls([example_1_f, example_2_nf])
输出:
[{'label': 'F', 'score': 0.9998922348022461},
{'label': 'NF', 'score': 0.999846339225769}]
模型推理
import numpy as np
from transformers import AutoTokenizer, TFAutoModelForSequenceClassification
model_ckpt = 'kasrahabib/KM45L6V2OC'
tokenizer = AutoTokenizer.from_pretrained(model_ckpt)
model = TFAutoModelForSequenceClassification.from_pretrained(model_ckpt)
example_1_f = 'START NEW PROJECT功能应允许用户创建新项目。'
example_2_nf = '邮箱字符串格式为x@x.x,长度小于31字符且不为空。'
requirements = [example_1_f, example_2_nf]
encoded_requirements = tokenizer(requirements, return_tensors='np', padding='longest')
y_pred = model(encoded_requirements).logits
classifications = np.argmax(y_pred, axis=1)
classifications = [model.config.id2label[output] for output in classifications]
print(classifications)
输出:
['F', 'NF']
本地下载使用(如GitHub)
- 克隆仓库:
git lfs install
git clone 仓库地址
- 定位下载目录路径
- 将路径写入
model_ckpt
变量
修改代码如下:
model_ckpt = '路径其余部分/KM45L6V2OC'
输出示例:
[{'label': 'F', 'score': 0.9998922348022461},
{'label': 'NF', 'score': 0.999846339225769}]
训练超参数
训练时使用以下超参数:
- 优化器:Adam(学习率多项式衰减,初始2e-5,最终0.0,β1=0.9,β2=0.999,ε=1e-8)
- 训练精度:float32
框架版本
- Transformers 4.26.1
- TensorFlow 2.11.0
- Datasets 2.10.1
- Tokenizers 0.13.2