HuggingFace의 공식 다운로드 도구인 Huggingface-cli 및 hf_transfer를 사용하면 HuggingFace 미러 사이트에서 모델과 데이터 세트를 고속으로 다운로드할 수 있습니다.
이 스크립트는 Huggingface-cli를 간단하게 캡슐화한 것입니다. 보다 고급 기능이 필요한 경우 공식 문서를 참조하여 직접 수정하시기 바랍니다. 또한 국내 사용자는 허깅페이스 미러 사이트에서 제공하는 다운로드 방법도 참고할 수 있다.
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
Meta-llama 시리즈와 같이 인증이 필요한 모델을 다운로드하는 경우 --token
매개변수를 Huggingface 액세스 토큰으로 지정해야 합니다.
참고 사항:
(1) --save_dir
지정하면 다운로드 과정에서 파일이 변환기의 기본 경로인 ~/.cache/huggingface/hub
에 임시 저장되며, 다운로드가 완료된 후 자동으로 지정된 디렉터리로 이동됩니다. --save_dir
로 다운로드해야 하므로 미리 기본 경로에 충분한 용량이 있는지 확인하세요.
다운로드 후 변환기 라이브러리를 사용하여 로드할 때 저장 후 경로를 지정해야 합니다. 예:
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
: Huggingface에 다운로드할 모델의 이름(예: --model lmsys/vicuna-7b-v1.5
--dataset
: Huggingface에 다운로드할 데이터 세트의 이름(예: --dataset zh-plus/tiny-imagenet
--save_dir
: 다운로드 후 파일의 실제 저장 경로--token
: meta-llama/Llama-2-7b-hf
와 같이 로그인이 필요한 모델(Gated Model)을 다운로드할 때 hf_****
형식으로 Huginface 토큰을 지정해야 합니다.--use_hf_transfer
: hf-transfer를 사용하여 다운로드 속도를 높입니다. 기본적으로 활성화되어 있습니다(True). 버전이 활성화된 것보다 낮으면 진행률 표시줄이 표시되지 않습니다.--use_mirror
: 미러 사이트 https://hf-mirror.com/에서 다운로드, 기본적으로 활성화(True), 국내 사용자는 활성화하는 것이 좋습니다.--include
: --include "tokenizer.model tokenizer_config.json"
또는 --include "*.bin
download와 같은 지정된 파일을 다운로드합니다.--exclude
: include 사용법과 일치하도록 지정된 파일을 다운로드하지 않습니다(예: --exclude "*.md"