تحت الغطاء

كيف نكتشف كرت شاشتك ونقيّم النماذج المحلية

كيف نتعرّف على مواصفات جهازك، وكيف نقيّم النماذج، ومن أين تأتي الأرقام.

كيف يعمل الموقع

قدرة تعمل بالكامل داخل متصفحك. فور زيارتك للموقع نستخدم واجهات المتصفح للتعرّف على كرت شاشتك ومعالجك وذاكرتك، ثم نحسب أي النماذج يستطيع جهازك تشغيلها وبأي سرعة. ولا تُرسَل أي بيانات إلى أي خادم — كل شيء يُحسب على جهازك.

مهم — كل النتائج تقديرية. فواجهات المتصفح لا تكشف عن مواصفات الجهاز إلا بقدر محدود: أسماء الكروت قد تكون غامضة، وقيم الذاكرة تقريبية، وأرقام عرض النطاق مأخوذة من أوراق المواصفات لا من قياس فعلي. كما يعتمد الأداء الحقيقي على عوامل لا نستطيع قياسها من المتصفح: خفض الأداء الحراري، والعمليات في الخلفية، وإصدارات التعريفات، وضغط الذاكرة في نظام التشغيل وغيرها. فاعتبر النتائج دليلًا استرشاديًا لا ضمانًا.

الاكتشاف
مطابقة الكرت
النتيجة
S
التقييم

اكتشاف مكوّنات الجهاز

نستخدم ثلاث واجهات في المتصفح للتعرّف على مكوّنات جهازك، بدون أي إضافات أو برامج.

WebGL — التعرّف على كرت الشاشة

ننشئ لوحة WebGL مخفية ونستعلم عن امتداد WEBGL_debug_renderer_info للحصول على اسم كرت الشاشة والشركة المصنّعة، فنعرف بدقة أي كرت تملك.

// جلب اسم كرت الشاشة
const canvas = document.createElement("canvas");
const gl = canvas.getContext("webgl2");
const ext = gl.getExtension("WEBGL_debug_renderer_info");
const gpu = gl.getParameter(ext.UNMASKED_RENDERER_WEBGL);
// → "ANGLE (NVIDIA, NVIDIA GeForce RTX 4090, ...)"
// → "Apple M4 Pro GPU"

WebGPU — معلومات البنية

إن كان متصفحك يدعم WebGPU نطلب محوّلًا للحصول على تفاصيل إضافية عن الجهاز وبنيته.

const adapter = await navigator.gpu.requestAdapter();
const info = adapter.info;
// info.device → "nvidia geforce rtx 4090"
// info.architecture → "ampere"

Navigator — المعالج والذاكرة

نستخدم navigator.hardwareConcurrency لمعرفة عدد أنوية المعالج، وnavigator.deviceMemory لتقدير حجم الذاكرة. كما نشغّل اختبارًا قصيرًا للمعالج (نحو 30 جزءًا من الألف من الثانية) لتقدير أداء النواة الواحدة.

const cores = navigator.hardwareConcurrency; // → 16
const ram = navigator.deviceMemory;         // → 8GB (تقريبي)

قاعدة بيانات كروت الشاشة

بعد التعرّف على كرت شاشتك نبحث عنه في قاعدة بيانات مدمجة تضم نحو 40 كرتًا (إنفيديا و AMD و إنتل) ونحو 12 شريحة من معالجات Apple. وكل مدخل يحتوي على سعة الذاكرة وعرض نطاقها — وهما أهم رقمين لتشغيل النماذج محليًا.

// أمثلة من قاعدة بيانات كروت الشاشة
const GPU_DB = {
  "RTX 4090":    { vram: 24,  bw: 1008 }, // GB/s
  "RTX 4060":    { vram: 8,   bw: 272  },
  "RX 7900 XTX": { vram: 24,  bw: 960  },
};

const APPLE_DB = {
  "m4 max":   { ram: 36,  bw: 546 },
  "m4 pro":   { ram: 24,  bw: 273 },
  "m4":       { ram: 16,  bw: 120 },
};

متطلبات الذاكرة

لكل نموذج في قاعدتنا متطلبات ذاكرة محسوبة مسبقًا لكل مستوى Quantization، والمعادلة بسيطة:

