!pip install transformers
from google.colab import drive
drive.mount('/gdrive')
Mounted at /gdrive
from sentencepiece import SentencePieceProcessor
토크나이저
tokenizer = SentencePieceProcessor(model_file='/gdrive/My Drive/kogpt2/kogpt2_news_wiki_ko_cased_818bfa919d.spiece')
tokenizer.encode_as_pieces('오늘도 즐겁게 공부해봅시다!')
['▁오늘도', '▁즐겁게', '▁공부', '해', '봅', '시다', '!']
tokenizer.encode('오늘도 즐겁게 공부해봅시다!')
[16916, 21512, 4649, 47466, 48669, 10723, 47812]
모형
import tensorflow as tf
from transformers import TFGPT2LMHeadModel
model = TFGPT2LMHeadModel.from_pretrained('/gdrive/My Drive/kogpt2/kogpt2_transformers', from_pt=True)
문장 생성
input_ids = tokenizer.encode(sent)
input_ids = tf.convert_to_tensor([input_ids])
result = model(input_ids)
output = model.generate(input_ids, max_length=50)
Setting `pad_token_id` to 50256 (first `eos_token_id`) to generate sequence
output_ids = output.numpy().tolist()[0]
tokenizer.decode_ids(output_ids)
'자연어 처리는 물론, 다양한 어법 구사까지 구사할 수 있다. 이 때문에 ‘제2의 싸이’를 꿈꾸는 가수들이 ‘강남스타일’로 세계를 정복할 수 있을지 관심이 쏠리고 있다. 싸이는 지난 7월'
한 문장이 완성될 때까지만 생성
output = model.generate(input_ids, max_length=50, early_stopping=True, eos_token_id=1)
Setting `pad_token_id` to 1 (first `eos_token_id`) to generate sequence
output_ids = output.numpy().tolist()[0]
tokenizer.decode_ids(output_ids)
'자연어 처리는 물론, 다양한 어법 구사까지 구사할 수 있다.'
무작위로 생성
output = model.generate(input_ids, max_length=50, do_sample=True, top_k=50, early_stopping=True, eos_token_id=1)
Setting `pad_token_id` to 1 (first `eos_token_id`) to generate sequence
output_ids = output.numpy().tolist()[0]
tokenizer.decode_ids(output_ids)
'자연어 처리는 물론, 영어, 일본어, 불어 등 6개국어로 진행된다.'