モデル概要
モデル特徴
モデル能力
使用事例
🚀 OpenAI GPT
OpenAIによって開発されたTransformerベースの言語モデルで、大規模コーパスを用いた言語モデリングにより事前学習されています。自然言語処理タスクに幅広く活用できます。
🚀 クイックスタート
以下のコードを使用して、このモデルを使い始めることができます。このモデルは、テキスト生成のパイプラインで直接使用することができます。生成にはランダム性が含まれるため、再現性のためにシードを設定します。
>>> from transformers import pipeline, set_seed
>>> generator = pipeline('text-generation', model='lgaalves/gpt1')
>>> set_seed(42)
>>> generator("Hello, I'm a language model,", max_length=30, num_return_sequences=5)
[{'generated_text': "Hello, I'm a language model,'he said, when i was finished.'ah well,'said the man,'that's"},
{'generated_text': 'Hello, I\'m a language model, " she said. \n she reached the bottom of the shaft and leaned a little further out. it was'},
{'generated_text': 'Hello, I\'m a language model, " she laughed. " we call that a\'white girl.\'or as we are called by the'},
{'generated_text': 'Hello, I\'m a language model, " said mr pin. " an\'the ones with the funny hats don\'t. " the rest of'},
{'generated_text': 'Hello, I\'m a language model, was\'ere \'bout to do some more dancin \', " he said, then his voice lowered to'}]
これが、このモデルをPyTorchで使用する方法です。
from transformers import OpenAIGPTTokenizer, OpenAIGPTModel
import torch
tokenizer = OpenAIGPTTokenizer.from_pretrained("lgaalves/gpt1")
model = OpenAIGPTModel.from_pretrained("lgaalves/gpt1")
inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
outputs = model(**inputs)
last_hidden_states = outputs.last_hidden_state
そして、TensorFlowでの使用方法は次の通りです。
from transformers import OpenAIGPTTokenizer, TFOpenAIGPTModel
tokenizer = OpenAIGPTTokenizer.from_pretrained("lgaalves/gpt1")
model = TFOpenAIGPTModel.from_pretrained("lgaalves/gpt1")
inputs = tokenizer("Hello, my dog is cute", return_tensors="tf")
outputs = model(inputs)
last_hidden_states = outputs.last_hidden_state
✨ 主な機能
直接的な利用
このモデルは、言語モデリングタスクに使用できます。
下流の利用
このモデルの潜在的な下流の利用には、言語モデルを活用するタスクが含まれます。関連する論文では、モデル開発者が、自然言語推論(NLI)、質問応答、意味的類似性、およびテキスト分類などのタスクに対するモデルの評価について議論しています。
誤用と範囲外の利用
このモデルは、人や出来事の事実的または真実の表現として訓練されていないため、このような内容を生成するためにモデルを使用することは、このモデルの能力の範囲外です。
📚 ドキュメント
モデルの詳細
モデルの説明: openai - gpt
は、OpenAIによって作成および公開されたTransformerベースの言語モデルです。このモデルは、長距離依存関係を持つ大規模コーパスで言語モデリングを使用して事前学習された因果的(単方向)Transformerです。
属性 | 详情 |
---|---|
開発者 | Alec Radford, Karthik Narasimhan, Tim Salimans, Ilya Sutskever。モデル開発者と貢献者については、関連する研究論文 および GitHubリポジトリ を参照してください。 |
モデルタイプ | Transformerベースの言語モデル |
言語 | 英語 |
ライセンス | MITライセンス |
詳細情報のリソース | 研究論文、OpenAIブログ記事、GitHubリポジトリ、完全な生成機能をここでテストできます: https://transformer.huggingface.co/doc/gpt |
リスク、制限事項とバイアス
バイアス
⚠️ 重要提示
このモデルによって生成される言語は、一部の人にとって不快または不快感を与える可能性があり、歴史的および現在のステレオタイプを広める可能性があることに、読者は注意すべきです。
多くの研究が、言語モデルのバイアスと公平性の問題を探っています(例えば、Sheng et al. (2021) および Bender et al. (2021) を参照)。このモデルによって生成される予測には、保護されたクラス、アイデンティティの特徴、および敏感な、社会的、職業的なグループにまたがる不快で有害なステレオタイプが含まれる可能性があります。例えば:
>>> from transformers import pipeline, set_seed
>>> generator = pipeline('text-generation', model='lgaalves/gpt1')
>>> set_seed(42)
>>> generator("The man worked as a", max_length=10, num_return_sequences=5)
[{'generated_text': 'The man worked as a teacher for the college he'},
{'generated_text': 'The man worked as a janitor at the club.'},
{'generated_text': 'The man worked as a bodyguard in america. the'},
{'generated_text': 'The man worked as a clerk for one of the'},
{'generated_text': 'The man worked as a nurse, but there was'}]
>>> set_seed(42)
>>> generator("The woman worked as a", max_length=10, num_return_sequences=5)
[{'generated_text': 'The woman worked as a medical intern but is a'},
{'generated_text': 'The woman worked as a midwife, i know that'},
{'generated_text': 'The woman worked as a prostitute in a sex club'},
{'generated_text': 'The woman worked as a secretary for one of the'},
{'generated_text': 'The woman worked as a nurse, but she had'}]
このバイアスは、このモデルのファインチューニングされたバージョンにも影響を与える可能性があります。ユーザー(直接的および下流の両方)は、モデルのリスク、バイアス、および制限事項を認識すべきです。
リスクと制限事項
モデル開発者は、ブログ記事 で、モデルのリスクと制限事項についても書いています。
- 計算要件: 以前の多くのNLPタスクのアプローチでは、単一のGPUで比較的小規模なモデルを最初から訓練していました。私たちのアプローチでは、高価な事前学習ステップが必要です - 8つのGPUで1か月間。幸いなことに、これは一度だけ行う必要があり、私たちはモデルを公開しているので、他の人はこれを回避できます。また、これは大規模なモデルであり(以前の研究と比較して)、その結果、より多くの計算とメモリを使用します - 私たちは37層(12ブロック)のTransformerアーキテクチャを使用し、最大512トークンのシーケンスで訓練しました。ほとんどの実験は、4つおよび8つのGPUシステムで行われました。このモデルは、新しいタスクに非常に迅速にファインチューニングされるため、追加のリソース要件を軽減するのに役立ちます。
- テキストを通じて世界を学ぶことの限界とバイアス: インターネット上で容易に入手できる書籍やテキストには、世界に関する完全な、または正確な情報が含まれていません。最近の研究(Lucy and Gauthier, 2017)は、特定の種類の情報はテキストだけでは学びにくいことを示しており、他の研究(Gururangan et al., 2018)は、モデルがデータ分布のバイアスを学習し、利用することを示しています。
- 依然として脆弱な汎化能力: 私たちのアプローチは、幅広いタスクでパフォーマンスを向上させますが、現在のディープラーニングのNLPモデルは、依然として驚くべき、直感に反する振る舞いを示します - 特に、体系的、敵対的、または分布外の方法で評価される場合。私たちのアプローチはこれらの問題から免れることはできませんが、いくつかの進歩の兆しが見られます。私たちのアプローチは、以前の純粋にニューラルなテキスト的含意のアプローチよりも、語彙的な頑健性が向上しています。Glockner et al. (2018) で導入されたデータセットでは、私たちのモデルは83.75%を達成し、WordNetを介して外部知識を組み込むKIMと同様のパフォーマンスを示しています。
訓練
訓練データ
モデル開発者は、論文 で次のように書いています。
私たちは、言語モデルの訓練にBooksCorpusデータセット(Zhu et al., 2015)を使用しています。これには、アドベンチャー、ファンタジー、ロマンスなどのさまざまなジャンルの7,000以上の独自の未公開の本が含まれています。重要なことは、これには連続した長いテキストが含まれており、生成モデルが長距離情報を条件として学習することを可能にします。
訓練手順
モデル開発者は、論文 で次のように書いています。
私たちのモデルは、主に元のTransformerの研究 [62] に従っています。私たちは、マスクされた自己注意ヘッドを持つ12層のデコーダー専用Transformerを訓練しました(768次元の状態と12個の注意ヘッド)。位置ごとのフィードフォワードネットワークには、3072次元の内部状態を使用しました。私たちは、最大学習率2.5e - 4のAdam最適化スキーム [27] を使用しました。学習率は、最初の2000回の更新でゼロから線形に増加させ、コサインスケジュールを使用して0に減衰させました。私たちは、512トークンの連続したシーケンスをランダムにサンプリングした64のミニバッチで100エポック訓練しました。モデル全体でLayerNorm [2] が広く使用されているため、N (0, 0.02) の単純な重み初期化で十分でした。正則化のために、40,000回のマージを持つバイトペアエンコーディング(BPE)語彙 [53] と、0.1の割合の残差、埋め込み、および注意ドロップアウトを使用しました。また、[37] で提案されたL2正則化の修正版を採用し、すべての非バイアスまたはゲインの重みにw = 0.01を適用しました。活性化関数には、ガウス誤差線形ユニット(GELU) [18] を使用しました。私たちは、元の研究で提案された正弦波バージョンではなく、学習された位置埋め込みを使用しました。私たちは、ftfyライブラリ2を使用して、BooksCorpusの生テキストをクリーニングし、一部の句読点と空白を標準化し、spaCyトークナイザーを使用します。
詳細と引用リンクについては、論文を参照してください。
評価
以下の評価情報は、関連するブログ記事 から抽出されたものです。詳細については、関連する論文 を参照してください。
テストデータ、要因、および指標
モデル開発者は、モデルが以下のタスクとデータセットで、列挙された指標を使用して評価されたと報告しています。
- タスク: テキスト的含意
- データセット: SNLI, MNLI Matched, MNLI Mismatched, SciTail, QNLI, RTE
- 指標: 正解率
- タスク: 意味的類似性
- タスク: 読解力
- データセット: RACE
- 指標: 正解率
- タスク: 常識推論
- データセット: ROCStories, COPA
- 指標: 正解率
- タスク: 感情分析
- データセット: SST - 2
- 指標: 正解率
- タスク: 言語的許容性
- データセット: CoLA
- 指標: 正解率
- タスク: マルチタスクベンチマーク
- データセット: GLUE
- 指標: 正解率
結果
このモデルは、ファインチューニングなし(ゼロショット)で以下の結果を達成しています。
タスク | TE | TE | TE | TE | TE | TE | SS | SS | SS | RC | CR | CR | SA | LA | MTB |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
データセット | SNLI | MNLI Matched | MNLI Mismatched | SciTail | QNLI | RTE | STS - B | QQP | MPRC | RACE | ROCStories | COPA | SST - 2 | CoLA | GLUE |
89.9 | 82.1 | 81.4 | 88.3 | 88.1 | 56.0 | 82.0 | 70.3 | 82.3 | 59.0 | 86.5 | 78.6 | 91.3 | 45.4 | 72.8 |
環境への影響
モデル開発者は、報告 で次のように述べています。
このモデルを訓練するために使用された総計算量は、0.96ペタフロップ日(pfs - days)でした。
8台のP600 GPU * 30日 * 12TFLOPS/GPU * 0.33の利用率 = 0.96 pfs - days
炭素排出量は、Lacoste et al. (2019) で提示された Machine Learning Impact calculator を使用して推定できます。
属性 | 详情 |
---|---|
ハードウェアタイプ | 8台のP600 GPU |
使用時間 | 720時間(30日) |
クラウドプロバイダー | 不明 |
計算リージョン | 不明 |
排出された炭素量 | 不明 |
技術仕様
モデリングアーキテクチャ、目的、計算インフラストラクチャ、および訓練の詳細については、関連する論文 を参照してください。
引用情報
@article{radford2018improving,
title={Improving language understanding by generative pre-training},
author={Radford, Alec and Narasimhan, Karthik and Salimans, Tim and Sutskever, Ilya and others},
year={2018},
publisher={OpenAI}
}
APA形式: Radford, A., Narasimhan, K., Salimans, T., & Sutskever, I. (2018). Improving language understanding by generative pre - training.
モデルカードの作成者
このモデルカードは、Hugging Faceチームによって作成されました。
📄 ライセンス
このモデルは、MITライセンス の下で提供されています。



