Towards LLM-Assisted Architecture Recovery for Real-World ROS~2 Systems: An Agent-Based Multi-Level Approach to Hierarchical Structural Architecture Reconstruction
تقدم هذه الورقة نهجاً معززاً قائماً على الوكلاء ومتعدد المستويات لاستعادة البنى البرمجية الهرمية في أنظمة ROS 2 المعقدة والواقعية، وذلك عبر استخدام صياغة مطورة للمطالبات لنماذج اللغات الكبيرة (LLM) واستراتيجية استعادة مرحلية للتغلب على قيود الطرق الحالية القائمة على مستوى العقدة.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أن لديك مجموعة "ليجو" (Lego) ضخمة ومعقدة، تم بناؤها بواسطة فريق من الأشخاص على مدار عدة سنوات. لقد فُقد دليل التعليمات الأصلي، أو ربما لم يُكتب من الأساس. كل ما تملكه هو القطع المبعثرة، والعلب التي جاءت فيها، وبعض الملاحظات حول كيفية تركيبها معاً.
هدفك؟ إعادة بناء دليل التعليمات الأصلي لتتمكن من فهم كيف تعمل الآلة بأكملها، وكيف تتصل الأجزاء ببعضها البعض، وكيف تصلحها إذا تعطلت.
هذه الورقة البحثية تدور حول القيام بهذا الأمر بالضبط، ولكن بالنسبة لـ البرمجيات الروبوتية (تحديداً الأنظمة المبنية باستخدام أداة تسمى ROS 2).
المشكلة: التعليمات "الشبحية"
في عالم الروبوتات، غالباً ما تُكتب البرمجيات في أجزاء منفصلة. شخص ما يكتب كوداً للكاميرا، وآخر لذراع روبوت، وثالث لحزام ناقل. ويقومون بحفظ أعمالهم في ملفات مختلفة. أما "الغراء" الذي يربط هذه الأجزاء معاً — والذي يخبر الكمبيوتر أي قطعة يجب أن تبدأ أولاً وكيف يتواصلون مع بعضهم البعض — فهو مخفي داخل "ملفات الإطلاق" (launch files) وتعليقات الكود المبعثرة.
الأمر يشبه امتلاك وصفة حيث تُدرج المكونات في دفتر ملاحظات، لكن خطوات كيفية خلطها مخفية في دفتر آخر، ودرجة حرارة الفرن مكتوبة على منديل ورقي. إذا حاولت تخمين الوصفة كاملة بمجرد النظر إلى المكونات، فقد تخطئ. قد تعتقد أن الكعكة يجب أن تُخبز عند 500 درجة لأنك رأيت هذا الرقم في ملاحظة ما، بينما كان الرقم في الواقع مخصصاً لإضاءة الفرن.
سابقاً، حاول الباحثون استخدام الذكاء الاصطناعي (نماذج اللغات الكبيرة) لقراءة هذه الملاحظات المبعثرة وتخمين الوصفة الكاملة. لكن الذكاء الاصطناعي كان يصاب بالارتباك أحياناً، أو يختلق حقائق (يهلوس)، أو يفشل في فهم كيفية ترابط الأجزاء المختلفة بشكل هرمي (مثل آلة كبيرة مكونة من آلات أصغر).
الحل: نهج المحقق "المرحلي"
قام مؤلفو هذه الورقة بتحسين طريقة "المحقق الذكي" الخاصة بهم. فبدلاً من مطالبة الذكاء الاصطناعي بتخمين الصورة الكاملة دفعة واحدة، قاموا بتقسيم المهمة إلى ثلاث خطوات واضحة، باستخدام "مخطط" (مجموعة صارمة من القواعد) لإبقاء الذكاء الاصطناعي على المسار الصحيح.
فكر في الأمر كأنه موقع بناء يضم ثلاثة فرق متخصصة:
- الفريق الأول: جرد المحتويات (NodeAnalyzer)
أولاً، يقوم الذكاء الاصطناعي بمسح جميع ملفات الكود وإنشاء قائمة بسيطة: "إليك جميع أجزاء الروبوت الفردية التي وجدناها". يسرد كل ذراع روبوت، وكل كاميرا، وكل مستشعر، مع تحديد مكان وجود كل منها بدقة في الكود.
- التشبيه: هذا يشبه فرز جميع قطع الليجو في أكوام حسب اللون والشكل قبل البدء في البناء.
- الفريق الثاني: قراء المخططات (LaunchFileAnalyzer)
بعد ذلك، ينظر الذكاء الاصطناعي إلى "ملفات الإطلاق" (تعليمات تشغيل الروبوت). يستنتج أي الأجزاء يتم تشغيلها، وكيف يتم تسميتها، وكيف يتم تجميعها معاً. ويقوم بإنشاء خريطة للتبعيات: "الكاميرا تعمل قبل أن يتحرك الذراع، وكلاهما يقع ضمن مجموعة 'الرؤية' (Vision)".
- التشبيه: هذا يشبه قراءة تعليمات التجميع لمعرفة أي القطع تلتصق ببعضها لتكوين عجلة، وأي عجلات تُثبت في جسم السيارة.
- الفريق الثالث: كبار المهندسين المعماريين (SystemArchitectureTeam)
أخيراً، يأخذ الذكاء الاصطناعي القائمة من الأجزاء (من الفريق 1) وخريطة الاتصالات (من الفريق 2) ويبني الرسم التخطيطي النهائي رفيع المستوى. ولأن لديه القوائم الوسيطة، فإنه لا يحتاج للتخمين؛ بل يتبع الأدلة فقط.
- التشبيه: هذا يشبه المهندس المعماري الذي يرسم المخطط النهائي للمنزل المكتمل، وهو يعلم تماماً مكان كل طوبة وسلك لأنه يمتلك قائمة الجرد وملاحظات التجميع.
الاختبار: روبوت "BrickByBrick"
لاختبار هذه الطريقة الجديدة، استخدم الباحثون نظام روبوت حقيقي يسمى BrickByBrick. هذا الروبوت مصمم لتفكيك الهياكل المعقدة المصنوعة من مكعبات البناء. ويتكون من:
- ذراعين روبوتيين (Alice و Bob).
- كاميرات للرؤية.
- أحزمة ناقلة لتحريك القطع.
- "عقل" يخطط لكيفية سحب المكعبات دون كسرها.
كان هذا النظام أكثر تعقيداً بكثير من الأمثلة البسيطة التي استخدموها في أبحاثهم السابقة، حيث احتوى على أنواع عديدة ومختلفة من البرمجيات التي تعمل معاً.
النتائج
عملت الطريقة "المرحلية" الجديدة بشكل جيد جداً:
- الدقة: حدد الذكاء الاصطناعي بشكل صحيح كل جزء واتصال تقريباً (دقة بنسبة 98% في الخريطة المعقدة على مستوى النظام).
- الموثوقية: لم يختلق أي اتصالات وهمية؛ فكل اتصال رسمه كان مدعوماً بأدلة من الكود الفعلي.
- التحسن: كان أفضل بكثير في فهم كيفية تجميع الأجزاء المختلفة مقارنة بطريقتهم القديمة.
الخلاصة
تظهر الورقة البحثية أنه إذا كنت تريد فهم برمجيات روبوت معقد، فلا ينبغي لك مجرد سؤال الذكاء الاصطناعي أن "يخمن الشيء بأكمله". بدلاً من ذلك، يجب أن تمنحه عملية منظمة:
- سرد الأجزاء.
- رسم خرائط تعليمات التجميع.
- بناء الرسم التخطيطي النهائي بناءً على هذه الحقائق.
هذا النهج يجعل الذكاء الاصطناعي أكثر موثوقية، محولاً كومة فوضوية من الكود إلى خريطة معمارية واضحة ومفهومة. ومع ذلك، يعترف المؤلفون بأنه إذا تغير سلوك الروبوت أثناء تشغيله (التغييرات الديناميكية)، فإن الطريقة الحالية لا تزال تواجه بعض الصعوبة في رصد تلك الأهداف المتحركة. ولكن لفهم البنية الثابتة للنظام، فإن هذا يعد خطوة كبيرة للأمام.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.