
صندوق أدوات ضغط النماذج لنماذج اللغات الكبيرة ونماذج الانتشار
[2024/11] ؟ تم إصدار أحدث أعمالنا لتكميم نموذج الانتشار W4A4 وخوارزمية SVDQuant ونظام Nunchaku للعامة! تحقق من ورقتنا!
[2024/05] ؟ تم إصدار أحدث أعمالنا في مجال القياس الكمي W4A8KV4 LLM، وخوارزمية QoQ ونظام QServe للعامة! QoQ هو اختصار لـ quattuor-octō-quattuor وهو 4-8-4 باللاتينية. تحقق من ورقتنا!
DeepCompressor عبارة عن مجموعة أدوات ضغط نماذج مفتوحة المصدر لنماذج اللغات الكبيرة ونماذج الانتشار المبنية على PyTorch. يدعم DeepCompressor حاليًا التكميم الزائف لأي نوع بيانات صحيح وفاصلة عائمة ضمن 8 بتات، على سبيل المثال، INT8 وINT4 وFP4_E2M1. فيما يلي أمثلة تنفذ الخوارزميات التالية.
التكميم بعد التدريب لنماذج اللغات الكبيرة:
ربع سنوي (W4A8KV4)
سموث كوانت (W8A8)
أوك (W4A16)
جبتق (W4A16)
تكميم الوزن فقط
تكميم تنشيط الوزن
تنشيط الوزن وتكميم ذاكرة التخزين المؤقت KV
التكميم بعد التدريب لنماذج الانتشار:
SVDQuant (W4A4)
تكميم تنشيط الوزن
يحتوي DeepCompressor أيضًا على أمثلة تتكامل مع مكتبات الاستدلال الأخرى.
انشر LLMs ذات الوزن فقط باستخدام TinyChat
نشر LLMs الكمية مع QServe
نشر نماذج الانتشار الكمي باستخدام الننشاكو
انسخ هذا المستودع وانتقل إلى مجلد Deepcompressor
git clone https://github.com/mit-han-lab/deepcompressor cd deepcompressor
تثبيت الحزمة
conda env create -f environment.yml poetry install
[موقع الكتروني] [ورقة] [نظام استدلال الننشاكو]
لقد أثبتت نماذج الانتشار فعاليتها العالية في توليد صور عالية الجودة. ومع ذلك، مع نمو هذه النماذج بشكل أكبر، فإنها تتطلب ذاكرة أكبر بشكل ملحوظ وتعاني من زمن استجابة أعلى، مما يشكل تحديات كبيرة للنشر. في هذا العمل، نهدف إلى تسريع نماذج الانتشار عن طريق قياس أوزانها وتنشيطها إلى 4 بت. في مثل هذا المستوى العدواني، تكون كل من الأوزان والتنشيطات حساسة للغاية، حيث تصبح أساليب التكميم التقليدية بعد التدريب لنماذج اللغة الكبيرة مثل التجانس غير كافية. للتغلب على هذا القيد، نقترح SVDQuant ، وهو نموذج جديد لتكميم 4 بت. يختلف نهجنا عن التجانس الذي يعيد توزيع القيم المتطرفة بين الأوزان والتنشيطات، ويمتص هذه القيم المتطرفة باستخدام فرع منخفض الرتبة. نقوم أولاً بدمج القيم المتطرفة عن طريق تحويلها من عمليات التنشيط إلى الأوزان، ثم نستخدم فرعًا منخفض الرتبة عالي الدقة لاستيعاب القيم المتطرفة للوزن باستخدام تحليل القيمة المفردة (SVD). هذه العملية تسهل التكميم على كلا الجانبين. ومع ذلك، فإن تشغيل الفرع منخفض الرتبة بشكل مستقل بسذاجة يؤدي إلى تحمل كبير بسبب حركة البيانات الإضافية لعمليات التنشيط، مما يلغي تسريع عملية التكميم. ولمعالجة هذه المشكلة، شاركنا في تصميم محرك الاستدلال الننشاكو الذي يدمج نواة الفرع منخفض الرتبة في نواة الفرع منخفض البت لقطع الوصول إلى الذاكرة الزائدة عن الحاجة. ويمكنه أيضًا دعم المحولات ذات الرتبة المنخفضة (LoRAs) الجاهزة بسلاسة دون الحاجة إلى إعادة القياس الكمي. تجارب موسعة على SDXL، PixArt-∑، وFLUX.1 تثبت فعالية SVDQuant في الحفاظ على جودة الصورة. نحن نقوم بتقليل استخدام الذاكرة لنماذج 12B FLUX.1 بمقدار 3.5×، مما يحقق سرعة 3.0× فوق خط الأساس الكمي ذو الوزن 4 بت فقط على الكمبيوتر المحمول 4090 GPU بسعة 16 جيجابايت، مما يمهد الطريق لمزيد من التطبيقات التفاعلية على أجهزة الكمبيوتر الشخصية.


