fastai 與 Hugging Face Hub 的整合
Hugging Face 已將 fastai 函式庫整合至 Hugging Face Hub,使用者只需一行 Python 程式碼即可分享、上傳與下載 fastai 模型。此整合讓預訓練模型的使用更加民主化,讓 fastai 使用者能夠利用 Hub 的中心平台進行模型託管、版本控制與社群探索。
直接於 Hub 整合 fastai Learner
fastai 使用者現在可以使用 huggingface_hub Python 函式庫與 Hugging Face Hub 互動。fastai 中的 Learner(將模型、資料載入器與損失函式打包)可以無縫地推送至 Hub 或從 Hub 拉取。
安裝與設定
要使用這些功能,使用者需要擁有 Hugging Face 帳號以及 huggingface_hub 函式庫。安裝時可指定「fastai」額外套件,以確保安裝所有必要的相依套件(包括 fastai>=2.4、fastcore>=1.3.27 與 toml):
pip install huggingface_hub["fastai"]
上傳模型至 Hub
使用者可以使用 push_to_hub_fastai 函式將 Learner 物件分享至 Hub。這需要透過 write 令牌進行驗證,可透過 huggingface-cli login 指令、Python notebook 中的 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 載入模型
使用 from_pretrained_fastai 函式即可從 Hub 載入預訓練的 Learner,讓使用者能立即進行預測或將模型作為遷移學習的基礎。
from huggingface_hub import from_pretrained_fastai
repo_id = "username/model-name"
learner = from_pretrained_fastai(repo_id)
結合 fastai 與 Transformers(使用 Blurr)
除了標準的 fastai 模型外,此整合亦延伸至 Blurr,這是一個為 fastai 開發者設計,用於訓練與部署 Hugging Face Transformers 的函式庫。
透過高階的 Blurr API,開發者可以從 Hub 載入 transformer 模型(例如 distilbert-base-uncased),在 fastai 生態系統中將其訓練為 Blearner,然後使用相同的 push_to_hub_fastai 與 from_pretrained_fastai 函式將模型分享與重新載入至 Hub。
Hub 為 fastai 模型提供的功能
在 Hub 上分享 fastai 模型相較於本機儲存具有多項技術優勢:
- 版本控制: 模型以 Git 儲存庫的形式保存,透過 git-lfs 為大型檔案提供完整的版本控制,包括提交與分支。
- 可發現性: 使用者可以在 Hugging Face Model Hub 中針對 fastai 函式庫進行篩選,以尋找與探索現有模型。
- 可重現性: 使用模型卡讓實務者能記錄訓練過程與模型能力,確保他人能重現結果。