项目介绍:deberta-v2-base-japanese-char-wwm
项目概述
deberta-v2-base-japanese-char-wwm 是一个专为日语设计的 DeBERTa V2 模型,它预训练于多个大型日语语料库,包括日语维基百科、日本部分的 CC-100 和 OSCAR 数据集。该模型使用了字符级别的分词方式,以及全词掩盖(Whole Word Masking)技术。
使用方法
这个模型可以用于掩蔽语言建模(Masked Language Modeling),其使用示例如下:
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained('ku-nlp/deberta-v2-base-japanese-char-wwm')
model = AutoModelForMaskedLM.from_pretrained('ku-nlp/deberta-v2-base-japanese-char-wwm')
sentence = '京都大学で自然言語処理を[MASK][MASK]する。'
encoding = tokenizer(sentence, return_tensors='pt')
...
此外,用户还可以将其用于下游任务的微调。
分词方式
使用者不需要提前进行文本分词,直接将原始文本输入到分词器即可。文本会被分成字符级别的标记,这是由 sentencepiece 实现的。
训练数据
模型预训练使用了以下语料:
- 日语维基百科(截至 2022 年 10 月 20 日,3.2GB,共 2700 万句,130 万文档)
- CC-100 日本部分(85GB,6.19 亿句,6600 万文档)
- OSCAR 日本部分(54GB,3.26 亿句,2500 万文档)
值得注意的是,在 OSCAR 数据集中,我们过滤掉了带有“header”、“footer”或“noisy”标签的文档。由于日语维基百科的数据量和其他数据集相比相对较小,我们将其复制了十次,以使总语料数据量达到 171GB。
训练过程
首先,我们使用 Juman++ 2.0.0-rc3 对语料中的文本进行分词,以便实现全词掩盖。接着,我们建立了一个由 22,012 个标记组成的 sentencepiece 模型,其中包含了训练语料中出现的所有字符。
随后,我们将原始语料进行字符级别的子词分割,并利用 transformers 库训练了日本 DeBERTa 模型。训练过程耗时 20 天,使用了 8 块 NVIDIA A100-SXM4-40GB GPU。
训练过程中的超参数设置如下:
- 学习率:2e-4
- 每个设备的训练批量大小:46
- 分布式类型:多 GPU
- GPU 数量:8
- 梯度累积步数:6
- 总训练批量大小:2,208
- 最大序列长度:512
- 优化器:Adam,设置 betas=(0.9,0.999) 和 epsilon=1e-06
- 学习率调度:线性调度并在 500k 步时进行预热(lr = 0)
- 总训练步数:320,000
- 预热步数:10,000
鸣谢
感谢跨领域大型信息基础设施联合使用/研究中心(JHPCN)的支持,我们的工作得以在通用协作项目 jh221004 的框架内进行,即“开发构建和共享大规模日语语言模型的平台”。此外,模型训练使用了数据驱动未来的平台 mdx。