モデルガーデンの概要

TensorFlow Model Garden は、視覚と自然言語処理 (NLP) のための多くの最先端の機械学習 (ML) モデルの実装と、これらのモデルを標準データセットですばやく構成して実行できるワークフロー ツールを提供します。よく知られているモデルのパフォーマンスのベンチマーク、最近発表された研究の結果の検証、または既存のモデルの拡張を検討している場合でも、Model Garden は ML の研究とアプリケーションを前進させるのに役立ちます。

モデル ガーデンには、機械学習開発者向けの次のリソースが含まれています。

これらのリソースは、TensorFlow Core フレームワークで使用するように構築されており、既存の TensorFlow 開発プロジェクトと統合されます。モデル ガーデンのリソースもオープン ソースライセンスで提供されているため、モデルやツールを自由に拡張および配布できます。

実用的な ML モデルは、トレーニングと実行に計算負荷が高く、グラフィカル プロセッシング ユニット (GPU) やテンソル プロセッシング ユニット (TPU) などのアクセラレータが必要になる場合があります。 Model Garden のほとんどのモデルは、TPU を使用して大規模なデータセットでトレーニングされました。ただし、これらのモデルを GPU および CPU プロセッサでトレーニングして実行することもできます。

モデルガーデンモデル

モデル ガーデンの機械学習モデルには完全なコードが含まれているため、研究や実験のためにモデルをテスト、トレーニング、または再トレーニングできます。モデル ガーデンには、公式モデル研究モデルという 2 つの主要なモデル カテゴリがあります。

公式モデル

公式モデルリポジトリは、ビジョンと自然言語処理 (NLP) に焦点を当てた最先端のモデルのコレクションです。これらのモデルは、現在の TensorFlow 2.x 高レベル API を使用して実装されています。このリポジトリのモデル ライブラリは、高速なパフォーマンスのために最適化されており、Google のエンジニアによって積極的に維持されています。公式モデルには、モデル ガーデントレーニング実験フレームワークを使用して実験をすばやく構成するために使用できる追加のメタデータが含まれています。

研究モデル

Research Modelsリポジトリは、研究論文のコード リソースとして公開されているモデルのコレクションです。これらのモデルは、TensorFlow 1.x と 2.x の両方を使用して実装されています。 research フォルダー内のモデル ライブラリは、コード所有者と研究コミュニティによってサポートされています。

訓練実験フレームワーク

モデル ガーデン トレーニング実験フレームワークを使用すると、公式モデルと標準データセットを使用して、トレーニング実験をすばやく組み立てて実行できます。トレーニング フレームワークは、Model Garden の公式モデルに含まれる追加のメタデータを使用して、宣言型プログラミング モデルを使用してモデルをすばやく構成できるようにします。 TensorFlow モデル ライブラリの Python コマンドを使用してトレーニング実験を定義するか、こののように YAML 構成ファイルを使用してトレーニングを構成できます。

トレーニング フレームワークは、構成オブジェクトとしてtfm.core.base_trainer.ExperimentConfigを使用します。これには、次のトップレベルの構成オブジェクトが含まれます。

  • runtime : 処理ハードウェア、分散戦略、およびその他のパフォーマンスの最適化を定義します
  • task : モデル、トレーニング データ、損失、および初期化を定義します
  • trainer : オプティマイザ、トレーニング ループ、評価ループ、サマリー、およびチェックポイントを定義します。

Model Garden トレーニング実験フレームワークを使用した完全な例については、Model Garden チュートリアルを使用した画像分類を参照してください。トレーニング実験フレームワークの詳細については、 TensorFlow モデル API ドキュメントをご覧ください。モデル トレーニング実験のトレーニング ループを管理するソリューションをお探しの場合は、 Orbitをご覧ください。

特殊な ML 操作

モデル ガーデンには、GPU と TPU で効率的に実行される最先端のモデルを実行するために特別に設計された、多くのビジョンと NLP 操作が含まれています。特殊なビジョン操作のリストについては、TensorFlow モデル ビジョン ライブラリ API ドキュメントを確認してください。 NLP 操作のリストについては、TensorFlow モデル NLP ライブラリ API ドキュメントを確認してください。これらのライブラリには、ビジョンと NLP のデータ処理、トレーニング、およびモデルの実行に使用される追加のユーティリティ関数も含まれています。

Orbit を使用したトレーニング ループ

TensorFlow モデルのトレーニングには、2 つのデフォルト オプションがあります。

  • 高レベルの Keras Model.fit関数を使用します。モデルとトレーニング手順が Keras のModel.fit (データのバッチに対する増分勾配降下) メソッドの仮定に適合する場合、これは非常に便利です。
  • kerasを使用するか、または使用せずに、カスタム トレーニング ループを記述します。 tf.GradientTapetf.functionなどの低レベルの TensorFlow メソッドを使用してカスタム トレーニング ループを作成できます。ただし、このアプローチには多くのボイラープレート コードが必要であり、分散トレーニングを簡素化するために何もしません。

Orbit は、これら 2 つの両極端の間にある 3 つ目のオプションを提供しようとしています。

Orbit は、TensorFlow 2.x でカスタム トレーニング ループを簡単に記述できるように設計された柔軟で軽量なライブラリであり、モデル ガーデントレーニング実験フレームワークとうまく連携します。 Orbit は、チェックポイントの保存、モデル評価の実行、要約書き込みの設定など、一般的なモデル トレーニング タスクを処理します。 tf.distributeとシームレスに統合し、CPU、GPU、TPU ハードウェアなど、さまざまなデバイス タイプでの実行をサポートします。 Orbit ツールもオープン ソースであるため、モデル トレーニングのニーズに合わせて拡張および適応できます。

Orbit ガイドはこちらから入手できます。