الوحدة 6 — التكميم والبصمة الذاكريّة
نموذج 7B بدقّة كاملة (FP16) يحتاج 14 GB من الذاكرة. النموذج نفسه مكمَّم Q4 يحتاج 4 GB مع فقد جودة معقول. هذه الفجوة هي ما يفصل بين نموذج يعمل على حاسوب الشريك، ونموذج يحتاج بطاقة رسميّات بـ 5000 دولار. فهم التكميم شرط لأيّ تشغيل محلّيّ عمليّ.
ما هو التكميم؟
معاملات النموذج أرقام حقيقيّة. تخزينها بدقّة عالية (float32 بـ 4 بايتات، أو float16 بـ 2) يعطي جودة قصوى ويستهلك ذاكرة قصوى. التكميم يستبدلها بأرقام صحيحة أضيق (int8 بـ 1 بايت، int4 بنصف بايت)، مع جدول قيم يعيد تقدير القيم الحقيقيّة.
الفكرة: أكثر معاملات النموذج قريبة من الصفر ومتقاربة، فتمثيلها ب 4 بتّات لكلّ معامل يفقد قليلًا من الجودة ولا يضاعف الكارثة.
قراءة وسوم Ollama
الوسوم في مكتبة Ollama تتبع تسمية Q<بتّات>_<نوع>:
| الوسم | البتّات لكلّ معامل | ملاحظات |
|---|---|---|
Q2_K | ≈ 2.6 | صغير جدًّا، جودة متدنّية، للتجريب فقط |
Q3_K_S / Q3_K_M | ≈ 3.5 | حدود مقبولة على نماذج كبيرة (13B فأكثر) |
Q4_K_S | ≈ 4.5 | أخفّ من Q4_K_M، جودة أدنى قليلًا |
Q4_K_M | ≈ 4.85 | افتراضيّ عمليّ: توازن جودة/حجم ممتاز |
Q5_K_M | ≈ 5.7 | جودة أقرب إلى FP16، حجم يزيد 20 % |
Q8_0 | 8.5 | قريب من FP16 في الجودة، ضعف حجم Q4 |
F16 | 16 | دقّة كاملة، لا تكميم |
الحرف K يعني تكميم «kquants»، أفضل توزيع للأخطاء داخل الطبقات. M وS (Medium/Small) يعنيان توازنًا داخليًّا أدقّ للأوزان الأهمّ.
القاعدة العمليّة: Q4_K_M هو الخيار الأوّل لأيّ نموذج يعمل محلّيًّا. لا نصعد إلى Q8_0 إلّا حين نلاحظ ضعفًا واضحًا في الجودة على مهامّنا ال فعليّة، ولا ننزل إلى Q3 إلّا لعدم توفّر ذاكرة.
حساب الذاكرة اللازمة
الصيغة التقريبيّة:
الذاكرة (GB) ≈ (P × B ÷ 8) + K
حيث:
P = عدد المعاملات بالمليارات
B = عدد البتّات لكلّ معامل (4.85 لـ Q4_K_M، 8.5 لـ Q8_0…)
K = مساحة KV-cache للسياق ≈ 0.5–2 GB بحسب num_ctx
| النموذج | Q4_K_M | Q8_0 | FP16 |
|---|---|---|---|
| 3B | 2 GB | 3.5 GB | 6 GB |
| 7B/8B | 4.5–5 GB | 8 GB | 14–16 GB |
| 13B | 8 GB | 14 GB | 26 GB |
| 34B | 20 GB | 36 GB | 68 GB |
| 70B | 40 GB | 74 GB | 140 GB |
أضف 1–4 GB للسياق (num_ctx=8192 مثلًا يحتاج ذاكرة كبيرة على نموذج بعناصر انتباه واسعة).
الجودة تنقص كم؟
الدراسات المستقلّة على معايير مفتوحة تُعطي ترتيبًا تقريبيًّا:
- من FP16 إلى
Q8_0: فقد جودة أقلّ من 1 %، مقبول دائمًا. - من FP16 إلى
Q4_K_M: فقد 1 % إلى 3 %، مقبول لأكثر الاستعمالات. - من FP16 إلى
Q3_K_M: فقد 3 % إلى 8 %، ملحوظ في المهامّ الدقيقة. - من FP16 إلى
Q2_K: فقد يفوق 10 %، النموذج «يهذي» أحيانًا.
هذه الأرقام معدَّل عامّ. على مهامّ محدّدة (تلخيص قانونيّ بالعربيّة)، القياس الحقيقيّ يتمّ على عشرة إلى عشرين سؤالًا حقيقيًّا من المكتب، لا على معيار MMLU الأمريكيّ. قاعدة: اختبر بنفسك على مهمّتك.
مثال قياس عمليّ
على محطّة الشريك (Windows، 32 GB RAM، بطاقة NVIDIA 8 GB VRAM):
$ ollama pull qwen2.5:7b-instruct-q8_0 # 8 GB
$ ollama pull qwen2.5:7b-instruct-q4_K_M # 4.7 GB
اختبار على عشرين سؤالًا تلخيصيًّا من عقود المكتب. النتائج:
| الوسم | متوسّط الرموز/ثانية | تقييم بشريّ (10) | استعمال الذاكرة |
|---|---|---|---|
q8_0 | 22 | 8.2 | 10 GB |
q4_K_M | 34 | 7.9 | 6 GB |
الفارق في الجودة 0.3 نقطة على 10، والسرعة تزيد 55 %، والذاكرة تنخفض 40 %. القرار للمكتب: Q4_K_M هو الوسم الافتراضيّ. Q8_0 نحتفظ به لصياغة الردود الرسميّة حيث تُلاحظ فروق دقيقة.
متى نصعد ومتى ننزل؟
اصعد إلى Q8_0 أو FP16 إن:
- المهمّة تتطلّب دقّة لغويّة عالية (صياغة رسميّة، مصطلحات دقيقة).
- الفارق ملحوظ في قياسك الخاصّ، لا في المعايير العامّة.
- الذاكرة تسمح.
انزل إلى Q3 أو Q2 إن:
- الجهاز صغير ولا خيار آخر.
- المهمّة تحمل الفقد (تصنيف بأربع فئات، رصد كلمات مفتاحيّة).
- تُقارن دائمًا بجواب
Q4_K_Mكمرجع.
الفخّ: ذاكرة النموذج، لا فقط ملفّه
الحجم على القرص ≠ الذاكرة عند التشغيل. النموذج بعد التحميل يشغل حجم الوزن زائد KV-cache الذي ينمو مع طول السياق، زائد نصف غيغا أو أكثر لدوائر التنفيذ. جهاز يعرض ollama list بحجم 4.7 GB قد لا يشغّل النموذج نفسه ب 5 GB ذاكرة حرّة. اترك هامشًا 2 GB على الأقلّ.
الخيط الأحمر
للمكتب، خطّة التكميم:
- المحطّة الرئيسيّة (32 GB):
Q4_K_Mافتراضيّ،Q8_0للردود الرسميّة. - الحواسيب المحمولة للمساعدين (16 GB):
Q4_K_Mحصرًا،num_ctxيبقى دون 8 K. - خادم الاختبار (64 GB بلا GPU):
Q8_0لنموذج المرجع، بلا سرعة تفاعليّة (استعمال لدفعات ليليّة).
هذه الاختيارات ليست حكمًا نهائيًّا. كلّ ثلاثة أشهر نعيد القياس على عيّنة من عشرين سؤالًا حقيقيًّا، لأنّ نماذج جديدة تصدر ومقارباتها للتكميم تتحسّن.
nomic-embed-text مثلًا يأتي بنسخ مختلفة. لا تُغيّر وسم نموذج التضمين بعد فهرسة قاعدة، وإلّا صارت المتّجهات القديمة غير قابلة للمقارنة مع الجديدة. اعتبر وسم التضمين جزءًا من المخطّط، لا معلمة يمكن تعديلها لاحقًا.
الخلاصة
Q4_K_Mافتراضيّ عمليّ ممتاز؛Q8_0قريب من FP16 بضعف الحجم؛Q3وأقلّ يُقبل حين لا خيار.- الذاكرة اللازمة ≈ (المعاملات × البتّات ÷ 8) + سعة KV-cache للسياق.
- فقد الجودة يقاس على مهامّك، لا على معايير عامّة؛ عشرون سؤالًا من الميدان يكفيان.
- وسم نموذج التضمين ثابت بعد الفهرسة؛ تغييره يبطل قاعدة التضمينات كلّها.