十分なデータを使用してモデルをトレーニングしたかどうかをどのように確認しますか?

十分なデータを使用してモデルをトレーニングしたかどうかをどのように確認しますか?

[51CTO.com クイック翻訳]ディープニューラルネットワーク (DNN) には大量のトレーニングデータが必要であり、モデルを微調整するにも大量のトレーニングデータが必要になります。では、データが十分かどうかはどうすればわかるのでしょうか? コンピューター ビジョン (CV) モデルの場合は、常にテスト エラーを確認できます。しかし、BERT や GPT のような大規模なトランスフォーマー モデルを微調整する場合はどうでしょうか?

  • モデルを評価するための最適な指標は何ですか?
  • 十分なデータを使用してモデルをトレーニングできたかどうかをどのように確認できますか?
  • 顧客に安心感を与えるにはどうすればよいでしょうか?

WeightWatcher が役に立ちます。

  1. pip で weightwatcher をインストールします

WeightWatcher は、(事前)トレーニング済みおよび微調整済みのディープ ニューラル ネットワークのパフォーマンスを評価するためのオープン ソース診断ツールです。これは、ディープラーニングが機能する理由に関する最先端の研究に基づいています。これは最近、ネイチャー誌に掲載されました。

この記事では、WeightWatcher を使用して、DNN モデルが十分なデータでトレーニングされているかどうかを判断する方法を説明します。

この記事では、GPT と GPT2 の例を検討します。 GPT は、偽のテキストを生成するために OpenAI によって開発された NLP Transformer モデルです。 OpenAI は、最初に開発されたときに GPT モデルをリリースしましたが、このモデルは小規模なデータセットで特別にトレーニングされていたため、偽のテキストを生成することができませんでした。その後、彼らは偽のテキストが儲かるビジネスだと気づき、GPT とまったく同じだが、十分なデータでトレーニングして有用性を確保した GPT2 をリリースしました。

WeightWatcher を GPT と GPT2 に適用して結果を比較すると、WeightWatcher のログ スペクトル ノルムとアルファ (べき乗法則) メトリックによって、GPT モデルに問題があることがすぐにわかることがわかります。これは論文の図6に示されています。

図6

ここでは、WeightWatcher Power Law (PL) アルファ メトリックに対してこれを行う方法を詳しく説明し、プロットを解釈する方法を説明します。

これらの計算は、Jupiter ノートブックまたは Google Colab で実行することをお勧めします。 (参考までに、論文内の図を作成するために使用された実際のノートブックも見ることができますが、ここでは古いバージョンの WeightWatcher が使用されています)。

この記事では、WeightWatcher github リポジトリに実用的なノートブックを提供します。

WeightWatcher は基本的な Huggingface モデルを理解します。実際、WeightWatcher は次の機能をサポートしています。

  • TF2.0/ケラス
  • pyTorch 1.x
  • ハギングフェイス
  • ONNX サポートは近日中にリリース予定です (現在はトランクにあります)

現在、Dense レイヤーと Conv2D レイヤーをサポートしています。より多くのレイヤーのサポートは近日中に提供される予定です。 NLP Transformer モデルでは、Dense レイヤーのみをサポートする必要があります。

まず、GPT および GPT2 pyTorch モデルが必要です。人気のHuggingFaceトランスフォーマーパッケージを使用します。

  1. !pip トランスフォーマーをインストール

次に、pyTorchとweightwatcherをインポートする必要があります。

  1. トーチをインポート
  2. weightwatcher をwwとしてインポートする

また、weightwatcher メトリックを解釈するために、pandas および matplotlib ライブラリも必要です。 Jupyter ノートブックでは、次のようになります。

  1. pandasをpdとしてインポートする
  2. matplotlibをインポートする
  3. matplotlib.pyplot をpltとしてインポートします。  
  4. %matplotlib インライン

トランスフォーマーパッケージと2つのモデルクラスをインポートします。

  1. 輸入変圧器
  2. トランスフォーマーからOpenAIGPTModel、GPT2Modelをインポート

2つの事前トレーニング済みモデルを取得し、model.eval()を実行します。

  1. gpt_model = OpenAIGPTModel.from_pretrained( 'openai-gpt' )
  2. gpt_model.eval();
  3. gpt2_model = GPT2Model.from_pretrained( 'gpt2' )
  4. gpt2_model.eval();

WeightWatcher を使用して GPT モデルを分析するには、ウォッチャー インスタンスを作成し、watcher.analyze() を実行するだけです。これにより、各レイヤーのメトリックを含む Pandas DataFrame が返されます。

  1. ウォッチャー = ww.WeightWatcher(モデル = gpt_model)
  2. gpt_details = ウォッチャー.analyze()

詳細なデータ フレーム レポートを使用すると、テスト データやトレーニング データにアクセスしなくても、モデル パフォーマンスの品質メトリックを分析できます。最も重要なメトリックはべき乗法則メトリックです。 WeightWatcher は各層についてレポートします。 GPT モデルには約 50 のレイヤーがあるため、すべてのレイヤーのアルファをヒストグラムとして一度に調べると便利です (pandas API を使用)。

  1. gpt_details.alpha.plot.hist(ビン=100、色= '赤' 、アルファ=0.5、密度= True 、ラベル= 'gpt' )
  2. plt.xlabel(r "アルファ $(\alpha)$ PL指数" )
  3. plt.凡例()

これは、GPT モデル内のすべてのレイヤーにわたる値の密度をプロットします。

図2

