Keras 3.0 が市場を席巻しています!この大きなアップデートではPyTorchとJAXが統合され、世界中の250万人の開発者が使用しています。

Keras 3.0 が市場を席巻しています!この大きなアップデートではPyTorchとJAXが統合され、世界中の250万人の開発者が使用しています。

先ほど、Keras 3.0 が正式にリリースされました!

5 か月のパブリック ベータ テストを経て、ディープラーニング フレームワーク Keras 3.0 がついにすべての開発者に利用可能になりました。

新しい Keras 3 は Keras コード ベースを完全に書き換え、JAX、TensorFlow、PyTorch 上で実行できるため、新しい大規模モデルのトレーニングとデプロイのための新しい機能が実現します。

「Keras の父」である François Chollet 氏も、最新バージョンのリリース前にいくつかの発表を行いました。現在、250 万人を超える開発者が Keras フレームワークを使用しています。

ビッグニュース: Keras 3.0 をリリースしました!

JAX、TensorFlow、PyTorch で Keras を実行する

XLAコンパイルによるトレーニングの高速化

新しい Keras ディストリビューション API により、任意の数のデバイスとホストでトレーニングを実行できるようになります。

PyPIで利用可能になりました

開発者は、Keras を低レベルのクロスフレームワーク言語として使用して、レイヤー、モデル、メトリックなどのカスタム コンポーネントを開発することもできます。

たった 1 つのコード ベースで、これらのコンポーネントを JAX、TensorFlow、PyTorch のネイティブ ワークフローで使用できます。

Keras を再びマルチバックエンドにする

オリジナルの Keras は、Theano、TensorFlow、CNTK、さらには MXNet でも実行できます。

2018 年、Theano と CNTK の開発が停止したため、TensorFlow が唯一の実行可能な選択肢であるように思われ、Keras は TensorFlow の開発に重点を置きました。

しかし、今年、状況は変わりました。

2023年のStackOverflow開発者調査と2022年のKaggle機械学習とデータサイエンス調査によると、

55% ~ 60% の市場シェアを誇る TensorFlow は、本番環境における ML の第一選択肢です。

PyTorch は 40% ~ 45% の市場シェアを誇り、研究分野における ML の第一選択肢となっています。

一方、JAX は市場シェアがはるかに小さいにもかかわらず、Google DeepMind、Midjourney、Cohere など、生成 AI 分野のトップ企業に採用されています。

そのため、開発チームは Keras のコード ベースを完全に書き直し、新しく誕生した Keras 3.0 はモジュール式のバックエンド アーキテクチャに基づいて再構築され、あらゆるフレームワークで実行できるようになりました。

同時に、新しいKerasは互換性も確保します。たとえば、TensorFlowバックエンドを使用する場合、import keras_core as kerasを使用してfrom tensorflow import kerasを置き換えるだけです。

-- 既存のコードは問題なく実行され、XLA コンパイルによりパフォーマンスがわずかに向上することがよくあります。

Keras と TensorFlow の比較

ここでのエディターは、TensorFlow コードを Keras に変換する方法を示す例を示します。

TensorFlow コア実装

Kerasの実装

対照的に、Keras がもたらすシンプルさがはっきりとわかります。

TensorFlow では各変数をより細かく制御でき、Keras では使いやすさと迅速なプロトタイプ作成が可能になります。

一部の開発者にとって、Keras は開発の手間を軽減し、プログラミングの複雑さを軽減し、時間コストを節約します。

Keras 3.0 の新機能

Keras の最大の利点は、優れた UX、API 設計、デバッグ可能性により高速開発を可能にすることです。

さらに、これは実戦でテストされたフレームワークであり、Waymo の自動運転車や YouTube の推奨エンジンなど、世界で最も複雑で大規模な ML システムの一部に採用されています。

では、新しいマルチバックエンド Keras 3 を使用することによる追加の利点は何でしょうか?

- 常にモデルで最高のパフォーマンスを実現します。

ベンチマークでは、JAX は一般に GPU、TPU、CPU で最高のトレーニングおよび推論パフォーマンスを提供することがわかりましたが、非 XLA TensorFlow は GPU で高速になることがあるため、結果はモデルによって異なります。

コードに変更を加えずにモデルに最適なパフォーマンスを提供するバックエンドを動的に選択するため、開発者は最大限の効率でトレーニングとサービスを提供できます。

- モデルのエコシステムのオプションを解放します。

任意の Keras 3 モデルは、PyTorch モジュールとしてインスタンス化したり、TensorFlow SavedModel としてエクスポートしたり、ステートレス JAX 関数としてインスタンス化したりできます。

つまり、開発者は、PyTorch エコシステム パッケージ、TF-Serving、TF.js、TFLite などの TensorFlow のデプロイメントおよびプロダクション ツール一式、および JAX の大規模 TPU トレーニング インフラストラクチャとともに Keras 3 モデルを使用できます。 Keras 3 API を使用して model.py を作成すると、ML の世界が提供するすべてのものにアクセスできるようになります。

