AWQ Quantization: شغّل Llama 70B على H100 واحدة بـ 35GB
سيرفر Llama 3.3 70B شغّال على 4×A100 80GB بيكلّفك $11,820 شهرياً على Lambda Labs. AWQ INT4 quantization بينزّل الذاكرة من 140GB لـ 35GB، يخلّيك تشغّله على H100 واحدة بـ $1,800 شهرياً، بدون فقد دقة محسوس على معظم الـ tasks.
المشكلة باختصار
الفريق طلب deploy لـ Llama 3.3 70B في الإنتاج. الـ FP16 weights لوحدها 140GB. أرخص setup فيه 4×A100 80GB بـ $16.36/ساعة = $11,820 شهرياً. لو السيرفر بياخد طلب كل 800ms، الـ ROI ضعيف جداً قدام GPT-4o-mini API.
Quantization بيحل المشكلة دي بصياغة جديدة للوزن: بدل ما تخزّن كل parameter في 16 bit، تخزنه في 4 bit. الـ 140GB بقت 35GB، وقدرت تركّبه على H100 واحدة 80GB مع باقي مساحة للـ KV cache.
إيه هي Quantization (مثال JPEG للمبتدئ)
تخيّل صورة RAW بحجم 24 ميجابايت. لمّا تحفظها JPEG quality 85، بتنزل لـ 2 ميجابايت بدون ما عينك تلاحظ فرق. JPEG بيشيل التفاصيل اللي عينك مش بتقدر تميّزها، ويحتفظ بالباقي.
Quantization بنفس المنطق على weights النموذج. كل وزن في FP16 محتاج 2 byte (16 bit). تحويله لـ INT4 بيخلّيه نص byte فقط. الموديل بيشتغل بدقة "كافية" بدل دقة "كاملة"، والذاكرة بتنزل 4 أضعاف.
التعريف العلمي
Quantization هي عملية تحويل قيم متصلة (continuous) إلى مجموعة محدودة من القيم المتقطعة (discrete). في حالة LLM weights: بنحوّل floating-point 16-bit (range واسع) إلى integer 4-bit (16 قيمة ممكنة فقط). العملية بتعتمد على scaling factor لكل group من الـ weights علشان نحافظ على الـ distribution.
المهم اللي بيفرّق: مش كل وزن في الموديل بنفس الأهمية. AWQ (Activation-aware Weight Quantization, MIT Han Lab, Lin et al. 2023) لاحظ إن أقل من 1% من الـ weights مسؤولين عن معظم جودة المخرجات. الـ technique بتحمي الـ 1% دول من الـ aggressive quantization وتضرب الباقي بقسوة. النتيجة: دقة قريبة من FP16 على معظم الـ benchmarks.
AWQ vs GPTQ — الاختيار العملي
على H100 / A100 / L40S، AWQ هو الـ default في الإنتاج حالياً. الأسباب أرقام مش رأي:
- Throughput: Marlin-AWQ kernel بيدّي 10.9× speedup مقارنة بـ FP16، Marlin-GPTQ بيدّي 2.6× فقط.
- Pass@1 على HumanEval: Marlin-AWQ سجّلت 51.8%، GPTQ-INT4 سجّلت 48.3% على نفس الموديل.
- MT-Bench: AWQ متقدّم على GPTQ بـ 0.4 نقطة عند نفس bit-width.
- Memory footprint: الاتنين بيوصلوا لـ ~35GB. مفيش فرق فعلي هنا.
الفائز في 2026: AWQ، بفارق واضح في الـ throughput وفرق طفيف في الدقة.
Deployment فعلي على vLLM
الـ workflow اللي بيشتغل من غير صداع:
- نزّل النسخة الـ quantized من Hugging Face (مش لازم تعمل quantization بنفسك — في nightly builds جاهزة لمعظم الموديلات الشهيرة).