Papers

Reward Gaming in Conditional Text Generation

voidtype 2023. 7. 21. 11:44

RM모델이 취약해질 수 있는 상황을 3가지 시나리오로 설정하고, 실제로 그런지 확인하기 위해 가상태스크(synthetic example)와 실제 태스크(Real-world example)로 구분하여 실험을 진행하였습니다.

가상 태스크는 [8 X 8]행렬에 주어진 규칙을 만족하도로 숫자를 채워 넣는 수도쿠(sudoku) 문제를 사용하였고, 실제 태스크는 요약과 번역 태스크를 사용합니다. 특히, 수도쿠 문제는 [1 x 8] 1차원 배열로 형식을 변경하고, 36개의 숫자(힌트)가 미리 주어졌을 때, 나머지 37~80까지 숫자를 생성하는 형태로 문제를 정의합니다.

Reward gaming은 부적절한 패턴이 높은 보상을 갖게 되는 경우에 발생하는 현상이라고 정의합니다.

 

Reward gaming이 발생하는 3가지 시나리오

1. Noise-Induced Spurious Patterns

- 잘못된 레이블링이 노이즈가 되는 설정을 연구
- RM모델 학습데이터에 false-positive(실제 레이블은 올바르다고 되어있지만 틀린 예제) 샘플을 고의적으로 0.05% 정도 생성합니다.(500k 중 0.05%만 틀리게 세팅)
- positive set에는 모두 7로 끝나는 샘플들로만 구성하고, 이중에 0.05%만 오류인 셈.
- RM 모델 정확도는 99.3%로 높게 나오고, 7로 끝나는 샘플들을 모아서 테스트 해봐도 모두 유효하다고 잘 예측함을 확인.
- 위 RM모델을 가지고 강화학습을 해본 결과
학습이 진행됨에 따라 보상도 증가한다.(0.8이상으로 비교적 큰 보상을 달성), 그리고 7로 끝나는 샘플들의 양도 점점 증가한다.(7로 끝나는 풀이는 좋은 것이라고 RM에서 학습되었기 때문..)

그런데, 실제 7로 생성한 샘플들의 정답을 체크해보니, 0.15%만 맞고 나머지는 다 틀리게 생성이 되었다.
(보상함수의 정의가 올바른 스토쿠 시퀀스일 확률이라고 볼 때, 실제 강화학습에서 0.8 이상 보상을 달성하였다는 것도 해당 풀이가 80%의 정확률로 맞을 것이라고 기대할 수 있다. 하지만 0.05%의 오류로 인해 실제 정확률은 크게 하락하는 상황)

2. Naturally Occurring Spurious Patterns

- 가짜 상관관계(spurious correlation)는 반드시 노이즈때문에 생기는 것은 아니지만, 자연적으로 발생할 수 있음을 연구
- 가짜 상관관계를 수도쿠 문제에서 마지막 9개의 숫자가 반복되어 등장하는 패턴으로 정의
- 이러한 반복이 포함되도록 negative sample을 구성하고 RM모델을 학습
- 보상모델은 반복이 없는 예제에 대해 높은 보상을 부여할 것이므로, 강화학습에서는 반복이 없는 샘플들을 생성하도록 훈련됨.
- 아래 테이블에서 1500step 진행된 시점에 생성된 샘플들에 대해서 반복여부와 그에 따른 평가를 해보니 반복이 없는 대부분의 샘플은 높은 보상(괄호 안에 점수)을 받았지만 상당수는 틀린 시퀀스를 생성하고 있었다.
- 즉, 반복여부는 높은 보상을 받을 수 있는 좋은 피처이지만 실제 성능과는 상관이 없다는 것이다.(가짜 상관관계)

- 번역에서도 "..."와 같은 토큰은 거의 오류가 없다고 레이블링이 되어있다. 이런 데이터로 RM 모델을 학습하였더니, "..."가 포함된 문장의 생성비율이 올라가고, 높은 보상은 달성하지만 BLEU score 상승으로는 이어지지 않았다.
- conduct라는 단어도 95%가 에러없음으로 태깅된 단어다 보니, 해당 단어를 사용하여 번역을 하려 애를 쓰는 현상이 있고, 실질적으로 부자연스러운 번역결과가 나오기도 한다.

 

3. Covariate Shift

- Covariate Shift는 학습데이터의 분포와 실제 테스트 데이터가 다른 상황을 지칭하는 용어로, RM모델이 학습에서 보지 못한 패턴에 대해 높은 보상을 부여한다는 내용입니다.
- 수도쿠 문제에서는 1로 끝나는 샘플에 대해서만 positive example셋을 구축합니다. 이 데이터에서 숫자 위치만 여러 번 바꾸는 형태로 negative sample을 생성합니다. 모델은 2~9로 끝나는 샘플은 한 번도 경험하지 못한 상태가 됩니다.
- 1로 끝나는 1000개(in-support set), 2~9로 끝나는 1000개(out-of-support)에 대해 invalid한 수도쿠 샘플을 가지고 테스트를 했더니..
: in-suppert-set에서는 1개만 맞았다고 잘못 분류했고,   -> 본 것은 잘했는데..
: out-of-support는 659개를 valid한 것으로 분류함.     -> 안 본 것은 못함.
- 이 모델로 강화학습을 하면, 대체적으로 높은 보상(0.8)을 얻는 형태로 학습은 되지만, 실제로 올바른 풀이가 나오는 경우는 10% 이하이다.
- Real-world Task에서는 요약과 번역을 예로 들고 있는데요, 요약의 경우 RM모델이 경험한 데이터는 가장 짧은 것이 7 토큰 샘플인데, 학습 중 2 토큰 정도 짧게 들어오는 경우 높은 보상을 부여하는 현상이 있다.
- 번역에서는 학습기반 평가 메트릭인 BLEURT를 RM모델로 사용하여 실험을 하였는데요, 이 모델이 반복을 포함하는 번역에 대해서 구분을 잘 못한다고 합니다.

4. 마무리

RM모델의 취약점을 분석하고, 설루션이 있으면 적극 활용해 봐야겠다고 생각해서 좀 열심히 봤는데요 계속 볼 수록 데이터 관련된 이슈들이 많다고 느껴졌습니다.

소량이지만, 틀린 데이터(false-positive)가 들어가면 RM모델 성능 자체는 좋게 나올지 모르겠지만, 강화학습을 했을 때는 전체 결과에 악영향을 미칠 수 있다는 사실을 알았습니다.
또한, 의도하지 않은 상황이지만 편향이 발생하는 경우, 같은 결과가 나타나는데, 정말 민감하겠다는 생각이 들었습니다.

 

상세 리뷰

https://gusty-dogsled-1c4.notion.site/Reward-Gaming-in-Conditional-Text-Generation-4f99e0050ecd480da3b6fd972fe4f170?pvs=4