🚀 T0*モデル
T0*は、英語の自然言語プロンプトに対してゼロショットタスクの汎化能力を示し、多くのタスクでGPT - 3を上回り、モデルサイズはその1/16です。自然言語プロンプトで指定された多数の異なるタスクで訓練されたエンコーダ - デコーダモデルのシリーズです。
🚀 クイックスタート
モデル名の発音方法
T0は「T Zero」(「T5 for zero - shot」のように)と発音し、「p」は「Plus」を表すので、「T0pp」は「T Zero Plus Plus」と発音します!
公式リポジトリ
[bigscience - workshop/t - zero](https://github.com/bigscience - workshop/t - zero)
✨ 主な機能
T0*は、英語の自然言語プロンプトに対してゼロショットタスクの汎化能力を発揮し、多くのタスクでGPT - 3を上回ります。また、モデルサイズがGPT - 3の1/16と小さいです。自然言語で指定された完全に未知のタスクを実行する能力をベンチマークすることができます。
📦 インストール
以下は、PyTorchでモデルを使用する方法です。
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
のパスを置き換えてください。
⚠️ 重要提示
モデルはbf16アクティベーションで訓練されています。そのため、fp16で推論を実行することは強くお勧めしません。fp32またはbf16を使用することを推奨します。
💻 使用例
基本的な使用法
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]))
📚 ドキュメント
モデルの説明
T0は、英語の自然言語プロンプトに対してゼロショットタスクの汎化能力を示し、多くのタスクでGPT - 3を上回り、モデルサイズはその1/16です。自然言語プロンプトで指定された多数の異なるタスクで訓練されたエンコーダ - デコーダモデルのシリーズです。多数の英語の教師付きデータセットをプロンプトに変換し、それぞれにさまざまな定式化を使用した複数のテンプレートを用意します。これらのプロンプト付きデータセットを使用して、自然言語で指定された完全に未知のタスクを実行するモデルの能力をベンチマークすることができます。T0を得るために、多くの異なるNLPタスクをカバーするこのマルチタスクミックスチャーで事前学習された言語モデルをファインチューニングします。
想定される用途
自然言語でクエリを指定することで、モデルを使用してタスクに対する推論を実行できます。モデルは予測を生成します。たとえば、「Is this review positive or negative? Review: this is the best cast iron skillet you will ever buy」と尋ねると、モデルは「Positive」を生成することが期待されます。
訓練手順
T0*モデルは、[T5](https://huggingface.co/google/t5 - v1_1 - large)に基づいています。T5は、C4でマスク言語モデリングスタイルの目的で事前学習されたTransformerベースのエンコーダ - デコーダ言語モデルです。公開されている[言語モデル適応型T5チェックポイント](https://github.com/google - research/text - to - text - transfer - transformer/blob/main/released_checkpoints.md#lm - adapted - t511lm100k)を使用します。これらは、標準的な言語モデリング目的でT5をさらに100,000ステップ訓練することで生成されました。
訓練データ
異なるバリエーションのT0を、異なるデータセットのミックスチャーで訓練しました。
モデル |
訓練データセット |
T0 |
- 選択式QA: CommonsenseQA, DREAM, QUAIL, QuaRTz, Social IQA, WiQA, Cosmos, QASC, Quarel, SciQ, Wiki Hop - 抽出式QA: Adversarial QA, Quoref, DuoRC, ROPES - クローズドブックQA: Hotpot QA*, Wiki QA - 構造からテキスト: Common Gen, Wiki Bio - センチメント分析: Amazon, App Reviews, IMDB, Rotten Tomatoes, Yelp - 要約: CNN Daily Mail, Gigaword, MultiNews, SamSum, XSum - トピック分類: AG News, DBPedia, TREC - パラフレーズ識別: MRPC, PAWS, QQP |
T0p |
T0と同じデータセットに加えて、GPT - 3の評価セットからの追加データセット: - 選択式QA: ARC, OpenBook QA, PiQA, RACE, HellaSwag - 抽出式QA: SQuAD v2 - クローズドブックQA: Trivia QA, Web Questions |
T0pp |
T0pと同じデータセットに加えて、SuperGLUEからのいくつかの追加データセット(NLIセットを除く): - BoolQ - COPA - MultiRC - ReCoRD - WiC - WSC |
T0_single_prompt |
T0と同じですが、各訓練データセットに対して1つのプロンプトのみ |
T0_original_task_only |
T0と同じですが、元のタスクテンプレートのみ |
T0_3B |
T0と同じですが、T5 - LM XL(30億パラメータ)の事前学習モデルから開始 |
再現性のために、訓練(および評価)に使用したデータをP3データセットで公開しています。プロンプトの例は、データセットページで確認できます。
評価データ
モデルを、保持されたタスクのセットで評価します。
タスクカテゴリ |
データセット |
自然言語推論 |
ANLI, CB, RTE |
照応解析 |
WSC, Winogrande |
語義曖昧性解消 |
WiC |
文完成 |
COPA, HellaSwag, Story Cloze |
また、T0、T0p、T0ppを[BIG - benchベンチマーク](https://github.com/google/BIG - bench)のサブセットで評価します。
- コード説明タスク
- 概念の組み合わせ
- ヒンドゥー教の知識json
- 既知の未知
- 言語識別
- 論理グリッドパズルタスク
- 論理的推論
- 一般的な誤解
- 映画の対話の同じまたは異なる
- 新しい概念
- Strategyqa
- 形式的誤謬三段論法否定
- VitaminC
- Winowhy選択式
制限事項
- T0*シリーズのモデルはかなり大きい(30億または110億パラメータ)ため、ロードして推論を実行するにはかなりの計算リソースが必要です。複数のGPUを使用する場合は、.parallelize()を使用することができます。
- 異なるプロンプトによって性能が異なることが観察されています。言語モデルに対する異なるプロンプトの有効性を調査するために、さらなる研究が必要です。
- トークン化の設計上の選択により、モデルはコードまたは英語以外のテキストを含むタスクの推論を実行できません。
バイアスと公平性
ファインチューニングから潜在的に有害な内容を含むデータセットを除外するための意図的な決定をしたとしても、訓練されたモデルはバイアスがないわけではありません。いくつかの実験に基づくと、T0++は、陰謀論的、偏見的、攻撃的、または性的なトピックを過度に強調すると分類される可能性のある回答を生成することがあります。
🔧 技術詳細
訓練詳細
- ファインチューニングステップ: 12,200
- 入力シーケンス長: 1024
- ターゲットシーケンス長: 256
- バッチサイズ: 1,024シーケンス
- オプティマイザ: Adafactor
- 学習率: 1e - 3
- ドロップアウト: 0.1
- サンプリング戦略: 各データセットの例の数に比例(500,000例を超えるデータセットは、500,000/
num_templates
例として扱います)
- 例のグルーピング: 最大シーケンス長に達するために、複数の訓練例を1つのシーケンスに結合するためにパッキングを使用します
📄 ライセンス
apache - 2.0