Modelli pre-addestrati per la generazione di testo

Deep Learning per il testo con PyTorch

Shubham Jain

Instructor

Perché usare modelli pre-addestrati?

Vantaggi

  1. Addestrati su ampi insiemi di dati
  2. Alte prestazioni in vari compiti di generazione
    • Analisi del sentiment
    • Completamento del testo
    • Traduzione automatica

Limiti

  1. Alto costo computazionale per l'addestramento
  2. Grandi requisiti di archiviazione
  3. Opzioni di personalizzazione limitate
Deep Learning per il testo con PyTorch

Modelli pre-addestrati in PyTorch

  • Hugging Face Transformers: libreria di modelli pre-addestrati
  • Modelli pre-addestrati:
    • GPT-2
    • T5

Logo HuggingFace

Deep Learning per il testo con PyTorch

Capire Tokenizer e Modello di GPT-2

GPT2LMHeadModel:

  • Implementazione HuggingFace di GPT-2
  • Ottimizzato per la generazione di testo

GPT2Tokenizer:

  • Converte il testo in token
  • Gestisce la tokenizzazione subword: 'larger' può diventare ['large', 'r']
Deep Learning per il testo con PyTorch

GPT-2: implementazione della generazione di testo

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 per il testo con PyTorch

GPT-2: implementazione della generazione di testo II

output = model.generate(

                                                           ) 
Deep Learning per il testo con PyTorch

GPT-2: implementazione della generazione di testo II

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

                                                           ) 
Deep Learning per il testo con PyTorch

GPT-2: implementazione della generazione di testo II

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

                                                           ) 
Deep Learning per il testo con PyTorch

GPT-2: implementazione della generazione di testo II

output = model.generate(input_ids, max_length=40, temperature=0.7,     
                        no_repeat_ngram_size=2, 
                                                           ) 
Deep Learning per il testo con PyTorch

GPT-2: implementazione della generazione di testo 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 per il testo con PyTorch

GPT-2: output della generazione di testo

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 per il testo con PyTorch

T5: implementazione della traduzione

  • t5-small: Text-to-Text Transfer Transformer
  • Modello pre-addestrato per compiti di traduzione
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 per il testo con PyTorch

T5: output della traduzione

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

print("Generated text:",generated_text)
Generated text:
"Bonjour, comment êtes-vous?"
Deep Learning per il testo con PyTorch

Scegliere il modello pre-addestrato giusto

  • Ne esistono molte!

 

  • GPT-2: Generazione di testo
  • DistilGPT-2 (versione ridotta di GPT-2): Generazione di testo
  • BERT: Classificazione del testo, question answering
  • T5 (t5-small è la versione ridotta di T5): Traduzione, riassunto

 

  • Cercali su HuggingFace e altri repository
Deep Learning per il testo con PyTorch

Esercitiamoci!

Deep Learning per il testo con PyTorch

Preparing Video For Download...