반응형

https://cheongpark.tistory.com/33

 

마인크래프트 인공지능(Minecraft AI) 플레이 시켜보기 Pt. 3 설치

https://cheongpark.tistory.com/32 마인크래프트 인공지능(Minecraft AI) 플레이 시켜보기 Pt. 2 설치 https://cheongpark.tistory.com/31 마인크래프트 인공지능(Minecraft AI) 플레이 시켜보기 Pt. 1 분석 이 글을 쓰기 전에

cheongpark.tistory.com

이전 글과 연결됩니다.

 

이제 제일 중요한 실행을 해볼 것인데..

모델을 학습시키는건 아직 해보지 않았기 때문에 학습 해본다면 그때 글을 쓸 것 같고.. 일단 실행만 해볼 것이다!

 

일단 실행하기 전에 MineRL에 아쉬운 점이 몇가지 있다..

NEURO SAMA의 영상을 보면 실제 개발자하고 주변에서 같이 있거나 여러가지 채팅창으로 무언가를 말한다..

근데 문제는 MineRL 1.0은 사용자와 상호작용이 불가능하다. 즉 인공지능과 함께 자신의 마인크래프트로 플레이가 불가능 하다는 것.. 근데 MineRL 0.4 버전은 가능하다는데.. 문제는 VPT가 MineRL 0.4 버전을 지원을 하지 않는다.. 그래서 첫번째 글에서는 VPT로 추정되지만 다른 버전인 것 같다고도 생각이 드는데.. MineRL 폴더를 뜯어보는 중 상호작용에 관한 파일도 있긴 했다..

그래서 어느정도 잘 건들여보면 1.0.0으로도 상호작용은 가능할 수도 있을 것 같다라는 생각이 든다..

 

또 다른 아쉬운점은 첫번째 글에서도 말했던 거지만.. 해상도와 버전에 제한이 있다..

위 업데이트 된 것을 보면 1.0은 무조건 16.5 버전에서만 작동이 되고 해상도는 640 * 360에서만 고정된다는 것이다.. 더 줄이거나 늘리는건 어떻게 하는진 모르겠지만.. 일단 힘들다 라는건 알 수 있을 것 같다..

 

그리고 아직 제대로 해보지 않아 잘은 모르지만.. 내가 원하는 월드(평지, 건축물)은 커스텀으로 가져올 수가 없다는 것이다..

또한 모드도 지원 안한다는 것..

MineRL 개발자 말로는 커스텀 월드나 모드 같은건 해킹을 하거나 여러가지 방법을 써야 가능할수도 있다고는 한다..

근데 한가지 가능한건 시드는 직접 변경은 가능하다..

(근데 난 파쿠르를 가르켜 보고 싶었는데..)

 

모델 부터 다운해보자!

https://github.com/openai/Video-Pre-Training

 

GitHub - openai/Video-Pre-Training: Video PreTraining (VPT): Learning to Act by Watching Unlabeled Online Videos

Video PreTraining (VPT): Learning to Act by Watching Unlabeled Online Videos - GitHub - openai/Video-Pre-Training: Video PreTraining (VPT): Learning to Act by Watching Unlabeled Online Videos

github.com

일단 이 곳으로 가면 직접 학습 시킬 수 있는 파일이나 이미 학습된 모델 파일들이 있다. 설명 아래에

거기에서 다운을 하면 된다! 속도는 느리지만..

 

일단 가보면 Agent Model Zoo 이런 항목 아래에 여러가지 파일들을 다운받으라고 안내하는데..

자신이 쓰면 될 것 같은 파일만 다운로드 하면 된다.. 일단 model 파일과 weights 파일 2가지를 다운받아야 하는데..

2x 나 3x 그런걸 통일해서 다운 받으면 될 것 같다.

그래서 영어 번역하면서 자신한테 필요할 것 같은 것으로 다운받고 나는 최종적으로

2x.model 파일과 rl-from-house-2x.weights 파일을 다운받았다..

 

다운로드 했으면 바로 여기에 있는 글 처럼 파일을 배치하면 된다.. 뭐 안해도 상관은 없지만..

이런식으로.. 나는 좀더 쉽게 관리하기 위해서 이렇게 하는 거지만 직접 원하는대로 배치하면 되긴 한다.. 그렇지만 그렇게 되면 아래 명령어 경로는 약간 변경해야한다는 점!

 

