5 種可用佈局。新佈局很容易硬編碼或以程式設計方式產生。
Overcooked-AI 是一個完全協作的人類與人工智慧任務表現的基準環境,基於廣受歡迎的電玩遊戲 Overcooked。
遊戲的目標是盡可能快地送湯。每份湯需要將最多 3 種食材放入鍋中,等待湯煮好,然後讓工作人員接湯並送出。智能體應該動態分配任務並有效協調,以獲得高回報。
您可以在這裡嘗試這個遊戲(與一些之前訓練過的 DRL 代理一起玩)。要使用此介面與您自己訓練的代理一起玩,或收集更多人類與人工智慧或人類與人類的數據,您可以使用此處的程式碼。您可以在此處找到一些已收集的人類與人類和人類與人工智慧的遊戲數據。
與環境相容的 DRL 實作作為 src/ human_aware_rl 下的子模組包含在儲存庫中。
舊的 human_aware_rl 已被棄用,只能用於重現 2019 年論文中的結果:關於學習人類對於人類與人工智慧協調的效用(另請參閱我們的部落格文章)。
為了簡單地使用環境,值得考慮使用此環境包裝器。
您可以使用pip安裝預編譯的wheel檔。
pip install overcooked-ai
請注意,PyPI 版本穩定但不頻繁。對於最新的開發功能,請使用pip install -e .
。
使用 Python 3.7 設定 conda 環境很有用(virtualenv 也可以):
conda create -n overcooked_ai python=3.7
conda activate overcooked_ai
克隆儲存庫
git clone https://github.com/HumanCompatibleAI/overcooked_ai.git
最後使用python setup-tools進行本機安裝
如果你只是想使用環境:
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 模組的所有測試。您可以查看子模組中的自述文件,以取得執行特定於目標的測試的說明。這可以從任何目錄啟動。
如果您考慮廣泛使用規劃程式碼,則應該執行完整的測試套件來驗證所有 Overcooked 輔助工具(這可能需要 5-10 分鐘):
python -m unittest discover -s testing/ -p "*_test.py"
overcooked_ai_py
包含:
mdp/
:
overcooked_mdp.py
:主要 Overcooked 遊戲邏輯overcooked_env.py
:建構在 Overcooked mdp 之上的環境類layout_generator.py
:以程式設計方式產生隨機佈局的函數agents/
:
agent.py
:代理類別的位置benchmarking.py
:代理(經過訓練的和規劃者)的樣本軌跡並加載各種模型planning/
:
planners.py
:接近最優的代理規劃邏輯search.py
:A* 搜尋和最短路徑邏輯human_aware_rl
包含:
ppo/
:
ppo_rllib.py
:駐留用於訓練 PPO 代理程式的程式碼的主要模組。這包括OvercookedEnv
上的 rllib 相容包裝器、用於將 rllib Policy
類別轉換為 Overcooked Agent
的實用程序,以及實用程式函數和回調ppo_rllib_client.py
用於設定和啟動代理訓練的驅動程式程式碼。有關使用的更多詳細資訊如下ppo_rllib_from_params_client.py
:使用可變 MDP 在 Overcooked 中使用 PPO 訓練一個代理ppo_rllib_test.py
用於本地健全性檢查的再現性測試run_experiments.sh
用於在 5 種經典佈局上訓練代理程式的腳本trained_example/
用於測試目的的預訓練模型rllib/
:
rllib.py
:使用 Overcooked API 的 rllib 代理程式和訓練實用程式utils.py
:上述的實用程序tests.py
:對上述內容進行初步測試imitation/
:
behavior_cloning_tf2.py
:用於訓練、保存和載入 BC 模型的模組behavior_cloning_tf2_test.py
:包含基本的再現性測試以及 bc 模組各個元件的單元測試。 human/
:
process_data.py
腳本,用於處理 DRL 演算法使用的特定格式的人類數據data_processing_utils.py
上面的實用程序utils.py
:儲存庫的實用程序
overcooked_demo
包含:
server/
:
app.py
:Flask 應用程式game.py
:遊戲的主要邏輯。狀態轉換由遊戲環境中嵌入的 overcooked.Gridworld 物件處理move_agents.py
:一個簡化將檢查點複製到代理目錄的腳本。如何使用的說明可以在檔案中找到或透過運行python move_agents.py -h
up.sh
:用於啟動託管遊戲的 Docker 伺服器的 Shell 腳本
請參閱此 Google Colab,以取得一些用於在 Python 中視覺化軌跡的範例程式碼。
我們合併了一個筆記本,指導使用者訓練、載入和評估代理商的過程。理想情況下,我們希望使用者能夠在 Google Colab 中執行筆記本;但是,由於 Colab 的預設核心是 Python 3.10,而我們的儲存庫針對 Python 3.7 進行了最佳化,因此某些功能目前與 Colab 不相容。為了提供無縫體驗,我們預先執行了筆記本中的所有單元,以便您在按照適當的設定在本地運行時查看預期輸出。
Overcooked_demo 還可以在瀏覽器中啟動互動式遊戲以進行視覺化。詳細資訊可以在其 README 中找到
訓練中使用的原始資料>100 MB,這使得透過git分發不方便。該程式碼使用醃製的數據幀進行訓練和測試,但如果需要原始數據,可以在這裡找到
如果您有問題或疑問,可以透過 [email protected] 聯繫 Micah Carroll。