Huggingface Hub リポジトリ内のすべてのファイルをダウンロードする
python の transformers パッケージを使って以下のコードを実行した場合、huggingface_hubからモデルのリポジトリ内にあるファイルをすべてダウンロードし始めます。
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = 'model_name'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
モデルのどのチェックポイントを使用するか迷っている人にとって、この手法は有用です。しかし、試験的にLLMを動かしたい人やストレージサイズが小さい人は、別のよりリソース消費量の少ない方法を望むかもしれません。
必要なファイルのみをダウンロードする
この方法は2段階の構成になっています。初めにモデルの重み以外の軽量なファイルのみをダウンロードします。次にモデルの必要な重みファイルのみをダウンロードします。必要なファイルのみをダウンロードするには huggingface_hub パッケージの snapshot_download
を使用します。Huggingface 公式サイトに記載の通り、このモジュールを使用することで必要なファイルのみをダウンロードすることができます。
例えば、以下のように記載することでリポジトリ内の.safetensors
以外のファイルをダウンロードできます。
from huggingface_hub import snapshot_download
repo_id="lysandre/arxiv-nlp" #huggingface hub上のリポジトリ名
local_dir="./llm" # 保存先フォルダ名
snapshot_download(repo_id=repo_id, local_dir=local_dir, ignore_patterns=["*.safetensor"])
あとは、.safetensors
を huggingface hug から直接ダウンロードすることで、不要なモデルの重みによるストレージの圧迫や、ダウンロード時間を短縮することができます。