TensorFlow 2.9が利用可能になりました。CPUパフォーマンスの最適化を実現するためにoneDNNが改良され、WSL2がすぐに利用可能になりました。

TensorFlow 2.9が利用可能になりました。CPUパフォーマンスの最適化を実現するためにoneDNNが改良され、WSL2がすぐに利用可能になりました。

昨日、TensorFlow は正式に発表しました: TensorFlow 2.9 がリリースされました!前回からの距離 バージョン 2.8  アップデートはわずか3か月前に行われました。

新バージョンのハイライトは次のとおりです。

  • oneDNN のパフォーマンスの向上。
  • データ並列処理からモデル並列処理へのシームレスな移行を実現する新しい API である DTensor のリリース。
  • Eigen、tf.function の統合、Windows 上の WSL2 の新しいサポートを含むコア ライブラリの改善。
  • tf.function の再トレースおよび Keras オプティマイザー用の新しい実験的な API もリリースされました。

TensorFlow 2.9 の具体的な改善点を見てみましょう。

TensorFlow 2.9 の新機能

CPU パフォーマンスの向上: oneDNN

TensorFlow は Intel と連携して、oneDNN パフォーマンス ライブラリを TensorFlow に統合し、Intel CPU で最高のパフォーマンスを実現しました。 TensorFlow 2.5 以降、TensorFlow は oneDNN を実験的にサポートしており、最大 4 倍のパフォーマンス向上を実現できます。 TensorFlow 2.9 では、Linux x86 パッケージおよび Intel Cascade Lake 以降の CPU に搭載されている AVX512_VNNI、AVX512_BF16、AMX などのニューラル ネットワーク ハードウェア機能を備えた CPU で、oneDNN 最適化がデフォルトで有効になっています。

Intel は次のように語っています。「Google AI と協力して、oneDNN ライブラリを TensorFlow 2.9 のデフォルトのバックエンド CPU 最適化にできることを嬉しく思います。」 TensorFlow ユーザーは、コードを変更することなく、オープン ソフトウェアの最適化によって実現される AI パフォーマンスの高速化を実感できるようになります。

oneDNN 最適化を有効にして TensorFlow を実行しているユーザーは、最適化をオフにしたときとは若干異なる数値結果が見られる場合があります。これは、浮動小数点の丸め方法と順序が異なると、若干の不正確さが生じる可能性があるためです。

上記のことで問題が発生する場合は、TensorFlow プログラムを実行する前に TF_ENABLE_ONEDNN_OPTS=0 を設定して最適化をオフにしてください。再度有効にしたい場合は、TensorFlow プログラムを実行する前に TF_ENABLE_ONEDNN_OPTS=1 を設定します。最適化が有効になっていることを確認するには、プログラム ログで「oneDNN custom operations are on」で始まるメッセージを探します。

テンソル

DTensor は、分散モデル処理用の新しい TensorFlow API であり、モデルをデータ並列処理から単一プログラム複数データ (SPMD) ベースのモデル並列処理にシームレスに移行できます。

DTensor のコア設計原則は次のとおりです。

  • デバイスに依存しない API: これにより、デバイス タイプ間で分割されたモデルを含め、CPU、GPU、または TPU で同じモデル コードを使用できるようになります。
  • マルチクライアント実行: コーディネーターを削除し、各タスクがローカルに接続されたデバイスを駆動できるようにすることで、起動時間に影響を与えずにモデルを拡張できます。
  • グローバルな視点とレプリカごとの視点: 従来の TensorFlow では、分散モデル コードはレプリカを中心に記述されていましたが、DTensor では、モデル コードはグローバルな視点から記述され、各レプリカ コードは DTensor ランタイムによって生成および実行されます。

TensorFlow では、DTensor に関する入門チュートリアルをいくつか公式に開発しています。参考資料は次のとおりです。

  • DTensor の概念: https://www.tensorflow.org/guide/dtensor_overview
  • DTensor を使用した分散 ML: https://www.tensorflow.org/tutorials/distribute/dtensor_ml_tutorial
  • DTensor と Keras を一緒に使用する: https://www.tensorflow.org/tutorials/distribute/dtensor_keras_tutorial

tf.function の TraceType

新しいバージョンでは、tf.function の再トレース方法が改善され、よりシンプルで予測可能、かつ構成可能になりました。

tf.function へのすべての引数には、tf.types.experimental.TraceType が割り当てられます。カスタム ユーザー クラスは、トレース プロトコル (tf.types.experimental.SupportsTracingProtocol) を使用して TraceType を宣言できます。 TraceType システムを使用すると、トレースバック ルールを簡単に理解できます。

WSL2のサポート

WSL2 を使用すると、開発者は従来の仮想マシンやデュアルブート設定を必要とせずに、Windows 上で直接 Linux 環境を実行できます。 TensorFlow は、GPU アクセラレーションを含め、WSL2 をすぐにサポートするようになりました。

