0
0

HPLT Bert for Japaneseは「酸素ボンベを充[MASK]する。」の[MASK]に何を埋めてくるのか

Posted at

昨日の記事の続きだが、日本語LTG-BERTモデル「HPLT Bert for Japanese」で「酸素ボンベを充[MASK]する。」の[MASK]に穴埋めさせてみた。Google Colaboratoryだと、こんな感じ。

!pip install 'transformers<4.40'
import torch
from transformers import AutoTokenizer,AutoModelForMaskedLM
tokenizer=AutoTokenizer.from_pretrained("HPLT/hplt_bert_base_ja")
model=AutoModelForMaskedLM.from_pretrained("HPLT/hplt_bert_base_ja",trust_remote_code=True)
ids=tokenizer("酸素ボンベを充[MASK]する。")["input_ids"]
print([tokenizer.decode(t) for t in ids])
mask=ids.index(tokenizer.mask_token_id)
with torch.no_grad():
  outputs=model(torch.tensor([ids]))
  pred=outputs[0][0,mask].topk(5)
for i,t in enumerate(pred.indices):
  ids[mask]=t
  print(i+1,[tokenizer.decode(t) for t in ids])

私(安岡孝一)の手元では、以下の結果が得られた。

['[CLS]', '酸', '素', 'ボン', 'ベ', 'を', '充', '[MASK]', 'する', '。', '[SEP]']
1 ['[CLS]', '酸', '素', 'ボン', 'ベ', 'を', '充', '填', 'する', '。', '[SEP]']
2 ['[CLS]', '酸', '素', 'ボン', 'ベ', 'を', '充', '電', 'する', '。', '[SEP]']
3 ['[CLS]', '酸', '素', 'ボン', 'ベ', 'を', '充', '実', 'する', '。', '[SEP]']
4 ['[CLS]', '酸', '素', 'ボン', 'ベ', 'を', '充', '充', 'する', '。', '[SEP]']
5 ['[CLS]', '酸', '素', 'ボン', 'ベ', 'を', '充', '続', 'する', '。', '[SEP]']

一発目に「填」を埋めてきているのは、かなり強い。そこそこ高い精度が期待できるのだけど、さて、ファインチューニングがうまくいくかな。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0