انتقل إلى المحتوى الرئيسي

الوحدة 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_08.5قريب من FP16 في الجودة، ضعف حجم Q4
F1616دقّة كاملة، لا تكميم

الحرف 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_MQ8_0FP16
3B2 GB3.5 GB6 GB
7B/8B4.5–5 GB8 GB14–16 GB
13B8 GB14 GB26 GB
34B20 GB36 GB68 GB
70B40 GB74 GB140 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_0228.210 GB
q4_K_M347.96 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 للسياق.
  • فقد الجودة يقاس على مهامّك، لا على معايير عامّة؛ عشرون سؤالًا من الميدان يكفيان.
  • وسم نموذج التضمين ثابت بعد الفهرسة؛ تغييره يبطل قاعدة التضمينات كلّها.