Unity/Drone Challenge

카카오엔터프라이즈 Jorldy로 RLKorea_Drone_Challenge (드론 챌린지)

pnltoen 2022. 7. 1.
반응형

Jorldy

Kakao Enterprise


Jorldy 개요

 

카카오엔터프라이즈 AI Lab 선행기술팀에서 Jorldy 강화학습 프레임워크를 개발 후 발표하였다.

개발 소식은 RL_KOREA의 페이스북 홈페이지를 통해서 알게 되었고 기존 사용하던 Unity ML-Agents와 어떤 차이가 있는지 어떤 좋은 기능이 있는지 너무 확인하고 싶어서 소식 듣자마자 바로 다운로드 후 진행하게 되었다!

여기에 들어가보면 직접 설명해주신 내용이 적혀있음으로 읽어보면 정말 좋다..!

 

사용방법 (0.02 버전 기준)

 

1. Jorldy Github에서 파일 다운로드

2. 아나콘다 설치 후 cd path (예: cd C:\Users\pnltoen\Desktop\jorldy)

3. pip install -r requirement.txt

-- 현재 hiredis 이슈가 있다. 따라서 이 후 redis오류 발생시 pip install hiredis 설치하고 진행할 것

4. cd jorldy (예: cd C:\Users\pnltoen\Desktop\jorldy\jorldy)

5. python sync_distributed_train.py --config=config.ppo.drone_delivery_mlagent

 

이 후로 학습이 진행되는데 나의 경우 환경이 검은색으로 나오는 이슈가 발생하였다.

Github에 찾아보니 Visual.obs관련된 코드가 있고 Docs에 멀티서버 지원이 기재되어있어서,

Default worker Default 수가 5개임을 고려할 때 최대한 사양을 줄이기 위해 딱 필요한 정보만 환경에 넣으신건가...? 아닌가...? 고민을 하게 되었고 확인해보니 학습에 필요한 장애물 변수인 새가 화면에 보이지 않아 질문 드리게 되었다.

그 결과 환경 문제라고 말씀해주셔서 기존 RL_Korean_DroneChallenge 깃허브에 있는 환경을 다운로드 후 덮어쓰기를 통해 진행하였다. (다운로드는 여기!)

 

그 결과 학습이 잘되는 것을 확인할 수 있었다. (이상하게 Worker id가 몇개든 2개 이상을 키면 처음에 켜지는 1개가 렉이 심하게 걸린다.... ML-Agents의 경우 ray로 학습하고자 할 때 --env명령어를 이용했는데 이러한 경우가 없었다.... 아직 처음 사용해봐서 발생한 문제이거나 컴퓨터 사양 문제일 수 있으니 질문은 드리지 않았다... 위 사진에서도 하나의 환경은 렉이 너무 걸려서 캡쳐하지 못했다 ㅠ.ㅠ)


카카오엔터프라이즈 이현호님 피드백

해당 내용 카카오엔터프라이즈 이현호님께서 댓글 남겨주셔서 수정하게 되었습니다. (2021.12.06)

Jorldy Github/Docs/Distributed_Architecture.md에 보면 학습환경에 대한 세부내용이 작성되어 있습니다.

출처 : Jorldy Github, Single actor train 예시

 

예로 num_workers를 1로 설정할 시, 총 2개의 환경이 실행됩니다. 이 후 각각의 실행 환경은 main process 그리고 manage process를 담당하게 됩니다. 이 때 manage process의 경우 에이전트가 환경을 평가할 때만 실행되기에 중간에 멈춰있는 것처럼 보이는 현상이 발생하게 되었습니다.

Jorldy/config/

 

환경 평가를 담당하는 파라미터는 jorldy/config 파일안의 train={print_period}에서 수정하실 수 있습니다.

해당 부분 알려주신 이현호님께 감사의 말씀드립니다.

 

후기

 

현재 드론 챌린지에서 내가 완벽하게 최적화 한 알고리즘은 PPO 밖에 없다. 따라서 동일한 하이퍼 파라미터인 PPO을 가지고 학습을 진행하고자 하였는데, Jorldy의 경우에는 PPO2를 사용하는 것으로 확인하였고 이에 여기서 파라미터 학습 후 내가 최적화한 PPO1 하이퍼파라미터와 최대한 비슷하게 진행하였다. 아직 ML-Agents와 같이 docs에 config 내용이 없는 것으로 확인하였는데 강화학습을 처음 하는 사람들의 경우에 잘 적응할 수 있도록 config docs가 있으면 좋을 것 같다! 참고로 Docs/List of Contents 부분에 각 알고리즘 논문 링크가 있다! 이 부분 보면 정말 좋고 RL 공부하는 것에도 엄청난 도움이 된다.

챌린지가 약 3주 정도 남았는데 Python API 제출 모델의 경우 ML-Agents를 사용하게 될 것 같다. 그 이유로는 하루동안 살짝 사용해봤지만 Gym과 ML-Agents와 같이 별도의 프로그램을 하나의 프레임 워크에서 사용할 수 있다는 점이 매우 매력적이였다. 사실 각 프로그램이 모두 저희 프로그램 사용하기 쉬워요! 공부하기 쉬워요! 라고 홍보하고 어느정도 동의하지만 학습하는 입장 또는 프로젝트에서 사용하는 입장에서는 여러 프로그램을 배운다는 것은 그 만큼 시간 소요가 발생한다. 하지만 이러한 점에서 Jorldy를 통해 하나의 프레임워크에서 다양한 학습을 진행할 수 있다는 점은 엄청난 메리트라고 생각한다.

결과적으로 좋은 개발 및 학습 툴 그리고 좋은 내용이 많은 Docs를 제공해주신 카카오 엔터프라이즈 선행기술팀원 분들께 감사드리고... 이제 남은건 열심히 공부할 일만 남은 것 같다! 아 물론 현재 3등인 리더보드 순위도 1등까지 올릴 수 있다면....좋을 것 같다ㅠㅠ

반응형

댓글