반응형

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 메모리를 확장시켜보는 것이 좋을 것 같다는 것..!

 

암튼 머 그러면 이제 끝!

반응형
반응형

이 글을 쓰기 전에 미리 해본 영상입니다!

https://youtu.be/efnCUsNvxyQ

궁금증

내가 마인크래프트 인공지능이 있다는 것은.. 

https://youtu.be/L4nfzJx7uDI

이 영상으로 부터 알게 되었었다..

 

굉장히 신기한 영상.. 처음에는 에이 설마 진짜겠어 하고.. 영상을 좀 봤다..

솔직히 그냥 사람이 인공지능 처럼 플레이하는 줄만 알았다..

근데 NEURO SAMA라는 인공지능 관련 글들을 찾아보고 진짜 인공지능마인크래프트를 플레이 한다는 것을 알았다..

그리고 마인크래프트 인공지능에 대해 좀 더 찾아본 결과 무엇인지 알게되었다.

 

어떤 것을 사용했을까?? 분석 & 추정

 

어쨌든 짧게 말하면 예상이지만

해당 마인크래프트 인공지능 플레이 영상은 진짜로 인공지능이 플레이하는 것이며 MineRL 1.0을 사용해서 VPT라는 인공지능 모델이 마인크래프트를 플레이 하는 것으로 추정된다..!

 

MineRL은 마인크래프트와 파이썬이 상호작용해서 파이썬으로 마인크래프트를 플레이 시킨다거나 할 수 있는 파이썬 3 라이브러리!

 

어쨌든 내가 이것으로 추정 할 수 있던 이유는 MineRL은 기본적으로 실행 Minecraft 해상도가 정해져있는데(어떻게 바꾸는진 모름..) 이 해상도가 V0.3, V0.4 버전에는 64 * 64px 인데 V1.0 버전에서 640 * 360px 이다. 그런데 영상을 잘보면 글씨 폰트들이 많이 무더져 보인다..

뭐 그래도 글씨가 잘 보이는 이유는 마인크래프트가 픽셀 게임 같은거라 그런게 아닐까.. 

 

그리고 VPT 인공지능 모델을 사용한다. 생각했던 이유는 마우스 포인터이다.

NEURO SAMA 마인크래프트 마우스 포인터

위 사진은 NEURO SAMA의 마인크래프트 방송에 나오는 마우스 포인터인데 좀 두껍다..

 

그런데 이 마우스 포인터는 

VPT 인공지능 모델을 플레이 시키면 나타나는 마우스 포인터이다.

VPT Github에 가보면 cursorsmouse_cursor_white_16x16.png 파일이 보이는데

https://github.com/openai/Video-Pre-Training/blob/main/cursors/mouse_cursor_white_16x16.png

위 사진으로 가면 볼 수 있다.

거기에서 따온 마우스 포인터인데.. 굉장히 똑같다..

 

어떻게 플레이 할 수 있을까?

간단하다. 그냥 깃허브에서 다운로드 해서 바로 플레이 시키면 된다.

단 컴퓨터는 고사양이여야 그나마 플레이하기 적당하다..

나 같은 경우 컴퓨터는 아래 사양이지만 중간중간 어느정도 렉이 유발되기도 했다.

  • CPU : AMD 5900X
  • GPU : RTX 3080TI
  • RAM : 32GB

플레이 방법은 이 게시글 이후로 파트 2~ 부터 설치와 플레이 방법을 올릴 것인데 대충 먼저 말하면

https://github.com/minerllabs/minerl

이곳에서 인공지능과 상호작용할 수 있는 라이브러리를 설치하고 

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

이곳에서는 인공지능을 실행할 수 있는 파일과 인공지능 모델을 다운받아서 패키지 설치할꺼 모두 설치하고 실행하면 된다.

 

대충 찾아본거지만 VPT 기술은 영상으로만 인공지능 모델을 학습시키는 것이다.

기본적으로 VPT 깃허브에서 제공하는 인공지능 모델들은 이미 어느정도 학습은 되어있어 바로 플레이도 시킬 수 있다.

만약 학습을 시킨다면 이것은 영상으로 학습을 하기 때문에 영상을 촬영하거나 다운을 받아서 인공지능한테 학습하라고 시키면 되는 것!

 

굉장히 신기하다.. 영상에서 유저가 어떻게 움직이는지도 분석하고 유저가 해야할 목표를 비슷하게라도 따라한다는 것이.. 신기하다..

 

아쉬운 점

MineRL로 매년 MineRL Diamond Competition 이라는 대회를 여는 것 같은데 여기에서 VPT 말고 2022년에 제작되었다는 MineDojo라는 것도 제작되었다는데..

https://github.com/MineDojo/MineDojo

이것을 어떻게든 윈도우 돌려볼려고 했지만... 아쉽게 실패했다..

이유는 리눅스 용이기 때문에..

WSL 사용해서 하면 되겠지만.. 윈도우 10 버전이라.. (GPU나 여러가지 이용할려면 윈도우 11 사용해야함)

그래서 어떻게든 해도 안되서 포기하고 VPT로 해본 것..!

 

뭐 그래도 좋았다!

 

어쨌든 이 다음 글 부턴 설치부터 플레이 방법이 나와있답니다!

반응형

+ Recent posts