Google Cloud Platform

スケーラブルな ML モデルのトレーニング、デプロイ、管理を容易にする TensorFlow 2.0 と Cloud AI

new_tensorslow_1.max-2200x2200.png

※この投稿は米国時間 2019 年 3 月 22 日に Google Cloud blog に投稿されたものの抄訳です。

2015 年にオープンソース化されて以来、TensorFlow はエンドツーエンドの完全な ML(機械学習)エコシステムへと成長を遂げました。さまざまなツールやライブラリ、デプロイ オプションを含んでおり、ユーザーが調査段階から本番環境へと容易に移行できるよう支援します。そして、今年 3 月に開催された 2019 TensorFlow Dev Summit では、ML モデルをさらに使いやすくデプロイしやすいものにする TensorFlow 2.0 が登場しました。

ML フレームワークとしてスタートした TensorFlow は、その後包括的なプラットフォームへと成長し、直感的な高水準 API と低水準操作の両方へのアクセスを研究者と開発者に提供します。TensorFlow 2.0 では Eager Execution がデフォルトで有効になり、Keras と密接に連携するようになりました。データセットは tf.data パイプラインを介して簡単にインジェストでき、モデルのトレーニングは Colab や Jupyter ノートブックから直接 TensorBoard でモニタリングできます。TensorFlow チームは、2019 年第 2 四半期の一般リリース候補の発表に向け、引き続き TensorFlow 2.0 アルファ版の改良に取り組んでいきます。

tensorflow_2-00gvb.GIF

ML をもっと使いやすく

開発者の生産性と使いやすさに重点を置くという TensorFlow チームの方針は、iPython ノートブックや Colab にとどまらず、従来よりもずっとわかりやすく API コンポーネントを tf.keras (現在は標準の高水準 API)に統合したり、共通の前処理済みデータセットを 1 行のコードでインポートできる TensorFlow Datasets を導入したりするところにまで及んでいます。データ インジェスト パイプラインは tf.data でオーケストレートでき、TensorFlow Extended(TFX)で本番稼働にプッシュされ、Distribution Strategy を使って最小限のコード変更で複数のノード、ハードウェアのアーキテクチャに拡張されます。

TensorFlow エンジニアリング チームは、TensorFlow 1.x から TensorFlow 2.0 へのモデル移行を検討しているユーザー向けに、アップグレード ツールと移行ガイドを作成しました。また、TensorFlow 2.0 や移行サポートへの質問に答える場として、コミュニティ テスト スタンドアップも週 1 回開催しています。興味のある方は TensorFlow のサイトをご覧ください。

Upgrading_a_model_with_the_tf_upgrade_v2_toolcrqy.GIF
tf_upgrade_v2 ツールを使ったモデルのアップグレード

実験とイテレーション

研究者だけでなく企業のデータ サイエンス チームも、迅速なプロトタイピングと最初のソリューション構築までのスピードを重視して、継続的にモデル アーキテクチャ開発のイテレーションを進める必要があります。TensorFlow 2.0 の重点項目である Eager Execution を使用すれば、直感的な Python の制御フローを使い、 tf.function で Eager コードを最適化し、エラー メッセージの改善によって作業を高速化することができます。TensorFlow を使ったモデルの作成や実験は、これまでになく簡単になりました。

モデルのデプロイ、再トレーニング、実験にはトレーニングの高速化が欠かせません。この 1 年、TensorFlow チームは第 2 世代 Cloud TPU(1.6 倍)や NVIDIA V100 GPU(2 倍)などさまざまなプラットフォームでトレーニング性能の向上に精力的に取り組んできました。たとえば、CPU ベースの Compute Engine インスタンスをサポートする Intel の MKL ライブラリでは 3 倍以上の高速化を実現しています。

TensorFlow は、高度なモデルの構築も支援できるようにアドオンを通じて拡張されました。たとえば TensorFlow Federated を使用すれば、クラウドとリモート デバイス(IoT や組み込みデバイス)で協力してモデルをトレーニングできます。リモート デバイスは中央のトレーニング システムにないデータを持っていることがよくありますが、最近発表された TensorFlow Privacy エクステンションは、トレーニング データからの個人情報(PII)の削除に役立ちます。また TensorFlow Probability は、伝統的な統計学的ユース ケースでも使えるように TensorFlow を拡張し、推定器など他の機能と組み合わせられるようにします。

