🚀 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 許可證。