私が初めて機械学習に興味を持ったとき、論文を読んだり、それを実装したりすることに多くの時間を費やしました。もちろん、私は天才ではありません。これを実装するには、git clone を実行して論文の著者のコードを実行する必要があります。興味のある概念については、論文やプロジェクトをよりよく理解するために、手動でコードを入力して注釈を付けることもあります。
これはイライラする学習方法です。論文を再現しようとするプロセスは、おおよそ次のようになります。
次のステップは、プロジェクト コードを必死に検索し、作成者が使用したデータセットでコードを実行してみることです。この時点で、プロジェクトに実行手順 (README.md)、コード、パラメーター、データセット、データセット パス、ソフトウェア環境、必要な依存関係、ハードウェア条件などの要素が含まれていることを確認する必要があります。これらを理解することによってのみ、論文の SOTA 結果を正常に再現することができます。 このプロセス中に、多くの一般的な問題が発生する可能性があります (以下を参照)。問題に遭遇する前に、それについて知っておくことは役に立ちます。結局、誰も何も解決せずに終わるのは嫌ですから。 機械学習論文を再現する際によくある問題 複製プロセス中に発生する一般的な問題は次のとおりです。
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は、超低消費電力でエッジデバイス上で機械学習を実行します。
[[258931]]今日の科学技術分野における最も最先端のトピックとして、人工知能は3年連続で政府活...
かつて、農業と言えば、人々はいつも「真昼に畑を耕し、汗を地面に垂らす」という苦労を思い浮かべていまし...
【51CTO.comオリジナル記事】 1. 背景紹介---VODソース配信の問題点オンデマンドビデオ...
[[197022]]新しく購入した水冷なしのパブリック版GPUの温度は、フル負荷で稼働すると室温から...
現代の産業環境にはセンサーやスマート コンポーネントが満載されており、それらすべてが組み合わさって大...
Tinygrad は、ニューラル ネットワークを理解して実装するためのシンプルで直感的なアプローチ...
2018年の初めに、人工知能は大きな進歩を遂げました。 1月11日、スタンフォード大学が主催する世界...
[[384962]]ビッグデータダイジェスト制作出典: informationweek編纂者:張大毓...
著者 | ツァミア・アンサリ企画 | ヤン・ジェンマイクロソフトは、ソフトウェア大手の元CEO、ステ...
AI モデルのトレーニングには、大規模で機密性の高いデータセットが使用されることが多く、プライバシ...
生成 AI テクノロジーは、単純なフレーズを驚くほどリアルな画像に変換し、世界中の人々の想像力をかき...
インテリジェントな交通管理システムは、スマートシティの開発に欠かせない要素です。具体的には、スマート...
[[278064]]時系列は標準的な分析手法ですが、より高度な機械学習ツールでは、より正確な予測モデ...