أتذكّر بوضوح أنني كنت صغيراً، في العاشرة أو الحادية عشرة، حين كنا نعيش في بونتا ديلغادا، وكنت أعود إلى البيت متحمّساً جداً لمشاهدة الأفلام الوثائقية على قناتَي History وDiscovery. كل يوم، بلا استثناء، كان رأسي يحفظ آلاف التفاصيل: «آه، كان لدى الإغريق القدماء في بعض المعابد آلات توزّع الماء المبارك مقابل قطع نقدية!». سنوات وسنوات كوّنت فيها عادة ما زلت محتفظاً بها حتى اليوم. في هذه السنوات الـ36 الأخيرة (تقريباً)، لا بد أنني شاهدت عشرات الآلاف من الأفلام الوثائقية ومقاطع التواصل العلمي والتاريخ والفلسفة وموضوعات أخرى. والحقيقة (الواضحة) أن 99.9% مما سمعته ورأيته وقرأته لم يبقَ في أي مكان في رأسي.
هناك وقائع بقيت، إما لأنها طريفة كحكاية آلات الإغريق، أو لأنني دوّنتها وعدت إلى قراءتها في النهاية، أو لأنني استوعبتها إلى حدّ أنها صارت جزءاً من معرفتي العامة، أو لأنها مرتبطة بذكريات أخرى مؤثّرة، أو لأن الذكرى ما زالت حديثة.
يمكننا أن نستخلص من هذا تشبيهاً مثيراً للاهتمام، وإن لم يكن تطابقاً. فالنماذج الأساسية (foundation models، أي نماذج ذكاء اصطناعي مدرَّبة على كميات كبيرة من البيانات المتنوّعة، ويمكن تكييفها لمهام مختلفة) لا يتوفر لها كل شيء في كل لحظة هي الأخرى. لكن يجدر بنا أن نميّز المعرفة المكتسبة أثناء التدريب من السياق النشط، أي المعلومات التي تتلقّاها في استدعاء معيّن للنموذج.
حين تُدرَّب، تتعرّض لبيانات تفوق ما يستطيع أي إنسان استهلاكه طوال حياته. وينضمّ جزء من هذا المحتوى إلى خليط المعرفة الأساسية للنموذج. بل إن النماذج، كالبشر، قد تستوعب الأخبار الزائفة والأفكار الخاطئة.
في الاستخدام اليومي العادي، تجمع النماذج بين هذه المعرفة الأساسية وسلسلة من مصادر السياق. فإذا أردت أن يؤتمت وكيل ذكاء اصطناعي فرز صندوق بريدي الإلكتروني وترتيب أولوياته، فسيستخدم المعرفة الأساسية التي يحملها، ومعرفة العملية (التعليمات) التي أعطيتها له، وبيانات الرسائل نفسها (معرفة المهمة المحدّدة). لكننا هنا نتعثّر بأحد أكبر قيود هذه التكنولوجيا: للنماذج نافذة سياق محدودة. هناك نماذج رائدة بنوافذ تقارب مليون رمز (tokens). ويقابل كل رمز، في المتوسط وعلى سبيل التقريب في النصوص الإنجليزية، نحو أربعة أحرف. ومليون رمز إذن يعادل تقريباً مرة ونصفاً نصّ المجلدات الثلاثة من سيد الخواتم بلغتها الإنجليزية الأصلية.
أعرّف الوكيل هنا بأنه برنامج يستخدم نموذجاً أساسياً (foundation model، أو FM) لاتخاذ القرارات واستخدام الأدوات. وفي كل مرة يحتاج فيها إلى تلقّي معلومات واتخاذ قرار، يستدعي النموذج. والمعلومات التي لا تُدرج في ذلك الاستدعاء لن تكون متاحة بوصفها سياقاً، حتى لو ظهرت في استدعاء سابق. وقد تطوّر القطاع للالتفاف على هذا القيد. أسمّي هنا مجموعة الممارسات المستخدمة لتمرير السياق اللازم، حين يلزم، إلى الوكيل: تقنيات إدارة السياق. ومن الأفكار الأساسية الإفصاح التدريجي عن المعلومات (progressive disclosure of information)، أي طريقة تقديم السياق على مراحل مع مرور الوقت، مصحوبةً بأدوات تتيح للوكيل جلب المعلومات التي يحتاج إليها.

