باختصار
التكميم أو الـ Quantization هو تقنية ضغط بتقلّل حجم نموذج الذكاء الاصطناعي عن طريق تقليل دقة الأرقام المستخدمة في المعاملات. يعني بدل ما كل رقم ياخد 32 بت، بيتحوّل لـ 8 أو 4 بت، وده بيخلّي النموذج يشتغل على أجهزة أضعف وأرخص.
بالتفصيل
تخيّل إنك بتوصّف لحد عنوان بيتك. تقدر تديله الإحداثيات بدقة 15 رقم عشري (زي الـ GPS الدقيق)، أو تقوله “الشارع التالت على اليمين بعد الجامع”. الوصفين هيوصّلوه، بس التاني أبسط وأخف بكتير رغم إنه مش دقيق بنفس الدرجة. الـ Quantization بيعمل حاجة شبه كده مع نماذج الذكاء الاصطناعي.
النماذج الكبيرة زي Llama وGPT بتخزّن كل معامل (parameter) كرقم عشري بدقة عالية — عادة 32-bit أو 16-bit floating point. لما يكون عندك نموذج فيه 70 مليار معامل، ده معناه إنك محتاج حوالي 140 جيجابايت ذاكرة بس عشان تحمّل النموذج! ده أكتر من أي كارت شاشة عادي يقدر يشيله.
الـ Quantization بيحل المشكلة دي إنه بيقلّل دقة الأرقام:
- 16-bit: نص الحجم، فرق جودة بسيط جدًا
- 8-bit (INT8): ربع الحجم، جودة لسه كويسة
- 4-bit (GPTQ/AWQ): ثُمن الحجم، فرق ملحوظ بس مقبول
- 2-bit: حجم صغير جدًا بس الجودة بتتأثر بوضوح
يعني نموذج الـ 70 مليار اللي كان محتاج 140 جيجا، بعد 4-bit quantization بيبقى حوالي 35 جيجا بس — ممكن يشتغل على كارت شاشة واحد!
في أنواع مختلفة من الـ Quantization: في Post-Training Quantization اللي بتضغط النموذج بعد ما يخلّص تدريب، وفي Quantization-Aware Training اللي بتدرّب النموذج وهو عارف إنه هيتضغط. التانية بتدي نتائج أحسن بس بتاخد وقت أطول.
مثال عملي
مشروع llama.cpp خلّى أي حد يقدر يشغّل نماذج ذكاء اصطناعي كبيرة على اللابتوب بتاعه من غير كارت شاشة غالي. السر كان إنهم بيعملوا 4-bit quantization للنماذج، فمثلًا نموذج Llama 2 13B اللي كان محتاج 26 جيجا بقى حوالي 7 جيجا بس وبيشتغل على لابتوب عادي بسلاسة.
مصطلحات مرتبطة
- التكيّف منخفض الرتبة (LoRA)
- التقطير (Distillation)
- المعاملات (Parameters)
- التدريب بدقة مختلطة (Mixed Precision Training)
قرمصيص للأخبار أخبار الذكاء الاصطناعي بالعربي