البحث بالمتجهات سهل عند 10 آلاف متجه. ولكن عند 100 مليون متجه مع P99 أقل من 100 مللي ثانية، يصبح الأمر مشكلة في البنية التحتية — وهذا ما يحله هذا النمط.
يعمل خط أنابيب RAG أو نظام التوصية لديك بشكل جميل في مرحلة التطوير مع بضعة آلاف من المتجهات. الآن لديك 50 مليون تضمين، والاستعلامات تحتاج إلى زمن انتقال أقل من 100 مللي ثانية، والفهرس ينمو باستمرار، وتستهلك الذاكرة بشكل كبير. أنت بحاجة إلى هندسة قاعدة بيانات متجهات تتوسع أفقيًا، وتدير الذاكرة بكفاءة (ليس كل شيء يجب أن يبقى في RAM)، وتتعامل مع عمليات الكتابة المتزامنة أثناء الاستيعاب دون تدهور أداء الاستعلام، ولا تكلف 10 آلاف دولار شهريًا في البنية التحتية لما هو في الأساس فهرس بحث.
Explore more design patterns and system architectures
يمكن لفريق معماري لدينا مساعدتك في تصميم وبناء الأنظمة باستخدام هذا النمط لمتطلباتك المحددة.
تواصل معنا
تعالج هندسة قاعدة بيانات المتجهات القابلة للتوسع تحديات تشغيل البحث بالمتجهات على نطاق الإنتاج: تقسيم الفهرس عبر العقد (sharding)، التخزين المتدرج (المقاطع الساخنة في الذاكرة، الدافئة على SSD، الباردة على S3)، توجيه الاستعلام مع موازنة التحميل، والتحجيم التلقائي بناءً على حمل الاستعلام وحجم الفهرس. يغطي النمط بنية النشر، تخطيط السعة، عزل الكتابة/القراءة، وتحسين التكلفة. إنها طبقة البنية التحتية التي تجعل أنظمة RAG والتوصية قابلة للتطبيق على نطاق واسع.
تنشر هذه البنية عقد قاعدة بيانات المتجهات في بنية مجمعة (clustered topology) مع فصل بين عقد الاستعلام (مسار القراءة) وعقد البيانات (مسار الكتابة). يتعامل خط أنابيب الاستيعاب (ingestion pipeline) مع توليد التضمينات وعمليات الإدراج/التحديث المجمعة (batch upserts) مع التخزين المؤقت للكتابة لتجنب التأثير على زمن انتقال الاستعلام. يوزع موجه الاستعلام (query router) عمليات البحث عبر النسخ المتماثلة للقراءة مع التوازي على مستوى الشارد. ينقل التخزين المتدرج (tiered storage) المقاطع التي يتم الوصول إليها نادرًا من الذاكرة إلى SSD إلى S3، مع تحميل شفاف في وقت الاستعلام. يقوم التحجيم التلقائي (Autoscaling) بضبط عدد النسخ المتماثلة بناءً على QPS الاستعلام وزمن انتقال P99.
| الطبقة | التقنيات |
|---|---|
| قاعدة بيانات المتجهات | Milvus (موزعة), Qdrant (عقدة واحدة/مجموعة صغيرة), Pinecone (مدارة) |
| واجهة التخزين الخلفية | MinIO / S3 (تخزين المقاطع), SSD (الطبقة الدافئة), RAM (الطبقة الساخنة) |
| التنسيق | etcd (بيانات Milvus الوصفية), Pulsar/Kafka (سجل الكتابة المسبقة) |
| نماذج التضمين | OpenAI text-embedding-3-large, Cohere embed-v4, BGE-M3, E5-large-v2 |
| البنية التحتية | Kubernetes (EKS/GKE) مع عقد GPU للتضمين، وعقد محسّنة للذاكرة للاستعلام |
| المراقبة | Grafana + Milvus metrics exporter، لوحات معلومات مخصصة لـ P99/recall |
| استخدم عندما | تجنب عندما |
|---|---|
| يتجاوز عدد المتجهات 5 ملايين ويتزايد، مما يتطلب تحجيمًا أفقيًا | لديك أقل من مليون متجه — pgvector على PostgreSQL الحالي يكفي |
| زمن انتقال استعلام P99 أقل من 100 مللي ثانية هو متطلب صارم | زمن انتقال استعلام 500 مللي ثانية أو أكثر مقبول — الخيارات الأبسط تعمل |
| تتشارك تطبيقات/مستأجرون متعددون في بنية المتجهات التحتية | تطبيق واحد بمجموعة واحدة — استخدم خدمة مدارة |
| يتطلب تحسين التكلفة تخزينًا متدرجًا (ليس كل شيء في RAM) | تسمح الميزانية بالخدمات المدارة بالكامل وتعمل أسعار البائع على نطاقك |
تصمم MW بنية قاعدة بيانات المتجهات بنهج "الحجم الصحيح من اليوم الأول، والتوسع عند القياس". نبدأ بتخطيط السعة بناءً على عدد المتجهات، الأبعاد، نوع الفهرس، وزمن الانتقال المستهدف — وليس التخمين. تتضمن عمليات نشر Milvus لدينا على Kubernetes لوحات معلومات Grafana لتتبع عدد المقاطع، استخدام الذاكرة، مئويات زمن انتقال الاستعلام، وتقديرات الاسترجاع (recall). لقد قمنا بتطبيق مجموعات Milvus ذات التحجيم التلقائي التي تتعامل مع 10 أضعاف ذروة حركة المرور خلال ساعات العمل وتتقلص ليلاً، مما يقلل تكلفة البنية التحتية بنسبة 40-60% مقارنة بالتوفر الثابت.
امنح نموذج LLM الخاص بك إمكانية الوصول إلى بياناتك دون الحاجة إلى الضبط الدقيق (fine-tuning). تسد RAG الفجوة بين نماذج اللغة للأغراض العامة والمعرفة الخاصة بالمجال.
توصي MicrocosmWorks بشكل عام بـ pgvector للمشاريع التي تحتوي على أقل من 5-10 ملايين متجه حيث يستخدم الفريق بالفعل PostgreSQL، لأنها تتجنب إدخال مكون بنية تحتية جديد وتدعم استعلامات SQL-plus-vector المختلطة أصلاً. عند تجاوز 10 ملايين متجه أو عندما تحتاج إلى زمن انتقال p99 أقل من 50 مللي ثانية عند التزامن العالي، فإن قاعدة بيانات متجهات مصممة خصيصًا مثل Qdrant أو Weaviate أو Milvus توفر أداءً أفضل بكثير من خلال خوارزميات الفهرسة المحسنة والبحث المعجل بواسطة GPU. نحن نساعد العملاء على اتخاذ هذا القرار أثناء مراجعة البنية عن طريق قياس أنماط استعلاماتهم الفعلية وتوقعات النمو.
MicrocosmWorks تصمم مجموعات قواعد بيانات المتجهات باستراتيجيات sharding تعتمد على الـ hash أو الـ metadata، والتي توزع المتجهات عبر العقد مع الحفاظ على البيانات ذات الصلة دلالياً متجاورة لتحقيق بحث فعال. نحن نطبق طبقات توجيه الاستعلامات التي توزع طلبات البحث على الـ shards ذات الصلة وتدمج النتائج باستخدام global top-K aggregation، مع الحفاظ على latency أقل من 100 مللي ثانية حتى عبر عشرات الـ shards. تتبع لوحات معلومات المراقبة لدينا توازن الـ shards، وتوزيع الاستعلامات، وreplication lag لمنع الـ hotspots مع توسع مجموعة البيانات لديكم.
تطبق MicrocosmWorks التكميم القياسي (تقليل float32 إلى int8) والتكميم المنتج لضغط تخزين المتجهات بمقدار 4-8 أضعاف، عادةً مع تدهور أقل من 2% في الاسترجاع، والذي نتحقق منه من خلال اختبار A/B على عبء عمل الاستعلام الفعلي الخاص بك قبل النشر إلى الإنتاج. نطبق أيضًا نهج استرجاع على مرحلتين حيث تخدم المتجهات المكممة الاسترجاع الأولي للمرشحين، وتُستخدم المتجهات كاملة الدقة فقط لإعادة الترتيب النهائي للنتائج العليا. تتيح هذه الاستراتيجية الهجينة للعملاء تخزين مئات الملايين من المتجهات بجزء بسيط من التكلفة مع الحفاظ على جودة بحث لا يمكن تمييزها عن التشغيل غير المضغوط.
تنشر MicrocosmWorks قواعد بيانات vector في تكوينات multi-replica مع synchronous replication لـ write durability و read replicas موزعة عبر availability zones لـ fault tolerance و load balancing. نحن نقوم بتكوين automated failover مع health-check-driven leader election بحيث يؤدي node failure إلى أقل من 10 ثوانٍ من read unavailability وصفر data loss. تتضمن قوالب infrastructure-as-code الخاصة بنا جداول backup مُعدة مسبقًا، و point-in-time recovery، و disaster recovery runbooks المصممة خصيصًا لكل vector database engine.
تقوم MicrocosmWorks بتصميم عمليات نشر لقواعد بيانات متجهية متعددة المجموعات (multi-collection vector database deployments) حيث تحصل كل تطبيق أو نموذج تضمين (embedding model) على مجموعته المعزولة الخاصة به مع تكوينات الفهرسة (index configurations) المناسبة، مع مشاركة البنية التحتية الأساسية للمجموعة (cluster infrastructure) لتحقيق كفاءة التكلفة. نقوم بتنفيذ بوابة استعلام موحدة (unified query gateway) تقوم بتوجيه الطلبات إلى المجموعة الصحيحة بناءً على سياق التطبيق (application context) وتطبق معالجة مسبقة خاصة بالمجموعة (collection-specific pre-processing) مثل تضمين الاستعلام (query embedding) بالنموذج المطابق (matching model). يقلل هذا النهج متعدد المستأجرين لقاعدة البيانات المتجهية (multi-tenant vector database approach) عادةً تكاليف البنية التحتية بنسبة 40-60% مقارنة بتشغيل مجموعات (clusters) منفصلة لكل تطبيق.