機械学習論文を再現する際に注意すべき5つの問題

機械学習論文を再現する際に注意すべき5つの問題

私が初めて機械学習に興味を持ったとき、論文を読んだり、それを実装したりすることに多くの時間を費やしました。もちろん、私は天才ではありません。これを実装するには、git clone を実行して論文の著者のコードを実行する必要があります。興味のある概念については、論文やプロジェクトをよりよく理解するために、手動でコードを入力して注釈を付けることもあります。

[[350120]]

これはイライラする学習方法です。論文を再現しようとするプロセスは、おおよそ次のようになります。

  • 新しい SOTA を達成した論文はニュース メディアで注目を集めます。
  • 読者は論文の内容を詳しく読んだり、ざっと目を通したりします。
  • 読者は論文の実験結果に感銘を受け、それを再現することに興味を持っています。

次のステップは、プロジェクト コードを必死に検索し、作成者が使用したデータセットでコードを実行してみることです。この時点で、プロジェクトに実行手順 (README.md)、コード、パラメーター、データセット、データセット パス、ソフトウェア環境、必要な依存関係、ハードウェア条件などの要素が含まれていることを確認する必要があります。これらを理解することによってのみ、論文の SOTA 結果を正常に再現することができます。

このプロセス中に、多くの一般的な問題が発生する可能性があります (以下を参照)。問題に遭遇する前に、それについて知っておくことは役に立ちます。結局、誰も何も解決せずに終わるのは嫌ですから。

機械学習論文を再現する際によくある問題

複製プロセス中に発生する一般的な問題は次のとおりです。

  • README ファイルが不完全または欠落しています。
  • 未定義の依存関係、バグのあるコード、事前トレーニング済みモデルの欠如。
  • 非公開パラメータ。
  • プライベートデータセットまたは前処理手順の欠落。
  • GPU リソースに対する需要は非現実的です。

1. READMEファイルが不完全または欠落している

論文がオープンソース コードとともに公開されている場合、プロジェクトの再現を開始するために使用する必要があるドキュメントの 1 つが README です。優れた README ファイルには通常、依存関係のリスト、トレーニング スクリプト、評価スクリプト、事前トレーニング済みモデル、およびスクリプトの実行結果というコンポーネントが含まれます。

実際、これらの内容は、Papers with Code が公開した「機械学習コード完全性セルフチェックリスト」(NeurIPS 2020 コード提出プロセスの一部となっている)にすでに記載されています。このリストは、マギル大学の准教授であり、モントリオールにあるFacebookのFAIRラボの責任者であるジョエル・ピノー氏からヒントを得たものだ。

Papers with Code が提供するサンプル README については、以下を参照してください。

https://github.com/paperswithcode/releasing-research-code

README ファイルが不完全な場合、コードを実行する際のスタートとしては不適切です。

注意すべき兆候の 1 つは、サンプルノートブックまたはサンプルコードです。ノートブックの目的は、コードの使用方法を示すことです。理想的には、「すべて実行」をクリックする以外の調整を行わずにノートブックを実行できるはずです。コマンドラインにパラメータとデータパスを事前に入力することで、同じ効果を実現できます。

また、完全な README ファイルには、作者の連絡先情報や、モデル アーキテクチャやデータ変換プロセスを示す GIF 画像など、重要ではないが役に立つ情報もいくつか含まれています。コード ベースが GitHub でホストされている場合は、問題領域の問題に積極的に対応されているかどうか、およびプル リクエストが定期的にレビューされているかどうかを確認します。これらのアイテムは、ライブラリが慎重に維持管理されていることを証明し、その後の複製作業が効果的にサポートされることを保証します。もちろん例外もありますが、上記の項目が欠けている状況については慎重に検討してください。

Joelle Pineau の機械学習再現性チェックリスト