2번째 글에서 가상환경을 활성화 했지만.. 다시 적어보면..

만들었던 폴더의 이름 부분을 클릭하고 거기에서 cmd를 적고 엔터!

그러면 그 폴더를 접속한 터미널 창이 나오는데 거기에서 이전 글에서 만들었던 가상환경을 활성화 해준다.

conda env list

만약 이름을 까먹었다면 위 명령어로 어떤 가상환경이 있는지 검색하고 그 가상환경 이름으로 아래 명령어로 활성화 하면 될 것 같다!

conda activate MineRL_VPT

여기에서 가상환경 이름은 자신이 만들었던 가상환경 이름으로 해야한다는 점!

 

그러면 이제 여기에서 run_agent.py를 실행하면서 파라미터에 모델을 넣으면 되는데

규칙은 이렇다

python "./Video-Pre-Training/run_agent.py" --model "model 파일 경로.model" --weights "weights 파일 경로.weights"

대충 설명하자면 .은 자기 경로에서 시작한다는? 그런거고 / 이건 뭐 알테고.. 어쨌든 그렇게 해서 자신의 폴더 위치에서 이전에 설치했던 Video-Pre-Training 폴더로 찾아가서 run_agent.py를 실행하는데 파라미터로 model과 weights를 경로로 넣어준다는 것! " " <-- 이건 혹시라도 띄어쓰기가 있으면 안될 수도 있으니..

 

그래서 위 규칙에 맞게 내 기준으로 명령어를 만든다면

python "./Video-Pre-Training/run_agent.py" --model "2x.model" --weights "rl-from-house-2x.weights"

이렇게 적으면 된다..!

 

만약 가상환경을 제대로 활성화 시킨 터미널 창에서 정확히 run_agent.py를 실행하면서 파라미터로 model 파일과 weights 파일을 제대로 넣어줬다면 아래처럼 정상적으로 실행이 가능할 것이다!

---Loading model---
---Launching MineRL enviroment (be patient)---
C:\Users\user\anaconda3\envs\MineRL_VPT\lib\runpy.py:127: RuntimeWarning: 'minerl.utils.process_watcher' found in sys.modules after import of package 'minerl.utils', but prior to execution of 'minerl.utils.process_watcher'; this may result in unpredictable behaviour
  warn(RuntimeWarning(msg))
C:\Users\user\anaconda3\envs\MineRL_VPT\lib\runpy.py:127: RuntimeWarning: 'daemoniker._daemonize_windows' found in sys.modules after import of package 'daemoniker', but prior to execution of 'daemoniker._daemonize_windows'; this may result in unpredictable behaviour
  warn(RuntimeWarning(msg))

모델 파일을 불러오고 환경을 실행하고 하면서 되는데 아마 윈도우 같은 경우 RuntimeWarning이 뜰 것이다..

이건 그냥 무시해도 상관없다..

확실하진 않지만 윈도우여서 뜨는 것 같다..

 

https://youtu.be/efnCUsNvxyQ

그렇게 되면 MineRL Render이라는 창으로 자기 혼자서 마인크래프트를 한다.. (신기방기 신기방기)

이 인공지능은 영상으로만 학습을 하기 때문에 실제 플레이어가 하는 짓들을 유사하게 따라한다. 대충 메뉴 창에서 멍때리기 같은거..

 

그리고 만약 정상적으로 켜졌는데 제대로 작동 안하고 일도 제대로 안하는 것 같다면 weights 파일을 다른걸로 다운 받아보는 것을 추천! 일단 난 잘된다..!

 

이전에 할때 가끔 플레이하다가 오류가 뜨긴 했었는데.. 8GB 뭐 말하면서.. 이런건 아마 GPU 메모리나 램이 거의 꽉 차서 안되는 것일꺼다.. 왜 컴퓨터를 혹사시키고 있는데도.. 이 오류가 뜨지 않는 이유는 모르겠지만.. 플레이하다 오류가 난다면 메모리나 GPU 메모리를 확장시켜보는 것이 좋을 것 같다는 것..!

 

암튼 머 그러면 이제 끝!

반응형

+ Recent posts