- JAX の大規模なモデル並列処理とデータ並列処理を活用します。

Keras 3 には、現在 JAX バックエンドに実装されている (TensorFlow および PyTorch バックエンドにも近日中に実装される予定) 新しい分散 API である keras.distribution 名前空間が含まれています。

これにより、モデル並列処理、データ並列処理、およびこれら 2 つの組み合わせを、あらゆるモデル スケールとクラスタリング スケールで簡単に実装できます。モデル定義、トレーニング ロジック、シャーディング構成が互いに分離されているため、分散ワークフローの開発と保守が容易になります。

- オープンソース モデル バージョンの範囲を最大化します。

事前トレーニング済みモデルを公開したいですか?できるだけ多くの人に利用できるようにしたいですか?純粋な TensorFlow または PyTorch で実装すると、コミュニティの約半分で使用されることになります。

Keras 3 で実装すれば、選択したフレームワークに関係なく、誰でもすぐに使用できるようになります (自分自身が Keras ユーザーでなくても)。開発コストを増やすことなく、2 倍の効果を実現します。

- あらゆるソースからのデータ パイプラインを使用します。

Keras 3 / fit() / assess() predict() ルーチンは、使用するバックエンドに関係なく、tf.data.Dataset オブジェクト、PyTorch DataLoader オブジェクト、NumPy 配列、Pandas DataFrames と互換性があります。 PyTorch DataLoader で Keras 3 + TensorFlow モデルをトレーニングでき、tf.data.Dataset で Keras 3 + PyTorch モデルをトレーニングできます。

事前学習済みモデル

開発者は、Keras 3 でさまざまな事前トレーニング済みモデルの使用を開始できるようになりました。

すべての 40 個の Keras アプリケーション モデル (keras.applications 名前空間) は、すべてのバックエンドで使用できます。 KerasCV および KerasNLP の多数の事前トレーニング済みモデルもすべてのバックエンドで利用できます。

これらには以下が含まれます:

- バート

-選択

-ささやき

- T5

-安定した拡散

- YOLOv8

クロスフレームワーク開発

Keras 3 では、すべてのバックエンドで機能する keras.ops 名前空間へのアクセスを提供することで、開発者はどのフレームワークでも同じコンポーネント (任意のカスタム レイヤーや事前トレーニング済みモデルなど) を作成できます。

Keras 3 には、NumPy API の完全な実装が含まれています。これは、「NumPy のような」ものではなく、同じ機能とパラメーターを備えた真の NumPy API です。たとえば、ops.matmul、ops.sum、ops.stack、ops.einsum などの関数。

Keras 3 には、ops.softmax、ops.binary_crossentropy、ops.conv など、NumPy では利用できないニューラル ネットワーク固有の関数のセットも含まれています。

さらに、開発者が使用する操作がすべて keras.ops からのものである限り、カスタム レイヤー、損失関数、およびオプティマイザーは、JAX、PyTorch、および TensorFlow 全体で同じコードを使用できます。

開発者は 1 つのコンポーネント実装を維持するだけで、それをすべてのフレームワークで使用できます。

Keras アーキテクチャ

次に、Keras の仕組みとアーキテクチャを詳しく見てみましょう。

Keras では、Sequential クラスと Model クラスがモデル構築の中核となり、レイヤーを組み立てて計算グラフを定義するためのフレームワークを提供します。

シーケンシャルはレイヤーを線形に積み重ねたものです。これは、モデルが 1 つの入力と 1 つの出力を持つ線形レイヤーのスタックで構成される単純なケース向けに設計された Model のサブクラスです。

Sequential クラスには次の主な機能があります。

シンプルさ: 実行する順序でレイヤーをリストするだけです。

自動フォワード パス: シーケンシャル モデルにレイヤーを追加すると、Keras は各レイヤーの出力を次のレイヤーの入力に自動的に接続し、手動による介入なしにフォワード パスを作成します。

内部状態管理: 順次管理レイヤーの状態 (重みやバイアスなど) と計算グラフ。コンパイルが呼び出されると、オプティマイザー、損失関数、およびメトリックを指定して学習プロセスを構成します。

トレーニングと推論: Sequential クラスは、fit、evaluate、predict などのメソッドを提供します。これらは、それぞれモデルのトレーニング、評価、予測に使用されます。これらのメソッドは、トレーニング ループと推論プロセスを内部的に処理します。

Model クラスは機能 API で使用され、Sequential よりも高い柔軟性を提供します。複数の入力または出力、共有レイヤー、非線形トポロジを持つモデルなど、より複雑なアーキテクチャ向けに設計されています。

Model クラスの主な機能は次のとおりです。

レイヤー グラフ: モデルではレイヤー グラフを作成できるため、レイヤーを前のレイヤーと次のレイヤーだけでなく、複数のレイヤーに接続できます。

明示的な入出力管理: 機能 API では、モデルの入出力を明示的に定義できます。 Sequential と比較すると、より複雑なアーキテクチャが可能になります。