لأن هذا المجال كله حديث نسبياً، لا يوجد حلّ واحد يناسب الجميع (one-size-fits-all). ثمة عدة أساليب شائعة في القطاع، ومن أكثرها استخداماً التوليد المعزّز بالاسترجاع (Retrieval-Augmented Generation، أو RAG). وبهذه التقنية، تُقسَّم المستندات عادةً إلى مقاطع وفق معايير مختلفة: حجم ثابت، أو سياق دلالي، أو تراتبية المستند، وغير ذلك. وكثيراً ما تُحوَّل هذه المقاطع إلى تمثيلات رقمية نسمّيها التضمينات (embeddings).1 وعند الحاجة، يبحث الوكيل في هذه المعلومات، فيتلقّى المقاطع التي تُعدّ ذات صلة بمهمته ويستخدمها لتوليد الإجابة. وعادةً ما يمكنه إجراء بحث معجمي (يبحث عن مصطلحات محدّدة)، أو دلالي (يبحث عن مقاطع معانيها قريبة مما تطلبه المهمة)، أو هجين (كلاهما). وهذا ممتاز حين يلزم العثور على معلومات محدّدة في مستندات كبيرة جداً، كما في المثال الكلاسيكي لاستخراج معلومات ذات صلة من عقد من 500 صفحة. لكن حتى لو أحسن الوكيل صياغة البحث، فقد لا يتلقّى كل المقاطع اللازمة لإنجاز المهمة، فيبقى سياقه ناقصاً. ومع ذلك، ما زال الحديث عن هذه التقنية كثيراً في القطاع والأوساط الأكاديمية على حدّ سواء، وقد استُخدمت في كل حالات التنفيذ التي رأيتها تقريباً.
لكنها ليست الطريقة الوحيدة. فقد اقترح أندريه كارباثي، أحد أكثر الأسماء استشهاداً في عالم الذكاء الاصطناعي التوليدي هذا، LLM Wiki.2 تستخدم هذه المقاربة ملفات Markdown (.md)، وهي مجرد ملفات نصية بتنسيق محدّد، للاحتفاظ بفهرس وبصفحات مترابطة من المعرفة المستخلصة من المصادر. ويستطيع الوكيل الرجوع إلى الصفحات ذات الصلة كاملةً حين يحتاج إليها. وهذا يعادل ما أفعله حين أرجع إلى دليل استخدام جهاز جديد فأقرأ، بالاختيار من الفهرس، المراجع التي تهمّني وحدها. وقد كانت مقاربتي المفضّلة في حالات استخدام عدة، لاتساقها ولسهولة صيانتها أو تعديلها يدوياً. غير أنها قد تخلق، في حالات الاستخدام المعقّدة، عبء صيانة أكبر من، مثلاً، توليد التضمينات لنسخة جديدة من مستند وتحديث الفهرس. يمكننا إنشاء خطوط معالجة (pipelines) لتقطير المعلومات (أعني تقليل كمية النص مع الحفاظ على كثافة المعلومات) لصيانة LLM Wiki. وهذا بالضبط ما يقترحه كارباثي. لكن من واقع تجربتي، ما زال هذا التقطير للمعلومات معرّضاً للخطأ إلى حدّ كبير من جانب النماذج، التي كثيراً ما تفوتها دقائق المعلومات الأصلية والرؤية الشاملة لهدف المستند. وسرعان ما يصبح جهد التنسيق والتنقيح ثقيلاً.
وأخيراً، بما أن النص طال بالفعل ولا أريد أن أُحبط من قرأه حتى هنا، أودّ أن أمرّ سريعاً بمقاربة GraphRAG، أو Graph Retrieval-Augmented Generation. ربما نبدأ بتعريف المخطَّط (graph): بنية رياضية أو حاسوبية تتكوّن من مجموعة من الرؤوس (العُقد) تربط بينها أضلاع (أو روابط)... استراحة لالتقاط الأنفاس. بتبسيط، هو طريقة لتمثيل المعلومات والعلاقات بين البيانات، كما في الأسفل. ومن الأمثلة الجيدة الشبكة الاجتماعية، حيث قد توجد أسماء أشخاص عدة مرتبطين ببعضهم، لكن للروابط اتجاهاً: جواكينا تتابع مانويل، الذي يتابع راميرو، الذي يتابع بدوره جواكينا. ولا يعني ذلك أن مانويل يتابع جواكينا، ولا أن جواكينا تتابع راميرو. الأشخاص هم العُقد، والروابط هي المتابعات (follows). يمكن أن يكون للمعلومات اتجاه، والعلاقات صريحة.
يعني السهم من أ إلى ب أن «أ يتابع ب». والعلاقة المعاكسة ليست ضمنية.
يستخدم GraphRAG مخطَّطاً معرفياً، فيه كيانات (مفاهيم وأشياء وأشخاص) وعلاقات بينها، لبناء شبكة يمكن الاستعلام فيها. ويسهّل ذلك على الوكيل أن يسلك مسار بحث عبر هذه العلاقات بحثاً عن معلومات لإتمام مهمة ما. ثم تُمرَّر المعلومات التي يعثر عليها إلى النموذج بوصفها سياقاً لإنتاج الإجابة. وقد تكون هذه القدرة مفيدة خصوصاً حين يلزم الربط بين معلومات من مستندات عدة. وكما في المقاربات الأخرى، لا بد من تنسيق المعلومات والعلاقات وتنقيحها، ولا سيما حين يُنتجها الوكيل بنفسه. فمثلاً، إذا كانت العلاقات خاطئة أو ناقصة أو قديمة، فقد يُغفل الوكيل معلومات مهمة أو يبني إجابته على روابط لم يعد لها معنى. حدث لي أن طبّقت هذه المقاربة فانتهيت إلى شبكة معقّدة إلى حدّ أنني لم أعد أفهم ما فيها، لا أنا ولا الوكيل (تحيّة للسيد ألفريدو).
هذه المقاربات الثلاث لا يُقصي بعضها بعضاً، وقد يستخدم مشروع تنفيذ مؤسسي معقّد نسبياً وذو نهج ناضج المقاربات الثلاث جميعها في نهاية المطاف، بحسب الحالة. فيمكن البحث في wiki عبر RAG، وGraphRAG نفسه طريقة لدعم التوليد بمعلومات مسترجَعة. وإليكم خلاصة نموذجي الذهني بشأن متى تُستخدم كل منها:
| التقنية | التعريف | متى أستخدمها | أبرز القيود |
|---|---|---|---|
| RAG على المستندات | يسترجع مقاطع ذات صلة من المستندات ويمرّرها إلى النموذج بوصفها سياقاً. | حين أحتاج إلى تحديد موضع معلومات محدّدة في مجموعة كبيرة أو كثيرة التغيّر، مثل بنود العقود أو التوثيق التقني. | قد لا يسترجع مقطعاً حاسماً، أو قد يفصل قاعدةً عن استثنائها. ويتطلّب انتباهاً إلى تقسيم المستندات والبحث وتحديث الفهرس. |
| LLM Wiki | يحتفظ بصفحات مترابطة تلخّص معرفة من مصادر عدة للرجوع إليها وإعادة استخدامها. | حين أراكم معرفة حول موضوع أو مشروع، وأريد إعادة استخدام شروح وقرارات وروابط سبق العمل عليها. | قد يفقد التلخيص بعض الدقائق أو يكرّس الأخطاء. وتتطلّب التحديثات والتناقضات تنسيقاً وتنقيحاً، ويظل الرجوع إلى wiki مرهوناً بالعثور على الصفحات الصحيحة. |
| GraphRAG | يستخدم علاقات صريحة بين الكيانات للعثور على المعلومات التي تدعم الإجابة وتنظيمها. | حين يعتمد السؤال على روابط بين أشخاص أو مفاهيم أو قرارات أو مكوّنات، كثيراً ما تكون موزّعة على مستندات عدة. | تؤثّر العلاقات الخاطئة أو المفقودة في البحث. وقد يكون بناء المخطَّط وصيانته أمراً معقّداً، ووجود روابط أكثر لا يضمن سياقاً أفضل. |
لكن موضوع إدارة السياق لا ينتهي هنا. هذا مجرد المقال الأول في سلسلة سأتناول فيها هذا الموضوع. وسنتحدث مستقبلاً عن التخزين المؤقت (caching)، والضغط (compaction)، وتشذيب السياق (context pruning)، وعزل السياق باستخدام وكلاء فرعيين. نلتقي قريباً.
-
لا يتطلّب RAG تضمينات (embeddings) دلالية. فالبحث المعجمي البحت، مثلاً باستخدام BM25، يستخدم المصطلحات وإحصاءات تكرارها؛ وفي البحث الهجين، يُدمج هذا المكوّن مع البحث الدلالي. انظر شرح البحث المعجمي والدلالي والهجين لدى Anthropic. ↩
-
يعني LLM نموذج اللغة الكبير (large language model). والتسميتان متداخلتان لكنهما ليستا مترادفتين: فـLLM يصف نموذجاً محوره اللغة، أما FM فيبرز استخدامه أساساً قابلاً للتكييف مع مهام متعددة. وكثير من نماذج اللغة الكبيرة متعددة الأغراض نماذج أساسية (foundation models)، لكن هناك أيضاً نماذج أساسية للصور والصوت وأنماط أخرى. انظر تعريف Stanford CRFM. ↩