مجموعة بيانات البحث المتجهي لـ Hacker News | وثائق ClickHouse تتضمن مجموعة بيانات Hacker News 28.74 مليون منشور وتمثيلاتها المتجهة، التي تم إنشاؤها باستخدام نموذج SentenceTransformers all-MiniLM-L6-v2. يبلغ بعد كل متجه تمثيلي 384 بعدًا. يمكن استخدام هذه المجموعة لاستكشاف جوانب التصميم وتقدير الحجم والأداء في تطبيقات البحث المتجهي على نطاق واسع، مبنية على بيانات نصية مُولَّدة من المستخدمين. تُقدَّم المجموعة الكاملة مع التمثيلات المتجهة من قِبل ClickHouse كملف واحد بصيغة Parquet في مستودع S3. ننصح المستخدمين بإجراء تمارين تقدير حجم التخزين والذاكرة قبل البدء، وفقًا للتوثيق. لإنشاء الجدول، استخدم الأمر التالي: CREATE TABLE hackernews( id Int32, doc_id Int32, text String, vector Array(Float32), node_info Tuple( start Nullable(UInt64), end Nullable(UInt64)), metadata String, type Enum8('story' = 1, 'comment' = 2, 'poll' = 3, 'pollopt' = 4, 'job' = 5), by LowCardinality(String), time DateTime, title String, post_score Int32, dead UInt8, deleted UInt8, length UInt32 ) ENGINE = MergeTree ORDER BY id; يُعد الحقل id عددًا تسلسليًا، بينما يمكن استخدام الحقول الإضافية في التصفية المسبقة أو اللاحقة لدمج البحث المتجهي مع تصفية البيانات، كما هو موضح في الوثائق. لإنشاء متجه بحث، استخدم نموذج Sentence Transformers لتحويل الجمل إلى تمثيلات متجهة. تُحتوي المجموعة على تمثيلات متجهة مُولَّدة من نموذج all-MiniLM-L6-v2. يُقدَّم مثال بسيط بلغة بايثون لاستخدام حزمة sentence_transformers لاستخراج المتجهات، ثم تمريرها كمُعامل إلى دالة cosineDistance() في استعلام SQL. يُظهر المثال نتائج البحث المتماثل، حيث تُعرض أول 100 حرف من أبرز 20 منشورًا. كما يُقدَّم تطبيق تلخيص تجريبي يُظهر استخدام الذكاء الاصطناعي التوليدي. يُنفَّذ التطبيق باتباع الخطوات التالية: يُدخل المستخدم موضوعًا. يُولَّد متجه تمثيل لهذا الموضوع باستخدام نموذج all-MiniLM-L6-v2. يُستَخدم البحث المتجهي لاسترجاع المنشورات والتعليقات ذات الصلة من جدول hackernews. تُستخدم مكتبة LangChain وواجهة OpenAI gpt-3.5-turbo لكتابة ملخص مُوجز للمحتوى المُسترجع. يُعدّ هذا المحتوى المُسترجع حجر الزاوية في تطبيقات الذكاء الاصطناعي التوليدي. يُظهر المثال تجربة تشغيل تُظهر ملخصًا لمنشورات حول "تجارب أداء ClickHouse"، يُبرز مقارنات مع قواعد بيانات مثل TimescaleDB وAWS Redshift وQuestDB، مع التأكيد على كفاءة ClickHouse في الأداء وفعالية التكلفة، رغم التحديات في دعم عمليات DML والنسخ الاحتياطي. يُشترط لتشغيل التطبيق توفر مفتاح API من OpenAI، يمكن الحصول عليه من منصة https://platform.openai.com. يُعد هذا النموذج مُلائمًا لتطبيقات متعددة في المؤسسات، مثل تحليل مشاعر العملاء، أتمتة الدعم الفني، تحليل المحادثات، الوثائق القانونية، السجلات الطبية، محاضر الاجتماعات، التقارير المالية، وغيرها. يُقدَّم الكود الكامل للتطبيق، يشمل توليد المتجهات، استعلام ClickHouse، تقسيم النص، وتشغيل نموذج OpenAI لكتابة الملخص، مع دعم تلقائي لحساب عدد الرموز واتباع سلسلة من التحديدات لضمان الأداء الأمثل.
يقدم مشروع Hacker News Dataset مجموعة بيانات ضخمة تضم 28.74 مليون منشورًا مع تمثيلات متجهة ( embeddings ) تم إنشاؤها باستخدام نموذج SentenceTransformers all-MiniLM-L6-v2، حيث تكون أبعاد كل متجه 384 بعدًا. تم توفير البيانات كملف واحد بصيغة Parquet في مستودع S3 من قبل ClickHouse، مما يتيح استخدامها في تجارب بحث متجهي على نطاق واسع باستخدام بيانات نصية منشأة من المستخدمين. لإنشاء الجدول المناسب في ClickHouse، يتم استخدام أمر CREATE TABLE مع تحديد هيكل بيانات يشمل الحقول الأساسية مثل المعرف الفريد (id)، النص الأصلي (text)، المتجه المميز (vector)، نوع المنشور (type)، والبيانات الوصفية الأخرى مثل الوقت والمؤلف (by) والنقاط (post_score). يتم استخدام محرك MergeTree مع ترتيب حسب id لضمان أداء عالي في الاستعلامات. لتنفيذ بحث متجهي، يتم استخدام دالة cosineDistance في استعلام SQL، حيث يتم إدخال متجه بحث مُنشأ من نفس النموذج (all-MiniLM-L6-v2) باستخدام مكتبة sentence-transformers في بيئة Python. يُمكن للمستخدمين تجربة البحث عن المنشورات ذات الصلة باستخدام نص بحثي، حيث تُرتّب النتائج حسب التشابه الدلالي. كما يُقدّم مثال تطبيقي لتطبيق ذكاء اصطناعي توليدي، حيث يُدخل المستخدم موضوعًا (مثل "ClickHouse performance experiences")، ثم يُولّد متجه بحث، ويُستخرج أبرز المنشورات ذات الصلة عبر بحث متجهي في جدول Hacker News. بعد ذلك، تُستخدم مكتبة LangChain مع واجهة برمجة تطبيقات OpenAI (gpt-3.5-turbo) لتحليل النصوص المستخرجة وتوليد ملخص موجز لا يتجاوز 10 جمل، مع مراعاة حدود عدد الرموز (tokens) لتجنب تجاوز سعة النموذج. يُظهر التطبيق قدرة على دمج البحث المتجهي مع الذكاء الاصطناعي التوليدي، مما يفتح آفاقًا لتطبيقات في مجالات متعددة مثل تحليل مشاعر العملاء، دعم فني آلي، تحليل الوثائق القانونية والطبية، وتوثيق الاجتماعات. يتطلب التطبيق مفتاح API من OpenAI، ويُمكن تنفيذه بسهولة عبر بيئة Python مع تثبيت المكتبات اللازمة مثل clickhouse-connect وlangchain وtiktoken. هذا المشروع يُعد نموذجًا عمليًا لتطبيق بحث متجهي على نطاق واسع، ويُظهر كيفية دمج تقنيات الذكاء الاصطناعي الحديثة مع قواعد بيانات عالية الأداء مثل ClickHouse لبناء حلول ذكية وفعالة في بيئات البيانات الكبيرة.