さまざまな環境や言語への ML モデルのデプロイ

TensorFlow の最大の強みは、一貫してモデルを本番環境にデプロイできることです。TensorFlow 2.0 では、そうした本番デプロイがさらに簡単になりました。TFX Pipelines は、シングル インスタンスであれクラスタ全体であれ、トレーニング済みのモデルを実行時の推論にどのように投入するかを調整できるようにします。一方、TensorFlow Lite を使用すれば、リソースに制約があるシステム(モバイル / IoT デバイスや組み込みハードウェアなど)でモデルを実行できるようにする量子化が容易になります。Airbnb や Shazam、BBC といった企業では、いずれも TensorFlow Lite を使ってモバイル エクスペリエンスを強化し、ユーザーがアップロードしたコンテンツの検証と分類を行っています。

Exploring_and_analyzing_data_with_TensorFlow_Data_Validationahzi.GIF
TensorFlow Data Validation によるデータの探索、解析

JavaScript は世界で最も人気のあるプログラミング言語の 1 つであり、TensorFlow の JavaScript 版である TensorFlow.js は数百万もの JavaScript 開発者の ML 活用を支援します。TensorFlow チームは TensorFlow.js のバージョン 1.0 を発表しました。両者の統合は、単にブラウザ内でモデルをトレーニングして実行することだけでなく、App Engine を含むサーバー サイドのホステッド JavaScript アプリケーションの一部として TensorFlow を実行することも可能にします。現在の TensorFlow.js は今までで最高の性能を誇り、そのコミュニティも大きく成長しました。最初のリリースから 1 年の間に、コミュニティ メンバーは TensorFlow.js を 30 万回以上ダウンロードし、そのリポジトリには 100 人以上のコントリビューターによるコードが組み込まれています。

今すぐ始めるために

Google Cloud で今すぐ TensorFlow 2.0 アルファ版を使ってみたい方は、Deep Learning VM を立ち上げてチュートリアルの一部を試してみてください。どこかでノートブックを実行できればよいということであれば、Colab から pip で TensorFlow 2.0 をインストールできます。とはいえ、Cloud Dataproc Cluster を使用すれば Google Cloud 上で Jupyter インスタンスを実行できますし、Cloud ML Engine から直接ノートブックを起動することも可能です。これらはいずれも皆さんの GCP プロジェクト内で実行できます。

Using_TensorFlow_27ray.GIF
Deep Learning VM、GCP ノートブックとともに TensorFlow 2.0 を使用する

私たちは、TensorFlow 2.0 のアルファ版とともに、新しいコミュニティと教育コースも発表しました。今年、O'Reilly Media と共同で TensorFlow World を開催します。1 週間にわたるこのカンファレンスでは、オープンソース コミュニティと TensorFlow に関するあらゆるものを育成し、結集させることを目指します。現在、カンファレンスで取り上げる論文やプロジェクトの提案を参加予定の方から募っています。また、プログラミング初心者や、これから ML や TensorFlow に取り組む方などを対象にした 2 つの新しい教育コースを開設します。「TensorFlow: from Basic to Mastery」シリーズの一部に位置づけられる deeplearning.ai の「Course 1 - Introduction to TensorFlow for AI, ML and DL」と、Udacity の「Intro to TensorFlow for Deep Learning」です。

Google Cloud 上で TensorFlow 2.0 を使用している方は、ぜひ感想をお寄せください。Testing special interest group に参加し、プロジェクトの概要を TensorFlow World に送り、DevPost の #PoweredByTF Challenge でプロジェクトをシェアしてください。TensorFlow の話題に早く追いつきたい方は、Udacitydeeplearning.ai による無料コースをお勧めします。

- By Paige Bailey, TensorFlow Developer Advocate and Barrett Williams, Cloud ML Blog Editor