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 は実際にチューリングテストに合格したのか?

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

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

推薦する

人工知能は鉄道の乗客の安全を守ることができるか?

高速鉄道網がますます充実するにつれ、列車は人々が長距離を移動する際に好まれる交通手段となってきました...

Googleを超えろ!世界最大の時間結晶が記録を破り、量子コンピューターが新たな奇跡を起こす

今日、タイムクリスタルは再び新しいスターを迎え、Sceinceサブマガジンに登場しました。 タイムク...

統計ソフトウェアStataを回帰分析に使用する方法

[[377047]] [51CTO.com からのオリジナル記事] データマイニングと機械学習は、今...

アルゴリズム | ダブルポインタはリンクリストを破る優れた魔法の武器です

今は少し理解できました。面接の過程で、面接官が私たちにコードを手書きで書くように頼むことがあります。...

時速55キロ!寧波杭州湾新区のスマート道路に無人車が走行

「無人運転車が次々とゆっくりと停止し、住民が乗車すると、自動的にショッピングモール、オフィス、学校な...

...

将来、仮想現実、人工知能、そして人体はどのように融合するのでしょうか?

仮想現実や人工知能などのテクノロジーが人体とどのように統合されるかを探ります。将来、仮想現実と現実の...

AIが「自由意志」を持つとき

人工知能が盛んに使われる一方で、この技術に伴う問題や潜在的な脅威も現れつつあります。 AI技術の「価...

ヘルスケアにおける人工知能:現在と未来

IDCが発表した最新データによると、ソフトウェア、ハードウェア、サービスを含む世界の人工知能の収益は...

...

LLVM の創始者、クリス・ラトナー: AI インフラ ソフトウェアを再構築する必要がある理由

かつて人々は AI の美しいビジョンを思い描いていましたが、現状は満足できるものではありません。 A...

2022 年の 9 つの新しいテクノロジー トレンドと雇用機会

1. 人工知能(AI)と機械学習人工知能 (AI) は過去 10 年間で大きな注目を集めてきましたが...

チャットボットをよりエレガントに設計する方法

AI アルゴリズムの人気により、近年会話型ロボットの人気が高まり、あらゆる分野で推進され、使用されて...