Utilice las herramientas de descarga oficiales de HuggingFace, huggingface-cli y hf_transfer, para descargar modelos y conjuntos de datos a alta velocidad desde el sitio espejo de HuggingFace.
Este script es solo una simple encapsulación de huggingface-cli. Su objetivo es facilitar mi propio uso. Si necesita funciones más avanzadas, consulte la documentación oficial y modifíquela usted mismo. Además, los usuarios domésticos también pueden consultar el método de descarga proporcionado en el sitio espejo de HuggingFace.
Actualización del 17/12/2023: Se agregaron parámetros --include
y --exlucde
para especificar si descargar o ignorar ciertos archivos.
--include "tokenizer.model tokenizer_config.json"
--include "*.bin"
--exclude "*.md"
--include "*.json" --exclude "config.json"
Obtenga el nombre del modelo requerido de HuggingFace, como lmsys/vicuna-7b-v1.5
:
python hf_download.py --model lmsys/vicuna-7b-v1.5 --save_dir ./hf_hub
Si descarga un modelo que requiere autorización, como la serie meta-llama, debe especificar el parámetro --token
como su token de acceso de Huggingface.
Cosas a tener en cuenta:
(1) Si se especifica --save_dir
, el archivo se almacenará temporalmente en la ruta predeterminada de transformadores ~/.cache/huggingface/hub
durante el proceso de descarga. Una vez completada la descarga, se moverá automáticamente al directorio especificado. por --save_dir
, por lo que es necesario descargarlo. Asegúrese de que haya suficiente capacidad en la ruta predeterminada de antemano.
Después de la descarga, debe especificar la ruta después de guardar al cargar usando la biblioteca de transformadores, por ejemplo:
from transformers import pipeline
pipe = pipeline ( "text-generation" , model = "./hf_hub/models--lmsys--vicuna-7b-v1.5" )
Si no se especifica --save_dir
, se descargará a la ruta predeterminada ~/.cache/huggingface/hub
. En este momento, al llamar al modelo, puede usar directamente el nombre del modelo lmsys/vicuna-7b-v1.5
.
(2) Si no desea utilizar la ruta absoluta al llamar y no desea guardar todos los modelos en la ruta predeterminada, puede configurarla a través de un enlace suave . Los pasos son los siguientes:
mkdir /data/huggingface_cache
~/.cache/huggingface/hub
, primero debe eliminarse: rm -r ~ /.cache/huggingface
ln -s /data/huggingface_cache ~ /.cache/huggingface
save_dir
cuando ejecute el script de descarga más adelante, se descargará automáticamente en el directorio creado en el primer paso: 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) El script integrado instala automáticamente huggingface-cli y hf_transfer a través de pip. Si la versión de hf_transfer es inferior a 0.1.4, la barra de progreso de la descarga no se mostrará y podrá actualizarse manualmente:
pip install -U hf-transfer -i https://pypi.org/simple
Si se produce huggingface-cli: error
:, intente reinstalar:
pip install -U huggingface_hub
Si hay un error sobre hf_transfer
, puede desactivar hf_transfer mediante el parámetro --use_hf_transfer False
.
Lo mismo que descargar el modelo, tomando zh-plus/tiny-imagenet
como ejemplo:
python hf_download.py --dataset zh-plus/tiny-imagenet --save_dir ./hf_hub
--model
: el nombre del modelo que se descargará en huggingface, por ejemplo --model lmsys/vicuna-7b-v1.5
--dataset
: el nombre del conjunto de datos que se descargará en huggingface, por ejemplo --dataset zh-plus/tiny-imagenet
--save_dir
: la ruta de almacenamiento real del archivo después de la descarga--token
: al descargar un modelo que requiere inicio de sesión (modelo cerrado), como meta-llama/Llama-2-7b-hf
, debe especificar el token hugginface en el formato hf_****
--use_hf_transfer
: Utilice hf-transfer para acelerar las descargas. Está habilitado de forma predeterminada (Verdadero) Si la versión es inferior a la habilitada, no se mostrará la barra de progreso.--use_mirror
: Descarga desde el sitio espejo https://hf-mirror.com/, habilitado de forma predeterminada (Verdadero), se recomienda a los usuarios domésticos habilitarlo--include
: descarga el archivo especificado, como --include "tokenizer.model tokenizer_config.json"
o --include "*.bin
download--exclude
: no descarga el archivo especificado, de acuerdo con el uso de inclusión, por ejemplo --exclude "*.md"