3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Hugging Face のキャッシュ操作 / huggingface-cli と HF_HOME 環境変数

Last updated at Posted at 2024-08-28

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

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?