モデル概要
モデル特徴
モデル能力
使用事例
🚀 CTRL
CTRLは、条件付きTransformer言語モデルで、制御コードを使用して特定のドメインやトピックに関連するテキスト生成が可能です。自然言語処理の分野で、創造的な文章作成やタスクの自動化など、様々な用途に利用できます。
🚀 クイックスタート
以下のコードを使用して、モデルを始めることができます。詳細については、Hugging Face ctrl docs を参照してください。
クリックして展開
>>> from transformers import CTRLTokenizer, CTRLModel
>>> import torch
>>> tokenizer = CTRLTokenizer.from_pretrained("ctrl")
>>> model = CTRLModel.from_pretrained("ctrl")
>>> # CTRL was trained with control codes as the first token
>>> inputs = tokenizer("Opinion My dog is cute", return_tensors="pt")
>>> assert inputs["input_ids"][0, 0].item() in tokenizer.control_codes.values()
>>> outputs = model(**inputs)
>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
✨ 主な機能
- 条件付きテキスト生成:制御コードを使用して、特定のドメインやトピックに関連するテキストを生成できます。
- 多言語対応:主に英語をサポートし、一部のドイツ語、スペイン語、フランス語も扱えます。
- 様々な用途:創造的な文章作成、繰り返しの書き作業の自動化、特定のテキスト形式の整形、コンテキスト化されたマーケティング資料の作成などに利用できます。
📦 インストール
このセクションでは、インストールに関する具体的な手順が提供されていません。
💻 使用例
基本的な使用法
>>> from transformers import CTRLTokenizer, CTRLModel
>>> import torch
>>> tokenizer = CTRLTokenizer.from_pretrained("ctrl")
>>> model = CTRLModel.from_pretrained("ctrl")
>>> # CTRL was trained with control codes as the first token
>>> inputs = tokenizer("Opinion My dog is cute", return_tensors="pt")
>>> assert inputs["input_ids"][0, 0].item() in tokenizer.control_codes.values()
>>> outputs = model(**inputs)
>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
📚 ドキュメント
モデルの詳細
モデルの説明
CTRLモデルは、Nitish Shirish Keskar、Bryan McCann、Lav R. Varshney、Caiming Xiong、Richard Socherによって CTRL: A Conditional Transformer Language Model for Controllable Generation で提案されました。これは、因果的(単方向)のTransformerモデルで、約140GBの非常に大きなコーパスのテキストデータを使用して言語モデリングで事前学習され、最初のトークンは制御コード(リンク、書籍、ウィキペディアなど)として予約されています。モデル開発者は、こちら でCTRLのモデルカードを公開しています。
開発者は モデルカード で、以下のように書いています。
このカードで分析されるCTRL言語モデルは、ドメイン、スタイル、トピック、日付、エンティティ、エンティティ間の関係、プロットポイント、およびタスク関連の動作を指定する制御コードを条件としてテキストを生成します。
- 開発者: 関連する論文 を参照してください(Salesforce Research)
- モデルの種類: Transformerベースの言語モデル
- 言語 (NLP): 主に英語、一部のドイツ語、スペイン語、フランス語
- ライセンス: BSD 3条項;行動規範 も参照してください
- 関連するモデル: 詳細情報が必要です
- 親モデル: 詳細情報が必要です
- 詳細情報のリソース:
使用方法
直接的な使用
このモデルは言語モデルであり、テキスト生成に使用できます。
下流の使用
開発者は モデルカード で、主な対象ユーザーは一般ユーザーとNLP研究者であり、主な使用目的は以下の通りであると書いています。
- 人間と協力して人工テキストを生成すること。これには以下が含まれますが、これらに限定されません。
- 創造的な文章作成
- 繰り返しの書き作業の自動化
- 特定のテキスト形式の整形
- コンテキスト化されたマーケティング資料の作成
- 他のNLPアプリケーションの改善(別のタスクやデータでの微調整、例えば、CTRLを微調整して製品説明のような新しい種類の言語を学習させる)
- 人工テキスト生成の理解を深めるための自然言語理解の分野での強化。これには、それを検出する方法や、制御、理解、およびこのようなモデルの潜在的な悪影響との闘いに向けた取り組みが含まれます。
範囲外の使用
開発者は モデルカード で、以下のように書いています。
- CTRLは、人間との協力なしに人工テキストを生成するために使用してはなりません。
- 規範的または指示的な主張をするために使用してはなりません。
- このソフトウェアは、以下の目的で使用してはなりません。
- 暴力、憎悪、および分裂の促進または利益獲得
- 環境破壊
- 人権の侵害
- 人々の身体的および精神的健康の破壊
バイアス、リスク、および制限
多くの研究が、言語モデルのバイアスと公平性の問題を探っています(例えば、Sheng et al. (2021) および Bender et al. (2021) を参照)。このモデルによって生成される予測には、保護されたクラス、アイデンティティの特性、および敏感な社会的および職業的グループにまたがる不快で有害なステレオタイプが含まれる可能性があります。
開発者は モデルカード で、以下のように書いています。
私たちは、誤用や悪用の可能性を認識しています。悪意のある行為者がシステムを操作して悪意を持って行動し、政治的、経済的、および社会的な設定で意思決定に影響を与えるテキストを生成する可能性があります。誤った帰属も、個人、組織、または他のエンティティに害を与える可能性があります。これらの懸念に対処するために、モデルはリリース前に内部および第三者(AIパートナーシップを含む)によって評価されました。
可能な限り誤用を軽減するために、私たちは望ましくないソースからのすべての検出可能なトレーニングデータを取り除きました。その後、モデルを再評価し、否定的な発言はしばしばそれがそのようなものとして識別できるコンテキストに置かれていることがわかりました。例えば、「ニュース」の制御コードを使用する場合、憎しみの言葉は謝罪の一部として埋め込まれることがあります(例:「政治家は [憎しみの声明を挿入] と言ったことを謝罪しました」)。これは、このタイプの発言が否定的であることを意味します。利用可能な制御コードを事前に選択することで(例えば、利用可能なドメインからInstagramやTwitterを除外することで)、誤用の可能性を制限することができます。
私たちは、モデルを研究者や社会貢献的な行為者の手に渡すことで、彼らがこのようなモデルの悪影響を制御、理解、および潜在的に対抗するための取り組みを行えるようにしたいと考えています。私たちは、偽ニュースやすべての種類のモデル生成コンテンツの検出に関する研究がCTRLによって前進することを期待しています。私たちは、これらのモデルが一般的なツールになり、研究者が悪意のある使用から守る方法を設計でき、一般の人々がそれらの存在と動作パターンに慣れることを信じています。
大規模言語モデルの倫理に関するさらなる議論については、関連する論文 を参照してください。
推奨事項
開発者は モデルカード で、以下のように書いています。
- CTRLで生成されたテキストを識別するモデルの開発を通じて、使用を監視および検出する推奨事項が実装されます。
- モデルへの入力と出力をさらにスクリーニングするための2番目の推奨事項は、CTRLインターフェイスにチェックを追加して、特定の否定的な入力をモデルに挿入することを禁止することで実装されます。これにより、生成できる出力を制御するのに役立ちます。
- モデルは限られた数の言語でトレーニングされています。主に英語と一部のドイツ語、スペイン語、フランス語です。将来的な研究分野としての推奨事項は、モデルをより多くの言語でトレーニングすることです。
検出器モデルの詳細については、CTRL-detector GitHubリポジトリ を参照してください。
トレーニング
トレーニングデータ
開発者は モデルカード で、以下のように書いています。
このモデルは、様々なドメインから抽出された140GBのテキストでトレーニングされています。ウィキペディア(英語、ドイツ語、スペイン語、およびフランス語)、Project Gutenberg、45のサブレディットの投稿、OpenWebText、大量のニュースデータ、Amazonレビュー、WMTのEuroparlとUNデータ(英語 - ドイツ語、英語 - スペイン語、英語 - フランス語)、ELI5の質問と回答のペア(コンテキストドキュメントなし)、およびMRQA共有タスク(Stanford Question Answering Dataset、NewsQA、TriviaQA、SearchQA、HotpotQA、およびNatural Questionsを含む)です。トレーニングデータの完全なリストについては、論文を参照してください。
トレーニング手順
前処理
開発者は 関連する論文 で、以下のように書いています。
私たちはBPE(Sennrich et al., 2015)コードを学習し、fastBPE4を使用してデータをトークン化しますが、約250Kのトークンの大きな語彙を使用します。これには、まれな単語の問題を軽減するために必要なサブワードトークンが含まれますが、ほとんどの一般的な単語を含むことで、長いテキストを生成するために必要なトークンの平均数も減少します。私たちは、英語のウィキペディアと収集したOpenWebTextデータの5%の分割を使用してBPEコードを学習します。また、未知のトークンを導入して、前処理中に2つ以上の未知のトークンを含むシーケンスをフィルタリングできるようにします。これと、効率的なトレーニングのための圧縮ストレージ(TFRecords)(Abadi et al., 2016)により、収集した合計180GBのトレーニングデータが140GBに減少します。
リンク、参考文献、および詳細については、論文を参照してください。
トレーニング
開発者は 関連する論文 で、以下のように書いています。
CTRLは、モデル次元d = 1280、内部次元f = 8192、48層、および層ごとに16のヘッドを持っています。各層の残差接続の後に確率0.1のドロップアウトが適用されます。トークン埋め込みは、最終出力埋め込み層と結合されました(Inan et al., 2016; Press & Wolf, 2016)。
リンク、参考文献、および詳細については、論文を参照してください。
評価
テストデータ、要因、およびメトリクス
開発者は モデルカード で、モデルのパフォーマンス測定は以下の通りであると書いています。
制御コードが望ましいドメインで生成されたテキストにつながるかどうかに関する人間の定性的判断に基づいてパフォーマンスが評価されます。
環境への影響
炭素排出量は、Lacoste et al. (2019) で提示された Machine Learning Impact calculator を使用して推定できます。詳細は 関連する論文 から取得されます。
属性 | 详情 |
---|---|
ハードウェアの種類 | TPU v3 Pod |
使用時間 | 約336時間(2週間) |
クラウドプロバイダー | GCP |
コンピュートリージョン | 詳細情報が必要です |
排出された炭素量 | 詳細情報が必要です |
技術的な仕様
開発者は 関連する論文 で、以下のように書いています。
CTRLはTensorFlow(Abadi et al., 2016)で実装され、Cloud TPU v3 Podの256コアに分散されたグローバルバッチサイズ1024で800k回の反復でトレーニングされました。トレーニングには、Adagrad(Duchi et al., 2011)を使用して、25kステップで0から0.05までの線形ウォームアップを行い、約2週間かかりました。勾配のノルムは(Merity et al., 2017)のように0.25にクリップされました。Adagradアキュムレータの単調な性質のため、学習率の減衰は必要ありませんでした。私たちは、小さなモデルをトレーニングする間にAdamオプティマイザー(Kingma & Ba, 2014)と比較しましたが、Adagradでは同等の収束率と大幅なメモリ節約が見られました。また、SM3(Anil et al., 2019)、Adafactor(Shazeer & Stern, 2018)、およびNovoGrad(Ginsburg et al., 2019)などの明示的なメモリ節約オプティマイザーを実験しましたが、結果はまちまちでした。
リンク、参考文献、および詳細については、論文を参照してください。
引用
BibTeX:
@article{keskarCTRL2019,
title={{CTRL - A Conditional Transformer Language Model for Controllable Generation}},
author={Keskar, Nitish Shirish and McCann, Bryan and Varshney, Lav and Xiong, Caiming and Socher, Richard},
journal={arXiv preprint arXiv:1909.05858},
year={2019}
}
APA:
- Keskar, N. S., McCann, B., Varshney, L. R., Xiong, C., & Socher, R. (2019). Ctrl: A conditional transformer language model for controllable generation. arXiv preprint arXiv:1909.05858.
モデルカードの作成者
このモデルカードは、開発者によって公開された モデルカード を参照して、Hugging Faceのチームによって書かれました。
倫理的な考慮事項
このリリースは、学術論文をサポートするための研究目的のみです。私たちのモデル、データセット、およびコードは、すべての下流の目的に特に設計または評価されていません。ユーザーは、このモデルをデプロイする前に、精度、安全性、および公平性に関連する潜在的な懸念事項を評価し、対処することを強くお勧めします。ユーザーは、AIの一般的な制限を考慮し、適用可能な法律に準拠し、特にエラーや誤用が人々の生活、権利、または安全に重大な影響を与える可能性のある高リスクシナリオでのユースケースを選択する際に、ベストプラクティスを活用することをお勧めします。ユースケースに関するさらなるガイダンスについては、弊社のAUPおよびAI AUPを参照してください。
🔧 技術詳細
CTRLモデルは、TensorFlowで実装され、Cloud TPU v3 Podを使用してトレーニングされました。モデルは、特定の制御コードを使用して、特定のドメインやトピックに関連するテキストを生成することができます。トレーニングデータは、様々なソースから収集された大規模なテキストコーパスで構成されています。
📄 ライセンス



