REWARD DESIGN WITH LANGUAGE MODELS

이두현·2024년 3월 17일
0

abstract

사람이 의도한 행동양식을 수식으로 옮기는 것은 어렵기 때문에 RL reward를 디자인하는 것은 힘들다.

이 논문에서는 지향하는 행동양식을 언어적으로 표현했을 때 이를 LLM을 통해 숫자 형태 reward로 바꾸는 방식을 제안한다.

유저는 여러 예제(few-shot)나 description(zero-shot) 를 prompt 에 포함시키고 LLM 은 이와 함께 agent 의 행동양식을 input으로 받아 reward를 반환한다.

이 보상은 rl agent을 훈련시키는데 사용된다.

intro

reward를 직접 만드는 것보다 몇가지 예시를 주면서 선호도를 보상에 반영하는 것이 쉽다!

예시를 이해하기 위해 LLM을 사용한다.

  • LLM은 좋은 in-context learner로 사람의 선호도를 잘 반영할 수 있을 것이다.
  • 새로운 환경에서 LLM이 정확한 선호도를 반영한 reward를 뱉을 것으로 예상한다.

결론 : RL 을 훈련시키기 위한 reward function을 얻기 위해 prompt를 만드는 방법을 연구한다.

Reward를 만들기 위한 LLM의 input

  • 선호하는 행동을 설명하는 prompt
  • RL agent의 trajectory

Reward를 만들기 위한 LLM의 input

  • 0, 1 형태의 reward

두 가지 장점)

  1. LLM의 in-context learning 능력과 인간 행동에 대한 선수지식으로 몇 가지 예제만으로 활용가능
  2. 직관적으로 언어를 통해 행동 선호도를 반영할 수 있다.

단점)

  1. LLM이 의도된 행동을 반영하기 위해 얼마나 prompt engineering 해야하는지 연구가 필요하다

LLM을 Reward signal로 사용하는 것

S : trajectory가 있는 sequential 환경에서 state가 어떻게 정의되는지 잘 봐야할듯

input to LLM을 rho 로 표현 (네 가지 요소 포함)

rho_1. task 를 설명하는 string

rho_2. few-shot 이나 zero-shot으로 agent가 했으면 하는 행동양상을 설명하는 string

rho_3. RL 에피소드의 state, action 에 대한 textual 한 설명

rho_4. 과연 rho_3 가 rho_2에서 언급한 내용을 충족시켰는지

최종적으로 additional parser 가 존재해 LLM의 output을 binary 값으로 변환한다.

experiment

평가를 위한 세가지 질문

  1. few-shot prompting 으로 우리가 의도한 agent 행동에 걸맞게 꾸준한 reward signal을 공급하는가 ?
  2. objective가 잘 알려진 현상의 일부인 경우 LLM이 zero-shot으로 objective를 만족시키는 reward를 생성할 수 있는가?
  3. 더 길고 복잡한 domain 에서 LLM이 의도를 만족시키는 reward를 반환할 수 있는가?

proxy reward로 사용한 LLM : ‘text-davinci-002’ GPT-3 model , temp : 0

유저의 의도와 맞는 reward를 꾸준하게 생성하는지 판단하는 방법 : ground truth 와 비교

baselines

SL(few-shot baseline) : LLM에게 주어진 것과 같은 example으로 reward signal을 예측하도록 훈련된 모델.

대신 입력을 structured non-text input으로 주어 조금 더 쉽게 훈련하도록 만듦.

few-shot prompting 을 사용하는 경우에만 baseline 으로 사용함

DealorNoDeal 에서 모델 → negotiation 이 주어졌을 때 binary label을 예측하도록 훈련됨

mlp-GRU-mlp 구조의 모델이 supervised 방식으로 훈련됨

Deal or Nodeal에서의 실험결과)

timestep 이 있는 환경에서는 state 한개보다는 trajectory로 주어져야 한다.

하지만 longer prompt는 LLM 이 훈련과정에서 보지 않았을 것이므로 불리하다.

LLM은 recency bias 때문에 앞전에 나타낸 내용보다 나중 내용에 bias가 있을 수 있다.

(환경 상세설명)

task 설명 : 최대 100 timestep 으로 alice와 bob이 book, hat, ball 이 세 물건에 대한 allocation 문제에 협상하는 과정이다.

각 agent는 물건의 개수, 각자가 물건에 느끼는 효용함수 정보를 받는다.

원래 task 에서는 split 에 따른 효용함수로 보상을 받는다. 또한 협상이 결렬될 경우 둘다 아무 보상을 받지 못한다.

각 negotiation 에서 agent는 context를 제공받는데 (물건의 개수 , utility) → 총 길이 6의 배열이 주어진다.

train.txt 훈련 데이터는

여기서 가져옴

reward가 네가지 협상 방식을 배우도록 하는 것이 목표

  1. versatile : 두번 이상이 협상을 제시하지 않는다.
  2. push_over : 상대보다 낮은 점수를 받아도 된다.
  3. competitive: 상대보다 높은 점수를 받아야 한다.
  4. stubborn : 같은 협상을 반복적으로 제시한다.

parser : prompt 에 yes/no 로 대답하게 만들고 답변에 yes, no 찾아서 1, 0 을 반환한다.

만약 두 단어모두 없을 경우 그냥 해당 episode는 넘긴다.

prompt design : 세 가지 예시를 통해 관철시키고자 하는 성질을 설명한다.

예시 만드는 법: 코드 뜯으면서 자세히 봐야할 듯 ..

논문의 개선여지

  1. prompt 생성을 자동화 시키는 방식을 생각하면 task-independent 한 reward를 만들 수 있다.
  2. 두 trajectory간 장, 단점을 언어로 설명할 수 있는 방법이 있다면 text 형태의 pbrl 을 가능하게 한다.
profile
0100101

0개의 댓글

관련 채용 정보