| import torch | |
| import transformers | |
| from transformers import AutoTokenizer, GPTJForCausalLM | |
| def get_sent(sent:str) -> str: | |
| input_text = '[BOS]' + sent + '[EOS][BOS]' | |
| input_length = len(tokenizer.encode(input_text)) | |
| max_length = 786 | |
| input_ids = torch.tensor(tokenizer.encode(input_text)).unsqueeze(0).to('cuda') | |
| output_sentence = model.generate( | |
| input_ids, | |
| do_sample=True, | |
| max_length=int(max_length), | |
| num_return_sequences=1, | |
| no_repeat_ngram_size=4, | |
| num_beams=5, | |
| early_stopping=True | |
| ) | |
| generated_sequence = output_sentence[0].tolist()[input_length:] | |
| decoded_sent = tokenizer.decode(generated_sequence, skip_special_tokens=False).strip() | |
| return decoded_sent | |
| if __name__ == "__main__": | |
| tokenizer = AutoTokenizer.from_pretrained('kakaobrain/kogpt', revision="KoGPT6B-ryan1.5b") | |
| model = GPTJForCausalLM.from_pretrained('./', torch_dtype=torch.float16) | |
| model.cuda() | |
| text = """ | |
| λ²μμμ΄ μ¨κ²μ μΈμ νκΈ° μ«μ΄μ. | |
| 2λ μ λΆν° μ°μΈμ¦μ μλ¬λ Έμ΅λλ€. 2λ λμ μ λ₯Ό μμκ°λ €κ³ μ μ°κ³ λμμ μ μ λ―Έλλ₯Ό μν΄ λμμμ΄ μκ²©μ¦ κ³΅λΆμ νμ μ λ³νν΄ μμ΄μ. | |
| νμ§λ§ λΆμμ ν μ¬λ¦¬ μνλ‘ μΈνμ¬ μ κΏκ³Ό μλ§μ κΈ°νλ€μ μ‘μ§ λͺ»νκ³ λλ§μ³λ²λ Έμ΅λλ€. μ΄μ§ΈμμΌκΉμ μ μ λ λ¨λ€λ³΄λ€ λ²ν°λ νμ΄ μ½νκ±ΈκΉμ. | |
| λ€μ νμλ΄μ λμ λ ν΄λ³΄κ³ μ¬λ¬ μΌμ ν΄λ³΄λ©° λͺ¨λ μλμ§λ₯Ό μμλΆμλλ μ΄λλ νκΈμ΄ μ νμ μ΄ μλκ³ κ°λ¨ν κ²°μ μ λ΄λ¦¬λ κ²μ΄ μ΄λ €μ κ²°κ΅ μ§μ₯μ λ κ·Έλ§λκ² λμμ΅λλ€. λμ½νλ€κ³ νκΈ°μλ 보ν΅μ¬λλ€μ΄ λ²ν°κΈ° μ΄λ €μνλ μ§μ’ μ νκ³ μκ±°λ μ. | |
| λ무 κ³Όλνκ² νμ λ΄μ μ΄μ¬ν ν νμΌκΉμ? μ΄μ λ μ λ§ λ°°ν°λ¦¬κ° 1%λ λ¨μμμ§ μλ κ² κ°μμ. κ·Όλ° μ¬λ €λκΉ λΆμν΄μ§κ³ λΆλͺ¨λκ» λ―Έμν΄μ μνμ§λ§ μμμ΄λ λλ μ리 μ μ‘μμ μ μ§λμ ν λ°μ.. μμΌλ‘ μ λ κ·Έλ₯ ν΄μμ μ·¨νλ κ²μ΄ λ§μκΉμ? μ λ μ΄λ€ μνμ μλ κ±ΈκΉμ? | |
| """ | |
| text = text.replace('\n','') | |
| result = get_sent(text) | |
| result = result.replace('μ¬μ°λ', 'λ§μΉ΄λ') | |
| print('λ‘λν:', result) |