KaggleとHugging FaceでKerasモデルを公開する方法

KaggleでのKerasモデルの公開方法

Kaggleは、データサイエンスと機械学習の分野で広く利用されているプラットフォームです。最近、Kaggleは「Kaggle Models」を開設し、既に約4,000件の事前学習済みモデルが公開されています。この度、Kaggleはユーザーによる貢献を受け入れることとなり、Kerasモデルのアップロードが可能になりました。この新しい機能を通じて、ユーザーは自分が微調整したモデルを世界と共有できるようになります。

Kerasモデルのアップロード手順

もし、自分の微調整したモデルを共有したい場合、以下の手順で運用することが可能です。

  • モデルのインポート
import keras
import keras_nlp
  • モデルの読み込み
  • gemma = keras_nlp.models.CausalLM.from_preset("gemma_1.1_instruct_7b_en")
    
  • モデルの微調整
  • # 例: 海賊のように話すGemmaを微調整する
    # 保存したいパスを指定してモデルを保存
    gemma.save_to_preset("./gemma-pirate-instruct-7b")
    
  • Kaggleにアップロード
  • kaggle_uri = "kaggle://my_kaggle_username/gemma-pirate/keras/gemma-pirate-instruct-7b"
    keras_nlp.upload_preset(kaggle_uri, "./gemma-pirate-instruct-7b")
    

    この手順を経ることで、他のユーザーはあなたのカスタム微調整版を自身のコードで読み込むことができるようになります。例えば:

    gemma = keras_nlp.models.CausalLM.from_preset("kaggle://my_kaggle_username/gemma-pirate/keras/gemma-pirate-instruct-7b")
    

    ユーザーがアップロードしたモデルの発見を容易にするために

    Kaggleは、ユーザーがアップロードしたモデルに対して専用モデルページを用意しています。このページでは、モデルの説明や微調整に使用したデータセットの詳細を追加できるほか、モデルを公開にする設定も行えます。また、Kaggleチームからの嬉しい配慮として、使いやすさの評価が用意されており、他のユーザーがあなたのモデルを見つけやすくするために必要な情報が指摘されます。

    なぜKerasが選ばれたのか?

    Kaggleは、他のフォーマットでもモデルをアップロードすることが可能ですが、Kerasが推奨される理由は多岐にわたります。Kerasを使用することで得られる利点は次の通りです。

    • すべてのモデルが同じ.from_preset() APIを通じて読み込めること。
    • モデルが読み込まれた後は、親しみやすいKeras APIが利用できること(例:model.fit()による微調整など)。
    • モデルのソースコードは常にkerasCVまたはkerasNLPに含まれており、クリーンで読みやすい実装が保証されていること。
    • Keras 3以降、すべてのモデルがJAXTensorFlow、およびPyTorchで動作すること。

    成功事例の紹介

    Kaggleでは、Gemmaモデルを活用した多くの素晴らしいプロジェクトが展開されています。例えば:

    • データサイエンスを教えるGoogle AIアシスタント
    • Gemma、Weaviate、LlamaIndexを使った高度なRAG
    • [Gemma] 自分をLLMで置き換えようとするプロジェクト
    • Wikipedia RAGを用いてデータサイエンスの質問を解析する
    • Gemma LLMを使用した探索的データ分析(EDA)

    これにより、Kaggleにおいてモデルを共有するためにノートブックを提供する必要はなくなり、微調整にかかる時間を節約し、最終的な結果をKaggleモデルとして直接共有することができます。

    Hugging FaceでのKerasモデルの利用

    このリリースにより、KerasNLPはHugging Face上でも重要な位置を占めることとなります。KerasモデルはHugging Faceから直接読み込むことができ、KerasNLPもTransformersやDiffusersと同様のサポートを受けることができます。

    Hugging Faceへのアップロード手順

    Hugging Faceにモデルをアップロードする手順は、Kaggleの場合とほとんど同様ですが、URLのフォーマットが異なります。

    • Kerasモデルの読み込み
    gemma = keras_nlp.models.CausalLM.from_preset("hf://google/gemma-7b-instruct-keras")
    
  • モデルの保存
  • gemma.save_to_preset('./gemma-pirate-instruct-7b')
    
  • Hugging Faceにアップロード
  • hf_uri = "hf://my_hf_username/gemma-pirate-instruct-7b"
    keras_nlp.upload_preset(hf_uri, './gemma-pirate-instruct-7b')
    

    アップロード後、Hugging Face上ではモデルが自動的に認識され、タグ付けも行われます。このようにして、他のユーザーも簡単にモデルを見つけて利用できるようになるのです。

    あなたの番です

    KaggleやHugging Faceでのモデルアップロードのコードを試してみることができます。さあ、モデルをアップロードしてみましょう!公式のドキュメントを参照して、さらなる詳細を確認してください。

    カスタマイズしたKerasモデルを広め、データサイエンスをともに楽しむコミュニティに貢献できる機会です。あなたの素晴らしいモデルを世界に紹介してみてください!