텍스트 생성을 위한 사전 학습 모델

PyTorch로 배우는 텍스트 딥러닝

Shubham Jain

Instructor

왜 사전 학습 모델인가?

장점

  1. 대규모 데이터셋으로 학습됨
  2. 다양한 텍스트 생성 작업에서 높은 성능
    • 감성 분석
    • 문장 완성
    • 기계 번역

한계

  1. 학습에 높은 계산 비용
  2. 큰 저장 공간 필요
  3. 사용자 맞춤화 제한적
PyTorch로 배우는 텍스트 딥러닝

PyTorch의 사전 학습 모델

  • Hugging Face Transformers: 사전 학습 모델 라이브러리
  • 사전 학습 모델:
    • GPT-2
    • T5

HuggingFace 로고

PyTorch로 배우는 텍스트 딥러닝

GPT-2 토크나이저와 모델 이해

GPT2LMHeadModel:

  • HuggingFace의 GPT-2 구현
  • 텍스트 생성에 최적화

GPT2Tokenizer:

  • 텍스트를 토큰으로 변환
  • 서브워드 토크나이징 처리: 'larger' → ['large', 'r']
PyTorch로 배우는 텍스트 딥러닝

GPT-2: 텍스트 생성 구현

import torch
from transformers import GPT2Tokenizer, GPT2LMHeadModel

tokenizer = GPT2Tokenizer.from_pretrained('gpt2') model = GPT2LMHeadModel.from_pretrained('gpt2')
seed_text = "Once upon a time"
input_ids = tokenizer.encode(seed_text, return_tensors='pt')
PyTorch로 배우는 텍스트 딥러닝

GPT-2: 텍스트 생성 구현 II

output = model.generate(

                                                           ) 
PyTorch로 배우는 텍스트 딥러닝

GPT-2: 텍스트 생성 구현 II

output = model.generate(input_ids, max_length=40, 

                                                           ) 
PyTorch로 배우는 텍스트 딥러닝

GPT-2: 텍스트 생성 구현 II

output = model.generate(input_ids, max_length=40, temperature=0.7,     

                                                           ) 
PyTorch로 배우는 텍스트 딥러닝

GPT-2: 텍스트 생성 구현 II

output = model.generate(input_ids, max_length=40, temperature=0.7,     
                        no_repeat_ngram_size=2, 
                                                           ) 
PyTorch로 배우는 텍스트 딥러닝

GPT-2: 텍스트 생성 구현 II

output = model.generate(input_ids, max_length=40, temperature=0.7,     
                        no_repeat_ngram_size=2, 
                        pad_token_id=tokenizer.eos_token_id) 
PyTorch로 배우는 텍스트 딥러닝

GPT-2: 텍스트 생성 출력

generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
print(generated_text)
Generated Text: Once upon a time, the world was a place of great beauty
and great danger. The world of the gods was the place where the great gods were 
born, and where they were to live.
PyTorch로 배우는 텍스트 딥러닝

T5: 번역 구현

  • t5-small: Text-to-Text Transfer Transformer
  • 번역 작업용 사전 학습 모델
import torch
from transformers import T5Tokenizer, T5ForConditionalGeneration

tokenizer = T5Tokenizer.from_pretrained("t5-small") model = T5ForConditionalGeneration.from_pretrained("t5-small")
input_prompt = "translate English to French: 'Hello, how are you?'"
input_ids = tokenizer.encode(input_prompt, return_tensors="pt")
output = model.generate(input_ids, max_length=100)
PyTorch로 배우는 텍스트 딥러닝

T5: 번역 출력

generated_text = tokenizer.decode(output[0], skip_special_tokens=True)

print("Generated text:",generated_text)
Generated text:
"Bonjour, comment êtes-vous?"
PyTorch로 배우는 텍스트 딥러닝

적합한 사전 학습 모델 선택

  • 종류가 매우 많습니다!

 

  • GPT-2: 텍스트 생성
  • DistilGPT-2(GPT-2 경량화): 텍스트 생성
  • BERT: 텍스트 분류, 질의응답
  • T5(t5-small은 경량 버전): 번역, 요약

 

  • HuggingFace 등 저장소에서 찾을 수 있습니다
PyTorch로 배우는 텍스트 딥러닝

Ayo berlatih!

PyTorch로 배우는 텍스트 딥러닝

Preparing Video For Download...