พื้นที่เก็บข้อมูลนี้จัดให้มีการใช้งานอย่างเป็นทางการสำหรับ Thought Cloning: การเรียนรู้ที่จะคิดขณะกระทำโดยการเลียนแบบการคิดของมนุษย์ Thought Cloning (TC) เป็นเฟรมเวิร์กการเรียนรู้การเลียนแบบแบบใหม่ที่ช่วยเพิ่มความสามารถของตัวแทน ความปลอดภัยของ AI และการตีความโดยการฝึกอบรมตัวแทนให้ คิดเหมือนมนุษย์ พื้นที่เก็บข้อมูลนี้ใช้ TC บนโดเมน BabyAI โดเมน gridworld 2D ที่สังเกตได้บางส่วนที่จำลองได้ พร้อมด้วยชุดข้อมูลความคิดของมนุษย์สังเคราะห์ ตรวจสอบกระทู้ทวีตแนะนำด้วย
สร้างสภาพแวดล้อมด้วย 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
เป็นเส้นทางของโครงการ 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
ให้เป็นบันทึกกลุ่มและเอาต์พุตโมเดลลงในโฟลเดอร์เฉพาะได้
หากต้องการสร้างผลลัพธ์การประเมินแบบ Zero-shot ที่แสดงในรูปที่ 4(a) ของรายงานของเรา ให้ใช้คำสั่งต่อไปนี้:
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 (ตัวเข้ารหัส Component Transformer ระดับบน) และ visdial-rl (ตัวถอดรหัส Component 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}
}