(画像出典: https://www.cs.mcgill.ca/~jpineau/ReproducibilityChecklist.pdf)

2. 未定義の依存関係、バグのあるコード、事前トレーニング済みモデルの欠如

サンプルノートブックに満足したら、異なるパラメータを使用して独自のデータセットでモデルを試してみるとよいでしょう。この段階では、サンプルノートブックで使用されていない関数を呼び出したり、事前トレーニング済みのモデルを独自のデータセットで試したりすると、問題が発生する可能性があります。

たとえば、requirements.txt が欠落していたり​​、パッケージのバージョンが固定されていない (例: tensorflow==2.2) ことに気付くかもしれません。作成者がバージョンを指定しなかったというだけの理由で、TensorFlow のバージョンが 2.2 ではなく 1.15 であることがわかったときの衝撃を想像してみてください。

依存関係をチェックして、事前トレーニング済みモデルが見つからないことに気づいたとします。この場合、コードをデバッグするか、バグレポートを提出するか、コードを無視することができます。最初のオプションでは、何時間も費やすことになる可能性があるので注意してください。もちろん、簡単に修正できるバグもありますので、修正できる場合はプル リクエストを送信します。しかし、私たちはいつもそれほど幸運なわけではなく、簡単に手の届くところにあるこれらの果物は、時には摘むのが難しいこともあります。

事前トレーニング済みのモデルが不足していることは危険信号ですが、実際には珍しいことではありません。結局のところ、論文の著者にはモデルを公開する義務はありません。次に、もう 1 つの選択肢は、再現用に公開されているパラメータを使用してモデルをトレーニングすることです。しかし、パラメータは必ずしも公開されているわけではありません...

3. 非公開パラメータ

モデルによっては、SOTA 結果を達成するためにハイパーパラメータが非常に重要です。下の図は、異なるパラメータによって異なる f1 スコア (0.5 ~ 1.0 の範囲) が生成される様子を示しています。モデル内のパラメータは通常、学習率、埋め込みサイズ、レイヤー数、ドロップアウトの量、バッチ サイズ、トレーニング エポック数などです。

したがって、著者が使用した正確なパラメータを提供していない場合は、SOTA の結果を再現するためにすべての実験を自分で実行する必要がある場合があります。

ちなみに、Facebook の HiPlot は、さまざまなパラメータの組み合わせを使用した場合のモデル結果を視覚化するのに役立つ優れたツールです。

HiPlot アドレス: https://github.com/facebookresearch/hiplot

4. プライベートデータセットまたは前処理手順の欠落

多くの点で、世界中の研究者によって提供されたオープンソースのデータセットを利用できることは幸運です。実際のところ、データの収集は簡単な作業ではなく、そのデータをクリーンアップして研究用にフォーマットするのはさらに面倒です。帯域幅とストレージのコストが非常に高いため、これらのオープンソース データセットを無料でホストしてくださった学術機関と Kaggle に感謝します。

しかし、プライベートデータセットを使用するのは簡単ではありません。データセットには、ImageNet などの著作権で保護された情報が含まれている場合があります。通常は申請書に記入する必要があり、著作権所有者が承認するかどうかを決定します。

このプロセスは面倒な場合があり、必要なデータセットが利用できない場合は、アクションを申請する前に慎重に検討してください。または、Academic Torrents などの他のソースからデータを検索またはダウンロードすることもできます。

https://academictorrents.com/ をご覧ください。

5. 非現実的なGPUリソ​​ース要件

最近の傾向として、モデルが大きくなるほどパフォーマンスも向上します。いくつかの論文では、SOTA の結果を達成するためにデータセンター全体の計算能力が使用されており、これらの論文を再現するのは当然困難です。たとえば、2019 年 10 月に Google は「統合テキストからテキストへのトランスフォーマーによる転移学習の限界の探究」というタイトルの論文を公開し、パラメータを 110 億に拡張することでトランスフォーマー モデル アーキテクチャの限界を探ろうとしました。しかし、数か月後、Microsoft は 170 億のパラメータを持つ Turning-NLG を作成し、すぐに OpenAI は 1750 億のパラメータを持つ事前トレーニング済み言語モデル GPT-3 をリリースしました...

数十億のパラメータを持つモデルをトレーニングするには、分散トレーニング方法と何らかの形式の高性能コンピューティング (HPC) または GPU クラスターを使用する必要があります。 110 億および 170 億のパラメータを持つモデルにはそれぞれ約 44 GB および 68 GB のメモリが必要なので、これらのモデルは単一の GPU のみを使用してトレーニングすることはできません。

つまり、論文で使用されている大規模なモデルが個人の能力を超えているかどうかを早い段階で調べるということです。

Microsoft トレーニング Turning-NLG。

要約する

論文のコードを再現するのは簡単ではありませんが、SOTA モデルの標準化を試みるプロジェクトが増えています。私の個人的なお気に入りは、研究者や開発者にとって参入障壁が十分に低い HuggingFace のトランスフォーマーです。さらに、TensorFlow の Model Garden と PyTorch の Model Zoo も急速に発展しています (それぞれ TensorFlow チームと PyTorch チームによって構築された事前トレーニング済みモデルを含む)。

これらのライブラリは、事前トレーニング済みモデルの使用を標準化し、モデルの貢献と配布に適した条件を提供することを目的としています。コードの品質が保証されており、ドキュメントも充実しています。コミュニティがこれらのライブラリの恩恵を受け、SOTA の結果を再現し、SOTA モデルを簡単に使用できるようになることを願っています。

[この記事は51CTOコラム「Machine Heart」、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です]

この著者の他の記事を読むにはここをクリックしてください

<<:  新しいエッジAI手法であるTinyMLは、超低消費電力でエッジデバイス上で機械学習を実行します。

>>:  埋め込みアルゴリズム空間ベクトル角度式とその応用

ブログ    
ブログ    
ブログ    

推薦する

...

IDC: 高速サーバー市場は2023年上半期に31億ドルに達し、GPUサーバーが依然として主流となる

10月9日、IDCコンサルティングの公式WeChatアカウントによると、IDCは本日「中国半期加速コ...

...

Wikipedia+巨大模型で幻想を破れ!スタンフォードWikiChatはGPT-4を上回り、精度は97.3%

大規模言語モデルの幻覚問題が解決されました!最近、スタンフォード大学の研究者が、幻覚をほとんど起こさ...

...

50枚の写真が「毒された」安定した拡散、車と牛の区別がつかない

AI侵害に対するアーティストの反撃がここに——絵画に「毒」を入れると、AIが「毒化」されて使用時に誤...

先頭に立つ! 16人の学際的な専門家がAIの次の10年について語る

ニューヨーク大学の心理学・神経科学教授ゲイリー・マーカス氏と、ディープラーニングの先駆者で2018年...

カメラのようにズームして、写真の細部を塗りつぶし、スタイルをカスタマイズ。AIペイントツールMidjourneyが再びアップデート

有名な AI ペイントツール Midjourney が再びユーザーに衝撃を与えました。先月バージョン...

...

死角なしの360度!カリフォルニア大学バークレー校、中国で3DHMフレームワークをリリース:1枚の写真であらゆるビデオアクションを模倣可能

任意のポーズの写真を入力し、写真の人物に「指定された動画」の動きを真似してもらうのは簡単ではありませ...

...

最近 IT 業界で起こったいくつかの大きな出来事についてお話ししましょう。

新年が明けたばかりですが、新しい技術、新しい知識、新しいコンテンツが次々と登場し、新年早々も怠けるこ...

TPU v4 チップの計算能力が新たな高みに到達しました。 Googleが世界最大の機械学習センターを建設

最近、Google の I/O 開発者会議で、Google は魅力的な新しい携帯電話、AR グラス、...

不動産の持続可能な開発を推進する4つのテクノロジートレンド

不動産業界は、エネルギー需要の 22% を占めていることから、変化する環境の中で持続可能性を確保する...

...