yasuokaの日記: 青空文庫DeBERTaモデルdeberta-large-japanese-aozoraリリース
5月24日の日記の手法を拡張して、日本語DeBERTa(V2)モデルdeberta-large-japanese-aozoraも作ってみた。24層・隠れサイズ1024・16ヘッド・トークン幅512とした上で、7772556文3億字(青空文庫元データ2.37億字+異体字増量分0.64億字)をNVIDIA A100-SXM4-40GBで1457355ステップ(32バッチ)学習させたところ、54時間28分かかってしまった。頑張って学習させたので、ちょっと試してみよう。
$ pip3 install 'transformers>=4.19.0' --user
$ python3
>>> from transformers import AutoTokenizer,AutoModelForMaskedLM,FillMaskPipeline
>>> tokenizer=AutoTokenizer.from_pretrained("KoichiYasuoka/deberta-large-japanese-aozora")
>>> model=AutoModelForMaskedLM.from_pretrained("KoichiYasuoka/deberta-large-japanese-aozora")
>>> pipeline=FillMaskPipeline(model,tokenizer)
>>> print(pipeline("夜の底が[MASK]なった。"))
[{'score': 0.20554247498512268, 'token': 2114, 'token_str': '白く', 'sequence': '夜の底が白くなった。'}, {'score': 0.05871229246258736, 'token': 3493, 'token_str': '黒く', 'sequence': '夜の底が黒くなった。'}, {'score': 0.05512851104140282, 'token': 3508, 'token_str': 'わるく', 'sequence': '夜の底がわるくなった。'}, {'score': 0.046418409794569016, 'token': 7041, 'token_str': '暑く', 'sequence': '夜の底が暑くなった。'}, {'score': 0.01965286023914814, 'token': 3623, 'token_str': '堅く', 'sequence': '夜の底が堅くなった。'}]
「夜の底が[MASK]なった。」を穴埋めさせてみたところ、私(安岡孝一)の手元では「白く」「黒く」「わるく」「暑く」「堅く」を埋めてきた。ちなみに、旧来のbert-large-japaneseは「暗く」「明るく」「赤く」「深く」「黒く」を埋めてくるので、あるいはdeberta-large-japanese-aozoraの方が文学的なのかもしれない。DeBERTa(V2)モデルのクセは、私もイマイチ読み切れてないので、ぜひ読者諸氏も色々と試してみてほしい。
青空文庫DeBERTaモデルdeberta-large-japanese-aozoraリリース More ログイン