🚀 roberta-base-japanese-jsnli
该模型是 nlp-waseda/roberta-base-japanese 在 JSNLI 数据集上的微调版本。它在评估集上取得了以下结果:
🚀 快速开始
本模型可用于文本分类任务,在自然语言推理任务上表现良好。使用前需提前了解输入文本的预处理要求。
✨ 主要特性
- 多标签分类:支持零样本分类,可对文本进行多标签分类。
- 自然语言推理:在自然语言推理任务中表现出色。
- 微调模型:基于预训练的日语 RoBERTa 模型进行微调。
📦 安装指南
使用该模型前,你需要安装所需的库。可以使用以下命令进行安装:
pip install transformers pyknp datasets tokenizers torch
💻 使用示例
基础用法
输入文本应提前使用 Juman++ 进行分词处理。以下是一个简单的零样本分类管道示例:
from transformers import pipeline
from pyknp import Juman
juman = Juman()
classifier = pipeline("zero-shot-classification", model="Formzu/roberta-base-japanese-jsnli")
sequence_to_classify = " ".join([tok.midasi for tok in juman.analysis("いつか世界を見る。").mrph_list()])
candidate_labels = ['旅行', '料理', '踊り']
out = classifier(sequence_to_classify, candidate_labels, hypothesis_template="この 例 は {} です 。")
print(out)
高级用法
以下是一个自然语言推理用例:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
from pyknp import Juman
juman = Juman()
device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
model_name = "Formzu/roberta-base-japanese-jsnli"
model = AutoModelForSequenceClassification.from_pretrained(model_name).to(device)
tokenizer = AutoTokenizer.from_pretrained(model_name)
premise = " ".join([tok.midasi for tok in juman.analysis("いつか世界を見る。").mrph_list()])
label = '旅行'
hypothesis = f'この 例 は {label} です 。'
input = tokenizer.encode(premise, hypothesis, return_tensors='pt').to(device)
with torch.no_grad():
logits = model(input)["logits"][0]
probs = logits.softmax(dim=-1)
print(probs.cpu().numpy(), logits.cpu().numpy())
📚 详细文档
训练过程
训练超参数
训练过程中使用了以下超参数:
属性 |
详情 |
学习率 |
2e-05 |
训练批次大小 |
32 |
评估批次大小 |
32 |
随机种子 |
42 |
优化器 |
Adam (betas=(0.9, 0.999), epsilon=1e-08) |
学习率调度器类型 |
线性 |
训练轮数 |
3.0 |
训练结果
训练损失 |
轮数 |
步数 |
验证损失 |
准确率 |
0.4067 |
1.0 |
16657 |
0.2224 |
0.9201 |
0.3397 |
2.0 |
33314 |
0.2152 |
0.9208 |
0.2775 |
3.0 |
49971 |
0.2039 |
0.9328 |
框架版本
- Transformers 4.21.2
- Pytorch 1.12.1+cu116
- Datasets 2.4.0
- Tokenizers 0.12.1
📄 许可证
本项目采用 CC BY-SA 4.0 许可证。