接続の柔軟性: Model クラスは、ブランチ、複数の入力と出力、共有レイヤーを持つモデルを処理できるため、単純なフィードフォワード ネットワークを超えた幅広いアプリケーションに適しています。

状態とトレーニングの管理: Model クラスは、すべてのレイヤーの状態とトレーニング プロセスを管理し、レイヤーの接続方法とモデル内でのデータ フローをより細かく制御します。

Model クラスと Sequential クラスはどちらも次のメカニズムに依存しています。

レイヤー登録: これらのモデルにレイヤーを追加すると、レイヤーは内部的に登録され、そのパラメーターがモデルのパラメーター リストに追加されます。

自動微分: トレーニング中、Keras はバックエンド エンジン (TensorFlow など) によって提供される自動微分を使用して勾配を計算します。このプロセスはユーザーにとって透過的です。

バックエンド実行: 実際の計算 (行列乗算、アクティベーションなど) は、モデルによって定義された計算グラフを実行するバックエンド エンジンによって処理されます。

シリアル化と逆シリアル化: これらのクラスには、モデル構造と重みのシリアル化を含む、モデルの保存と読み込みのためのメソッドが含まれています。

本質的に、Keras の Model クラスと Sequential クラスは、計算グラフの定義と管理に伴う複雑さのほとんどを抽象化し、ユーザーが基礎となる計算メカニズムではなくニューラル ネットワークのアーキテクチャに集中できるようにします。

Keras は、レイヤーが相互に接続する方法、データがネットワークを流れる方法、トレーニングと推論操作を実行する方法などの複雑な処理を自動的に処理します。

Keras のメジャーアップデートに関して、一部のネットユーザーは以下の写真を使って意見を表明しました。

ただし、なぜ TensorFlow を爆破する必要があるのか​​はわかりません。

一部のネットユーザーも、それが使えると言っている。

別のネットユーザーは「PyTorch 上で Keras を使用するのは素晴らしい成果です!」と祝福のメッセージを送ってきました。

もちろん、ネットユーザーの中には、「Tensorflow とは異なり、Torch には優れた API セットがあるので、普通の Torch ではなく Keras + Torch を使用する人がいるのだろうか」と異なる意見を言う人もいました。

この瞬間、Tensorflow の内心はこう思っています: 「ああ、そうだ、そうだ、大丈夫だ」

<<:  同レベルの7Bモデルを上回る! 中国のチームが大規模で高品質な画像とテキストのデータセットShareGPT4Vをオープンソース化し、マルチモーダルのパフォーマンスを大幅に向上させた。

>>: 

ブログ    
ブログ    
ブログ    

推薦する

...

人工知能、自動化、新興技術のトレンドが4.6兆ドルの通貨市場に混乱をもたらしている

いくつかのスタートアップ企業は、最新のテクノロジーを活用して、最大かつ最も古いセクターの 1 つであ...

ディープラーニングを自分の仕事にどのように統合しますか?

[[200786]]序文人工知能は現在、あらゆる分野で最もホットな技術です。最初の2年間が「インタ...

自動車AI市場は2027年までに70億ドルに達する

世界の自動車人工知能市場規模は、2022年の23億米ドルから2027年には70億米ドルに成長すると予...

CES 2020 における AI による心を読む

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

...

ロボットにあなたのことをもっと理解させるにはどうすればいいでしょうか?

[[361286]]自然言語処理技術は人工知能技術の重要な分野です。自然言語処理技術自体が成熟する...

高性能な PyTorch はどのように実現されるのでしょうか?経験豊富な専門家がまとめた落とし穴を避ける10のヒント

最小限の労力で最も効率的な PyTorch トレーニングを完了するにはどうすればよいでしょうか? P...

GPT-4 には意識がありません!しかし、チューリング賞受賞者のベンジオ氏らの88ページの論文は、「スカイネット」が遅かれ早かれやってくることを示唆している。

今日まで人工知能は発展してきましたが、人工知能は意識を持っているのでしょうか?チューリング賞受賞者の...

Nova One Advisor: 世界の医療画像 AI 市場の収益は 2027 年に 200 億米ドルに達する見込み

世界的な市場調査およびコンサルティング会社である Nova One Advisor は、医療画像分野...

TensorFlow 機械学習の初心者向けガイド: 線形回帰を実装するには?

TensorFlow 入門記事: 初心者でも理解できる TensorFlow 入門小学校で受けた理...

...

FPGA+CPUアーキテクチャに基づく自動運転プラットフォームの性能分析

1 はじめに自動運転の分野では、センサーデータに対するディープニューラルネットワークに基づく大量の複...

インメモリコンピューティング技術に基づく人工知能チップが利用可能:パフォーマンスは数十から数百倍高速

[[249742]]人工知能システム用の新しいコンピュータチップが利用可能になりました。プリンストン...

ロボット: 何を見ているんですか?人間とロボットのアイコンタクトが意思決定を遅らせる、サイエンス誌に掲載

あなたがロボットを見つめると、ロボットもあなたを見つめます。視線は人と人との間のシグナルであり、コミ...