|
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) |