الـ vector database يجيب عن سؤال واحد، وبسرعة كبيرة
أعطه قائمة أرقام وسيعيد لك القوائم المخزَّنة الأقرب إليها. هذه هي الواجهة كلها.
هذه القوائم هي الـ embeddings. نموذج الـ embedding يحوّل مقطعًا نصيًا أو وصف منتج أو صورة إلى بضع مئات أو آلاف من الأرقام، مرتَّبة بحيث تقع المعاني المتشابهة قريبة من بعضها، وما هي الـ embeddings في الذكاء الاصطناعي يشرح كيفية ذلك. الـ vector database هو المكان الذي تعيش فيه هذه القوائم بعد أن تتراكم لديك بكثرة. يخزّن كل قائمة مع معرّف وبعض البيانات الوصفية، ويبني فهرسًا عليها، ويجيب عن بحث أقرب الجيران: "هذا متجه استعلام، أعطني العشرة الأقرب."
الجزء الصعب هو كلمة سريع. مقارنة استعلام مع مليون متجه مخزَّن، كل منها 1,536 رقمًا، يعني 1.5 مليار عملية ضرب، والقيام بذلك مع كل ضغطة مفتاح لا يتحمّل التوسّع. لذا تستخدم قواعد بيانات المتجهات فهارس أقرب جيران تقريبية، وأشهرها HNSW، وهو بنية بيانية من ورقة بحثية عام 2016 لـ Malkov وYashunin تزور بضع مئات من المرشّحين بدلًا من المليون كاملًا وتعيد الإجابة الصحيحة في شبه كل مرة. هذا "شبه" هو المقايضة: قليل من الدقة مقابل سرعة أكبر بألف ضعف.
قاعدة بياناتك الحالية تطابق الكلمات؛ الـ vector database يطابق المعنى
قاعدة البيانات العلائقية تجد صفوفًا تطابق قيمها: WHERE customer_id = 4127. فهرس البحث النصي الكامل يجد مستندات تحتوي على كلمات: refund AND policy. أما الـ vector database فيجد عناصر معناها قريب: الاستعلام "كيف أسترد أموالي" يعيد المقطع المعنون "الإرجاع والاسترداد" رغم أن العبارتين لا تشتركان في أي كلمة.
| قاعدة البيانات العلائقية | البحث النصي الكامل | الـ vector database | |
|---|---|---|---|
| يسأل | أي الصفوف تطابق هذه القيمة؟ | أي المستندات تحتوي هذه الكلمات؟ | أي العناصر معناها قريب من هذا؟ |
| الفهرس | شجرة B على الأعمدة | فهرس معكوس على المصطلحات | بنية بيانية أو تجميعية على المتجهات (HNSW, IVF) |
| دقيق؟ | نعم | نعم | تقريبي غالبًا |
| يتفوّق في | المعرّفات، التواريخ، المبالغ، الربط بين الجداول | الأسماء، الرموز، العبارات الدقيقة | المرادفات، إعادة الصياغة، عبر اللغات، الصور |
| ضعيف في | المعنى | المعنى | المطابقة الدقيقة، العدّ، التصفية بالقيمة |
| أمثلة | Postgres, MySQL, SQLite | Elasticsearch, Lucene | Pinecone, Weaviate, Qdrant, Milvus, Chroma, pgvector |
يُظهر الصف الأخير كيف أن الفئة ضبابية. فـ pgvector يضيف أعمدة متجهية وفهرس HNSW إلى Postgres العادي، وElasticsearch يحمل حقل متجهات منذ الإصدار 7.0 عام 2019 وبحث HNSW منذ الإصدار 8.0 عام 2022. غالبًا ما يكون "الـ vector database" قدرة داخل قاعدة بيانات تشغّلها فعلًا لا منتجًا جديدًا، والمنتجات المستقلة تتنافس على الحجم والصقل التشغيلي، لا على فعل شيء لا يقدر عليه Postgres.
محادثة المستندات هي بحث متجهي مع نموذج في نهايته
التوليد المعزَّز بالاسترجاع، الذي يشرحه ما هو الـ RAG، يتضمّن خطوة بحث وخطوة كتابة. الـ vector database هو خطوة البحث.
- قسّم كل مستند إلى مقاطع من بضع مئات إلى ألف رمز.
- حوّل كل مقطع إلى embedding وخزّن المتجهات، مع نص المقطع ومصدره، في الـ vector database.
- عند وصول سؤال، حوّله إلى embedding واطلب من قاعدة البيانات أقرب المقاطع.
- سلّم تلك المقاطع إلى النموذج اللغوي مع السؤال، ودعه يكتب الإجابة.
الخطوتان 1 و2 تحدثان مرة واحدة، عند إضافة المستندات. الخطوتان 3 و4 تحدثان مع كل سؤال. النموذج اللغوي لا يرى المجموعة كاملة أبدًا، بل يرى المقاطع الخمسة أو العشرة التي اختارتها قاعدة البيانات. لهذا فإن جودة الإجابة لا تتجاوز جودة البحث: إذا كان أقرب متجه هو المقطع الخاطئ، يجيب النموذج بثقة عن السؤال الخاطئ، وهو ما يصنّفه ما هو الـ AI hallucination كخطأ استرجاع لا اختلاقًا.
متى تحتاجه، ومتى يكون إرسال الملف كاملًا أفضل
القرار يتعلّق بالحجم. النموذج لا يستطيع أن يعالج إلا نافذة السياق الخاصة به دفعة واحدة، وكل رمز داخلها له تكلفة في كل دورة. الـ vector database موجود ليضع فقط الجزء ذا الصلة أمام النموذج. لمستند واحد يتّسع كاملًا، الاسترجاع خطوة يمكنك تخطّيها؛ ولمجموعة لا تتّسع، هو الخيار الوحيد.
قارن التكلفة بين التصميمين على تقرير من 300,000 رمز، أي بضع مئات من الصفحات، بعد طرح عشرة أسئلة واسترجاع خمسة مقاطع من 1,000 رمز لكل سؤال. إرسال الملف كاملًا في كل مرة يعني 3 ملايين رمز إدخال. أما استرجاع خمسة مقاطع من 1,000 رمز لكل سؤال فهو 50,000 رمز. عند أسعار الإدخال المعلَنة في مؤشر تكلفة نماذج الذكاء الاصطناعي، المأخوذة من OpenRouter بتاريخ 2026-08-20، الفارق 60 ضعفًا على كل نموذج. التخزين المؤقت للـ prompt، حيث يوفّره المزوّد، يحتسب إعادة قراءة الملف نفسه بعُشر إلى نصف السعر المعلَن، ما يقلّص الفارق إلى نحو 6 إلى 30 ضعفًا. الاسترجاع لا يزال يفوز، لكن بفارق أقل.
تصميم الملف الكامل يشتري شيئًا بهذا المال عندما يتّسع الملف في الميزانية: عقد من 60 صفحة، أي نحو 40,000 رمز، يتيح للنموذج الإجابة عن أسئلة تحتاج المستند كاملًا في وقت واحد، مثل "هل يتناقض شيء هنا مع البند 14"، وهو سؤال لا يقدر الاسترجاع على طرحه لأنه لا يرى البند 14 والتناقض معًا في الدفعة نفسها. القاعدة التي تنتج عن ذلك: مستند واحد، أو حفنة منها، يُرسَل كاملًا؛ ومكتبة تمرّ عبر vector database. وبين الحالتين، قسّم الرفع حسب الموضوع ليحصل النموذج على القسم الذي يحتاجه.
Whizi يرسل النص نفسه، حتى دورة من 40,000 رمز
Whizi لا يشغّل vector database لمحادثتك. عندما ترفق ملفًا، مسار رفع المستندات يستخرج النص ويرسله إلى النموذج كنص prompt، حتى ميزانية ثابتة قدرها 40,000 رمز لكل دورة؛ ويُقتطَع أي رفع أطول، مع إشعار toast وعلامة داخل الرسالة توضّح ذلك. ملفات المشاريع تعمل بالطريقة نفسها: ميزة المشاريع تثبّت حتى 10 ملفات وتعيد بناء نصّها داخل الـ prompt مع كل رسالة، بحد أقصى 32,000 حرف لكل ملف و120,000 لكتلة المشروع كاملة.
الحدود هي حافة هذا التصميم. الملف المثبَّت الذي يتجاوز 32,000 حرف يُقتطَع، والمرفق الذي يتجاوز ميزانية 40,000 رمز للدورة يُقتطَع، والمشروع مجلّد لا مكتبة قابلة للبحث. هذه مقايضة متعمَّدة: لعقد أو ورقة بحثية تتّسع في ميزانية الدورة، وجود النص كاملًا أفضل من البحث فيه، والاختبار المهم، وهو أن تطلب من النموذج اقتباس المقطع الذي استخدمه، ينجح لأن المقطع موجود فعلًا. أما لألف مستند، فالـ vector database هو الأداة الصحيحة وتطبيق المحادثة هو الأداة الخاطئة.
عادتان تنتجان عن هذه الآلية. سمِّ الملف في سؤالك عند إرفاق أكثر من واحد، لأن النموذج يختار بصمت خلاف ذلك. وفي أي إجابة ستتصرّف بناءً عليها، اطلب الاقتباس. نظام الاسترجاع قد يعيد المقطع الخاطئ؛ ونظام الملف الكامل قد يجيب من الذاكرة بدلًا من الملف. الاقتباس يكشف الحالتين معًا.
- أرسِل مستندًا واحدًا كاملًا؛ وضع مجموعة خلف vector database
- قسّم أي رفع طويل حسب الموضوع ليحصل النموذج على القسم الذي يحتاجه السؤال
- اطلب من النموذج اقتباس المقطع الذي استخدمه قبل الاعتماد على الإجابة
- استخدم البحث النصي العادي للمعرّفات والرموز والعبارات الدقيقة؛ فالبحث المتجهي يطابق المعنى لا الحروف
- عامل خطأ الاسترجاع كمشكلة بحث: أعِد بناء الـ embedding بنموذج أفضل أو مقاطع أصغر قبل تحميل نموذج الكتابة المسؤولية
الأسئلة الشائعة
ما هو الـ vector database بعبارة بسيطة؟
مخزن لقوائم الأرقام التي يستخدمها نموذج الذكاء الاصطناعي لتمثيل المعنى، مصمَّم ليجد أقرب التطابقات بسرعة. تعطيه embedding سؤال فيعيد لك الـ embeddings، والنص خلفها، التي تعني شيئًا مشابهًا. إنه النصف الخاص بالبحث من محادثة المستندات كلما كانت المجموعة أكبر من أن تُرسَل كاملة.
هل أحتاج vector database لاستخدام الذكاء الاصطناعي مع مستنداتي؟
فقط إذا لم تتّسع المستندات في نافذة سياق النموذج. يمكن إرسال تقرير أو عقد واحد إلى النموذج كاملًا، وهذا ما يفعله Whizi مع المرفقات وملفات المشاريع المثبَّتة. أما مكتبة من آلاف المستندات فتحتاج استرجاعًا، والاسترجاع يحتاج فهرسًا متجهيًا، سواء في منتج مخصَّص أو إضافة على Postgres مثل pgvector.
ما الفرق بين الـ vector database وقاعدة البيانات العادية؟
قاعدة البيانات العادية تطابق القيم: هذا المعرّف، هذا التاريخ، هذه الكلمة الدقيقة. أما الـ vector database فيطابق المعنى، ويعيد العناصر المخزَّنة التي تقع embeddings الخاصة بها الأقرب إلى الاستعلام. غالبًا ما يكون تقريبيًا، مستخدمًا فهرسًا مثل HNSW يفحص بضع مئات من المرشّحين بدلًا من كل عنصر، وهو ضعيف في المطابقة الدقيقة التي تتقنها قاعدة البيانات العادية.
ما أكثر قواعد بيانات المتجهات استخدامًا؟
Pinecone وWeaviate وQdrant وMilvus وChroma هي المنتجات المستقلة الشائعة، وpgvector يضيف القدرة نفسها إلى Postgres. Elasticsearch وOpenSearch يقدّمان أيضًا بحثًا متجهيًا. الاختيار عادة تشغيلي، يتعلّق بالحجم والاستضافة، لأن جميعها ينفّذ فكرة أقرب الجيران التقريبية نفسها.
كم يوفّر الاسترجاع مقارنة بإرسال الملف كاملًا؟
عشرة أسئلة على تقرير من 300,000 رمز تكلّف $6.00 على Claude Sonnet 5 إذا أُرسل الملف مع كل دورة، و$0.10 إذا استُرجعت خمسة مقاطع من 1,000 رمز بدلًا من ذلك، بأسعار OpenRouter المعلَنة المأخوذة بتاريخ 2026-08-20. على GPT-5.6 Luna النسبة نفسها هي $0.60 مقابل $0.01. النسبة 60 ضعفًا على كل نموذج لأن التصميمين يدفعان السعر نفسه لكل رمز.