このヒストグラムから、モデルに 2 つの問題があることがすぐにわかります。

•ピークは、完全にトレーニングされたモデルの最適値よりも高くなります。

•いくつかの外れ値があり、いくつかのレイヤーのトレーニングが不十分であることを示しています。

したがって、GPT について何も知らず、テスト トレーニングやトレーニング データも見たことがないため、WeightWatcher は、このモデルは本番環境に導入すべきではないと伝えます。

次に、同じアーキテクチャを持ちながら、より多くの優れたデータを使用してトレーニングされる GPT2 を見てみましょう。指定されたモデルでウォッチャーインスタンスを再度作成し、watcher.analyze()を実行します。

  1. ウォッチャー = ww.WeightWatcher(モデル = gpt2_model)
  2. gpt2_details = ウォッチャー.analyze()

それでは、GPT と GPT2 のべき乗法則アルファメトリックを比較してみましょう。各モデルごとに 1 つずつ、合計 2 つのヒストグラムを作成し、2 つのグラフを重ね合わせます。

  1. gpt_details.alpha.plot.hist(ビン=100、色= '赤' 、アルファ=0.5、密度= True 、ラベル= 'gpt' )
  2. gpt2_details.alpha.plot.hist(ビン=100、色= '緑' 、密度= True 、ラベル= 'gpt2' )
  3. plt.xlabel(r "アルファ $(\alpha)$ PL指数" )
  4. plt.凡例()

GPT のレイヤーアルファは赤で表示され、GPT2 のレイヤーアルファは緑で表示され、ヒストグラムは大きく異なります。 GPT2の場合、ピークは$alpha\sim 3.5&bg=ffffff$であり、さらに重要なことに、外れ値$latex \alpha>6&bg=ffffff$はありません。アルファが小さいほど良いです。GPT2 モデルは、より多くの優れたデータでトレーニングされるため、GPT よりもはるかに優れています。

図3

WeightWatcher には、モデルの評価に役立つ多くの機能があります。次のようなことが可能です:

  • 十分なデータでトレーニングしたかどうかを判断するのに役立ちます(図に示すように)
  • 過剰学習された潜在層の検出
  • 早期終了の基準を取得するのに役立ちます(テストデータが表示されない場合)
  • さまざまなモデルとハイパーパラメータの予測テスト精度の傾向

試してみるのもいいかもしれません。うまくいくかどうか教えてください。

原題: 十分なデータでモデルをトレーニングしたかどうかを確認する方法、著者: Charles Martin

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください]

<<:  チャットAIは、わからないことに遭遇するとオンラインで検索できます。ネットユーザー:グループチャット中にこっそり百度で検索するのと同じです

>>:  パーソナライズされた推奨事項は、馴染みのあるものに偏っていますか?アルゴリズムは公平性を侵害できない

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

7つの部門:AI、IoTなどの技術を活用し、廃家電リサイクル・処理のインテリジェント化を推進

近年、人工知能などの新世代情報技術や5Gなどの新世代通信技術の急速な発展に伴い、あらゆる分野で科学技...

2D ガール ジェネレーター、駆動可能なニューラル ネットワーク... 2019 年の優れた機械学習プロジェクト 17 選

2019 年のベスト オープンソース プロジェクトを選択するために、Medium のネットユーザーが...

AIとIoTがサプライチェーンにもたらす効果

サプライ チェーン管理は経済の生命線であり、コストを最適化し、無駄を最小限に抑えながら、適切な製品を...

人工知能はデータセンター管理における破壊的技術となる

データ センターは、他のテクノロジー ベースの業界と同様に、革新を続けなければ成功できません。従来の...

CAIOは企業が緊急に必要とする人材になりつつある

数え切れないほど多くの企業が AI 技術の研究や導入に競い合う中、多くの企業が熟練した AI チーム...

気候変動と闘うためのAIの8つのガイドライン

気候変動の緩和は緊急の優先課題になりつつあります。時間を無駄にすることはできません。大気中の二酸化炭...

トップマガジンTPAMI2023!生成AIと画像合成のレビューを公開しました!

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

研究者はディープラーニングを使用して巡回セールスマン問題を解決する上でどの程度進歩しましたか?

組合せ最適化問題の背景組み合わせ最適化は、NP 困難な制約付き最適化問題を解決することを目的とした、...

DeepMindが乳がん診断AIをリリース:市場に投入するにはまだ多くの課題がある

GoogleのDeepMindチームは最近、「乳がんスクリーニングAIシステムの国際評価」と題した論...

「アルゴリズムとデータ構造」JavaScript のリンク リスト

[[378875]]この記事はWeChatの公開アカウント「Unorthodox Front-end...

ロボットが商品を移動、無人仕分け、梱包作業員が異動・昇進…「ダブル11」の裏側にあるサプライチェーンアップグレード戦争

「ダブル11」は10年以上前から存在しており、大半の「買い物中毒者」は巨大プラットフォームでの数千億...

継続的インテリジェンスとは何ですか?モノのインターネットにどのような影響を与えるでしょうか?

IoTの世界は、希望に満ちた2020年を迎えようとしています。 5G企業は、2020年は5Gが公共...

機械読解とは何ですか?これは自然言語処理とどのような関係があるのでしょうか?

[[324510]] 01 機械読解タスク2002 年に発表された論文で、学者の C. スノーは読...

アイデンティティ管理における人工知能の脅威

Cyber​​Ark の 2023 年アイデンティティ セキュリティ脅威ランドスケープ レポートでは...

...