يوفر هذا المستودع التنفيذ الرسمي لاستنساخ الفكر: تعلم التفكير أثناء التصرف من خلال تقليد التفكير البشري. يعد استنساخ الفكر (TC) إطارًا جديدًا للتعلم بالتقليد يعزز قدرة الوكيل وسلامة الذكاء الاصطناعي وقابلية التفسير من خلال تدريب الوكلاء على التفكير مثل البشر . يطبق هذا المستودع TC على نطاق شبكة عالم شبكي ثنائي الأبعاد يمكن ملاحظته جزئيًا BabyAI مع مجموعة بيانات فكرية بشرية اصطناعية. تحقق أيضًا من موضوع التغريدة المقدمة.
قم بإنشاء بيئة باستخدام python-venv أو conda. يظهر مثال مع python-venv هنا:
python3 -m venv thoughtcloning
source thoughtcloning/bin/activate
تم اختبار هذا المستودع باستخدام Python 3.9.10 وPyTorch 1.7.1+cu110. قد لا يكون الرمز متوافقًا مع الإصدار الأحدث من Gym أو numpy أو Gym-minigrid.
git clone https://github.com/ShengranHu/Thought-Cloning.git
cd Thought-Cloning
pip3 install --upgrade pip
pip3 install --editable .
ملاحظة: قم بتشغيل pip3 install --editable .
مرة أخرى إذا تم تغيير دليل المشروع بعد ذلك.
قم بتغيير دليل الإخراج في storage_dir
في /babyai/utils/__init__.py. قم بتعيين path-to-thought-cloning
على مسار مشروع استنساخ الفكر الخاص بك.
تتوفر مجموعة بيانات الفكر البشري الاصطناعية على BossLevel ، وأوزان نماذج TC المدربة، والبيئات المجمعة لاختبار الأداء خارج التوزيع في Google Drive.
لإعادة إنتاج مجموعة بيانات فكرية تركيبية، يمكنك استخدام البرنامج النصي scripts/make_agent_demos.py
باستخدام الأمر التالي:
scripts/make_agent_demos.py --episodes <NUM_OF_EPISODES> --env <ENV_NAME> --noise-rate 0.01
لإعادة إنتاج نتائج الأداء الرئيسية الواردة في الشكل 3 من ورقتنا، استخدم الأمر التالي:
scripts/train_tc.py --env BabyAI-BossLevel-v0 --demos <DEMO_NAME> --memory-dim=2048 --recurrence=80 --batch-size=180 --instr-arch=attgru --instr-dim=256 --val-interval 2 --log-interval 2 --lr 5e-4 --epochs 160 --epoch-length 51200 --seed 0 --val-seed 2023 --model <NAME_OF_MODEL> --sg-coef 2 --warm-start --stop-tf 10
بالنسبة لكل تجربة، يمكنك تغيير الوسيطة group_name
إلى سجل المجموعة وإخراج النموذج في مجلد محدد.
لإعادة إنتاج نتائج التقييم الصفرية الواردة في الشكل 4 (أ) من ورقتنا، استخدم الأمر التالي:
scripts/evaluate_levels.py --env BabyAI-BossLevel-v0 --model <NAME_OF_MODEL> --testing-levels-path <PATH_TO_TESTING_LEVELS_PICKLE>
يعتمد تنفيذنا على BabyAI 1.1 (خط الأساس للتعلم بالمجال والتقليد)، وdan-visdial (أداة تشفير محول المكونات ذات المستوى الأعلى)، وvisdial-rl (وحدة فك ترميز RNN للمكونات ذات المستوى الأعلى).
إذا وجدت هذا المشروع مفيدًا، فيرجى التفكير في الاستشهاد بـ:
@article{hu2023ThoughtCloning,
title={{Thought Cloning}: Learning to think while acting by imitating human thinking},
author={Hu, Shengran and Clune, Jeff},
journal={Advances in Neural Information Processing Systems},
volume={36},
year={2023}
}