5 من التخطيطات المتاحة. من السهل ترميز التخطيطات الجديدة أو إنشاؤها برمجيًا.
Overcooked-AI هي بيئة مرجعية لأداء مهام الذكاء الاصطناعي البشري التعاوني بشكل كامل، استنادًا إلى لعبة الفيديو الشهيرة Overcooked.
الهدف من اللعبة هو تقديم الحساء في أسرع وقت ممكن. يتطلب كل حساء وضع ما يصل إلى 3 مكونات في وعاء، والانتظار حتى ينضج الحساء، ثم الاستعانة بعامل لاستلام الحساء وتسليمه. يجب على الوكلاء تقسيم المهام بسرعة والتنسيق بشكل فعال من أجل تحقيق مكافأة عالية.
يمكنك تجربة اللعبة هنا (اللعب مع بعض وكلاء DRL المدربين مسبقًا). للعب مع عملائك المدربين باستخدام هذه الواجهة، أو لجمع المزيد من البيانات البشرية والذكاء الاصطناعي أو البيانات البشرية، يمكنك استخدام الكود هنا. يمكنك العثور على بعض بيانات اللعب بين الإنسان والإنسان والذكاء الاصطناعي التي تم جمعها هنا بالفعل.
يتم تضمين تطبيقات DRL المتوافقة مع البيئة في الريبو كوحدة فرعية ضمن src/human_aware_rl.
لقد تم إهمال ملف human_aware_rl القديم ويجب استخدامه فقط لإعادة إنتاج النتائج في ورقة 2019: حول فائدة التعلم عن البشر من أجل التنسيق بين الإنسان والذكاء الاصطناعي (راجع أيضًا منشور مدونتنا).
للاستخدام البسيط للبيئة، من المفيد التفكير في استخدام غلاف البيئة هذا.
يمكنك تثبيت ملف العجلة المترجم مسبقًا باستخدام النقطة.
pip install overcooked-ai
لاحظ أن إصدارات PyPI مستقرة ولكنها نادرة. للحصول على أحدث ميزات التطوير، قم بالإنشاء من المصدر باستخدام pip install -e .
.
من المفيد إعداد بيئة conda باستخدام Python 3.7 (يعمل Virtualenv أيضًا):
conda create -n overcooked_ai python=3.7
conda activate overcooked_ai
استنساخ الريبو
git clone https://github.com/HumanCompatibleAI/overcooked_ai.git
وأخيرًا، استخدم أدوات إعداد python للتثبيت محليًا
إذا كنت تريد فقط استخدام البيئة:
pip install -e .
إذا كنت بحاجة أيضًا إلى تطبيقات DRL (قد تضطر إلى إدخال ذلك في الجهاز الطرفي الخاص بك كـ pip install -e '.[harl]'
):
pip install -e .[harl]
عند البناء من المصدر، يمكنك التحقق من التثبيت عن طريق تشغيل مجموعة اختبار وحدة Overcooked. يجب تشغيل جميع الأوامر التالية من الدليل الجذري لمشروع overcooked_ai
:
python testing/overcooked_test.py
للتحقق من تثبيت humam_aware_rl
بشكل صحيح، يمكنك تشغيل الأمر التالي من دليل src/human_aware_rl
:
$ ./run_tests.sh
سيؤدي هذا إلى تشغيل كافة الاختبارات التي تنتمي إلى وحدة human_aware_rl. يمكنك الخروج من الملف README في الوحدة الفرعية للحصول على تعليمات تشغيل الاختبارات الخاصة بالهدف. يمكن البدء بذلك من أي دليل.
إذا كنت تفكر في استخدام كود التخطيط على نطاق واسع، فيجب عليك تشغيل مجموعة الاختبار الكاملة التي تتحقق من جميع أدوات الملحقات Overcooked (قد يستغرق هذا من 5 إلى 10 دقائق):
python -m unittest discover -s testing/ -p "*_test.py"
overcooked_ai_py
يحتوي على:
mdp/
:
overcooked_mdp.py
: منطق اللعبة الرئيسي Overcookedovercooked_env.py
: فئات البيئة المبنية على Overcooked mdplayout_generator.py
: وظائف لإنشاء تخطيطات عشوائية برمجياً agents/
:
agent.py
: موقع فئات الوكيلbenchmarking.py
: أخذ عينات من مسارات الوكلاء (سواء المدربين أو المخططين) وتحميل نماذج مختلفة planning/
:
planners.py
: منطق تخطيط الوكيل شبه الأمثلsearch.py
: بحث A* ومنطق المسار الأقصر يحتوي human_aware_rl
على:
ppo/
:
ppo_rllib.py
: الوحدة الأساسية حيث يوجد رمز تدريب وكيل PPO. يتضمن ذلك غلافًا متوافقًا مع rllib على OvercookedEnv
، وأدوات مساعدة لتحويل فئات Policy
rllib إلى Overcooked Agent
، بالإضافة إلى وظائف الأداة المساعدة وعمليات الاسترجاعاتppo_rllib_client.py
رمز برنامج التشغيل لتكوين وبدء تدريب الوكيل. مزيد من التفاصيل حول الاستخدام أدناهppo_rllib_from_params_client.py
: تدريب وكيل واحد باستخدام PPO في Overcooked باستخدام MDPs المتغيرةppo_rllib_test.py
اختبارات التكرار لفحوصات السلامة المحليةrun_experiments.sh
لتدريب الوكلاء على 5 تخطيطات كلاسيكيةtrained_example/
نموذج تم تدريبه مسبقًا لأغراض الاختبار rllib/
:
rllib.py
: وكيل rllib وأدوات التدريب التي تستخدم واجهات برمجة التطبيقات Overcookedutils.py
: استخدامات لما سبقtests.py
: الاختبارات الأولية لما ورد أعلاه imitation/
:
behavior_cloning_tf2.py
: وحدة للتدريب على نموذج BC وحفظه وتحميلهbehavior_cloning_tf2_test.py
: يحتوي على اختبارات التكرار الأساسية بالإضافة إلى اختبارات الوحدة للمكونات المختلفة لوحدة bc. human/
:
process_data.py
لمعالجة البيانات البشرية بتنسيقات محددة لاستخدامها بواسطة خوارزميات DRLdata_processing_utils.py
لما سبق utils.py
: أدوات الريبو
يحتوي overcooked_demo
على:
server/
:
app.py
: تطبيق القارورةgame.py
: المنطق الرئيسي للعبة. تتم معالجة انتقالات الحالة بواسطة كائن overcooked.Gridworld المضمن في بيئة اللعبةmove_agents.py
: برنامج نصي يبسط نسخ نقاط التفتيش إلى دليل الوكلاء. يمكن العثور على تعليمات حول كيفية الاستخدام داخل الملف أو عن طريق تشغيل python move_agents.py -h
up.sh
: البرنامج النصي Shell لتشغيل خادم Docker الذي يستضيف اللعبة
راجع Google Colab للحصول على بعض نماذج التعليمات البرمجية لتصور المسارات في لغة بايثون.
لقد قمنا بدمج دفتر ملاحظات يرشد المستخدمين حول عملية تدريب الوكلاء وتحميلهم وتقييمهم. من الناحية المثالية، نود تمكين المستخدمين من تنفيذ دفتر الملاحظات في Google Colab؛ ومع ذلك، نظرًا لأن النواة الافتراضية لـ Colab هي Python 3.10 وأن مستودعنا مُحسّن لـ Python 3.7، فإن بعض الوظائف غير متوافقة حاليًا مع Colab. لتوفير تجربة سلسة، قمنا مسبقًا بتنفيذ جميع الخلايا في دفتر الملاحظات، مما يسمح لك بعرض الإخراج المتوقع عند تشغيله محليًا باتباع الإعداد المناسب.
يمكن لـ Overcooked_demo أيضًا بدء لعبة تفاعلية في المتصفح للمرئيات. يمكن العثور على التفاصيل في الملف التمهيدي الخاص به
البيانات الأولية المستخدمة في التدريب أكبر من 100 ميجابايت، مما يجعل توزيعها عبر git غير مناسب. يستخدم الكود إطارات البيانات المخللة للتدريب والاختبار، ولكن في حالة احتياج المرء إلى البيانات الأصلية، يمكن العثور عليها هنا
إذا كانت لديك مشكلات أو أسئلة، يمكنك الاتصال بميكا كارول على [email protected].