HyperAI
Back to Headlines

بناء وتقييم الرسومات المعرفية مع نماذج اللغات الكبيرة: تعزيز استرجاع المعلومات واختراق البيانات المعقدة

منذ 16 أيام

بناء واستعلام الجرافات المعرفية باستخدام النماذج اللغوية الكبيرة (LLMs) ما هي الجرافات المعرفية؟ الجراف المعرفي يمكن تعريفه كتمثيل منظم للمعلومات يربط المفاهيم والكائنات والعلاقات بينها بطريقة تشبه الفهم البشري. يتم استخدامه غالبًا لتنظيم ودمج البيانات من مصادر مختلفة، مما يمكّن الآلات من الاستدلال والاستقراء واستعادة المعلومات ذات الصلة بشكل أكثر فعالية. في مقال سابق على Medium، ذكرت أن هذا النوع من التمثيل المنظم يمكن استخدامه لتعزيز أداء النماذج اللغوية الكبيرة (LLMs) في تطبيقات توليد الاستدلال (Retrieval Augmented Generation). يمكن تسمية هذه الاستراتيجيات بـ GraphRAG، وهي مجموعة من التقنيات والاستراتيجيات التي تتضمن تمثيلًا معرفيًا مستندًا إلى الجرافات لتوفير المعلومات بشكل أفضل للنماذج اللغوية الكبيرة مقارنة بالطرق التقليدية مثل "دردشة المستندات". مشكلات التطبيقات التقليدية في التطبيقات التقليدية التي تعتمد على التشابه اللفظي، يعتمد البحث على التشابه بين مدخلات المستخدم والنصوص الموجودة في قاعدة المعرفة. هذا يترك النموذج اللغوي الكبيروغير قادر على التعامل مع الإشارات العابرة أو الضمنية بين المستندات، مما يحد من قدرته على الاستدلال بين المستندات. الحل باستخدام الجرافات المعرفية يمكن حل هذه المشكلة من خلال الابتعاد عن التمثيلات اللفظية الصافية واستخدام طريقة شاملة لتنظيم قاعدة المعرفة. يتم استخراج المفاهيم من كل جزء من النص وتخزينها مع تتبع العلاقات بين قطع المعلومات المختلفة. البناء الفعلي للجراف المعرفي تقنية البناء تحميل الملفات: استخدام فئة Ingestor لاستنتاج نوع الملف وتحميل محتواه في شكل آلي. تنظيف وتقسيم المحتوى: تقسيم المحتوى النصي إلى أجزاء صغيرة (chunks) باستخدام فئة Chunker. استخراج الجراف: استخدام وكيل مخصص مدفوع بالنموذج اللغوي الكبير لاستخراج الجراف من كل جزء نصي. توثيق الأجزاء: الحصول على تمثيل متجهي لكل جزء نصي باستخدام فئة ChunkEmbedder. حفظ الأجزاء في الجراف: حفظ المستندات وأجزائها في مثيل من Neo4j، مع إنشاء عقد (nodes) وعلاقات (relationships) بينها. التقنيات المستخدمة Neo4j: قاعدة بيانات الجراف التي تخزن أيضًا التمثيلات المتجهية للأجزاء النصية. LangChain: إطار عمل ينسق كيفية تفاعل النماذج اللغوية الكبيرة مع أدوات مثل المؤشر المتجهي وقواعد البيانات المعرفية. LLMs + Embeddings: استخدام النماذج اللغوية الكبيرة والمتجهات المعرفية للبحث وتقديم الإجابات. Streamlit: مكتبة Python تساعد في بناء واجهة مستخدم خفيفة الوزن للاستعراض والتفاعل. Docker: أداة للتغليف (containerization) تسهل التطوير المحلي والنشر. الاستعلامات على الجراف المعرفي استراتيجيات الاستعلام الاستدلال المعزز (Enhanced RAG): يتم استخدام التمثيلات المتجهية للأجزاء النصية للبحث عن التشابه. يمكن تحسين السياق بتضمين الأجزاء المجاورة، مما يوفر إجابات أكثر تفصيلًا وسياقية. التقارير الجماعية (Community Reports): استخدام تقنيات التجميع الهيكلي للكشف عن مجتمعات العقد في الجراف. تلخيص هذه المجتمعات باستخدام النموذج اللغوي الكبير وتخزينها في مؤشر متجهي مختلف. الجمع بين السياقات المستخرجة من الأجزاء والتقارير الجماعية عند تقديم الإجابات، مما يوفر معلومات على مستوى المستندات ومستوى العلاقات بينها. استعلامات Cypher: تعليم النموذج اللغوي الكبير كيفية التنقل في الجраф باستخدام لغة الاستعلام Cypher. كتابة استعلامات Cypher لفحص العقد والكيانات والعلاقات بناءً على استفسارات المستخدم. المجتمع الفرعي (Community Subgraph): الجمع بين طرق التقارير الجماعية والاستعلامات Cypher. يظل هذا النهج في مرحلة التطور، حيث يتطلب المزيد من البحث والتحسين. Cypher + RAG: الجمع بين الاستدلال المعزز والاستعلامات Cypher. هذا النهج يعتبر الأكثر اكتمالًا حاليًا، حيث يوفر إجابات شاملة ومتصلة. المقارنة بين الاستراتيجيات الدقة: تتفوق الاستراتيجيات التي تجمع بين Cypher و RAG على الاستراتيجيات الأخرى. التكلفة: الاستراتيجيات البسيطة مثل الاستدلال المعزز تكون أقل تكلفة. السرعة: الاستعلامات Cypher يمكن أن تكون أسرع في بعض الحالات، بينما يمكن أن تكون الاستراتيجيات المعقدة أبطأ. القابلية للتوسع: الاستراتيجيات المعقدة مثل المجتمع الفرعي تتطلب مزيدًا من الموارد للتوسع. الخاتمة في هذا المقال، قمنا بجولة كاملة حول بناء وتفاعل الجرافات المعرفية باستخدام النماذج اللغوية الكبيرة. بدأنا من تحميل المستندات وتنظيفها واستخراج الجراف منها، وحتى الاستعلام عنها عبر تطبيق توضيحي. إذا وجدت هذا المشروع مفيدًا أو لديك أفكار لتحسينه، فلا تتردد في المساهمة عبر فتح قضايا أو إرسال طلبات سحب. نبذة عن الشركة Neo4j هي شركة رائدة في مجال قواعد البيانات الجرافية، وتقدم أدوات قوية لبناء وتنظيم الجرافات المعرفية. LangChain هو إطار عمل مفتوح المصدر يساعد في تنسيق تفاعلات النماذج اللغوية الكبيرة مع الأدوات المختلفة. Ollama و Groq هما منصات مفتوحة المصدر توفر وصولًا مجانيًا إلى النماذج اللغوية الكبيرة والمتجهات المعرفية. Streamlit هو مكتبة Python بسيطة تتيح بناء واجهات مستخدم خفيفة الوزن بسرعة وسهولة. Docker هو أداة تساعد في تغليف التطبيقات وجميع اعتماداتها في حاويات قابلة للتنقل. شكراً لقراءتك حتى هذا الحد!

Related Links