فيما يلي تقييم الجودة والتشابه مع 5000 عينة من مجموعة بيانات MJHQ-30K. IR يعني ImageReward. تتفوق نتائج 4 بت لدينا على الخطوط الأساسية 4 بت الأخرى، مما يحافظ بشكل فعال على الجودة المرئية لنماذج 16 بت.
| نموذج | دقة | طريقة | معالجة المعلومات المالية ( | الأشعة تحت الحمراء ( | لبيبس ( | نسبة الإشارة إلى الضوضاء (PSNR) |
|---|---|---|---|---|---|---|
| FLUX.1-dev (50 خطوة) | BF16 | -- | 20.3 | 0.953 | -- | -- |
| إنت W8A8 | لنا | 20.4 | 0.948 | 0.089 | 27.0 | |
| W4A16 | NF4 | 20.6 | 0.910 | 0.272 | 19.5 | |
| إنت W4A4 | لنا | 19.86 | 0.932 | 0.254 | 20.1 | |
| FP W4A4 | لنا | 21.0 | 0.933 | 0.247 | 20.2 | |
| FLUX.1-schnell (4 خطوات) | BF16 | -- | 19.2 | 0.938 | -- | -- |
| إنت W8A8 | لنا | 19.2 | 0.966 | 0.120 | 22.9 | |
| W4A16 | NF4 | 18.9 | 0.943 | 0.257 | 18.2 | |
| إنت W4A4 | لنا | 18.4 | 0.969 | 0.292 | 17.5 | |
| FP W4A4 | لنا | 19.9 | 0.956 | 0.279 | 17.5 | |
| FP16 | -- | 16.6 | 0.944 | -- | -- | |
| بيكس آرت-سيجما (20 خطوة) | إنت W8A8 | فيديت-Q | 15.7 | 0.944 | 0.137 | 22.5 |
| إنت W8A8 | لنا | 16.3 | 0.955 | 0.109 | 23.7 | |
| إنت W4A8 | فيديت-Q | 37.3 | 0.573 | 0.611 | 12.0 | |
| إنت W4A4 | لنا | 20.1 | 0.898 | 0.394 | 16.2 | |
| FP W4A4 | لنا | 18.3 | 0.946 | 0.326 | 17.4 |
[موقع ويب] [ورقة] [كود خوارزمية QoQ] [نظام QServe GPU]
يمكن أن يؤدي التكميم إلى تسريع استنتاج نماذج اللغة الكبيرة (LLM). وبعيدًا عن تكميم INT8، يستكشف مجتمع البحث بنشاط دقة أقل، مثل INT4. ومع ذلك، فإن تقنيات تكميم INT4 الحديثة لا تؤدي إلا إلى تسريع استدلال LLM للدفعة المنخفضة، والفشل في تحقيق مكاسب في الأداء في خدمة LLM ذات الدفعات الكبيرة والمستندة إلى السحابة. لقد اكتشفنا مشكلة حرجة: تعاني أساليب تكميم INT4 الحالية من عبء كبير في وقت التشغيل (20-90%) عند تفريغ الأوزان أو المبالغ الجزئية على وحدات معالجة الرسومات. ولمواجهة هذا التحدي، نقدم QoQ ، وهي خوارزمية تكميم W4A8KV4 بوزن 4 بت، وتنشيط 8 بت، وذاكرة تخزين مؤقت KV 4 بت. QoQ تعني quattuor-octo-quattuor ، والتي تمثل 4-8-4 في اللاتينية. يتم تنفيذ QoQ بواسطة مكتبة استدلال QServe التي تحقق سرعة مُقاسة. الفكرة الرئيسية التي تقود QServe هي أن كفاءة خدمة LLM على وحدات معالجة الرسومات تتأثر بشكل كبير بالعمليات على نوى CUDA منخفضة الإنتاجية . بناءً على هذه الرؤية، في خوارزمية QoQ، نقدم التكميم التدريجي الذي يمكن أن يسمح بخفض الحمل الزائد في W4A8 GEMM. بالإضافة إلى ذلك، قمنا بتطوير SmoothAttention للتخفيف بشكل فعال من تدهور الدقة الناتج عن تكميم 4 بت KV. في نظام QServe، نقوم بإعادة ترتيب الوزن بشكل مدروس ونستفيد من التوازي على مستوى التسجيل لتقليل زمن وصول عملية التصفية. نحن أيضًا نجعل الاهتمام المدمج مرتبطًا بالذاكرة، ونستفيد من مكاسب الأداء الناتجة عن تكميم KV4. ونتيجة لذلك، تعمل QServe على تحسين الحد الأقصى من إنتاجية الخدمة التي يمكن تحقيقها لـ Llama-3-8B بمقدار 1.2× على A100، و 1.4× على L40S؛ وQwen1.5-72B بمقدار 2.4× على A100، و 3.5× على L40S، مقارنةً بـ TensorRT-LLM.


يوجد أدناه حيرة WikiText2 التي تم تقييمها بطول تسلسل 2048. الأقل هو الأفضل.
| طُرق | دقة | اللاما-3.1 70ب | اللاما-3.1 8 ب | اللاما-3 70ب | اللاما-3 8ب | اللاما-2 7ب | اللاما-2 13 ب | اللاما-2 70ب | اللاما 7 ب | اللاما 13 ب | اللاما 30 ب | ميسترال 7 ب | يي 34 ب |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FP16 | 2.81 | 6.24 | 2.85 | 6.14 | 5.47 | 4.88 | 3.32 | 5.68 | 5.09 | 4.10 | 5.25 | 4.60 | |
| SmoothQuant | W8A8 | 3.23 | 6.38 | 3.14 | 6.28 | 5.54 | 4.95 | 3.36 | 5.73 | 5.13 | 4.23 | 5.29 | 4.69 |
| جبتق-R | W4A16 g128 | 3.46 | 6.64 | 3.42 | 6.56 | 5.63 | 4.99 | 3.43 | 5.83 | 5.20 | 4.22 | 5.39 | 4.68 |
| AWQ | W4A16 g128 | 3.22 | 6.60 | 3.20 | 6.54 | 5.60 | 4.97 | 3.41 | 5.78 | 5.19 | 4.21 | 5.37 | 4.67 |
| كواروت | W4A4 | 5.97 | 8.32 | 6.75 | 8.33 | 6.19 | 5.45 | 3.83 | 6.34 | 5.58 | 4.64 | 5.77 | نان |
| ذرة | W4A4 g128 | - | - | 4.33 | 7.78 | 6.12 | 5.31 | 3.73 | 6.25 | 5.52 | 4.61 | 5.76 | 4.97 |
| ربع سنوي | W4A8KV4 | 3.69 | 6.91 | 3.65 | 6.84 | 5.75 | 5.11 | 3.51 | 5.92 | 5.27 | 4.32 | 5.45 | 4.73 |
| ربع سنوي | W4A8KV4 g128 | 3.54 | 6.80 | 3.51 | 6.73 | 5.68 | 5.05 | 3.46 | 5.88 | 5.23 | 4.27 | 5.41 | 4.73 |
* يتم تقييم SmoothQuant من خلال تكميم ذاكرة التخزين المؤقت الثابتة KV لكل موتر.
عند تقديم نماذج اللغات الكبيرة Llama-3-8B وQwen1.5-72B على وحدات معالجة الرسومات L40S وA100، تُظهر QServe أداءً فائقًا، حيث تحقق إنتاجية أعلى بمقدار 1.2x-1.4x مقارنة بالحل الصناعي الرائد، TensorRT-LLM، لـ Llama- 3-8B، وإنتاجية أعلى بمقدار 2.4x-3.5x لـ Qwen1.5-72B.
تعرف على المزيد حول إعداد قياس الأداء في نظام QServe GPU Inference System.
| L40S (48 جيجا) | اللاما-3-8ب | اللاما-2-7ب | ميسترال-7ب | اللاما-2-13ب | لاما-30ب | يي-34ب | اللاما-2-70ب | كوين-1.5-72ب |
|---|---|---|---|---|---|---|---|---|
| تي آر تي-LLM-FP16 | 1326 | 444 | 1566 | 92 | أوم | أوم | أوم | أوم |
| تي آر تي-LLM-W4A16 | 1431 | 681 | 1457 | 368 | 148 | 313 | 119 | 17 |
| تي آر تي-LLM-W8A8 | 2634 | 1271 | 2569 | 440 | 123 | 364 | أوم | أوم |
| الذرة-W4A4 | -- | 2120 | -- | -- | -- | -- | -- | -- |
| كواروت-W4A4 | -- | 805 | -- | 413 | 133 | -- | -- | 15 |
| كيو سيرف-W4A8KV4 | 3656 | 2394 | 3774 | 1327 | 504 | 869 | 286 | 59 |
| زيادة الإنتاجية* | 1.39x | 1.13x | 1.47x | 3.02x | 3.41x | 2.39x | 2.40x | 3.47x |
| A100 (80 جرام) | اللاما-3-8ب | اللاما-2-7ب | ميسترال-7ب | اللاما-2-13ب | لاما-30ب | يي-34ب | اللاما-2-70ب | كوين-1.5-72ب |
|---|---|---|---|---|---|---|---|---|
| تي آر تي-LLM-FP16 | 2503 | 1549 | 2371 | 488 | 80 | 145 | أوم | أوم |
| تي آر تي-LLM-W4A16 | 2370 | 1549 | 2403 | 871 | 352 | 569 | 358 | 143 |
| تي آر تي-LLM-W8A8 | 2396 | 2334 | 2427 | 1277 | 361 | 649 | 235 | 53 |
| الذرة-W4A4 | -- | 1160 | -- | -- | -- | -- | -- | -- |
| كواروت-W4A4 | -- | 1370 | -- | 289 | 267 | -- | -- | 68 |
| كيو سيرف-W4A8KV4 | 3005 | 2908 | 2970 | 1741 | 749 | 803 | 419 | 340 |
| زيادة الإنتاجية* | 1.20x | 1.25x | 1.22x | 1.36x | 2.07x | 1.23x | 1.17x | 2.38x |
الإنتاجية المطلقة لتوليد الرمز المميز لأنظمة QServe والخط الأساسي (الوحدة: الرموز المميزة/الثانية. -- تعني غير مدعومة). تم إجراء جميع التجارب ضمن نفس ميزانية ذاكرة الجهاز. يتم حساب زيادة إنتاجية QServe فيما يتعلق بأفضل خط أساس في كل عمود.
إذا وجدت deepcompressor مفيدًا أو ذا صلة ببحثك، فيرجى التكرم بالاستشهاد بمقالتنا:
@article{lin2024qserve, title={QServe: W4A8KV4 التكميم والتصميم المشترك للنظام لتقديم خدمة LLM فعالة}، المؤلف={Lin*, Yujun and Tang*, Haotian and Yang*, Shang and Zhang, Zhekai and Xiao, Guangxuan and Gan ، تشوانغ وهان، سونغ}، مجلة={طبعة أولية من arXiv أرخايف:2405.04532}, year={2024}}@article{
li2024svdquant، title={SVDQuant: استيعاب القيم المتطرفة بواسطة مكونات منخفضة الرتبة لنماذج الانتشار ذات 4 بت}، المؤلف={Li*, Muyang and Lin*, Yujun and Zhang*, Zhekai and Cai, Tianle and Li, Xiuyu and Guo, Junxian وXie، Enze وMeng، Chenlin وZhu، Jun-Yan وHan، Song}، مجلة={arXiv طبعة أولية arXiv:2411.05007}، سنة={2024}}ترتبط المشاريع التالية ارتباطًا وثيقًا بـ QServe. قامت مجموعتنا بتطوير دعم كامل لخوارزميات نظام التطبيقات للنماذج الكبيرة الفعالة، وحصلت على 9 آلاف+ من نجوم GitHub وأكثر من مليون تنزيل من مجتمع Huggingface .
نرحب أيضًا بمراجعة MIT HAN Lab للاطلاع على مشاريع مثيرة أخرى حول الذكاء الاصطناعي الفعال !
[ النظام ] QServe: القياس الكمي W4A8KV4 لتقديم خدمة LLM بكفاءة
[ النظام ] TinyChat: Chatbot فعال وخفيف الوزن مع AWQ
[ التطبيق ] فيلا: حول التدريب المسبق لنماذج اللغة المرئية
[ الخوارزمية ] AWQ: تقدير الوزن المدرك للتنشيط لضغط وتسريع LLM
[ الخوارزمية ] SmoothQuant: حساب دقيق وفعال لنماذج اللغات الكبيرة بعد التدريب
[ الخوارزمية ] التوزيع: الاستدلال الموازي الموزع لنماذج الانتشار عالية الدقة
[ الأجهزة ] SpATten: بنية فعالة للانتباه المتناثر مع رمز Cascade المميز وتشذيب الرأس
DeepCompressor مستوحى من العديد من المكتبات مفتوحة المصدر، بما في ذلك (على سبيل المثال لا الحصر) GPTQ وQuaRot وAtom.