خطوات الاستخدام
أدخل عدد المتجهات (Vectors): عدد النقاط أو العناصر التي ستخزنها في قاعدة البيانات المتجهة. كلما زاد العدد، زاد حجم المؤشر. مثال: إذا كان لديك 1,000,000 وثيقة، أدخل 1000000.
أدخل أبعاد المتجه (Dimensions): عدد الأبعاد لكل متجه، ويعتمد على نموذج التضمين المستخدم. مثلاً، نموذج OpenAI ada-002 ينتج متجهات ذات 1536 بُعداً، بينما ينتج BERT-base متجهات ذات 768 بُعداً. كلما زادت الأبعاد، زاد حجم المؤشر.
اختر نوع المؤشر (Index Type): الأنواع الشائعة: Flat (مؤشر مسطح)، IVF (مؤشر ملفات مقلوبة)، HNSW (مؤشر العالم الصغير القابل للتنقل). لكل نوع حجم تخزين مختلف يُحسب كالتالي: • Flat: size = vectors * dimensions * 4 بايت (للمتجهات من نوع float32) + overhead ثابت صغير. • IVF: size = (نفس flat) + overhead لجداول التجميع (عادة 5-10% إضافية). • HNSW: size = (نفس flat) + معلومات الجيران (لكل متجه: قائمة الجيران حتى M و efConstruction)، مما يزيد الحجم بنسبة 20-50%.
انقر على زر 'حساب' لتحصل على تقدير الحجم بالبايت، الكيلوبايت، الميغابايت، أو الجيغابايت. الحساب النهائي يعتمد على الصيغة الخاصة بكل نوع مؤشر مع مراعاة الترميز والميتاداتا.
أمثلة محلولة
تطبيقات عملية على حجم مؤشر قاعدة البيانات المتجهة بخطوات الحل كاملة.
الحل
باستخدام الصيغة: الحجم = عدد المتجهات × الأبعاد × 4 بايت (لأن float32). إذن الحجم = 1,000,000 × 768 × 4 = 3,072,000,000 بايت. لتحويلها إلى غيغابايت: 3,072,000,000 / 1024^3 ≈ 2.86 غيغابايت. هذا الحجم تقريبي ولا يشمل الميتاداتا أو الفهارس المساعدة. إذا أردت تخزين المعرفات (IDs) لكل متجه، أضف 8 بايت لكل متجه (معرف طويل) ليصبح المجموع ≈ 3,080,000,000 بايت ≈ 2.87 غيغابايت. في الممارسة العملية، قد تحتاج إلى تخزين البيانات الإضافية مثل حقل المصدر أو النص الأصلي، مما يزيد الحجم الفعلي.
الحل
أولاً، احسب الحجم الأساسي للمتجهات: 10,000,000 × 128 × 4 = 5,120,000,000 بايت ≈ 4.77 غيغابايت. بالنسبة لـ HNSW، كل متجه يخزن قائمة جيرانه حتى M (16) بالإضافة إلى معلومات efConstruction. عادةً، كل جيران يستهلك 4 بايت (معرف العقدة) + ربما 4 بايت للوزن أو المسافة. لذا لكل متجه: قائمة جيران بحجم M × 8 بايت ≈ 128 بايت (إذا كان عدد الجيران الثابت M=16، لكن في الواقع قد يكون العدد أقل أو أكثر). بافتراض متوسط 16 جاراً، فهذا يضيف 10,000,000 × 16 × 8 = 1,280,000,000 بايت ≈ 1.19 غيغابايت. إجمالي الحجم ≈ 4.77 + 1.19 = 5.96 غيغابايت. هذا تقدير وقد يختلف بناءً على تنفيذ المكتبة المستخدمة (مثل Faiss أو hnswlib). بعض المكتبات تضيف overhead بنسبة 10-20%.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة حجم مؤشر قاعدة البيانات المتجهة.
مثال 1: مليون متجه 768 بُعد Flat = 3072 ميغابايت = 2.861023 GiB
- عدد المتجهات
- 1,000,000
- عدد الأبعاد
- 768
- نوع المؤشر
- flat
مثال 2: عشرة ملايين متجه 128 مع HNSW = 6912 MB (النطاق 6144-7680)
- عدد المتجهات
- 10,000,000
- عدد الأبعاد
- 128
- نوع المؤشر
- hnsw
250 ألف متجه 1536 مع IVF: 1651.2 MB بدل 2304
- عدد المتجهات
- 250,000
- عدد الأبعاد
- 1,536
- نوع المؤشر
- ivf
100×100 مع IVF: 0.043 MB لا 0.06
- عدد المتجهات
- 100
- عدد الأبعاد
- 100
- نوع المؤشر
- ivf
10 متجهات بعشرة أبعاد: 0.0004 MB بدل الصفر
- عدد المتجهات
- 10
- عدد الأبعاد
- 10
- نوع المؤشر
- flat
متجهان فقط: 16 بايت و22 ميكروميغابايت بالحمولة
- عدد المتجهات
- 2
- عدد الأبعاد
- 2
- نوع المؤشر
- hnsw