テキスト生成の事前学習モデル

PyTorch で学ぶテキストの Deep Learning

Shubham Jain

Instructor

なぜ事前学習モデルか

利点

  1. 大規模データで学習
  2. さまざまな生成タスクで高性能
    • 感情分析
    • 文章補完
    • 機械翻訳

制約

  1. 学習コストが高い
  2. 大容量の保存領域が必要
  3. カスタマイズ性に制限
PyTorch で学ぶテキストの Deep Learning

PyTorch の事前学習モデル

  • Hugging Face Transformers:事前学習モデルのライブラリ
  • 事前学習モデル:
    • GPT-2
    • T5

HuggingFace ロゴ

PyTorch で学ぶテキストの Deep Learning

GPT-2 のトークナイザとモデルを理解する

GPT2LMHeadModel

  • HuggingFace による GPT-2 実装
  • テキスト生成向けに最適化

GPT2Tokenizer

  • テキストをトークンに変換
  • サブワード分割に対応:'larger' → ['large', 'r']
PyTorch で学ぶテキストの Deep Learning

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 で学ぶテキストの Deep Learning

GPT-2:テキスト生成の実装 II

output = model.generate(

                                                           ) 
PyTorch で学ぶテキストの Deep Learning

GPT-2:テキスト生成の実装 II

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

                                                           ) 
PyTorch で学ぶテキストの Deep Learning

GPT-2:テキスト生成の実装 II

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

                                                           ) 
PyTorch で学ぶテキストの Deep Learning

GPT-2:テキスト生成の実装 II

output = model.generate(input_ids, max_length=40, temperature=0.7,     
                        no_repeat_ngram_size=2, 
                                                           ) 
PyTorch で学ぶテキストの Deep Learning

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 で学ぶテキストの Deep Learning

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 で学ぶテキストの Deep Learning

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 で学ぶテキストの Deep Learning

T5:翻訳の出力

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

print("Generated text:",generated_text)
Generated text:
"Bonjour, comment êtes-vous?"
PyTorch で学ぶテキストの Deep Learning

適切な事前学習モデルの選択

  • 多数のモデルがあります

 

  • GPT-2:テキスト生成
  • DistilGPT-2(GPT-2 の小型版):テキスト生成
  • BERT:テキスト分類、質問応答
  • T5(t5-small は小型版):翻訳、要約

 

  • HuggingFace などのリポジトリで入手可能
PyTorch で学ぶテキストの Deep Learning

練習に進みましょう!

PyTorch で学ぶテキストの Deep Learning

Preparing Video For Download...