الذاكرة (GB) = المعاملات × البتات لكل وزن ÷ 8 ÷ 1024³ + هامش التشغيل

نضيف 0.5GB ثابتة لهامش التشغيل (محرّك الاستدلال وسياق CUDA أو Metal) مع هامش أمان 10% لذاكرة KV والمخازن المؤقتة. فمثلًا نموذج بحجم 70 مليارًا بـ Quantization Q4_K_M يحتاج تقريبًا 70 × 4 ÷ 8 = 35GB× 1.1 + 0.5 ≈ 39GB.

// كيف نحسب الذاكرة لكل مستوى Quantization
// نضيف ~0.5GB لذاكرة KV ومحرّك التشغيل
const RUNTIME_OVERHEAD = 0.5; // GB

function makeQuants(paramsBillions) {
  const base = paramsBillions;
  return [
    { name: "Q2_K",   vram: round(base * 0.35 + RUNTIME_OVERHEAD) },
    { name: "Q4_K_M", vram: round(base * 0.55 + RUNTIME_OVERHEAD) },
    { name: "Q6_K",   vram: round(base * 0.75 + RUNTIME_OVERHEAD) },
    { name: "Q8_0",   vram: round(base * 0.95 + RUNTIME_OVERHEAD) },
    { name: "F16",    vram: round(base * 1.85 + RUNTIME_OVERHEAD) },
  ];
}

خوارزمية التقييم

النتيجة (من ٠ إلى ١٠٠) تجمع ثلاثة عوامل للإجابة عن سؤال واحد: "ما مدى جودة تشغيل هذا النموذج على جهازك؟"

السرعة (توكن/ثانية)55%
هامش الذاكرة35%
مكافأة الجودة~10%

نتيجة السرعة (وزنها 55%)

تقدير عدد التوكنز في الثانية بناءً على عرض نطاق ذاكرة كرتك وحجم النموذج في الذاكرة:

const efficiency = isAppleSilicon ? 0.65 : 0.70;
const toksPerSec = (bandwidthGBs / modelVRAM) * efficiency;

// تحويل السرعة إلى نقاط
80+ tok/s → 100 pts     // فوري
40+ tok/s →  85 pts     // سريع
20+ tok/s →  65 pts     // جيد
10+ tok/s →  45 pts     // مقبول
 5+ tok/s →  25 pts     // بطيء
 <5  tok/s →  10 pts     // مرهق

هامش الذاكرة (وزنه 35%)

كم يستهلك النموذج من ذاكرتك المتاحة. فالاستهلاك الأقل يعني مساحة أكبر للسياق والمعالجة المجمّعة وبقية العمليات:

const memPct = (modelVRAM / totalMemory) * 100;

// تحويل استهلاك الذاكرة إلى نقاط
 ≤30% → 100 pts     // مساحة وفيرة
 ≤50% →  80 pts     // مريح
 ≤70% →  55 pts     // متوسط
 ≤85% →  30 pts     // ضيّق
 >85% →  10 pts     // ضيّق جدًا

مكافأة الجودة (نحو 10%)

مكافأة صغيرة للنماذج الأكبر لأنها تنتج مخرجات أفضل عادةً، بحد أقصى 15 نقطة حتى لا تطغى على النتيجة:

const qualityBonus = Math.min(15, Math.log2(paramsBillions + 1) * 2.5);
// 7B → ~7.5 نقطة، 70B → ~15 نقطة (بحد أقصى)

خصم الاتّساع الحرج

إذا كان النموذج يتّسع بالكاد في الذاكرة (الحالة "على الحافة") تُضرب النتيجة كاملة في 0.65، لأن هذه النماذج تتّسع نظريًا لكنها تعاني من التبديل وإدارة السياق.

سلّم التقييم

تُترجَم النتيجة النهائية إلى وصف للحالة:

الحالةالنتيجةالمعنى
يعمل ممتاز85–100توليد سريع وهامش ذاكرة وفير
يعمل جيدًا70–84سرعة جيدة واتّساع مريح
مقبول55–69قابل للاستخدام لكنه ليس مثاليًا
على الحافة40–54بطيء ونافذة السياق محدودة
يعمل بالكاد20–39توقّع مخرجات بطيئة جدًا
أثقل من الجهاز0–19لن يتّسع في ذاكرتك

تصنيف الاتّساع

