أداة لتحميل و تحويل موديلات HuggingFace بدون دراما.
إذا كنت تستخدم جهازًا مزودًا بوحدة معالجة الرسومات NVIDIA/CUDA وتريد دعم AWQ/GPTQ:
pip3 install llm-quantkit[cuda]
وإلا فإن التثبيت الافتراضي يعمل.
pip3 install llm-quantkit
إذا كنت بحاجة إلى شعلة خاصة بالجهاز، فقم بتثبيته أولاً.
يعتمد هذا المشروع على مكتبات torch و awq و exl2 و gptq و hqq.
بعض هذه التبعيات لا تدعم Python 3.12 حتى الآن.
بايثون المدعومة: 3.8، 3.9، 3.10، و3.11
Usage: quantkit [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
download Download model from huggingface.
safetensor Download and/or convert a pytorch model to safetensor format.
awq Download and/or convert a model to AWQ format.
exl2 Download and/or convert a model to EXL2 format.
gguf Download and/or convert a model to GGUF format.
gptq Download and/or convert a model to GPTQ format.
hqq Download and/or convert a model to HQQ format.
يجب أن تكون الوسيطة الأولى بعد الأمر عبارة عن معرف HF repo (mistralai/Mistral-7B-v0.1) أو دليل محلي به ملفات نموذجية بالفعل.
يتم تنزيل أمر التنزيل افتراضيًا في ذاكرة التخزين المؤقت HF وإنشاء روابط رمزية في دليل الإخراج، ولكن يوجد خيار --no-cache الذي يضع ملفات النموذج في دليل الإخراج.
AWQ الافتراضي هو 4 بت، حجم المجموعة 128، نقطة الصفر صحيحة.
الإعدادات الافتراضية لـ GPTQ هي 4 بتات، وحجم المجموعة 128، وترتيب التنشيط خطأ.
يتم تعيين EXL2 افتراضيًا على 8 بتات رأسية ولكن لا يوجد معدل بت افتراضي.
يتم تعيين GGUF بشكل افتراضي على عدم وجود مصفوفة ولكن لا يوجد نوع كمي افتراضي.
القيمة الافتراضية لـ HQQ هي 4 بتات، وحجم المجموعة 64، وzero_point = True.
قم بتنزيل نموذج من HF ولا تستخدم ذاكرة التخزين المؤقت HF:
quantkit download teknium/Hermes-Trismegistus-Mistral-7B --no-cache
قم فقط بتنزيل إصدار أدوات الأمان للنموذج (مفيد للنماذج التي تحتوي على شعلة وأداة أمان):
quantkit download mistralai/Mistral-7B-v0.1 --no-cache --safetensors-only -out mistral7b
التنزيل من مراجعة محددة لمستودع Huggingface:
uantkit download turboderp/TinyLlama-1B-32k-exl2 --branch 6.0bpw --no-cache -out TinyLlama-1B-32k-exl2-b6
قم بتنزيل النموذج وتحويله إلى Safetensor، وحذف صناديق pytorch الأصلية:
quantkit safetensor migtissera/Tess-10.7B-v1.5b --delete-original
قم بتنزيل النموذج وتحويله إلى GGUF (Q5_K):
quantkit gguf TinyLlama/TinyLlama-1.1B-Chat-v1.0 -out TinyLlama-1.1B-Q5_K.gguf Q5_K
قم بتنزيل نموذج وتحويله إلى GGUF باستخدام المصفوفة، وتفريغ 200 طبقة:
quantkit gguf TinyLlama/TinyLlama-1.1B-Chat-v1.0 -out TinyLlama-1.1B-IQ4_XS.gguf IQ4_XS --built-in-imatrix -ngl 200
تنزيل النموذج وتحويله إلى AWQ:
quantkit awq mistralai/Mistral-7B-v0.1 -out Mistral-7B-v0.1-AWQ
تحويل نموذج إلى GPTQ (4 بت / حجم المجموعة 32):
quantkit gptq mistral7b -out Mistral-7B-v0.1-GPTQ -b 4 --group-size 32
تحويل نموذج إلى exllamav2:
quantkit exl2 mistralai/Mistral-7B-v0.1 -out Mistral-7B-v0.1-exl2-b8-h8 -b 8 -hb 8
تحويل نموذج إلى HQQ:
quantkit hqq mistralai/Mistral-7B-v0.1 -out Mistral-7B-HQQ-w4-gs64
إليك ما نجح بالنسبة لي في الاختبار. أرسل رسالة عامة أو مشكلة تتعلق بالتحديثات لما هو ممكن على بطاقات ذات أحجام مختلفة.
لا يحتاج تحويل GGUF إلى وحدة معالجة رسومات (GPU) باستثناء iMatrix وExllamav2 الذي يتطلب احتواء الطبقة الأكبر على وحدة معالجة رسومات (GPU) واحدة.
حجم النموذج | الكمية | VRAM | ناجح |
---|---|---|---|
7 ب | AWQ | 24 جيجابايت | ✅ |
7 ب | إكس إل 2 | 24 جيجابايت | ✅ |
7 ب | GGUF | 24 جيجابايت | ✅ |
7 ب | GPTQ | 24 جيجابايت | ✅ |
7 ب | المقر الرئيسي | 24 جيجابايت | ✅ |
13 ب | AWQ | 24 جيجابايت | ✅ |
13 ب | إكس إل 2 | 24 جيجابايت | ✅ |
13 ب | GGUF | 24 جيجابايت | ✅ |
13 ب | GPTQ | 24 جيجابايت | |
13 ب | المقر الرئيسي | 24 جيجابايت | ؟ |
34 ب | AWQ | 24 جيجابايت | |
34 ب | إكس إل 2 | 24 جيجابايت | ✅ |
34 ب | GGUF | 24 جيجابايت | ✅ |
34 ب | GPTQ | 24 جيجابايت | |
34 ب | المقر الرئيسي | 24 جيجابايت | ؟ |
70 ب | AWQ | 24 جيجابايت | |
70 ب | إكس إل 2 | 24 جيجابايت | ✅ |
70 ب | GGUF | 24 جيجابايت | ✅ |
70 ب | GPTQ | 24 جيجابايت | |
70 ب | المقر الرئيسي | 24 جيجابايت | ؟ |
لا يزال في مرحلة تجريبية. من المحتمل ألا يعمل إلغاء تحميل Llama.cpp على نظامك الأساسي إلا إذا قمت بإلغاء تثبيت llama-cpp-conv وإعادة تثبيته باستخدام إشارات البناء المناسبة. انظر إلى وثائق llama-cpp-python واتبع الأمر ذي الصلة ولكن استبدل llama-cpp-python بـ llama-cpp-conv.