パスワードを忘れた? アカウント作成
15527404 journal
人工知能

yasuokaの日記: 青空文庫RoBERTa単文字モデルroberta-base-japanese-aozora-charリリース

日記 by yasuoka

12月23日の日記の手法を拡張して、青空文庫(2.37億字)をもとにroberta-base-japanese-aozora-charを作ってみた。12層・隠れサイズ768・12ヘッド・トークン幅512とした上で、7772556文3億字(元データ2.37億字+異体字増量分0.64億字)をNVIDIA A100-SXM4-40GBで728679ステップ(32バッチ)学習させたところ、19時間11分かかってしまった。とりあえず、Google Colaboratoryで使ってみよう。

!pip install transformers
from transformers import AutoTokenizer,AutoModelForMaskedLM,FillMaskPipeline
tokenizer=AutoTokenizer.from_pretrained("KoichiYasuoka/roberta-base-japanese-aozora-char")
model=AutoModelForMaskedLM.from_pretrained("KoichiYasuoka/roberta-base-japanese-aozora-char")
pipeline=FillMaskPipeline(model,tokenizer)
print(pipeline("酸素ボ[MASK]ベを充塡する。"))

「酸素ボ[MASK]ベを充塡する。」を穴埋めさせてみたところ、私(安岡孝一)の手元では以下の結果となった。

[{'score': 0.28202304244041443, 'token': 1145, 'token_str': 'ー', 'sequence': '酸素ボーベを充塡する。'}, {'score': 0.20037603378295898, 'token': 1136, 'token_str': 'ン', 'sequence': '酸素ボンベを充塡する。'}, {'score': 0.07854818552732468, 'token': 1128, 'token_str': 'ル', 'sequence': '酸素ボルベを充塡する。'}, {'score': 0.04990103840827942, 'token': 1059, 'token_str': 'ウ', 'sequence': '酸素ボウベを充塡する。'}, {'score': 0.04331567883491516, 'token': 1084, 'token_str': 'タ', 'sequence': '酸素ボタベを充塡する。'}]

2番目に「ン」が出てきたので、まあ良しとすべきだろうか。あるいは、largeモデルにも挑戦してみるべきかな。

この議論は、yasuoka (21275)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

身近な人の偉大さは半減する -- あるアレゲ人

読み込み中...