교육용으로 학습 한 간단한 instruction fine-tuning 모델 (updated 2023/08/06)

from transformers import AutoModelForCausalLM
from transformers import PreTrainedTokenizerFast

tokenizer = PreTrainedTokenizerFast.from_pretrained("hyunjae/skt-kogpt2-kullm-v2",
                                                    bos_token='</s>', eos_token='</s>', unk_token='<unk>',
                                                    pad_token='<pad>', mask_token='<mask>', padding_side="right", model_max_length=512)
model = AutoModelForCausalLM.from_pretrained('hyunjae/skt-kogpt2-kullm-v2').to('cuda')

PROMPT= "### system:사용자의 질문에 맞는 적절한 응답을 생성하세요.\n### 사용자:{instruction}\n### 응답:"
text = PROMPT.format_map({'instruction':"안녕? 너가 할 수 있는게 뭐야?"})
input_ids = tokenizer.encode(text, return_tensors='pt').to(model.device)

gen_ids = model.generate(input_ids,
                        repetition_penalty=2.0,
                        pad_token_id=tokenizer.pad_token_id,
                        eos_token_id=tokenizer.eos_token_id,
                        bos_token_id=tokenizer.bos_token_id,
                        num_beams=4,
                        no_repeat_ngram_size=4,
                        max_new_tokens=128,
                        do_sample=True,
                        top_k=50)


generated = tokenizer.decode(gen_ids[0])
print(generated)