🚀 BERT基础日语模型
本仓库包含一个基于日语维基百科数据集训练的BERT基础模型。该模型可用于日语的掩码填充任务,为日语自然语言处理提供了强大的支持。
🚀 快速开始
首先,安装依赖项。
$ pip install torch==1.8.0 transformers==4.8.2 sentencepiece==0.1.95
然后使用 transformers.pipeline
来尝试掩码填充任务。
>>> import transformers
>>> pipeline = transformers.pipeline("fill-mask", "colorfulscoop/bert-base-ja", revision="v1.0")
>>> pipeline("専門として[MASK]を専攻しています")
[{'sequence': '専門として工学を専攻しています', 'score': 0.03630176931619644, 'token': 3988, 'token_str': '工学'}, {'sequence': '専門として政治学を専攻しています', 'score': 0.03547220677137375, 'token': 22307, 'token_str': '政治学'}, {'sequence': '専門として教育を専攻しています', 'score': 0.03162326663732529, 'token': 414, 'token_str': '教育'}, {'sequence': '専門として経済学を専攻しています', 'score': 0.026036914438009262, 'token': 6814, 'token_str': '経済学'}, {'sequence': '専門として法学を専攻しています', 'score': 0.02561848610639572, 'token': 10810, 'token_str': '法学'}]
⚠️ 重要提示
指定 revision
选项,通过 transformers.pipeline
或 transformers.AutoModel.from_pretrained
下载模型时,建议指定 revision
选项以确保可重复性。
✨ 主要特性
- 基于维基百科训练:使用日语维基百科数据集进行训练,数据丰富且具有广泛的知识覆盖。
- 特定的词汇表大小:词汇表大小设置为32,000,适应日语的语言特点。
- 稳定的分词器:使用
transformers.DebertaV2Tokenizer
作为分词器,确保分词行为的一致性。
📦 安装指南
安装依赖项:
$ pip install torch==1.8.0 transformers==4.8.2 sentencepiece==0.1.95
💻 使用示例
基础用法
import transformers
pipeline = transformers.pipeline("fill-mask", "colorfulscoop/bert-base-ja", revision="v1.0")
result = pipeline("専門として[MASK]を専攻しています")
print(result)
📚 详细文档
模型描述
模型架构与BERT基础模型相同(隐藏层大小:768,隐藏层数:12,注意力头数:12,最大位置嵌入:512),但词汇表大小不同。词汇表大小设置为32,000,而不是原始的30,522。模型使用 transformers.BertForPreTraining
。
分词器描述
使用 SentencePiece 分词器。训练时,分词器模型使用从训练集中提取的1,000,000个样本进行训练,词汇表大小设置为32,000。由于日语单词之间没有空格分隔,add_dummy_prefix
选项设置为 True
。训练后,模型导入到 transformers.DebertaV2Tokenizer
中,因为它支持SentencePiece模型,并且当 use_fast
选项设置为 True
或 False
时,其行为一致。
训练
训练细节如下:
- 每256个样本进行一次梯度更新(批量大小:8,累积梯度批次:32)
- 梯度裁剪范数为1.0
- 学习率从0开始,在前10,000步线性增加到0.0001
- 训练集包含约2000万个样本。由于80k * 256 ~ 20M,1个epoch大约有80k步。
训练在Ubuntu 18.04.5 LTS上使用一块RTX 2080 Ti进行。训练持续到验证损失变差为止,总共训练步数约为214k。测试集损失为2.80。训练代码可在 GitHub仓库 中找到。
信息表格
属性 |
详情 |
模型类型 |
BERT基础模型,词汇表大小为32,000,使用 transformers.BertForPreTraining |
训练数据 |
2021年6月20日的日语维基百科数据集,根据 知识共享署名 - 相同方式共享3.0 许可发布 |
🔧 技术细节
本模型在训练过程中,采用了特定的梯度更新策略和学习率调整方法。梯度每256个样本更新一次,学习率在前10,000步从0线性增加到0.0001。在选择分词器时,考虑到日语的语言特点和分词行为的一致性,最终选择了 transformers.DebertaV2Tokenizer
。训练在特定的硬件和操作系统环境下进行,以确保模型的稳定性和性能。
📄 许可证
版权所有 (c) 2021 Colorful Scoop。本仓库中包含的所有模型均根据 知识共享署名 - 相同方式共享3.0 许可。
⚠️ 重要提示
该模型可能会生成与训练数据相似的文本、不真实的文本或有偏差的文本。使用该模型需自行承担风险。Colorful Scoop不对模型的任何输出提供保证,也不对因模型输出而产生的任何问题、损失或损害承担责任。
本模型使用以下数据作为训练数据:
- 名称:ウィキペディア (Wikipedia): フリー百科事典
- 来源:https://ja.wikipedia.org/
- 许可证:知识共享署名 - 相同方式共享3.0
- 链接:https://ja.wikipedia.org/