人間のためのディープラーニング、Keras 3.0 リリース
(keras.io)- Keras 3.0 の正式リリースを発表、5か月間の公開ベータテストを経た
- Keras 3 は、JAX、TensorFlow、PyTorch 上で Keras ワークフローを実行できる全面的な再設計版
- 大規模モデルの学習およびデプロイ向けの新機能を提供
マルチフレームワーク機械学習を歓迎
- Keras を使う利点は、高い開発速度、ユーザー体験、API デザイン、デバッグのしやすさに重点が置かれている点
- 250万人の開発者に選ばれた実績あるフレームワークであり、Waymo の自動運転車や YouTube の推薦エンジンのような大規模 ML システムで使われている
- Keras 3 は、モデル性能の最適化、モデルエコシステムの選択肢拡大、大規模モデルのモデル並列処理およびデータ並列処理のサポートといった追加の利点を提供
Keras 3 API は JAX、TensorFlow、PyTorch で利用可能
- Keras 3 は Keras API 全体を実装しており、TensorFlow、JAX、PyTorch で利用できる
- 組み込みレイヤーのみを使うすべての Keras モデルは、サポートされるすべてのバックエンドで即座に動作する
- 既存の tf.keras モデルも JAX と PyTorch ですぐに実行可能
マルチフレームワークのレイヤー、モデル、メトリクス作成
- Keras 3 では、すべてのバックエンドで同じように動作するコンポーネント(カスタムレイヤー、事前学習済みモデルなど)を作成できる
keras.ops名前空間を通じて、バックエンド間で互換性のある NumPy API とニューラルネットワーク特化関数を提供keras.opsだけを使う限り、カスタムレイヤーやメトリクスは JAX、PyTorch、TensorFlow で同一コードのまま動作する
大規模なデータ並列処理とモデル並列処理のための新しい分散 API
- 大規模モデルのシャーディング問題を解決するための新しい分散 API を提供
- モデル定義、学習ロジック、シャーディング構成を分離し、単一デバイス上で動くかのようにモデルを記述できる
- データ並列処理とモデル並列処理のためのシャーディングレイアウトを簡単に指定できる API を提供
事前学習済みモデル
- Keras 3 で利用可能なさまざまな事前学習済みモデルを提供
- すべての Keras Applications モデルと KerasCV、KerasNLP の事前学習済みモデルが、すべてのバックエンドで動作する
すべてのバックエンドでクロスフレームワークのデータパイプラインをサポート
- Keras 3 モデルは、JAX、PyTorch、TensorFlow のいずれのバックエンドであっても、さまざまなデータパイプラインを使って学習できる
複雑さの段階的な開示
- Keras API は、単純なワークフローから低レベルのカスタマイズまで、さまざまなユーザープロファイルに対応する多様なワークフローを支えるという設計原則に従っている
ステートレス API
- すべての状態を持つ Keras オブジェクトは、今や JAX 関数で利用できるステートレス API を備えている
Keras 2 から Keras 3 への移行
- Keras 3 は Keras 2 と高い互換性を持ち、ほとんどのユーザーはコード変更なしで Keras 3 に移行できる
- より大きなコードベースでは一部のコード変更が必要になる可能性があるが、移行を支援する完全なマイグレーションガイドを提供
- Keras 2 を引き続き使いたい場合は、
tf_kerasパッケージを使うか、TF_USE_LEGACY_KERAS環境変数を設定することで Keras 2 を利用できる
GN⁺ の意見
この記事で最も重要なのは、Keras 3.0 の正式リリースと、それが開発者に提供する新機能である。Keras 3.0 は JAX、TensorFlow、PyTorch など多様なバックエンドで動作し、大規模モデルの学習およびデプロイ機能を改善することで、機械学習開発の柔軟性と効率を大きく高める。これらの特徴は機械学習コミュニティにとって非常に興味深いニュースであり、開発者がより多様な環境でモデルを試し、デプロイできる機会を提供する。
3件のコメント
個人的にKerasが本当に好きなので、PyTorchをバックエンドとして動かせるようになったのは本当にうれしいですね。
おお、新しいKerasバージョンが発表されたのですね。
PyTorchしか学んでいませんでしたが、
「既存のtf.kerasモデルもJAXとPyTorchでそのまま実行可能」とのことなので、どうやるのか気になりますね〜
おお、Keras 3 が出たんですね。+_+
モデル開発でも学習でも、もう少し簡単になるといいですね。