モデル概要
モデル特徴
モデル能力
使用事例
🚀 OPT : Open Pre-trained Transformer Language Models
OPTは、Meta AIによって2022年5月3日にmetaseqのリポジトリで初公開され、Open Pre-trained Transformer Language Modelsで最初に紹介されました。
免責事項: OPTを公開したチームは公式のモデルカードを作成しており、それは論文の付録Dに掲載されています。このモデルカードの内容は、Hugging Faceチームによって作成されています。
🚀 クイックスタート
このセクションでは、OPTモデルの概要と使い方について説明します。
✨ 主な機能
概要
大規模なテキストコレクションで学習された大規模言語モデルは、テキスト生成やゼロショット、フューショット学習などの驚くべき能力を示しています。しかし、現在のところ、完全なモデルへのアクセスは限られた一部の研究機関にしか許されていません。OPTは、この問題を解決し、研究者が大規模言語モデルの研究を行えるようにすることを目的として開発された、125Mから175Bパラメータのデコーダー専用の事前学習済みトランスフォーマーのセットです。
特徴
- 多様なパラメータサイズ: 125Mから175Bパラメータまでのモデルが用意されています。
- GPT-3と同等の性能: GPT-3クラスのモデルと同等の性能を目指して学習されています。
- 最新のデータ収集と効率的な学習: 最新のデータ収集方法と効率的な学習手法を適用しています。
📦 インストール
このモデルを使用するには、transformers
ライブラリが必要です。以下のコマンドでインストールできます。
pip install transformers
💻 使用例
基本的な使用法
>>> from transformers import pipeline
>>> generator = pipeline('text-generation', model="facebook/opt-2.7b")
>>> generator("What are we having for dinner?")
[{'generated_text': 'What are we having for dinner?\nI'm thinking pizza.\nI'm thinking tacos.\n'}]
高度な使用法
デフォルトでは、生成は決定論的です。トップkサンプリングを使用するには、do_sample
をTrue
に設定してください。
>>> from transformers import pipeline, set_seed
>>> set_seed(32)
>>> generator = pipeline('text-generation', model="facebook/opt-2.7b", do_sample=True)
>>> generator("What are we having for dinner?")
[{'generated_text': "What are we having for dinner?\nJust pizza?\nWell, I suppose that would suffice."}]
📚 ドキュメント
モデルの説明
OPTは主に英語のテキストで事前学習されていますが、CommonCrawlを通じて少量の非英語データも学習コーパスに含まれています。このモデルは、因果言語モデリング(CLM)の目的で事前学習されています。OPTは、GPT-3のようなデコーダー専用のモデルファミリーに属しています。したがって、自己教師付きの因果言語モデリングの目的で事前学習されています。
評価に関しては、OPTはGPT-3に倣って、彼らのプロンプトと全体的な実験セットアップを使用しています。詳細については、公式論文をご覧ください。
意図された用途と制限
事前学習のみのモデルは、下流タスクの評価のためのプロンプトやテキスト生成に使用できます。また、このモデルは、CLMの例を使用して下流タスクで微調整することもできます。他のすべてのOPTチェックポイントについては、モデルハブを参照してください。
制限とバイアス
Meta AIのモデルカードで述べられているように、このモデルの学習データには、インターネットからの多くの未フィルタリングのコンテンツが含まれており、中立的ではないため、モデルには強いバイアスがあります。
>>> from transformers import pipeline, set_seed
>>> set_seed(32)
>>> generator = pipeline('text-generation', model="facebook/opt-2.7b", do_sample=True, num_return_sequences=5)
>>> generator("The woman worked as a")
[{'generated_text': "The woman worked as a security guard at a nursery in the city's eastern district of Samut P"},
{'generated_text': 'The woman worked as a doctor in the Philippines. Officials in China allege she stole the coronavirus'},
{'generated_text': 'The woman worked as a teacher in the city of Krasnodar in south Russia. She'},
{'generated_text': 'The woman worked as a researcher and lecturer at the Russian Academy of Sciences in a laboratory dedicated to the'},
{'generated_text': 'The woman worked as a nanny on a property owned by Mr Fitton-Allen in the city'}]
>>> from transformers import pipeline, set_seed
>>> set_seed(32)
>>> generator = pipeline('text-generation', model="facebook/opt-2.7b", do_sample=True, num_return_sequences=5)
>>> generator("The man worked as a")
[{'generated_text': "The man worked as a security guard at a retirement home after being hired by the administrator's cousin,"},
{'generated_text': 'The man worked as a doctor in the Philippines.\n\nHe had hoped to work his way back'},
{'generated_text': 'The man worked as a teacher in the city of Krasnodar in south Russia.He'},
{'generated_text': 'The man worked as a researcher and his work on the topic predates the project, by many years'},
{'generated_text': 'The man worked as a chef in a restaurant for 40 years. How could this be so different from'}]
このバイアスは、このモデルのすべての微調整バージョンにも影響を及ぼします。
🔧 技術詳細
学習データ
Meta AIチームは、できるだけ大きなコーパスでこのモデルを学習させることを目指しました。最終的な学習データは、以下の5つのフィルタリングされたテキストドキュメントのデータセットの結合で構成されています。
- BookCorpus: 10,000冊以上の未公開の本で構成されています。
- CC-Stories: CommonCrawlデータのサブセットで、Winogradスキーマのストーリーのようなスタイルに合うようにフィルタリングされています。
- The Pile: Pile-CC、OpenWebText2、USPTO、Project Gutenberg、OpenSubtitles、Wikipedia、DM Mathematics、HackerNews が含まれています。
- Pushshift.io Reddit dataset: Baumgartnerら(2020)で開発され、Rollerら(2021)で処理されたデータセットです。
- CCNewsV2: RoBERTa(Liuら、2019b)で使用されたCommonCrawl Newsデータセットの英語部分の更新バージョンが含まれています。
最終的な学習データは、800GBのデータに相当する180Bトークンを含んでいます。検証分割は、事前学習コーパス内の各データセットのサイズに比例してサンプリングされた、事前学習データの200MBで構成されています。
このデータセットには、一部のデータセットが公開されているCommon Crawlデータのサブセットと公開されているRedditデータのサブセットであるため、攻撃的なコンテンツが含まれている可能性があります。これらのデータには、直接見ると侮辱的、脅迫的、または不安を引き起こす可能性のある文章が含まれている場合があります。
収集プロセス
このデータセットはインターネットから収集され、Chapter One や This ebook by Project Gutenberg. のような繰り返し/非情報的なテキストを削除するなど、古典的なデータ処理アルゴリズムと再フォーマットの手法を経ています。
学習手順
前処理
テキストは、GPT2 のバイトレベルのバイトペアエンコーディング(BPE)(ユニコード文字用)を使用してトークン化され、語彙サイズは50272です。入力は、2048個の連続したトークンのシーケンスです。
175Bモデルは、992台の80GB A100 GPUで学習されました。学習期間は、連続して約33日間でした。
BibTeXエントリと引用情報
@misc{zhang2022opt,
title={OPT: Open Pre-trained Transformer Language Models},
author={Susan Zhang and Stephen Roller and Naman Goyal and Mikel Artetxe and Moya Chen and Shuohui Chen and Christopher Dewan and Mona Diab and Xian Li and Xi Victoria Lin and Todor Mihaylov and Myle Ott and Sam Shleifer and Kurt Shuster and Daniel Simig and Punit Singh Koura and Anjali Sridhar and Tianlu Wang and Luke Zettlemoyer},
year={2022},
eprint={2205.01068},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
📄 ライセンス
このモデルは、other
ライセンスの下で提供されています。商用利用は許可されていません。



