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をオープンソース化し、マルチモーダルのパフォーマンスを大幅に向上させた。

>>: 

ブログ    
ブログ    
ブログ    

推薦する

IoT セキュリティ: RSA 暗号化および復号化アルゴリズム

[[357279]] WeChat パブリックアカウント: コンピューターとネットワークのセキュリテ...

...

AIがDotAのトッププレイヤーに勝利したのは画期的なことでしょうか? OpenAIが詳細を発表

[[200484]]週末、OpenAI は世界最高峰の DotA 2 イベント TI7 (The I...

ChatGPT のセキュリティ制限が「謎のコード」によって侵害されました!人類を滅ぼすための手順が口から出され、アルパカとクロードも逃れられない

大型模型の「堀」が再び破られた。謎のコードを入力することで、ビッグモデルは有害なコンテンツを生成する...

人工知能によるサイバーセキュリティ防御の強化

人工知能は貴重で脆弱なデータを保護する上で大きな可能性を秘めていますが、セキュリティ チームがそれを...

スケッチが本物の顔に変わる? AI: はい、草はいくらでも大丈夫です。

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

郭光昌:医療人工知能支援システムの構築を加速

医療人工知能支援システムの構築加速に関する提案中国人民政治協商会議第12期全国委員会委員 郭光昌【提...

...

機械翻訳の3つのコア技術原則 | AI知識の普及

機械翻訳技術は 80 年以上にわたって開発されてきました。バベルの塔の伝説は過去のものとなりました。...

梅の花の山の上を歩くロボット犬?自転車は自分でバランスをとることができますか?テンセント・ロボティクスXラボ研究初の「開封」

テンセントは11月20日、移動ロボット研究における新たな進展を発表し、四足移動ロボット「ジャモカ」と...

...

...

...

...

ドーパミンが来る! Google が新しい強化学習フレームワーク Dopamine を発表

Google は、TensorFlow をベースとし、柔軟性、安定性、再現性、高速ベンチマークを提供...