HuggingFace の公式ダウンロード ツール huggingface-cli および hf_transfer を使用して、HuggingFace ミラー サイトからモデルとデータ セットを高速でダウンロードします。
このスクリプトは、huggingface-cli を簡単にカプセル化したものです。より高度な機能が必要な場合は、公式ドキュメントを参照して自分で変更してください。なお、国内ユーザーはHuggingFaceのミラーサイトでダウンロード方法が提供されているので参考にすることもできる。
2023 年 12 月 17 日更新:特定のファイルをダウンロードするか無視するかを指定する--include
と--exlucde
パラメーターを追加しました。
--include "tokenizer.model tokenizer_config.json"
--include "*.bin"
--exclude "*.md"
--include "*.json" --exclude "config.json"
HuggingFace から必要なモデル名 ( lmsys/vicuna-7b-v1.5
など) を取得します。
python hf_download.py --model lmsys/vicuna-7b-v1.5 --save_dir ./hf_hub
metal-llama シリーズなど、認証が必要なモデルをダウンロードする場合は、Huggingface アクセス トークンとして--token
パラメーターを指定する必要があります。
注意すべき点:
(1) --save_dir
が指定されている場合、ファイルはダウンロード処理中に一時的に Transformers のデフォルト パス~/.cache/huggingface/hub
に保存され、ダウンロード完了後、指定されたディレクトリに自動的に移動されます。 --save_dir
でダウンロードする必要があるため、デフォルトパスに十分な容量があることを事前に確認してください。
ダウンロード後、transformers ライブラリを使用してロードするときに保存後のパスを指定する必要があります。例:
from transformers import pipeline
pipe = pipeline ( "text-generation" , model = "./hf_hub/models--lmsys--vicuna-7b-v1.5" )
--save_dir
が指定されていない場合、デフォルトのパス~/.cache/huggingface/hub
にダウンロードされます。この時点で、モデルを呼び出すときは、モデル名lmsys/vicuna-7b-v1.5
直接使用できます。 。
(2) 呼び出し時に絶対パスを使用せず、すべてのモデルをデフォルトのパスに保存したくない場合は、ソフト リンクを使用して設定できます。手順は次のとおりです。
mkdir /data/huggingface_cache
~/.cache/huggingface/hub
にディレクトリが作成された場合は、最初にそれを削除する必要があります。 rm -r ~ /.cache/huggingface
ln -s /data/huggingface_cache ~ /.cache/huggingface
save_dir
指定しないでください。最初の手順で作成したディレクトリに自動的にダウンロードされます。 python hf_download.py --model lmsys/vicuna-7b-v1.5
from transformers import pipeline
pipe = pipeline( " text-generation " , model= " lmsys/vicuna-7b-v1.5 " )
(3) 組み込みスクリプトは、pip を通じて Huggingface-cli と hf_transfer を自動的にインストールします。 hf_transfer バージョンが 0.1.4 より低い場合、ダウンロードの進行状況バーは表示されず、手動で更新できます。
pip install -U hf-transfer -i https://pypi.org/simple
huggingface-cli: error
が発生した場合は、再インストールしてみてください。
pip install -U huggingface_hub
hf_transfer
に関するエラーがある場合は、 --use_hf_transfer False
パラメーターを使用して hf_transfer をオフにすることができます。
zh-plus/tiny-imagenet
を例として、モデルをダウンロードするのと同じです。
python hf_download.py --dataset zh-plus/tiny-imagenet --save_dir ./hf_hub
--model
: ハグフェイスにダウンロードされるモデルの名前 (例: --model lmsys/vicuna-7b-v1.5
--dataset
: ハグフェイスにダウンロードされるデータセットの名前 (例: --dataset zh-plus/tiny-imagenet
--save_dir
: ダウンロード後のファイルの実際の保存パス--token
: meta-llama/Llama-2-7b-hf
など、ログインが必要なモデル (Gated Model) をダウンロードする場合は、 hf_****
形式で Hugginface トークンを指定する必要があります。--use_hf_transfer
: ダウンロードを高速化するために hf-transfer を使用します。バージョンが有効よりも低い場合、進行状況バーは表示されません。--use_mirror
: ミラーサイト https://hf-mirror.com/ からダウンロード、デフォルトで有効 (True)、国内ユーザーは有効にすることをお勧めします--include
: --include "tokenizer.model tokenizer_config.json"
または--include "*.bin
download など、指定されたファイルをダウンロードします。--exclude
: include の使用法に従って、指定されたファイルをダウンロードしません (例: --exclude "*.md"