🚀 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 许可证。
数据集
本模型的训练数据包括: