https://arxiv.org/abs/2305.16291

https://arxiv.org/abs/2310.00166


강화학습 연구 및 공부 중인데, 이런 채널이 있다는 걸 알게 되어 LLM과 관련이 있는 강화학습 글을 써봅니다.

강화학습은 어떠한 agent가 주어진 상태에 대한 정보를 받아서 그에 맞는 최적의 action을 취하는 정책을 학습하는 분야입니다.

다들 아시듯, 많은 화제가 되었던 알파고가 그러합니다.


다만 기존에 주어진 데이터 셋이나 하드 코딩된 알고리즘 같은게 없는, 완전히 0부터 시작하는 경우 성능이 Atari 게임을 잘 한다 정도입니다. 이 또한 효율이 상당히 애매하죠.


이러한 강화학습의 최종 목적 중 하나가 마인크래프트로, 작년까지만 해도 유튜브 마크 영상을 크롤링해 엄청나게 action labeling 한 뒤에 A100 50개로 한 달 동안 학습시키고 했습니다. 그렇게 겨우 다이아 곡괭이 만들고 했습니다.


그런데 몇 달 전에 Voyager라는 논문 (첫 번째 링크)이 나왔습니다.

기존의 강화학습은 action을 통해 받는 보상으로 정책을 학습시켰지만, 이 논문은 이미지로 보이는 블럭과 개체 정보들을 LLM에 input으로 넣은 뒤, 이 상황에 맞는 코드를 짜달라고 했습니다. 그리고 그 코드를 Skill이라 부르고, Library에 넣는 형태로 합니다. 일종의 Prompt learning이죠.



결과는 놀랍게도 성공적이었습니다.


골드 블럭 채굴하는 영상


엔더맨과 싸우는 영상



솔직히 마인크래프트 학습에 상당히 회의적이었는데 성공하는 걸 보니 LLM이 이 정도였나 싶었어요.

기존 강화학습의 틀을 상당히 벗어나기는 했고 어떻게 보면 LLM이라는 common sense의 힘을 빌린 것이지만요.



두 번째 논문은 Motif 라는 논문으로, LLM을 통해 넷핵 게임을 학습하는 겁니다. 여기서는 HFRL의 특성을 가져왔습니다. 다만 Human Feedback이라기 보다는 LLM Feedback이지만요.

넷핵이란 게임은 완전히 텍스트 게임이라, 어떤 행동을 했을 때 텍스트로 그 정보가 나타납니다.


예를 들어 바닥에서 열쇠를 얻었을 때 '열쇠를 얻었다!' 라고 텍스트가 나타나요. 벽에 닿아도 '벽이다' 라고 나타나고요.


우선 미리 말하고 싶은게, 강화학습에서는 저희가 일반적으로 생각하는 연속적인 상황을 통한 문제 해결이 좀 힘듭니다.

예를 들어 다음 두 상황은 일반적으로 보았을 때 당연한 수순이죠. 학습하기를 기대하는 바이기도 하고요.


1. 열쇠를 얻는다.

2. 잠긴 문을 열어 보상을 얻는다.


그런데 강화학습은 MDP를 사용하기 때문에 우연히 열쇠를 얻고, 다시 우연히 잠긴 문을 열어 보상을 얻으면 '어, 문 근처에 가는게 좋네!'라고 학습해서 열쇠는 쌩까고 문으로 돌진하는 형태로 나타나고는 합니다. 이 또한 해결하기 위해 여러 논문이 있지만, 생략하겠습니다.


논문의 알고리즘은 다음과 같습니다.



논문에서는 나타나는 텍스트들을 LLM에 input으로 넣은 뒤, 이게 긍정적인 상황인지 부정적인 상황인지 말해달라고 하고 합니다. 긍정적인 상황이면 양의 보상을, 부정적인 상황이면 음의 보상을 받은 뒤, 그 텍스트가 나타난 횟수를 카운팅해 그만큼 나눕니다. 많이 본 건 딱히 놀랍지 않으니까요.


Voyager와 다른 점은, Voyager는 강화학습에서 사용되던 수학적인 policy를 완전히 지워버리고 diversity에만 집중했지만 본 논문에서는 내재적인 Reward의 구현에 LLM을 사용했고 그 이후는 일반적인 강화학습 방법(PPO)을 사용했다는 겁니다.


그 결과 꽤 많은 층을 내려갔다고 하네요.



LAMA 및 image to text model 도 계속 발전하는 걸 보면 어느 정도 뒤에는 좋은 prompt 만으로 일상적인 부분을 AI가 할 수 있지 않을까 싶어요.