23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
혹시 게임을 즐겨하지 않더라도 마인크래프트라는 게임에 대해서 한 번씩은 들어보셨으리라 믿는다.
Voyager는 마인크래프트 봇(bot)의 일종으로 사람의 개입 없이 스스로 마인크래프트를 학습하고 공략하는 AI agent라는 점이 기존의 봇과는 크게 다르다.
출처: https://voyager.minedojo.org/
더 자세한 내용은 Voyager 공식 홈페이지와 관련 논문을 참고하시기 바란다.
이 글에서는 Voyage의 대략적인 작동 원리를 알아 보고 가이드에 따라 봇을 작동시켜 본 경험을 공유하고자 한다.
Voyager를 움직이는 3대 구성 요소는 "Automatic Curriculum", "Iterative Prompting Mechanism", "Skill Library" 이다. 차례대로 살펴보겠다.
출처: https://voyager.minedojo.org/
먼저 "Automatic Curriculum"에 대해 알아보자. 위에서 언급한 논문에 전체 프롬프트가 공개돼 있는데 그 시작 부분은 아래와 같다.
You are a helpful assistant that tells me the next immediate task to
do in Minecraft . My ultimate goal is to discover as many diverse
things as possible , accomplish as many diverse tasks as possible
and become the best Minecraft player in the world .
"가능한 한 많은 다양한 작업을 수행하고, 최고의 마인크래프트 플레이어가 되라"는 궁극적인 목표만 주어지고,
이를 달성하기 위한 세부적인 커리큘럼은 사람의 개입 없이 GPT4 기반으로 자동 설정된다.
출처: https://voyager.minedojo.org/
주변 환경을 포함한 봇의 현재 상태를 GPT-4에 전달하면 상황에 맞는 적절한 커리큘럼 및 과제가자동 설정되는 방식이고 이는 무한히 반복된다.
예를 들어 현재 봇의 인벤토리에 널빤지, 나무 막대, 작업대, 돌멩이, 나무 곡괭이 등이 있다는 정보가 전달되면 GPT-4는 '돌 곡괭이를 제작하라'는 과제(Task)를 설정한다.
그리고 이런 과제를 설정한 근거는 '나무 곡괭이와 돌을 가지고 있으므로 효율성을 높이기 위해 곡괭이를 돌 곡괭이로 업그레이드하는 것이 좋기 때문'이라는 설명까지 덧붙여서 알려준다.
GPT-4는 해당 커리큘럼을 기반으로 봇의 동작을 기술한 javascript 코드를 생성한다.
이 부분이 3대 구성 요소 중 하나인 "Iterative Prompting Mechanism"에 해당한다.
봇은 마인크프래트 상에서 런타임으로 해당 코드에 해당하는 동작을 수행하고, 그 결과에 대한 피드백을 GPT-4에 전달한다.
이를 바탕으로 GPT-4에 의해 수정된 코드가 봇에게 다시 전달된다.
출처: https://voyager.minedojo.org/
예를 들어 위 그림에서 봇이 돌삽을 만드는 과제를 수행하던 중 막대를 만드는 데 실패했고,
이에 대한 피드백을 통해 막대를 만들기 위해 널빤지 2개를 더 만들라는 코드가 추가된 것을 볼 수 있다.
출처: https://voyager.minedojo.org/
동작 수행 중에 발생한 오류에 대한 피드백뿐 아니라 일종의 할루시네이션에 대한 오류도 피드백을 통해 자동으로 수정된다.
GPT-4가 봇에게 '아카시아 도끼'를 만들라는 과제가 전달됐지만 마인크래프트에 아카시아 도끼라는 아이템은 실제 존재하지 않는다.
이런 피드백을 받은 GPT-4는 아카시아 도끼에 해당하는 코드를 삭제하고, '나무 도끼'를 만들라는 코드를 생생해서 다시 봇에게 전달한다.
이제 마지막으로 "Skill Library"를 살펴보겠다.
간단히 설명하자면 이전 과제 수행 시 생성한 javascript 코드를 DB에 저장하고 나중에 비슷한 과제를 수행하게 될 때 꺼내 쓰는 개념이다.
이때 사용하는 DB는 AI 모델에서 많이 사용하는 Vector Database다.
Vector DB에 대해 자세히 설명하는 것은 이 글의 성격과도 맞지 않고, 무엇보다 필자의 이해가 부족해서 생략한다.
아무튼 Vector DB를 사용하는데 값(Value)는 위에서 언급한 대로 javascript 코드이고, 키(key)는 코드를 설명한 문장이다.
이 문장을 생성하는 데에는 GPT-3.5를 사용했다고 한다. 참고로 이를 제외한 Voyage의 다른 모든 기능에는 GPT-4가 사용했다.
그 이유는 논문에 기재돼 있는데 GPT-3.5로 테스트 시 원하는 결과물이 나오지 않았다고 한다.
출처: https://voyager.minedojo.org/
이상으로 대략적으로나마 Voyage를 구성하는 3대 요소에 대해 모두 알아봤다. 이를 기반으로 약 1시간 정도 Voyage를 구동시켜 봤다.
커리큘럼 및 과제가 생성되고, 이를 기반으로 만들어진 코드에 의해 봇이 작동하는 것까지 어느 정도 확인할 수 있었다.
1시간 동안 약 $33 달러 정도의 비용이 소요되는 것에 깜짝 놀라 다음을 기약하며 봇을 종료시켰다.
대단한 결과물은 볼 수 없었지만 그래도 관심 있는 분들께 도움이 될까 해서 1시간가량 되는 전체 영상의 링크를 첨부한다.
끝.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.