決定論的行動

API tf.config.experimental.enable_op_determinism は TensorFlow の op を決定論的にします。決定論とは、ユーザーが同じ入力でオペレーションを複数回実行した場合、オペレーションが毎回まったく同じ出力を返すことを意味し、これはモデルのデバッグに役立ちます。

一般に、多くの操作は、非決定的な順序で浮動小数点数を加算できるスレッドを使用するため、非決定的です。

TensorFlow 2.8 では、オペレーションを決定論的にする API が導入され、TensorFlow 2.9 では、いくつかのケースで決定論的なパフォーマンスが向上しています。 TensorFlow モデルを確定的に実行したい場合は、プログラムの先頭に次のコードを追加するだけです。

 < コード> tf.keras.utils.set_random_seed ( 1 ) < / コード>
< code > tf . config . experimental . enable_op_determinism ( ) </code>

最初の行は、決定論に必要な Python、NumPy、TensorFlow のランダム シードを設定します。 2 行目は、すべての TensorFlow 操作を決定論的にします。決定論は通常、パフォーマンスの低下を伴いますので、op 決定論を有効にするとモデルの実行速度が低下する可能性があることに注意してください。

Keras によるトレーニングの最適化

TensorFlow 2.9 では、Keras Optimizer API の新しい実験バージョンである tf.keras.optimizers.experimental が追加されました。 API は、ユーザーがより簡単にカスタマイズおよび拡張できる、より統合され拡張された組み込みオプティマイザーのカタログを提供します。

将来のリリースでは、tf.keras.optimizers.experimental.Optimizer (およびサブクラス) が tf.keras.optimizers.Optimizer (およびサブクラス) に置き換えられます。つまり、古い Keras オプティマイザーを使用するワークフローは、新しいオプティマイザーに自動的に切り替わります。

新しいオプティマイザー クラスのハイライトは次のとおりです。

  • 一部のモデルはますます高速にトレーニングされています。
  • カスタム オプティマイザーの作成が容易になります。
  • モデル加重移動平均 (Polyak 平均) の組み込みサポート。

<<:  ネットユーザーの83%を騙した!画像生成の頂点、DALL-E 2 は実際にチューリングテストに合格したのか?

>>:  ライアットを繰り返し失敗に導いた作者、ピン:作者は若くして交通事故で亡くなり、何千行ものソースコードが世界を変えた

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

世界の自動運転事故を比較することで、そのデータと真実が明らかになった。

最近起きた自動車事故は、被害者の身元が明らかになったこと、運転支援技術の台頭と普及、中国の有名自動車...

...

Github ホットリスト: 2021 年の最もクールな AI 論文 33 件をレビュー!多くの中国人作家が選ばれた

[[435977]]現在、AI技術は急速に進歩しており、毎年多くの優れた論文が発表されています。 2...

AIがあらゆるところに存在している世界を想像してみてください

[[360153]]あなたをモデルに、考え、反応し、行動するように訓練されたロボットを想像してみてく...

2022 年ソフトウェア エンジニア レポートが公開されました。最も高い年収はサイバーセキュリティ業界、機械学習はNLPに勝てない

2022 年に雇用主の間で最も人気のあるプログラミング言語はどれですか? 地域や職種によってソフトウ...

マスク氏と陳天橋氏の両者が期待している脳コンピューターインターフェースは、将来いつ実現するのだろうか?

[[415853]]失語症の人は再び話せるようになり、聴覚障害の人は再び聞こえるようになり、四肢麻...

AIとIoTが交通管理をどう変えるのか

人工知能 (AI) とモノのインターネット (IoT) はどちらも、私たちの周りの世界で注目を集め始...

流行中にどのようなホットなテクノロジーが使用されていますか? AI、5G、RTC、ビッグデータが登場

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

MetaはTransformerアーキテクチャにアクションを起こします。新しい注目メカニズムは推論をよりよく理解します。

大規模言語モデル (LLM) が強力であることは議論の余地のない事実ですが、それでも単純な間違いを犯...

ゲーム「原神」では実際に深層強化学習が使われ、オープンソース化されている

[[425402]] 『原神』で魚が釣れないとまだ悩んでいますか?テイワットでの釣りについての遅れば...

清華大学人工知能開発報告:中国は過去10年間のAI特許出願で世界第1位

ザ・ペーパー記者 張偉最新の報告書によると、中国の人工知能特許出願件数は過去10年間で世界第1位であ...

...

「Nuwa」のAIバージョンが登場!テキストから画像とビデオの生成: 8 つのタスクに 1 つのモデル

最近、視覚合成というタスクが大きな注目を集めています。 NVIDIA の GauGAN は数日前にバ...

海外のAIは使えない?国内お宝AIツール6選をシェア!

Chat GPTが普及して以来、さまざまなAIツールが次々と登場しました。AIの出現により、多くの...