ใช้เครื่องมือดาวน์โหลดอย่างเป็นทางการของ HuggingFace HuggingFace-cli และ hf_transfer เพื่อดาวน์โหลดโมเดลและชุดข้อมูลด้วยความเร็วสูงจากไซต์มิเรอร์ HuggingFace
สคริปต์นี้เป็นเพียงการสรุปแบบง่าย ๆ ของ Huggingface-cli โดยมีจุดประสงค์เพื่ออำนวยความสะดวกในการใช้งานของฉันเอง หากคุณต้องการฟังก์ชันขั้นสูงเพิ่มเติม โปรดดูเอกสารประกอบอย่างเป็นทางการและแก้ไขด้วยตนเอง นอกจากนี้ ผู้ใช้ในประเทศยังสามารถอ้างถึงวิธีการดาวน์โหลดที่ให้ไว้ในไซต์มิเรอร์ HuggingFace
อัปเดต 12/17/2023: เพิ่มพารามิเตอร์ --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
ไฟล์จะถูกจัดเก็บชั่วคราวในพาธเริ่มต้นของ 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) สคริปต์ในตัวจะติดตั้ง Huggingface-cli และ hf_transfer ผ่าน pip โดยอัตโนมัติ หากเวอร์ชัน 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
คุณสามารถปิด hf_transfer ผ่านพารามิเตอร์ --use_hf_transfer False
เช่นเดียวกับการดาวน์โหลดโมเดล โดยใช้ 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
: เมื่อดาวน์โหลดโมเดลที่ต้องเข้าสู่ระบบ (Gated Model) เช่น meta-llama/Llama-2-7b-hf
คุณต้องระบุโทเค็น Hugginface ในรูปแบบ hf_****
--use_hf_transfer
: ใช้ hf-transfer เพื่อเร่งการดาวน์โหลด โดยจะเปิดใช้งานตามค่าเริ่มต้น (True) หากเวอร์ชันต่ำกว่าที่เปิดใช้งาน แถบความคืบหน้าจะไม่แสดงขึ้น--use_mirror
: ดาวน์โหลดจากไซต์มิเรอร์ https://hf-mirror.com/ เปิดใช้งานโดยค่าเริ่มต้น (True) แนะนำให้ผู้ใช้ในประเทศเปิดใช้งาน--include
: ดาวน์โหลดไฟล์ที่ระบุ เช่น --include "tokenizer.model tokenizer_config.json"
หรือ --include "*.bin
download--exclude
: ห้ามดาวน์โหลดไฟล์ที่ระบุ ซึ่งสอดคล้องกับการใช้งาน เช่น --exclude "*.md"