Verwenden Sie die offiziellen Download-Tools von HuggingFace, Huggingface-cli und hf_transfer, um Modelle und Datensätze mit hoher Geschwindigkeit von der HuggingFace-Spiegelseite herunterzuladen.
Dieses Skript ist nur eine einfache Kapselung von Huggingface-Cli. Es soll mir die Verwendung erleichtern. Wenn Sie erweiterte Funktionen benötigen, lesen Sie bitte die offizielle Dokumentation und ändern Sie diese selbst. Darüber hinaus können inländische Benutzer auch auf die Download-Methode zurückgreifen, die auf der HuggingFace-Spiegelseite bereitgestellt wird.
Update vom 17.12.2023: Parameter --include
und --exlucde
hinzugefügt, um anzugeben, ob bestimmte Dateien heruntergeladen oder ignoriert werden sollen.
--include "tokenizer.model tokenizer_config.json"
--include "*.bin"
--exclude "*.md"
--include "*.json" --exclude "config.json"
Erhalten Sie den erforderlichen Modellnamen von HuggingFace, z. B. lmsys/vicuna-7b-v1.5
:
python hf_download.py --model lmsys/vicuna-7b-v1.5 --save_dir ./hf_hub
Wenn Sie ein Modell herunterladen, für das eine Autorisierung erforderlich ist, z. B. die Meta-Lama-Serie, müssen Sie den Parameter --token
als Ihr Huggingface-Zugriffstoken angeben.
Dinge zu beachten:
(1) Wenn --save_dir
angegeben ist, wird die Datei während des Downloadvorgangs vorübergehend im Standardpfad von Transformers ~/.cache/huggingface/hub
gespeichert und nach Abschluss des Downloads automatisch in das angegebene Verzeichnis verschoben von --save_dir
, daher muss es heruntergeladen werden. Stellen Sie vorher sicher, dass im Standardpfad ausreichend Kapazität vorhanden ist.
Nach dem Herunterladen müssen Sie beim Laden mit der Transformers-Bibliothek den Pfad nach dem Speichern angeben, zum Beispiel:
from transformers import pipeline
pipe = pipeline ( "text-generation" , model = "./hf_hub/models--lmsys--vicuna-7b-v1.5" )
Wenn --save_dir
nicht angegeben ist, wird es in den Standardpfad ~/.cache/huggingface/hub
heruntergeladen. Zu diesem Zeitpunkt können Sie beim Aufrufen des Modells direkt den Modellnamen lmsys/vicuna-7b-v1.5
verwenden .
(2) Wenn Sie beim Aufruf nicht den absoluten Pfad verwenden und nicht alle Modelle unter dem Standardpfad speichern möchten, können Sie ihn über einen Softlink festlegen. Die Schritte sind wie folgt:
mkdir /data/huggingface_cache
~/.cache/huggingface/hub
erstellt hat, muss es zuerst gelöscht werden: rm -r ~ /.cache/huggingface
ln -s /data/huggingface_cache ~ /.cache/huggingface
save_dir
nicht an, wenn Sie das Download-Skript später ausführen, da es automatisch in das im ersten Schritt erstellte Verzeichnis heruntergeladen wird: 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) Das integrierte Skript installiert automatisch Huggingface-cli und hf_transfer über pip. Wenn die hf_transfer-Version niedriger als 0.1.4 ist, wird der Download-Fortschrittsbalken nicht angezeigt und kann manuell aktualisiert werden:
pip install -U hf-transfer -i https://pypi.org/simple
Wenn huggingface-cli: error
auftritt, versuchen Sie eine Neuinstallation:
pip install -U huggingface_hub
Wenn bei hf_transfer
ein Fehler auftritt, können Sie hf_transfer über den Parameter --use_hf_transfer False
deaktivieren.
Dasselbe wie beim Herunterladen des Modells, am Beispiel von zh-plus/tiny-imagenet
:
python hf_download.py --dataset zh-plus/tiny-imagenet --save_dir ./hf_hub
--model
: Der Name des Modells, das auf Huggingface heruntergeladen werden soll, zum Beispiel --model lmsys/vicuna-7b-v1.5
--dataset
: Der Name des Datensatzes, der auf Huggingface heruntergeladen werden soll, zum Beispiel --dataset zh-plus/tiny-imagenet
--save_dir
: der tatsächliche Speicherpfad der Datei nach dem Herunterladen--token
: Beim Herunterladen eines Modells, das eine Anmeldung erfordert (Gated Model), wie z. B. meta-llama/Llama-2-7b-hf
, müssen Sie das Hugginface-Token im Format hf_****
angeben.--use_hf_transfer
: Verwenden Sie hf-transfer, um Downloads zu beschleunigen. Es ist standardmäßig aktiviert (True). Wenn die Version niedriger als aktiviert ist, wird der Fortschrittsbalken nicht angezeigt.--use_mirror
: Download von der Mirror-Site https://hf-mirror.com/, standardmäßig aktiviert (True), inländischen Benutzern wird empfohlen, es zu aktivieren--include
: Laden Sie die angegebene Datei herunter, z. B. --include "tokenizer.model tokenizer_config.json"
oder --include "*.bin
download“.--exclude
: Die angegebene Datei nicht herunterladen, im Einklang mit der Include-Verwendung, zum Beispiel --exclude "*.md"