Попередньо навчені моделі для генерування тексту

Глибоке навчання для тексту з PyTorch

Shubham Jain

Instructor

Чому попередньо навчені моделі?

Переваги

  1. Навчені на великих наборах даних
  2. Висока якість у різних завданнях генерування тексту
    • Аналіз тональності
    • Доповнення тексту
    • Переклад мов

Обмеження

  1. Висока обчислювальна вартість навчання
  2. Великі вимоги до сховища
  3. Обмежені можливості налаштування
Глибоке навчання для тексту з PyTorch

Попередньо навчені моделі в PyTorch

  • Hugging Face Transformers: бібліотека попередньо навчених моделей
  • Попередньо навчені моделі:
    • GPT-2
    • T5

Логотип HuggingFace

Глибоке навчання для тексту з PyTorch

Розуміння токенайзера та моделі GPT-2

GPT2LMHeadModel:

  • Реалізація GPT-2 від HuggingFace
  • Оптимізована для генерування тексту

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 — менша версія T5): Переклад, стискання тексту

 

  • Шукайте їх у HuggingFace та інших репозиторіях
Глибоке навчання для тексту з PyTorch

Давайте потренуємось!

Глибоке навчання для тексту з PyTorch

Preparing Video For Download...