🚀 nlp-waseda/roberta-base-japanese-with-auto-jumanpp
本項目是一個基於日本維基百科和CC - 100日語部分數據預訓練的日語RoBERTa基礎模型,可用於掩碼語言建模等自然語言處理任務。
🚀 快速開始
你可以按如下方式使用該模型進行掩碼語言建模:
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("nlp-waseda/roberta-base-japanese-with-auto-jumanpp")
model = AutoModelForMaskedLM.from_pretrained("nlp-waseda/roberta-base-japanese-with-auto-jumanpp")
sentence = '早稲田大學で自然言語処理を[MASK]する。'
encoding = tokenizer(sentence, return_tensors='pt')
...
你還可以在下游任務中對該模型進行微調。
✨ 主要特性
- 數據豐富:基於日本維基百科和CC - 100日語部分數據進行預訓練。
- 支持自動分詞:
BertJapaneseTokenizer
現在支持 Juman++ 的自動分詞。
- 可微調:能夠在下游任務中進行微調。
💻 使用示例
基礎用法
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("nlp-waseda/roberta-base-japanese-with-auto-jumanpp")
model = AutoModelForMaskedLM.from_pretrained("nlp-waseda/roberta-base-japanese-with-auto-jumanpp")
sentence = '早稲田大學で自然言語処理を[MASK]する。'
encoding = tokenizer(sentence, return_tensors='pt')
...
高級用法
from transformers import AutoTokenizer, AutoModelForMaskedLM, TrainingArguments, Trainer
import torch
tokenizer = AutoTokenizer.from_pretrained("nlp-waseda/roberta-base-japanese-with-auto-jumanpp")
model = AutoModelForMaskedLM.from_pretrained("nlp-waseda/roberta-base-japanese-with-auto-jumanpp")
training_args = TrainingArguments(
output_dir='./results',
num_train_epochs=3,
per_device_train_batch_size=16,
per_device_eval_batch_size=64,
warmup_steps=500,
weight_decay=0.01,
logging_dir='./logs',
logging_steps=10,
evaluation_strategy="steps",
eval_steps=50,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
)
trainer.train()
📚 詳細文檔
分詞
BertJapaneseTokenizer
現在支持 Juman++ 的自動分詞。不過,如果你的數據集很大,由於 BertJapaneseTokenizer
仍然不支持快速分詞,可能會花費較長時間。你也可以自己進行 Juman++ 分詞,然後使用舊模型 nlp-waseda/roberta-base-japanese。
預訓練時使用了 Juman++ 2.0.0 - rc3。每個單詞通過 sentencepiece 被分詞為多個標記。
詞彙表
詞彙表由 32000 個標記組成,包括單詞(JumanDIC)和由 sentencepiece 的 unigram 語言模型推導的子詞。
訓練過程
該模型在日本維基百科(截至 20210920)和 CC - 100 的日語部分上進行訓練。使用八個 NVIDIA A100 GPU 訓練了一週。
預訓練期間使用了以下超參數:
屬性 |
詳情 |
學習率 |
1e - 4 |
每個設備的訓練批次大小 |
256 |
分佈式類型 |
多 GPU |
設備數量 |
8 |
梯度累積步數 |
2 |
總訓練批次大小 |
4096 |
最大序列長度 |
128 |
優化器 |
Adam(betas=(0.9, 0.999),epsilon = 1e - 08) |
學習率調度器類型 |
線性 |
訓練步數 |
700000 |
熱身步數 |
10000 |
混合精度訓練 |
原生 AMP |
在 JGLUE 上的性能
請參閱 JGLUE 的 基線分數。
📄 許可證
本項目採用 CC - BY - SA 4.0 許可證。
數據集
本模型的訓練數據包括: