TensorFlow Model Gardenは、ビジョンと自然言語処理(NLP)用の多くの最先端の機械学習(ML)モデルの実装と、標準データセットでこれらのモデルをすばやく構成して実行できるワークフローツールを提供します。有名なモデルのパフォーマンスのベンチマーク、最近リリースされた調査の結果の検証、既存のモデルの拡張など、モデルガーデンは、MLの調査とアプリケーションを前進させるのに役立ちます。
モデルガーデンには、機械学習開発者向けの次のリソースが含まれています。
- Googleのエンジニアが管理するビジョンとNLPの公式モデル
- ML研究論文の一部として公開された研究モデル
- 公式モデルの高速で宣言型のトレーニング構成のためのトレーニング実験フレームワーク
- 視覚および自然言語処理(NLP)に特化したML操作
- Orbitを使用したモデルトレーニングループ管理
これらのリソースは、TensorFlowコアフレームワークで使用するために構築されており、既存のTensorFlow開発プロジェクトと統合されます。モデルガーデンのリソースもオープンソースライセンスで提供されているため、モデルやツールを自由に拡張および配布できます。
実用的なMLモデルは、トレーニングと実行に計算量が多く、グラフィックプロセッシングユニット(GPU)やテンソルプロセッシングユニット(TPU)などのアクセラレータが必要になる場合があります。 Model Gardenのほとんどのモデルは、TPUを使用して大規模なデータセットでトレーニングされました。ただし、GPUおよびCPUプロセッサでこれらのモデルをトレーニングして実行することもできます。
モデルガーデンモデル
モデルガーデンの機械学習モデルには完全なコードが含まれているため、研究や実験のためにモデルをテスト、トレーニング、または再トレーニングできます。モデルガーデンには、公式モデルと研究モデルの2つの主要なモデルカテゴリがあります。
公式モデル
オフィシャルモデルリポジトリは、ビジョンと自然言語処理(NLP)に焦点を当てた、最先端のモデルのコレクションです。これらのモデルは、現在のTensorFlow2.x高レベルAPIを使用して実装されています。このリポジトリのモデルライブラリは、高速パフォーマンスのために最適化されており、Googleのエンジニアによって積極的に保守されています。公式モデルには、ModelGardenトレーニング実験フレームワークを使用して実験をすばやく構成するために使用できる追加のメタデータが含まれています。
研究モデル
Research Modelsリポジトリは、研究論文のコードリソースとして公開されているモデルのコレクションです。これらのモデルは、TensorFlow1.xと2.xの両方を使用して実装されています。リサーチフォルダ内のモデルライブラリは、コード所有者とリサーチコミュニティによってサポートされています。
トレーニング実験フレームワーク
モデルガーデントレーニング実験フレームワークを使用すると、公式モデルと標準データセットを使用してトレーニング実験をすばやく組み立てて実行できます。トレーニングフレームワークは、Model Gardenの公式モデルに含まれている追加のメタデータを使用して、宣言型プログラミングモデルを使用してモデルをすばやく構成できるようにします。 TensorFlowモデルライブラリでPythonコマンドを使用してトレーニング実験を定義するか、この例のようにYAML構成ファイルを使用してトレーニングを構成できます。
トレーニングフレームワークは、構成オブジェクトとしてtfm.core.base_trainer.ExperimentConfig
を使用します。これには、次の最上位の構成オブジェクトが含まれます。
-
runtime
:処理ハードウェア、配布戦略、およびその他のパフォーマンスの最適化を定義します task
:モデル、トレーニングデータ、損失、および初期化を定義しますtrainer
:オプティマイザー、トレーニングループ、評価ループ、要約、およびチェックポイントを定義します
モデルガーデントレーニング実験フレームワークを使用した完全な例については、モデルガーデンを使用した画像分類のチュートリアルを参照してください。トレーニング実験フレームワークの詳細については、 TensorFlowModelsAPIのドキュメントをご覧ください。モデルトレーニング実験のトレーニングループを管理するためのソリューションを探している場合は、 Orbitをチェックしてください。
特殊なML操作
モデルガーデンには、GPUおよびTPUで効率的に実行される最先端のモデルを実行するために特別に設計された多くのビジョンおよびNLP操作が含まれています。特殊なビジョン操作のリストについては、TensorFlowモデルビジョンライブラリAPIドキュメントを確認してください。 NLP操作のリストについては、TensorFlowモデルのNLPライブラリAPIドキュメントを確認してください。これらのライブラリには、ビジョンとNLPデータの処理、トレーニング、およびモデルの実行に使用される追加のユーティリティ関数も含まれています。
Orbitを使用したトレーニングループ
Orbitツールは、TensorFlow 2.xでカスタムトレーニングループを簡単に作成できるように設計された柔軟で軽量なライブラリであり、ModelGardenトレーニング実験フレームワークとうまく連携します。 Orbitは、チェックポイントの保存、モデル評価の実行、要約の書き込みの設定など、一般的なモデルトレーニングタスクを処理します。 tf.distribute
とシームレスに統合され、CPU、GPU、TPUハードウェアなどのさまざまなデバイスタイプでの実行をサポートします。 Orbitツールもオープンソースであるため、モデルトレーニングのニーズを拡張して適応させることができます。
通常、TensorFlowモデルは、カスタムトレーニングループを作成するか、高レベルのKerasModel.fit関数を使用してトレーニングします。単純なモデルの場合、 tf.GradientTape
やtf.function
などの低レベルのTensorFlowメソッドを使用してカスタムトレーニングループを定義および管理できます。または、高レベルのModel.fit
を使用することもできます。
ただし、モデルが複雑で、トレーニングループでより柔軟な制御またはカスタマイズが必要な場合は、Orbitを使用する必要があります。トレーニングループのほとんどは、 orbit.AbstractTrainer
またはorbit.StandardTrainer
クラスで定義できます。 Orbit APIドキュメントで、Orbitツールの詳細を確認してください。