🚀 T0* モデル
T0* は、英語の自然言語プロンプトに対してゼロショットタスクの汎化能力を示すモデルです。GPT - 3 を多くのタスクで上回り、しかもモデルサイズは 16 分の 1 です。自然言語プロンプトで指定された多数の異なるタスクに対して訓練されたエンコーダ - デコーダモデルのシリーズです。
🚀 クイックスタート
このモデルを使うには、自然言語でクエリを指定することで推論を行うことができます。例えば、「Is this review positive or negative? Review: this is the best cast iron skillet you will ever buy」と問いかけると、モデルは「Positive」という予測を生成します。
✨ 主な機能
- 英語の自然言語プロンプトに対するゼロショットタスクの汎化能力を備えています。
- 多くの NLP タスクで GPT - 3 を上回る性能を発揮します。
- 比較的小さいモデルサイズで高性能を実現しています。
📦 インストール
このモデルは Hugging Face の Transformers ライブラリを通じて利用できます。以下のコードでインストールできます。
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained("bigscience/T0pp")
model = AutoModelForSeq2SeqLM.from_pretrained("bigscience/T0pp")
💻 使用例
基本的な使用法
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained("bigscience/T0pp")
model = AutoModelForSeq2SeqLM.from_pretrained("bigscience/T0pp")
inputs = tokenizer.encode("Is this review positive or negative? Review: this is the best cast iron skillet you will ever buy", return_tensors="pt")
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))
高度な使用法
他のチェックポイントを使用する場合は、AutoTokenizer
と AutoModelForSeq2SeqLM
のパスを置き換えてください。
tokenizer = AutoTokenizer.from_pretrained("bigscience/T0_3B")
model = AutoModelForSeq2SeqLM.from_pretrained("bigscience/T0_3B")
inputs = tokenizer.encode("Is this review positive or negative? Review: this is the best cast iron skillet you will ever buy", return_tensors="pt")
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))
📚 ドキュメント
モデルの説明
T0* は、英語の自然言語プロンプトに対してゼロショットタスクの汎化能力を示すエンコーダ - デコーダモデルのシリーズです。多くの英語の教師付きデータセットをプロンプトに変換し、それらを用いてモデルを微調整しています。
意図された用途
自然言語でクエリを指定することで、様々なタスクの推論を行うことができます。例えば、文章の感情分析、家族関係の特定、質問の重複判定などが可能です。
トレーニング手順
T0* モデルは [T5](https://huggingface.co/google/t5 - v1_1 - large) をベースにしており、C4 データセットで事前学習されたモデルを微調整しています。具体的なトレーニング詳細は以下の通りです。
- 微調整ステップ: 12,200
- 入力シーケンス長: 1024
- ターゲットシーケンス長: 256
- バッチサイズ: 1,024 シーケンス
- オプティマイザ: Adafactor
- 学習率: 1e - 3
- ドロップアウト: 0.1
- サンプリング戦略: 各データセットの例の数に比例
- 例のグルーピング: パッキングを使用して複数のトレーニング例を単一のシーケンスに結合
トレーニングデータ
異なるバリエーションの T0 は、異なるデータセットの混合物でトレーニングされています。詳細は以下の表を参照してください。
Model |
Training datasets |
T0 |
- Multiple - Choice QA: CommonsenseQA, DREAM, QUAIL, QuaRTz, Social IQA, WiQA, Cosmos, QASC, Quarel, SciQ, Wiki Hop - Extractive QA: Adversarial QA, Quoref, DuoRC, ROPES - Closed - Book QA: Hotpot QA*, Wiki QA - Structure - To - Text: Common Gen, Wiki Bio - Sentiment: Amazon, App Reviews, IMDB, Rotten Tomatoes, Yelp - Summarization: CNN Daily Mail, Gigaword, MultiNews, SamSum, XSum - Topic Classification: AG News, DBPedia, TREC - Paraphrase Identification: MRPC, PAWS, QQP |
T0p |
Same as T0 with additional datasets from GPT - 3's evaluation suite: - Multiple - Choice QA: ARC, OpenBook QA, PiQA, RACE, HellaSwag - Extractive QA: SQuAD v2 - Closed - Book QA: Trivia QA, Web Questions |
T0pp |
Same as T0p with a few additional datasets from SuperGLUE (excluding NLI sets): - BoolQ - COPA - MultiRC - ReCoRD - WiC - WSC |
T0_single_prompt |
Same as T0 but only one prompt per training dataset |
T0_original_task_only |
Same as T0 but only original tasks templates |
T0_3B |
Same as T0 but starting from a T5 - LM XL (3B parameters) pre - trained model |
評価データ
モデルは、いくつかのホールドアウトタスクで評価されています。評価データセットは以下の通りです。
Task category |
Datasets |
Natural language inference |
ANLI, CB, RTE |
Coreference resolution |
WSC, Winogrande |
Word sense disambiguation |
WiC |
Sentence completion |
COPA, HellaSwag, Story Cloze |
また、T0、T0p、T0pp は [BIG - bench benchmark](https://github.com/google/BIG - bench) のサブセットでも評価されています。
制限事項
- T0* シリーズのモデルは比較的大きく(3B または 11B パラメータ)、ロードと推論には相当な計算リソースが必要です。複数の GPU を使用する場合は、.parallelize() を使用できます。
- 異なるプロンプトによって性能が異なることが観察されています。言語モデルに対する異なるプロンプトの有効性を探るためには、さらなる研究が必要です。
- トークン化の設計上、これらのモデルはコードや英語以外のテキストを含むタスクの推論ができません。
バイアスと公平性
微調整時に潜在的に有害なコンテンツを含むデータセットを除外するように配慮しましたが、訓練されたモデルにはバイアスがないわけではありません。いくつかの実験によると、T0++ は陰謀論的、偏った、不快な、または性的なトピックを過度に強調するような回答を生成することがあります。
モデルの性別バイアスを認識する能力を測るために、WinoGender Schemas (SuperGLUE の AX - g とも呼ばれる) と CrowS - Pairs を使用して評価しています。
Dataset |
Model |
Average (Acc.) |
Median (Acc.) |
CrowS - Pairs |
T0 |
59.2 |
83.8 |
CrowS - Pairs |
T0p |
57.6 |
83.8 |
CrowS - Pairs |
T0pp |
62.7 |
64.4 |
CrowS - Pairs |
T0_single_prompt |
57.6 |
69.5 |
CrowS - Pairs |
T0_original_task_only |
47.1 |
37.8 |
CrowS - Pairs |
T0_3B |
56.9 |
82.6 |
WinoGender |
T0 |
84.2 |
84.3 |
WinoGender |
T0p |
80.1 |
|
🔧 技術詳細
T0* モデルは、Transformer ベースのエンコーダ - デコーダ構造を持ち、自然言語プロンプトで指定された多数のタスクに対して訓練されています。入力テキストはエンコーダに入力され、ターゲットテキストはデコーダによって生成されます。標準的な最大尤度訓練によって微調整されています。
📄 ライセンス
このモデルは apache - 2.0 ライセンスの下で提供されています。