이 저장소는 Thought Cloning: 인간의 사고를 모방하여 행동하면서 생각하는 법을 배우는 공식 구현을 제공합니다. TC(Thought Cloning)는 에이전트가 인간처럼 생각 하도록 훈련하여 에이전트 기능, AI 안전성 및 해석성을 향상시키는 새로운 모방 학습 프레임워크입니다. 이 저장소는 합성 인간 사고 데이터 세트를 사용하여 부분적으로 관찰 가능한 시뮬레이션된 2D 그리드월드 도메인 BabyAI에 TC를 구현합니다. 소개 트윗 스레드도 확인하세요.
python-venv 또는 conda를 사용하여 환경을 만듭니다. python-venv의 예는 다음과 같습니다.
python3 -m venv thoughtcloning
source thoughtcloning/bin/activate
이 저장소는 Python 3.9.10 및 PyTorch 1.7.1+cu110에서 테스트되었습니다. 코드는 체육관, 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 .
나중에 프로젝트 디렉토리가 변경되면 다시 한번.
/babyai/utils/__init__.py의 storage_dir
에서 출력 디렉터리를 변경합니다. 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(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(상위 구성 요소 변환기 인코더) 및 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}
}