🚀 中国語BART-Large
中国語のテキスト生成に特化した事前学習モデルで、新しいバージョンで性能と機能が向上しました。
🚀 クイックスタート
このモデルは中国語のテキスト生成に特化した事前学習モデルで、新しいバージョンでは語彙や位置埋め込みなどの部分が更新されています。以下に使用例を示します。
✨ 主な機能
ニュース
2022年12月30日
CPTと中国語BARTの更新版がリリースされました。新しいバージョンでは以下の部分を変更しました。
- 語彙:古いBERT語彙を、訓練データから構築されたサイズ51271の大きな語彙に置き換えました。具体的には、1) 欠落している6800以上の中国語文字(その多くは繁体字)を追加し;2) 冗長なトークン(例えば、##接頭辞付きの中国語文字トークン)を削除し;3) いくつかの英語トークンを追加してOOVを減らしました。
- 位置埋め込み:max_position_embeddingsを512から1024に拡張しました。
新しいバージョンのモデルは、語彙アラインメントを行った古いバージョンのチェックポイントで初期化されます。古いチェックポイントに見つかったトークン埋め込みはコピーされ、その他の新しく追加されたパラメータはランダムに初期化されます。さらに、新しいCPTと中国語BARTをバッチサイズ2048、最大シーケンス長1024、ピーク学習率2e - 5、ウォームアップ率0.1で50Kステップ学習させました。
以前のチェックポイントとの比較結果は以下の通りです。
|
AFQMC |
IFLYTEK |
CSL-sum |
LCSTS |
AVG |
以前のバージョン |
|
|
|
|
|
bart-base |
73.0 |
60 |
62.1 |
37.8 |
58.23 |
cpt-base |
75.1 |
60.5 |
63.0 |
38.2 |
59.20 |
bart-large |
75.7 |
62.1 |
64.2 |
40.6 |
60.65 |
cpt-large |
75.9 |
61.8 |
63.7 |
42.0 |
60.85 |
更新後 |
|
|
|
|
|
bart-base |
73.03 |
61.25 |
61.51 |
38.78 |
58.64 |
cpt-base |
74.40 |
61.23 |
62.09 |
38.81 |
59.13 |
bart-large |
75.81 |
61.52 |
64.62 |
40.90 |
60.71 |
cpt-large |
75.97 |
61.63 |
63.83 |
42.08 |
60.88 |
結果から、更新後のモデルは以前のチェックポイントと比較して同等の性能を維持しています。ただし、いくつかのケースでは更新後のモデルが以前のモデルよりわずかに劣ることがあります。これは、1) 追加の学習ステップが性能向上につながらなかったこと;2) いくつかの下流タスクは新しく追加されたトークンやより長いエンコーディングシーケンスの影響を受けず、微調整のハイパーパラメータに敏感であることが原因です。
⚠️ 重要提示
更新後のモデルを使用するには、modeling_cpt.py
(新しいバージョンはこちらからダウンロード)と語彙(キャッシュを更新)を更新してください。
📚 ドキュメント
モデルの説明
これは中国語BART - Largeの実装です。
CPT: A Pre-Trained Unbalanced Transformer for Both Chinese Language Understanding and Generation
Yunfan Shao, Zhichao Geng, Yitao Liu, Junqi Dai, Fei Yang, Li Zhe, Hujun Bao, Xipeng Qiu
Githubリンク: https://github.com/fastnlp/CPT
💻 使用例
基本的な使用法
>>> from transformers import BertTokenizer, BartForConditionalGeneration, Text2TextGenerationPipeline
>>> tokenizer = BertTokenizer.from_pretrained("fnlp/bart-large-chinese")
>>> model = BartForConditionalGeneration.from_pretrained("fnlp/bart-large-chinese")
>>> text2text_generator = Text2TextGenerationPipeline(model, tokenizer)
>>> text2text_generator("北京是[MASK]的首都", max_length=50, do_sample=False)
[{'generated_text': '北 京 是 中 华 人 民 共 和 国 的 首 都'}]
⚠️ 重要提示
モデルの語彙にはBertTokenizerを使用してください。元のBartTokenizerを使用しないでください。
📄 ライセンス
引用
@article{shao2021cpt,
title={CPT: A Pre-Trained Unbalanced Transformer for Both Chinese Language Understanding and Generation},
author={Yunfan Shao and Zhichao Geng and Yitao Liu and Junqi Dai and Fei Yang and Li Zhe and Hujun Bao and Xipeng Qiu},
journal={arXiv preprint arXiv:2109.05729},
year={2021}
}