fastai と Hugging Face Hub の統合

fastai Learner のための直接的な Hub 統合

fastai 実務者は現在、huggingface_hub Python ライブラリを使用して Hugging Face Hub とやり取りできます。モデル、データローダー、損失関数をまとめた fastai の Learner を、Hub にシームレスにプッシュしたりプルしたりできます。

インストールとセットアップ

これらの機能を使用するには、ユーザーは Hugging Face アカウントと huggingface_hub ライブラリが必要です。インストールは、必要な依存関係(fastai>=2.4fastcore>=1.3.27toml を含む)をすべてインストールするために "fastai" エクストラを指定して実行できます。

pip install huggingface_hub["fastai"]

モデルの Hub へのアップロード

ユーザーは push_to_hub_fastai 関数を使用して Learner オブジェクトを Hub に共有できます。これには write トークンによる認証が必要で、huggingface-cli login コマンド、Python ノートブック内の notebook_login() 関数、またはトークンを関数に直接渡すことで処理できます。

from huggingface_hub import push_to_hub_fastai

# repo_id follows the format "namespace/repo_name"
repo_id = "username/model-name"
push_to_hub_fastai(learner=learn, repo_id=repo_id)

アップロードが完了すると、Hub は自動的にモデルカードを作成します。ユーザーは再現性と発見性を高めるためにこれを編集することが推奨されます。

Hub からのモデルのロード

Hub から事前学習済み Learner をロードするには from_pretrained_fastai 関数を使用します。これにより、ユーザーはすぐに予測を行うか、転移学習のベースとしてモデルを使用できます。

from huggingface_hub import from_pretrained_fastai

repo_id = "username/model-name"
learner = from_pretrained_fastai(repo_id)

fastai と Transformers を Blurr で組み合わせる

標準的な fastai モデルに加えて、この統合は Blurr にも拡張されます。Blurr は fastai 開発者が Hugging Face の transformers を訓練・デプロイするために設計されたライブラリです。

高レベルの Blurr API を使用することで、開発者は Hub から transformer モデル(例: distilbert-base-uncased)をロードし、fastai エコシステム内で Blearner として訓練し、同じ push_to_hub_fastaifrom_pretrained_fastai 関数を使ってモデルを Hub に共有および再ロードできます。

fastai モデル向け Hub の機能

Hub で fastai モデルを共有することは、ローカルストレージに比べていくつかの技術的利点を提供します:

  • バージョン管理: モデルは Git リポジトリとして保存され、git-lfs を用いた大容量ファイルの完全なバージョン管理(コミットやブランチを含む)を提供します。
  • 発見性: ユーザーは fastai ライブラリ向けに Hugging Face Model Hub をフィルタリングし、既存のモデルを見つけて探索できます。
  • 再現性: モデルカードを使用することで、実務者は訓練プロセスやモデルの機能を文書化でき、他者が結果を再現できるようにします。

Sources