Hugging Face と KerasHub の統合

Hugging Face と KerasHub は、KerasHub ユーザーが Hugging Face Hub から Transformers ライブラリで作成されたモデルを直接ロードできる共有モデル保存フォーマットを導入しました。この統合により、KerasHub ユーザーが KerasHub 用に特別に構築されたモデルのみにアクセスできていた以前の制限が解消され、300,000 を超える事前学習済みモデルのライブラリにアクセスできるようになりました。

Transformers モデルへの直接アクセス

KerasHub は現在、from_preset メソッドを使用して Transformers ライブラリのチェックポイントを直接ロードできます。これにより、ユーザーは Keras で元々作成されなかった幅広いファインチューン済みモデルを利用できるようになります。

最初に、この統合は次のアーキテクチャをサポートします:

  • Gemma (バージョン 1 と 2)
  • Llama 3
  • PaliGemma

マルチフレームワーク デプロイ

KerasHub モデルは TensorFlowJAX、または PyTorch バックエンドを使用して動作できるため、この統合によりユーザーは 1 行のコードで Hugging Face チェックポイントをこれらのフレームワークのいずれかにロードできます。この機能により、サービングのために TFLite にデプロイしたり、研究目的で JAX を利用したりするなど、特定のニーズに合わせたモデルの移植プロセスが簡素化されます。

技術的実装

この統合は、2 つのライブラリ間で構成変数、重みの名前、トークナイザーの語彙をマッピングすることで機能します。Transformers モデルは JSON 設定ファイル、トークナイザー ファイル、および safetensors の重みとして保存されているため、両方のライブラリが関連するアーキテクチャのモデリング コードを持っている限り、KerasHub は互換性のあるチェックポイントを作成できます。この変換プロセスはライブラリ内部で処理され、ユーザーが手動で変換する必要はありません。

使用方法と設定

この統合を使用するには、ユーザーは keras-hubkeras>=3.3.3 にアップデートする必要があります。

テキスト生成

ユーザーは .generate メソッドを使用して Transformers モデルをロードし、テキストを生成できます。たとえば、Hub から Llama 3 モデルをロードする例を示します:

from keras_hub.models import Llama3CausalLM

causal_lm = Llama3CausalLM.from_preset(
    "hf://NousResearch/Hermes-2-Pro-Llama-3-8B"
)

prompts = ["Your prompt here" ]
causal_lm.generate(prompts, max_length=200)

精度とバックエンド制御

KerasHub では、モデルの精度と基礎となる計算バックエンドを簡単に調整できます:

  • 精度の変更: モデルをロードする前に keras.config.set_dtype_policy("bfloat16\)) で精度を設定できます。
  • バックエンドの切り替え: 環境変数 os.environ["KERAS_BACKEND\) = "jax\) を設定することで、ユーザーはロードした Transformers チェックポイントを JAX バックエンドで実行できます。

サポートされているモデル

Llama 3 を超えて、この統合は次のモデルを明示的にサポートします:

  • Gemma 2: ユーザーは google/gemma-2-9b などの Gemma 2 モデルを直接ロードできます。
  • PaliGemma: ファインチューン済みバージョンを含むあらゆる PaliGemma safetensor チェックポイントは、KerasHub パイプラインに統合できます。

Sources