وحدة NGT Memory تُظهر كيف يمكن منح نماذج LLM ذاكرة دائمة دون قاعدة بيانات متجهية
NGT Memory وحدة ذاكرة مفتوحة المصدر لنماذج LLM، تحفظ الحقائق المتعلقة بالمستخدم بين الجلسات وتضيفها إلى إجابات النموذج. تعتمد الوحدة على بحث بتشابه جيب التمام، ورسم بياني ترابطي، وملف مستخدم منظَّم، ومرشِّح للضوضاء. وفي الاختبارات رفعت النظام دقة المعلومات الواقعية إلى الضعف، وفاز في 17 من أصل 18 سيناريو A/B، لكنه ما زال يعمل ضمن ذاكرة عملية واحدة فقط. يقدّم المشروع حلاً عمليًا لمشكلة قديمة في نماذج LLM: كيف لا تنسى الحقائق المهمة عن المستخدم بين الجلسات. فبدلاً من توسيع نافذة السياق بلا حدود، تحفظ الوحدة الحقائق وتبني ملفًا للمستخدم وتُدرج الذاكرة في إجابة النموذج. لكن النسخة الحالية تخزّن كل شيء في الذاكرة العشوائية لعملية واحدة، ولذلك تُفقد الحالة عند إعادة تشغيل الحاوية. كما أن الذاكرة المحلية سريعة، إذ تستغرق نحو 2–3 مللي ثانية على CPU، بينما يأتي التأخير الرئيسي من استدعاءات التضمين والمحادثة الخارجية.
معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
يقدّم مشروع NGT Memory مفتوح المصدر إجابة أكثر عملية عن مشكلة قديمة في نماذج LLM: كيف لا تنسى الحقائق المهمة عن المستخدم بين الجلسات. فبدلاً من توسيع السياق بلا حدود، تحفظ الوحدة الحقائق، وتبني ملفًا للمستخدم، وتُدرج الذاكرة في إجابة النموذج.
كيف تعمل الذاكرة
ينطلق مؤلف المشروع من فكرة بسيطة: الاحتفاظ بتاريخ المحادثة كاملاً في نافذة السياق أمر مريح إلى أن يُستنفد حد الرموز (tokens) الأول. بعد ذلك تبدأ المشكلات: اقتطاع الرسائل القديمة، أو التلخيص الذي يُفقد التفاصيل، أو ربط قاعدة بيانات متجهية خارجية بما يضيفه ذلك من بنية تحتية زائدة. يقترح NGT Memory مسارًا مختلفًا: الذاكرة تعمل داخل عملية Python نفسها، وتُشغَّل عبر REST API وDocker، ولا تتطلب قاعدة بيانات منفصلة عند البدء. الفكرة هي استخراج الحقائق التي يحتاجها النموذج فعلاً في الطلب الحالي، لا المحادثة بأكملها.
- يبحث تشابه جيب التمام عن الحقائق المتقاربة في المعنى
- يربط الرسم البياني الترابطي بين المفاهيم، مثل «نباتي» و«مطاعم»
- يرقّي الدمج الهرمي الحقائق كثيرة الاستخدام إلى الذاكرة طويلة الأمد
- يضع الملف المنظَّم العمر والمدينة والنظام الغذائي والحساسية في خانات مستقلة
وفوق الذاكرة النصية، تبني الوحدة ملفًا للمستخدم. فإذا كتب الشخص بشكل متفرق، يمكن للنظام أن يجمع أجزاء مثل «عمري» + «30» + «سنة» في حقيقة واحدة ذات معنى، ويحفظها بدرجة ثقة منخفضة. وإذا نشأ تعارض لاحقًا، كأن ينخفض العمر فجأة، يُحظر التحديث إلى أن يصدر تصحيح صريح مثل «لقد أخطأت». وبذلك لا تتصرف الذاكرة كسجل سلبي، بل كطبقة تحقق تحاول التمييز بين بيانات المستخدم الحقيقية والضوضاء العشوائية.
نتائج الاختبارات
أهم ما في المقال ليس البنية بحد ذاتها، بل اختبارها على سيناريوهات عملية. ففي تجربة شملت مساعدًا طبيًا ومساعدًا شخصيًا ودعمًا فنيًا، رفع وضع الذاكرة دقة المعلومات الواقعية من 1.22 إلى 2.44 نقطة من 3. وفي اختبار A/B أقرب إلى الواقع، فازت الذاكرة في 17 من أصل 18 تقييمًا، وبلغ متوسط تقييم الإجابة 0.889 مقابل 0.056 بدون ذاكرة. كما أجرى المؤلف 54 اختبارًا على الحالات الحدية، ونجح منها 51، أي نحو 94%.
«الرد على القمامة هو قمامة أيضًا».
تفسّر هذه العبارة طبقة مهمة أخرى في النظام: مرشِّح الجودة. فلا تدخل الذاكرةَ الرسائلُ القصيرة عديمة المعنى، ولا الأرقام المجردة، ولا الرموز الخاصة، وحتى ردود المساعد على هذه القمامة. وإلا غرقت الحقائق المفيدة سريعًا في الضوضاء. ويكتسب هذا المرشِّح أهمية خاصة في روبوتات المحادثة والأنظمة الوكيلة، حيث يكتب المستخدم غالبًا بشكل مقتضب ومبتور، وحيث يميل النموذج نفسه إلى توليد عبارات مهذبة لكنها فارغة، تلوّث النتائج عند البحث التالي في الذاكرة.
أبرز القيود
رغم النتائج الجيدة، لا يمكن حتى الآن اعتبار NGT Memory ذاكرة عامة جاهزة للإنتاج (production) دون تحفظات. فالنسخة الحالية تخزّن كل شيء في الذاكرة العشوائية لعملية واحدة، ولذلك تُفقد الحالة بعد إعادة تشغيل الحاوية. وعند تشغيل عدة عمليات عاملة (workers) تظهر مشكلة أخرى: كل عملية تحتفظ بمخزن جلسات خاص بها، وقد يصل طلب الحفظ إلى عملية، بينما يصل طلب الاستخراج إلى عملية أخرى. وفي الاختبارات تعمل الذاكرة المحلية بسرعة، بنحو 2–3 مللي ثانية على CPU، لكن التأخير الرئيسي يأتي من استدعاءات التضمين والمحادثة الخارجية التي تستغرق مئات المللي ثانية.
ويصف المؤلف أيضًا أخطاء أكثر واقعية. فقد أدى system prompt المتساهل أكثر من اللازم إلى أن يرى النموذج الذاكرة لكنه يتجاهلها باعتبارها تلميحًا اختياريًا. وبعد تشديد التعليمات أصبحت الإجابات أكثر ثباتًا. وجاءت حالة مزعجة أخرى من regex استخراج الاسم: فالنمط من نوع I’m + name بدأ يعدّ كلمات مثل allergic اسمًا. وتُظهر هذه التفاصيل أن ذاكرة LLM لا تتوقف عند الاسترجاع (retrieval) وحده، بل تعتمد على عدد كبير من القواعد الصغيرة التي بدونها ينهار العرض التجريبي سريعًا في حوار حقيقي.
ماذا يعني ذلك
يُظهر NGT Memory تحولاً مفيدًا في النهج المتبع لتطبيقات LLM: لا يكفي أن تكون الذاكرة «ذكية»، بل يجب أن تكون قابلة للتحقق، ومنخفضة التكلفة، ومقاومة للضوضاء. وهذه إشارة جيدة لمطوّري الروبوتات ووكلاء الذكاء الاصطناعي إلى أن طبقة السياق طويل الأمد يمكن بناؤها الآن كوحدة هندسية مستقلة، لا كمجموعة حلول ترقيعية متفرقة.
أسئلة وأجوبة حول الخبر
ما أبرز التفاصيل حول كيف تعمل الذاكرة؟
ينطلق مؤلف المشروع من فكرة بسيطة: الاحتفاظ بتاريخ المحادثة كاملاً في نافذة السياق أمر مريح إلى أن يُستنفد حد الرموز (tokens) الأول. بعد ذلك تبدأ المشكلات: اقتطاع الرسائل القديمة، أو التلخيص الذي يُفقد التفاصيل، أو ربط قاعدة بيانات متجهية خارجية بما يضيفه ذلك من بنية تحتية زائدة. يقترح NGT Memory مسارًا مختلفًا: الذاكرة تعمل داخل عملية Python نفسها، وتُشغَّل عبر REST API وDocker، ولا تتطلب قاعدة بيانات منفصلة عند البدء. الفكرة هي استخراج الحقائق التي يحتاجها النموذج فعلاً في الطلب الحالي، لا المحادثة بأكملها. يبحث تشابه جيب التمام عن الحقائق المتقاربة في المعنى يربط الرسم ال
ما أبرز التفاصيل حول نتائج الاختبارات؟
أهم ما في المقال ليس البنية بحد ذاتها، بل اختبارها على سيناريوهات عملية. ففي تجربة شملت مساعدًا طبيًا ومساعدًا شخصيًا ودعمًا فنيًا، رفع وضع الذاكرة دقة المعلومات الواقعية من 1.22 إلى 2.44 نقطة من 3. وفي اختبار A/B أقرب إلى الواقع، فازت الذاكرة في 17 من أصل 18 تقييمًا، وبلغ متوسط تقييم الإجابة 0.889 مقابل 0.056 بدون ذاكرة. كما أجرى المؤلف 54 اختبارًا على الحالات الحدية، ونجح منها 51، أي نحو 94%. «الرد على القمامة هو قمامة أيضًا». تفسّر هذه العبارة طبقة مهمة أخرى في النظام: مرشِّح الجودة. فلا تدخل الذاكرةَ الرسائلُ القصيرة عديمة المعنى، ولا الأرقام المجردة، ولا الرموز الخاصة،
ما أبرز التفاصيل حول أبرز القيود؟
رغم النتائج الجيدة، لا يمكن حتى الآن اعتبار NGT Memory ذاكرة عامة جاهزة للإنتاج (production) دون تحفظات. فالنسخة الحالية تخزّن كل شيء في الذاكرة العشوائية لعملية واحدة، ولذلك تُفقد الحالة بعد إعادة تشغيل الحاوية. وعند تشغيل عدة عمليات عاملة (workers) تظهر مشكلة أخرى: كل عملية تحتفظ بمخزن جلسات خاص بها، وقد يصل طلب الحفظ إلى عملية، بينما يصل طلب الاستخراج إلى عملية أخرى. وفي الاختبارات تعمل الذاكرة المحلية بسرعة، بنحو 2–3 مللي ثانية على CPU، لكن التأخير الرئيسي يأتي من استدعاءات التضمين والمحادثة الخارجية التي تستغرق مئات المللي ثانية. ويصف المؤلف أيضًا أخطاء أكثر واقعية. فق
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
أهم ما في عالم الذكاء الاصطناعي — مرة كل أسبوع
سبع قصص مهمة فعلاً هذا الأسبوع، مختارة بعناية. بلا ضجيج ولا بيانات صحفية.
تم! تحقق من بريدك للتأكيد.