عن المشروع

NEAT-AI هي مكتبة للتطور العصبي مكتوبة بلغة Deno/TypeScript، تنفّذ وتوسّع خوارزمية NEAT (التطور العصبي للطوبولوجيات المتزايدة) التي نشرها ستانلي وميكولينن في عام 2002. وقد نمت المشروع ليصبح نظامًا هجينًا يجمع بين التطور والتدرج، يضع تقنيات بحثية حديثة فوق نهج NEAT الكلاسيكي. تركز البنية الأساسية على «الكائنات» — جينومات تتحور وتتزاوج في TypeScript، مع تنفيذ التمريرات الأمامية داخل وحدة WebAssembly (WASM) مضمّنة. يوفر امتداد Rust اختياري (NEAT-AI-Discovery) تحليلًا بنيويًا مسرّعًا عبر GPU من خلال Deno FFI، ويقترح مشابك جديدة بناءً على تحليل موجّه بالأخطاء. تشمل الميزات الرئيسية: 1. **ملاحظات قابلة للتوسيع**: يتم تحديد ميزات الإدخال والإخراج بواسطة UUIDs مستقرة بدلاً من الفهارس الموضعية، مما يسمح بإضافة ملاحظات جديدة دون إعادة تشغيل التطور وتمكين إعادة التركيب متعددة الأجهزة. 2. **تدريب موزّع**: يمكن تشغيل التدريب والتطور على عدة عقد مستقلة، مع دمج أفضل الكائنات على وحدة تحكم مركزية، مما يحاكي نموذج الجزيرة في الخوارزميات التطورية. 3. **تعلم مدى الحياة**: مصمم للتعلم المستمر في بيئات متغيرة، ويدعم التعلم المتواصل مع وصول بيانات جديدة على مدى أسابيع أو أشهر. 4. **تفعيل WASM**: تقوم المكتبة بتهيئة الواجهة الخلفية WASM تلقائيًا؛ يكفي أن يستدعي المتصل `activate()` لتمريرة أمامية واحدة. 5. **دوال ضغط فريدة**: يدعم دوال تفعيل مثل IF وMAX وMIN بالإضافة إلى الخيارات القياسية. 6. **تقليم الخلايا العصبية**: يزيل الخلايا العصبية التي لا تختلف تفعيلاتها أثناء التدريب، باستخدام معيار بروز من الدرجة الصفرية. 7. **كريسبر**: يسمح بحقن جينات مصممة يدويًا (خلايا عصبية ومشابك) في مجموعة سكانية أثناء التطور، مستعيرًا الاختصار البيولوجي لزرع المجموعات. 8. **الترقيع**: يمكّن التزاوج بين الجزر بين أبوين غير متوافقين وراثيًا، مع الحفاظ على التنوع. 9. **التطور الميميتيك**: يسجل ويستخدم تحيزات وأوزان الكائنات الأصلح لضبط الأجيال القادمة، ويعيد كتابة الأوزان المتعلَّمة في الجينوم (نهج لاماركي). 10. **التطور البنيوي الموجّه بالأخطاء (Discovery)**: يحدد وينشئ مشابك جديدة ديناميكيًا من خلال تحليل تفعيلات الخلايا العصبية والأخطاء. يقوم امتداد Rust بتحليل مسرّع عبر GPU ويقترح مرشحين بنيويين عبر FFI. 11. **معدل طفرة تكيفي**: يضبط استراتيجية الطفرة تلقائيًا بناءً على حجم الكائن وتقدم اللياقة، محققًا توازنًا بين الاستكشاف والاستغلال. 12. **تعلم النقل**: تصدير الكائنات المدربة كنقاط تفتيش مع بيانات وصفية، واستيرادها إلى مهام جديدة مع تعيين UUID، وزرع مجموعات سكانية بكائنات مدربة مسبقًا. 13. **تصدير ONNX**: تصدير الكائنات المدربة إلى صيغة ONNX للنشر في مسارات الاستدلال القياسية للتعلم الآلي. 14. **قبول الطفرات MCMC**: يستخدم معيار متروبوليس-هاستينغز لقبول الطفرات، مع ضبط تكيفي لدرجة الحرارة نحو معدل قبول يبلغ ~23.4%. 15. **استراتيجيات تربية متقدمة**: استراتيجيات متعددة للكائنات غير المتوافقة وراثيًا، بما في ذلك تشابه جيب التمام لأوزان الإدخال، وزرع الرسوم البيانية الفرعية، والتربية المدفوعة بالتنوع. 16. **تدريب المشابك الاصطناعية**: يزيد مؤقتًا من ترابط الطبقات أثناء الانتشار العكسي، ثم يقلم المشابك القريبة من الصفر بعد التدريب. 17. **مهاجرون عشوائيون**: عندما تتوقف المجموعة عن التقدم، يستبدل أضعف الكائنات غير النخبوية بجينومات مزروعة حديثًا لإدخال مادة وراثية جديدة. تم نشر المشروع في سجل جافا سكريبت (JSR) ولا يتطلب أي تثبيت — حيث تقوم الواجهة الخلفية WASM بتهيئة نفسها عند أول استخدام. وهو جزء من عائلة مستودعات تشمل NEAT-AI-core (صندوق حسابات Rust مشترك)، وNEAT-AI-Discovery (امتداد Rust FFI للتحليل البنيوي المسرّع عبر GPU)، وNEAT-AI-scorer (تطبيق تسجيل Rust)، وNEAT-AI-Backpropagation (انتشار عكسي أصلي في Rust)، وNEAT-AI-Lamarck (محسِّن Rust تجريبي)، وNEAT-AI-Explore (أداة تصور TypeScript)، والعديد من المحسِّنات والأدوات التجريبية الأخرى. المكتبة مصممة للاستخدام في بيئة DenoJS وتوفر مجموعة أدوات شاملة للتطور العصبي، بدءًا من إنشاء الكائنات وتفعيلها الأساسي وصولاً إلى التدريب الموزع المتقدم، والاكتشاف البنيوي، والنشر في الإنتاج عبر تصدير ONNX.