🚀 中国語の単語ベースのRoBERTaミニモデル
このモデルは、中国語の単語ベースのRoBERTaモデルで、事前学習により高性能な自然言語処理を実現します。文字ベースのモデルと比較して、処理速度が速く、性能も良好です。
🚀 クイックスタート
このセクションでは、モデルの基本的な使い方を説明します。
✨ 主な機能
- 高速処理:文字ベースのモデルと比べて、短いシーケンス長により高速に処理できます。
- 高性能:実験結果によると、文字ベースのモデルよりも良好な性能を発揮します。
- 公開データセット利用:再現性を高めるため、公開されているコーパスと形態素解析ツールを使用しています。
📦 インストール
このモデルは、HuggingFaceを通じてダウンロードできます。以下のリンクから各サイズのモデルを取得できます。
💻 使用例
基本的な使用法
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='uer/roberta-medium-word-chinese-cluecorpussmall')
>>> unmasker("[MASK]的首都是北京。")
[
{'sequence': '中国 的首都是北京。',
'score': 0.21525809168815613,
'token': 2873,
'token_str': '中国'},
{'sequence': '北京 的首都是北京。',
'score': 0.15194718539714813,
'token': 9502,
'token_str': '北京'},
{'sequence': '我们 的首都是北京。',
'score': 0.08854265511035919,
'token': 4215,
'token_str': '我们'},
{'sequence': '美国 的首都是北京。',
'score': 0.06808705627918243,
'token': 7810,
'token_str': '美国'},
{'sequence': '日本 的首都是北京。',
'score': 0.06071401759982109,
'token': 7788,
'token_str': '日本'}
]
高度な使用法
from transformers import AlbertTokenizer, BertModel
tokenizer = AlbertTokenizer.from_pretrained('uer/roberta-medium-word-chinese-cluecorpussmall')
model = BertModel.from_pretrained("uer/roberta-medium-word-chinese-cluecorpussmall")
text = "用你喜欢的任何文本替换我。"
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
from transformers import AlbertTokenizer, TFBertModel
tokenizer = AlbertTokenizer.from_pretrained('uer/roberta-medium-word-chinese-cluecorpussmall')
model = TFBertModel.from_pretrained("uer/roberta-medium-word-chinese-cluecorpussmall")
text = "用你喜欢的任何文本替换我。"
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
📚 ドキュメント
モデルの説明
このモデルは、UER-pyによって事前学習された5つの中国語の単語ベースのRoBERTaモデルのセットです。また、TencentPretrainによっても事前学習できます。
データセット
CLUECorpusSmallを学習データとして使用しています。Googleのsentencepieceを形態素解析に使用しています。
学習手順
モデルは、UER-pyを使用してTencent Cloud上で事前学習されました。シーケンス長128で1,000,000ステップ、その後シーケンス長512で250,000ステップの追加学習を行いました。
🔧 技術詳細
性能比較
文字ベースのモデルと比較して、単語ベースのモデルはほとんどの場合で良好な結果を達成しています。以下は、6つの中国語タスクの開発セットでのスコアです。
モデル |
スコア |
book_review |
chnsenticorp |
lcqmc |
tnews(CLUE) |
iflytek(CLUE) |
ocnli(CLUE) |
RoBERTa-Tiny(文字) |
72.3 |
83.4 |
91.4 |
81.8 |
62.0 |
55.0 |
60.3 |
RoBERTa-Tiny(単語) |
74.4(+2.1) |
86.7 |
93.2 |
82.0 |
66.4 |
58.2 |
59.6 |
RoBERTa-Mini(文字) |
75.9 |
85.7 |
93.7 |
86.1 |
63.9 |
58.3 |
67.4 |
RoBERTa-Mini(単語) |
76.9(+1.0) |
88.5 |
94.1 |
85.4 |
66.9 |
59.2 |
67.3 |
RoBERTa-Small(文字) |
76.9 |
87.5 |
93.4 |
86.5 |
65.1 |
59.4 |
69.7 |
RoBERTa-Small(単語) |
78.4(+1.5) |
89.7 |
94.7 |
87.4 |
67.6 |
60.9 |
69.8 |
RoBERTa-Medium(文字) |
78.0 |
88.7 |
94.8 |
88.1 |
65.6 |
59.5 |
71.2 |
RoBERTa-Medium(単語) |
79.1(+1.1) |
90.0 |
95.1 |
88.0 |
67.8 |
60.6 |
73.0 |
RoBERTa-Base(文字) |
79.7 |
90.1 |
95.2 |
89.2 |
67.0 |
60.9 |
75.5 |
RoBERTa-Base(単語) |
80.4(+0.7) |
91.1 |
95.7 |
89.4 |
68.0 |
61.5 |
76.8 |
ハイパーパラメータ
各タスクでは、以下のリストから最適な微調整ハイパーパラメータを選択し、シーケンス長128で学習を行いました。
- エポック数: 3, 5, 8
- バッチサイズ: 32, 64
- 学習率: 3e-5, 1e-4, 3e-4
BibTeXエントリと引用情報
@article{devlin2018bert,
title={BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding},
author={Devlin, Jacob and Chang, Ming-Wei and Lee, Kenton and Toutanova, Kristina},
journal={arXiv preprint arXiv:1810.04805},
year={2018}
}
@article{turc2019,
title={Well-Read Students Learn Better: On the Importance of Pre-training Compact Models},
author={Turc, Iulia and Chang, Ming-Wei and Lee, Kenton and Toutanova, Kristina},
journal={arXiv preprint arXiv:1908.08962v2 },
year={2019}
}
@article{zhao2019uer,
title={UER: An Open-Source Toolkit for Pre-training Models},
author={Zhao, Zhe and Chen, Hui and Zhang, Jinbin and Zhao, Xin and Liu, Tao and Lu, Wei and Chen, Xi and Deng, Haotang and Ju, Qi and Du, Xiaoyong},
journal={EMNLP-IJCNLP 2019},
pages={241},
year={2019}
}
@article{zhao2023tencentpretrain,
title={TencentPretrain: A Scalable and Flexible Toolkit for Pre-training Models of Different Modalities},
author={Zhao, Zhe and Li, Yudong and Hou, Cheng and Zhao, Jing and others},
journal={ACL 2023},
pages={217},
year={2023}