KoBERT :: 대화형 AI - mindscale
Skip to content

KoBERT

!pip install kobert-transformers
from transformers import TFBertForMaskedLM
model = TFBertForMaskedLM.from_pretrained('monologg/kobert', from_pt=True)
from kobert_transformers import get_tokenizer
tokenizer = get_tokenizer()
inputs = tokenizer('피자는 내가 [MASK]하는 음식이다.', return_tensors='tf')
tokenizer.cls_token_id
2
tokenizer.sep_token_id
3
tokenizer.mask_token_id
4
result = model(inputs)
logits = result[0]
import tensorflow as tf
top = tf.math.top_k(logits[0, 4], k=5)
tokenizer.decode(top.indices.numpy())
'얻고├ 얻은 좋은山'
from transformers import FillMaskPipeline
pip = FillMaskPipeline(model=model, tokenizer=tokenizer)
pip('피자는 내가 [MASK]하는 음식이다.')
[{'score': 0.02062668278813362,
  'sequence': '[CLS] 피자는 내가 얻고 하는 음식이다.[SEP]',
  'token': 3246,
  'token_str': '▁얻고'},
 {'score': 0.014226310886442661,
  'sequence': '[CLS] 피자는 내가├ 하는 음식이다.[SEP]',
  'token': 515,
  'token_str': '├'},
 {'score': 0.013991154730319977,
  'sequence': '[CLS] 피자는 내가 얻은 하는 음식이다.[SEP]',
  'token': 3249,
  'token_str': '▁얻은'},
 {'score': 0.012491712346673012,
  'sequence': '[CLS] 피자는 내가 좋은 하는 음식이다.[SEP]',
  'token': 4209,
  'token_str': '▁좋은'},
 {'score': 0.009930779226124287,
  'sequence': '[CLS] 피자는 내가山 하는 음식이다.[SEP]',
  'token': 5271,
  'token_str': '山'}]