Modele pre-antrenate pentru generarea textului

Deep Learning pentru text cu PyTorch

Shubham Jain

Instructor

De ce modele pre-antrenate?

Avantaje

  1. Antrenate pe seturi extinse de date
  2. Performanță ridicată în diverse sarcini de generare a textului
    • Analiza sentimentelor
    • Completarea textului
    • Traducerea limbilor

Limitări

  1. Cost computațional ridicat pentru antrenare
  2. Cerințe mari de stocare
  3. Opțiuni limitate de personalizare
Deep Learning pentru text cu PyTorch

Modele pre-antrenate în PyTorch

  • Hugging Face Transformers: bibliotecă de modele pre-antrenate
  • Modele pre-antrenate:
    • GPT-2
    • T5

Sigla HuggingFace

Deep Learning pentru text cu PyTorch

GPT2Tokenizer și GPT2LMHeadModel

GPT2LMHeadModel:

  • Implementarea GPT-2 de la HuggingFace
  • Optimizat pentru generarea textului

GPT2Tokenizer:

  • Convertește textul în token-uri
  • Gestionează tokenizarea la nivel de subcuvânt: 'larger' poate deveni ['large', 'r']
Deep Learning pentru text cu PyTorch

GPT-2: implementarea generării textului

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')
Deep Learning pentru text cu PyTorch

GPT-2: implementarea generării textului II

output = model.generate(

                                                           ) 
Deep Learning pentru text cu PyTorch

GPT-2: implementarea generării textului II

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

                                                           ) 
Deep Learning pentru text cu PyTorch

GPT-2: implementarea generării textului II

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

                                                           ) 
Deep Learning pentru text cu PyTorch

GPT-2: implementarea generării textului II

output = model.generate(input_ids, max_length=40, temperature=0.7,     
                        no_repeat_ngram_size=2, 
                                                           ) 
Deep Learning pentru text cu PyTorch

GPT-2: implementarea generării textului II

output = model.generate(input_ids, max_length=40, temperature=0.7,     
                        no_repeat_ngram_size=2, 
                        pad_token_id=tokenizer.eos_token_id) 
Deep Learning pentru text cu PyTorch

GPT-2: rezultatul generării textului

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.
Deep Learning pentru text cu PyTorch

T5: implementarea traducerii limbilor

  • t5-small: Text-to-Text Transfer Transformer
  • Model pre-antrenat pentru sarcini de traducere
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)
Deep Learning pentru text cu PyTorch

T5: rezultatul traducerii limbilor

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

print("Generated text:",generated_text)
Generated text:
"Bonjour, comment êtes-vous?"
Deep Learning pentru text cu PyTorch

Alegerea modelului pre-antrenat potrivit

  • Există multe!

 

  • GPT-2: Generarea textului
  • DistilGPT-2 (versiune mai mică a GPT-2): Generarea textului
  • BERT: Clasificarea textului, răspuns la întrebări
  • T5 (t5-small este versiunea mai mică a T5): Traducere, rezumare

 

  • Găsiți-le pe HuggingFace și alte depozite
Deep Learning pentru text cu PyTorch

Să exersăm!

Deep Learning pentru text cu PyTorch

Preparing Video For Download...