قبل التقييم نصنّف كل نموذج ضمن ثلاث حالات حسب الذاكرة:

يعمل

معالجات Apple: النموذج يستهلك ≤ 52.5% من الذاكرة الموحّدة (75% متاحة × 70%)

كرت منفصل: النموذج يستهلك ≤ 85% من الـ VRAM

على الحافة

معالجات Apple: النموذج يستهلك 52.5%–75% من الذاكرة الموحّدة

كرت منفصل: النموذج يستهلك 85%–110% من الـ VRAM

لا يعمل

النموذج يتجاوز الذاكرة المتاحة، فلن يُحمَّل أو سينتقل إلى القرص مما يجعله غير قابل للاستخدام.

تقدير التوكنز في الثانية

نقدّر سرعة التوليد بنموذج بسيط محكوم بعرض النطاق، لأن تشغيل النماذج اللغوية محكوم شبه كليًا بسرعة قراءة الأوزان من الذاكرة — ونادرًا ما تكون الحسابات هي عنق الزجاجة.

توكن/ثانية ≈ عرض نطاق الذاكرة (GB/ث) ÷ حجم النموذج (GB) × الكفاءة

الكفاءة 0.70 للكروت المنفصلة و0.65 لمعالجات Apple (لأن الذاكرة الموحّدة لها هامش استهلاك أعلى قليلًا). وهذا تقدير متحفّظ — فالأداء الفعلي قد يختلف ±20% حسب حجم الدفعة وطول السياق وصيغة الـ Quantization.

مصادر البيانات

معلومات النماذج مجمّعة من مصادر متعدّدة ومراجَعة يدويًا:

›
HuggingFace API— عدد التنزيلات والإعجابات وبيانات النماذج، تُجلب وقت البناء عبر الواجهة البرمجية.
›
Ollama Library— عدد مرات السحب والإصدارات المتاحة للنماذج الموزّعة عبر Ollama.
›بطاقات النماذج والأوراق البحثية والإعلانات الرسمية، لعدد المعاملات وتفاصيل البنية وأطوال السياق.
›مواصفات الكروت من أوراق البيانات الرسمية (إنفيديا و AMD وإنتل وApple) لأرقام الذاكرة وعرض النطاق.

إحصاءات HuggingFace

نجلب عدد التنزيلات والإعجابات من HuggingFace وقت البناء عبر واجهتهم العامة:

// جلب إحصاءات النموذج من واجهة HuggingFace
const res = await fetch(
  `https://huggingface.co/api/models/${repoId}`
);
const data = await res.json();
// data.downloads → 2_450_000
// data.likes     → 12_500

معالجات Apple: الذاكرة الموحّدة

أجهزة ماك بمعالجات Apple تشارك الذاكرة بين المعالج وكرت الرسوميات (بنية الذاكرة الموحّدة)، ما يعني أن النموذج يستطيع استخدام نحو 75% من الذاكرة الكلية — أكثر بكثير من الكروت المنفصلة المحدودة بذاكرتها. فـ MacBook Pro بذاكرة 36GB يشغّل نماذج تحتاج نحو 27GB، بينما لا يستطيع حاسوب بكرت 8GB ذلك. ونحن نراعي هذا في حساباتنا بمعاملة معالجات Apple كمخزون واحد بحد استخدام 75%.

الخصوصية والشفافية

كل قراءة لمواصفات جهازك وكل عملية تقييم تجري داخل متصفحك، ولا تُرسَل أي بيانات إلى أي خادم. فاسم كرت الشاشة وحجم الذاكرة ونتائج الاختبار لا تغادر جهازك أبدًا. والموقع مبني بـ Astro ولا يرسل أي جافاسكربت للصفحات التي لا تحتاجها.

من صنعمدرسة الذكاء الاصطناعيالقناةالدورات

© 2026 مدرسة الذكاء الاصطناعي — جميع الحقوق محفوظة.

جميع أسماء المنتجات والشعارات والعلامات التجارية مملوكة لأصحابها. Apple و NVIDIA و AMD و Intel و Qualcomm وأسماء نماذج الذكاء الاصطناعي المذكورة في هذا الموقع علامات تجارية مسجّلة لمالكيها، ولا يوجد أي ارتباط أو رعاية بين قدرة وأي من هذه الشركات.