한국어 DistilBERT :: 대화형 AI - mindscale
Skip to content

한국어 DistilBERT

!pip install transformers kobert-transformers
from transformers import TFDistilBertForMaskedLM
model = TFDistilBertForMaskedLM.from_pretrained('monologg/distilkobert', from_pt=True)
from kobert_transformers import get_tokenizer
tokenizer = get_tokenizer()
inputs = tokenizer('피자는 내가 [MASK]하는 음식이다.', return_tensors='tf')
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.4815898835659027,
  'sequence': '[CLS] 사과는 내가 좋아 하는 음식이다.[SEP]',
  'token': 4207,
  'token_str': '▁좋아'},
 {'score': 0.07154127210378647,
  'sequence': '[CLS] 사과는 내가 해야 하는 음식이다.[SEP]',
  'token': 5010,
  'token_str': '▁해야'},
 {'score': 0.06964743137359619,
  'sequence': '[CLS] 사과는 내가 싫어 하는 음식이다.[SEP]',
  'token': 3059,
  'token_str': '▁싫어'},
 {'score': 0.030746521428227425,
  'sequence': '[CLS] 사과는 내가 자주 하는 음식이다.[SEP]',
  'token': 3924,
  'token_str': '▁자주'},
 {'score': 0.0253937765955925,
  'sequence': '[CLS] 사과는 내가 주로 하는 음식이다.[SEP]',
  'token': 4222,
  'token_str': '▁주로'}]