استخدم أدوات التنزيل الرسمية الخاصة بـ HuggingFace، Huggingface-cli وhf_transfer لتنزيل النماذج ومجموعات البيانات بسرعة عالية من موقع HuggingFace Mirror.
هذا البرنامج النصي هو مجرد تغليف بسيط لـ Huggingface-cli، وهو مصمم لتسهيل استخدامي. إذا كنت بحاجة إلى وظائف أكثر تقدمًا، فيرجى الرجوع إلى الوثائق الرسمية وتعديلها بنفسك. بالإضافة إلى ذلك، يمكن للمستخدمين المحليين أيضًا الرجوع إلى طريقة التنزيل المتوفرة على موقع HuggingFace Mirror.
تحديث 17/12/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
، فسيتم تخزين الملف مؤقتًا في المسار الافتراضي للمحولات ~/.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) يقوم البرنامج النصي المدمج تلقائيًا بتثبيت 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
، فيمكنك إيقاف تشغيل 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 لتسريع التنزيلات، وهو ممكّن افتراضيًا (صحيح). إذا كان الإصدار أقل من الممكّن، فلن يتم عرض شريط التقدم.--use_mirror
: التنزيل من موقع المرآة https://hf-mirror.com/، ممكّن افتراضيًا (صحيح)، ويوصى المستخدمين المحليين بتمكينه--include
: قم بتنزيل الملف المحدد، مثل --include "tokenizer.model tokenizer_config.json"
أو --include "*.bin
download--exclude
: لا تقم بتنزيل الملف المحدد، بما يتوافق مع استخدام التضمين، على سبيل المثال --exclude "*.md"