Hugging Faceで公開されている基盤モデルを利用する際には、ダウンロード(キャッシュ)したり、そのモデルファイルをコードから参照できるようにする必要があります。
- キャッシュの操作には
huggingface-cli
コマンド - キャッシュ参照には
HF_HOME
環境変数
これらを使用します。
キャッシュの操作 - huggingface-cli
huggingface-cli は Python ライブラリ huggingface_hub の中にあります。
インストールは Getting Started の通りです。
pip install -U "huggingface_hub[cli]"
venv 等で隔離もできます。
python3 -m venv foobar
source foobar/bin/activate
pip install "huggingface_hub[cli]"
## 以降 `source foobar/bin/activate` すれば `huggingface-cli` コマンドが使える
ダウンロード - download
基盤モデルのダウンロードは download
サブコマンドです。
例えば Microsoft の SLM「Phi-3」の一番小さいモデル microsoft/Phi-3-mini-4k-instruct をローカルにダウンロードするなら、以下の通りです(小さいといっても約8GBあるので、ネットワーク環境にはご注意を)。
huggingface-cli download microsoft/Phi-3-mini-4k-instruct
You must be authenticated to access it.
としてダウンロードできなかった場合は huggingface-cli login
で認証を得てください。
キャッシュを確認 - scan-cache
キャッシュを確認するには scan-cache
サブコマンドです。
huggingface-cli scan-cache
以下のように、サイズや保存先パスが確認できます。
$ huggingface-cli scan-cache
REPO ID REPO TYPE SIZE ON DISK NB FILES LAST_ACCESSED LAST_MODIFIED REFS LOCAL PATH
-------------------------------- --------- ------------ -------- ------------- ----------------- ---- -------------------------------------------------------------------------------
amazon/chronos-t5-large model 2.8G 3 3 days ago 4 days ago main /home/USER/.cache/huggingface/hub/models--amazon--chronos-t5-large
amazon/chronos-t5-tiny model 33.8M 6 2 days ago 4 days ago main /home/USER/.cache/huggingface/hub/models--amazon--chronos-t5-tiny
microsoft/Phi-3-mini-4k-instruct model 7.6G 19 3 minutes ago a few seconds ago main /home/USER/.cache/huggingface/hub/models--microsoft--Phi-3-mini-4k-instruct
Done in 0.0s. Scanned 3 repo(s) for a total of 10.5G.
Got 1 warning(s) while scanning. Use -vvv to print details.
キャッシュの削除 - delete-cache
削除は delete-cache
サブコマンドです。
実行するとTUI(Terminal User Iterface)が立ち上がり、インタラクティブに削除できます。
huggingface-cli delete-cache
引数に REPO ID を指定した削除はできません。カーソルで削除対象を選んで、削除しましょう(なぜ指定できないのか🤔)。
キャッシュの参照先を設定 - HF_HOME 環境変数
キャッシュのディレクトリ構造は Manage huggingface_hub cache-system の通りです。
<CACHE_DIR>
は、通常は ~/.cache/huggingface
です。
そして <CACHE_DIR>
は、HF_HOME
環境変数に設定したディレクトリへ変更できます。
例えば /tmp/new_hf_home/
にしたければ、以下のようにします。
export HF_HOME="/tmp/new_hf_home/"
huggingface-cli download REPO_ID
python3 foobar_genai_exmaple.py
他の環境変数は Environment variables をご覧ください。
これでコンテナ内に押し込めることもできますね。コンテナ化で有用そうなのは HF_HUB_OFFLINE
あたりでしょうか。
あとがき
ちょっとググってみたが無かったので、ササッと書いた。
EoT