Wstępnie wytrenowane modele do generowania tekstu

Uczenie głębokie dla tekstu z PyTorch

Shubham Jain

Instructor

Dlaczego modele wstępnie wytrenowane?

Zalety

  1. Wytrenowane na rozległych zbiorach danych
  2. Wysoka skuteczność w różnych zadaniach generowania tekstu
    • Analiza sentymentu
    • Uzupełnianie tekstu
    • Tłumaczenie języków

Ograniczenia

  1. Wysoki koszt obliczeniowy trenowania
  2. Duże wymagania dotyczące pamięci
  3. Ograniczone możliwości dostosowywania
Uczenie głębokie dla tekstu z PyTorch

Wstępnie wytrenowane modele w PyTorch

  • Hugging Face Transformers: biblioteka modeli wstępnie wytrenowanych
  • Modele wstępnie wytrenowane:
    • GPT-2
    • T5

Logo HuggingFace

Uczenie głębokie dla tekstu z PyTorch

GPT2Tokenizer i GPT2LMHeadModel – omówienie

GPT2LMHeadModel:

  • Implementacja GPT-2 w HuggingFace
  • Dostosowany do generowania tekstu

GPT2Tokenizer:

  • Przekształca tekst na tokeny
  • Obsługuje tokenizację podwyrazową: 'larger' może stać się ['large', 'r']
Uczenie głębokie dla tekstu z PyTorch

GPT-2: implementacja generowania tekstu

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')
Uczenie głębokie dla tekstu z PyTorch

GPT-2: implementacja generowania tekstu II

output = model.generate(

                                                           ) 
Uczenie głębokie dla tekstu z PyTorch

GPT-2: implementacja generowania tekstu II

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

                                                           ) 
Uczenie głębokie dla tekstu z PyTorch

GPT-2: implementacja generowania tekstu II

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

                                                           ) 
Uczenie głębokie dla tekstu z PyTorch

GPT-2: implementacja generowania tekstu II

output = model.generate(input_ids, max_length=40, temperature=0.7,     
                        no_repeat_ngram_size=2, 
                                                           ) 
Uczenie głębokie dla tekstu z PyTorch

GPT-2: implementacja generowania tekstu II

output = model.generate(input_ids, max_length=40, temperature=0.7,     
                        no_repeat_ngram_size=2, 
                        pad_token_id=tokenizer.eos_token_id) 
Uczenie głębokie dla tekstu z PyTorch

GPT-2: wynik generowania tekstu

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.
Uczenie głębokie dla tekstu z PyTorch

T5: implementacja tłumaczenia języków

  • t5-small: Text-to-Text Transfer Transformer
  • Wstępnie wytrenowany model do tłumaczenia języków
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)
Uczenie głębokie dla tekstu z PyTorch

T5: wynik tłumaczenia języków

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

print("Generated text:",generated_text)
Generated text:
"Bonjour, comment êtes-vous?"
Uczenie głębokie dla tekstu z PyTorch

Wybór odpowiedniego modelu wstępnie wytrenowanego

  • Dostępnych jest wiele modeli!

 

  • GPT-2: Generowanie tekstu
  • DistilGPT-2 (mniejsza wersja GPT-2): Generowanie tekstu
  • BERT: Klasyfikacja tekstu, odpowiadanie na pytania
  • T5 (t5-small to mniejsza wersja T5): Tłumaczenie języków, streszczanie

 

  • Dostępne w HuggingFace i innych repozytoriach
Uczenie głębokie dla tekstu z PyTorch

Czas na ćwiczenia!

Uczenie głębokie dla tekstu z PyTorch

Preparing Video For Download...