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

>>: 

ブログ    
ブログ    

推薦する

マイクロソフトがローブを買収:一般の人々が人工知能を簡単に利用できるように

マイクロソフトは、人工知能はテクノロジー大手が反体制派を排除するための武器として利用されるべきではな...

...

Quark App、健康検索をアップグレードし、健康モデルアプリ「Quark Health Assistant」をリリース

12月25日、Quark Appは健康検索の全面的なアップグレードを発表し、健康大規模モデルアプリケ...

あなたが知らないかもしれないゲームにおける AI に関する 5 つの予測

仮想現実ゲームの発展により、ゲームのプレイ方法や交流の仕方が急速に変化しています。仮想現実はゲームの...

PyTorch エクスペリエンス ガイド: ヒントと落とし穴

PyTorch の開発者は、PyTorch の哲学は即時のタスクを解決すること、つまり計算グラフをそ...

米国のテクノロジー業界が冬を乗り切る中、プログラマーたちは仕事を維持するために率先して給与を削減している。 35歳の会社員:給料をもう少し下げてもいい

テクノロジー業界は歴史的に平均給与が最も高い業界の一つであり、リストのトップにランクされることも少な...

この病院のAI看護師は、人間の看護師の作業負荷を30%削減するためにオンライン化されました

[[270607]]看護師は医療現場を問わず需要が高いです。米国労働統計局の報告によると、看護師の求...

エッジAIとは何ですか?

エッジ AI は、今日のデジタル変革の時代に台頭している 2 つのテクノロジー、エッジ コンピューテ...

スマートエコノミーの時代において、人工知能技術をどのように活用して、より多くの技術的利益をもたらすことができるのでしょうか?

人工知能技術の急速な発展は、あらゆる分野で技術革新を推進し、多数の新興産業を生み出しました。今後 1...

Slik-wrangler、機械学習と人工知能のデータ前処理とモデリングのためのツール

現在、人工知能(AI)と機械学習は私たちの日常生活に入り込み、徐々に私たちの生活を変えつつあります。...

プログラマのための基本アルゴリズム: 再帰の説明

[[346111]]序文再帰は非常に重要なアルゴリズムの考え方です。フロントエンド開発者であっても、...

オープン性とクローズ性の戦い: Baidu と Google のどちらの AI プラットフォームが優れているか?

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

人工知能は人間に取って代わるでしょうか?将来、誰もがスーパーパワーを持つようになると思いますか?

ここ数十年、人類の技術は驚くほど急速に発展してきました。多くの映画、テレビ番組、小説などの影響で、多...

配達員はSF映画のハイテク技術を駆使し、平地を歩いているかのように100キロの重量を運ぶ。

昨日、配達員の動画がインターネット上で話題になった。動画では、ハミングバードデリバリーの配達員がテイ...