Training language models to follow instructions with human feedback 논문 읽기

아우아우·2023년 7월 19일
0

논문 읽으며 정리

목록 보기
4/12

Abstract

언어모델이 더 커진다고 해서 더 잘따르는건 아니다.
-> 사용자의 의도하고는 맞지 않는걸 output으로 내보낼 수 있다.
본 논문은 사람의 피드백에 따라 fine-tuning하여 언어 모델이 광범위한 작업에 대해서 사용자의 의도를 맞추는 방법을 제시한다.
과정
1. GPT-3 를 fine-tuning하기 위한 labeler demonstration 데이터를 수집
2. human feedback의 강화학습을 사용하여 fine-tuning을 진행
(이 결과를 Instruct GPT라 한다)

  • Instruct GPT의 장점
    1) 1.3B parameter를 가짐에도 175B의 GPT-3 보다 output이 선호 된다.
    2) NLP 데이터 셋에서 성능 회귀를 최소화 하여 진실성 향상과 toxic 출력을 감소한다.
    -> 미세 조정이 언어 모델을 인간의 의도와 일치시키는 방법이 유망함을 보여줌

Introduction

대규모 언어 모델은 입력으로 작업의 일부를 받아서 NLP작업을 수행한다.
-> 간혹 toxic 있는 text나 편향, 지침위반 등의 행동을 한다.
--> 많은 언어 모델링은 지침을 안전하게 따르도록 한다.(하지만 되지 않으며, 의도하지 않은 행동을 방지하려고 여러 행동을 한다.)

논문은 언어 모델을 사용자의 의도에 맞춰 행동하도록 훈련하여 언어 모델을 조정하는데 진전을 보인다.
-> 언어를 통하여 언어 모델이 helpgul, honest, harmless 등을 하기 원한다.

논문은 언어 모델을 aligning 하기 위해 미세 조정 접근 방식에 중점을 둔다.(RLHF 방식 - 사람 피드백에서 강화학습을 이용)
RLHF 기술은 사람의 선호도를 보상 신호로 사용하여 모델을 fine-tuning 한다.
논문에서는 40명의 사람을 고용하여 테스트 성과에 기초하여 label을 붙이며, 이를 바탕으로 데이터를 수집한다.
-> 선호 모델을 예측하기 위해 데이터 셋에 대한 reward model(보상모델)을 훈련한다.
-> 마지막으로 RM을 보상함수로 사용하고 PPO 알고리즘을 사용하여 보상을 최대화 하기 위한 지도학습 기준선을 fine-tuning한다.

--> 이 과정이 Instuction GPT라 본 논문에서는 칭한다.

labeler가 보류 고객의 prompt로 구성된 테스트 셋에서 모델 출력의 품질을 평가하도록 해서 model을 평가한다. 또한 다양한 공개 NLP 데이터 셋에 대해 자동 평가를 수행

논문의 주요 결과는 다음과 같다.

  • labeler는 GPT-3의 출력보다 InstuctGPT의 출력을 상당히 선호한다.
  • InstuctGPT는 GPT3보다 향상된 진실성을 보여준다.
  • InstuctGPT는 GPT-3에 비해 유해성이 개선 되었으나, 편향은 없다.
  • RLHF fine-tuning 절차를 수정하여 공개 NLP 데이터셋의 성능 회귀를 최소화 한다.
  • InstuctGPT는 학습 데이터를 생성하지 않는 "Hold-out" labeler의 선호도로 일반화 된다
  • 공개 NLP 데이터셋은 언어 모델이 사용되는 방식을 반영하지 않는다.
  • Instruct GPT 모델은 RLHF fine-tuning 분포를 벗어난 Instruct에 대해서도 유망한 일반화를 보여준다
  • Instuct GPT는 여전히 간단한 실수를 범한다.

Related work

  • Research on alignment and learning from human feedback
    RLHF에서 강화 학습과 일치시키는 이전 기술을 기반으로 본 논문은 진행하였다. 사람 피드백을 통하여 prompt를 증가시키고 GPT-3의 성능을 향상 시켰다.

  • Training language models to follow instructions
    언어 모델에서 crosstask 일반화 연구와 관련이 있으며, 광범위한 공개 NLP 데이터 세트에서 fine-tuning되고 다른 NLP 작업 세트에서 평가 된다.
    다양한 NLP작업에서 LM을 fine-tuning 하면 제로샷, few shot 둘다 성능이 향상 되었다.

  • Evaluating the harms of language models
    언어 모델의 행동을 수정하는 목표는 실제 환경에서 사용될때 유해성을 완화 하는 것이다. 편향, 개인정보 유출, 오보를 생성 할 수 있으며, 악의적 사용으로 될 수 있다. 철저한 검토를 통하여 사용자들에게 알려준다. 하지만 LM 동작의 개입은 부작용이 일어 날 수 있기 때문에 진전을 이루는 것이 어렵다.

  • Modifying the behavior of language models to mitigate harms
    언어 모델의 생성을 변경하는 방법은 여러가지가 존재한다

  1. 작은 값의 목표 데이터 셋에서 LM을 미세 조정하여 질문 답변 작업에서 모델이 값을 고수하는 능력을 향상
  2. 작성한 트리거 구문 세트를 생성할 수 있는 조건부 가능성이 높은 문서를 제거하여 사전 훈련 데이터셋을 필터링하여 훈련 -> 덜 해로운 텍스트 생성
  3. 생성 중 특정 단어 또는 n-gram 차단, 특정 제어토큰, 사람의 반복 데이터 수집 등의 접근
  4. 임베딩 정규화, 데이터 증강, 민감한 토큰의 분포를 균일하게 만드는 공간투영 등의 방법이 존재한다.

Methods and experimental details

High-level methodology

본 논문의 방법론은 사전 훈련된 모델이 정렬된 출력을 생성하기 원하는 prompt 분포 및 훈련된 labeler 팀으로 시작 된다.
이후 3가지 단계를 진행한다.

  • Step 1: Collect demonstration data, and train a supervised policy.
    labeler는 prompt에서 원하는 동작을 제공한다. 이후 GPT-3는 fine-tuning을 한다.

  • Step 2: Collect comparison data, and train a reward model.
    모델 출력 간 비교 데이터 셋을 수집하는데 labeler는 주어진 입력에 대해 어떤 출력을 선호하는지 나타낸다. -> 사람들이 선호하는 출력을 하기 위한 RM을 훈련한다.

  • Step 3: Optimize a policy against the reward model using PPO.
    RM의 출력을 스칼라 보상으로 사용한다. PPO알고리즘을 사용하여 이 보상을 최적화 하도록 감독된 fine-tuning을 한다.

  • step2,3은 연속적으로 반복할 수 있다. 새 RM과 새 정책을 교육하는데 사용되는 최상의 정책에 대해 더 많은 데이터가 수집된다. 비교 데이터는 supervised 정책에서 나온것이며 일부는 PPO에서 나온것이다.

Dataset

논문에서 쓰인 prompt 데이터셋은 OpenAI API에 제출된 텍스트 prompt 특히 play ground interface에서 이전 버전의 InstuctGPT 모델을 사용하는 텍스트 prompt로 구성

Playground를 사용하는 유저는 Instuct GPT를 사용할때마다 반복 알림을 통해 추가 모델을 교육하는데 데이터를 사용할 수있다는 정보를 받았다.

논문에서는 긴 공통 접두사를 공유하는 prompt를 확인하여 prompt 중복 제거를 하고 사용자 ID당 prompt를 200개로 제한하였으며 train, validation, test를 분할하며, 사용자 데이터는 없도록 한다.

논문의 연구자들은 Labeler에게 3가지 prompt를 작성하도록 요청했다

  • plain : labeler에게 작업이 충분한 다양성을 갖도록 보장하면서 임의의 task를 제시하도록 요청
  • Few-shot : labeler에게 명령과 해당 명령에 대한 query, response를 제안할 것을 요청
  • User-based : OpenAI의 API의 여러 use-cases에 해당하는 prompt를 젯하도록 요청

미세 조정 절차에 사용되는 세가지 데이터셋을 만들어낸다
1) SFT 모델을 훈련하는데 사용되는 labeler demonstrations, 13000개의 train prompt
-> SFT dataset
2) RM을 훈련 하는데 사용되는 모델 출력의 순위를 사용하는 RM 데이터셋 33000개의 train prompt
-> RM dataset
3) RLHF 미세 조정을 위한 입력으로 사용되는 데이터셋, 31000개의 train prompt
-> PPO dataset


Table1에는 사용사례 범주가 나와 있다.

Table2에 몇가지 예시 prompt 지침이 있다.

Tasks

논문에서의 교육과제는 2가지 source에서 나왔다.
1) labeler가 작성한 prompt dataset
2) API의 초기 InstructGPT 모델에 제출된 prompt datset
-> 생성, QnA, dialog, summarization, extractions, 기타 자연어 처리를 포함한다.

각 자연어 prompt에서 대부분은 자연어 명령으로 직접 지정되지만, 간접적인 몇번의 예나 암시적 연속을 통해 지정 될 수도 있다.
labeler에게 사용자의 의도를 추론하기 위해 최선을 다하고 불분명한 입력을 건너뛰게끔 요청 하였다.
지침과 판단에 따라 진실성과 암묵적의도, 편향 등과 같은 해로운 값들을 반고려한다.

Human data collection

Demo와 비교 데이터셋을 생성하고 비교하기 위해 40명의 사람을 고용
다양한 인구 통계그룹에 민감하고, 유해한 출력을 식별해야 하므로, 레이블러 성능을 측정하도록 screening 테스트를 수행하여 좋은 성적을 거둔 labeler를 선정

사용자가 잠재적으로 유해한 응답을 요청하는 경우 정렬 기준이 충돌 할 수 있다. 그 경우 사람들에게 도움이 되는 것을 우선한다.

models

사전학습된 GPT-3 에서 시작한다. GPT-3는 인터넷의 광범위한 데이터 분포에 대해 학습되었고, downstream에 적응하지만 특성화 되지 않은 동작이 있어 3가지 테크닉으로 모델을 학습

  • Supervised fine-tuning(SFT)
    지도 학습을 사용하여 labeler demo에서 GPT-3를 미세 조정한다.
    검증 세트의 RM score를 기반으로 SFT모델을 선택
    -> SFT 모델이 유효성 손실에 과적합 한다는 것을 발견 하였지만, 더 많은 epoch에 대한 훈련에서 사람 선호도 등급 모두에 큰 도움이 되는것을 발견

  • Reward modeling (RM)
    최종 unembedding layer가 제거된 SFT모델에서 시작하여 prompt와 response를 받아 스칼라 reward를 출력하도록 모델을 학습시켰다.
    RM은 동일한 입력에 대한 두 모델 출력 간의 비교 데이터셋에 대해 학습 된다. 비교를 레이블로 사용하여 cross entropy loss를 사용, reward의 차이는 사람들이 한 응답을 다른 응답보다 선호할 확률을 나타낸다.

순위에 대한 응답이 K=4에서 k=9 사이인 labeler를 제시한다. labeler에게 표시 되는 각 prompt에 대해 (K2)\begin{pmatrix}K\\2\end{pmatrix}개의 비교가 생성 비교는 각 레이블 지정 작업 내에서 매우 상관관계가 있어 비교를 하나의 데이터셋으로 섞으면 데이터셋을 한번 통과해도 RM은 괒거합 된다.
대신 prompt에서 모든 (K2)\begin{pmatrix}K\\2\end{pmatrix}개를 비교를 하나의 배치로 학습을 한다.
RM의 단일 forward pass만 필요로 하여 효율적으로 계산되고, overfit 되지 않아 더 좋은 valdiation 정확도와 log loss를 달성한다
RM의 loss 함수는 다음과 같다.

위의 식에서 rθ(x,y)r_\theta(x,y)는 prompt x와 response y에 대한 RM의 스칼라 출력이며, ywy_wyly_l쌍 중에 더 선호되는 응답이다. DD는 비교 데이터셋이다

RM loss는 reward의 shift에 불변하여 labeler demonstration이 RL을 수행하기 전에 평균이 0이 되도록 bias를 사용하여 reward model을 정규화한다

  • Reinforcement learning(강화학습, RL)
    PPO를 사용하여 환경에서 SFT모델을 Fine-tuning 하였다.
    환경은 임의의 고객 prompt를 제시하고 prompt에 대한 response를 기대하는 bandit 환경이다.
    prompt와 response가 주어지면 RL은 결정된 보상을 생성하고 episode를 종료한다.
    논문에서는 공개 NLP 데이터셋의 성능 회귀를 수정하기 위해 사전 학습 기울기를 PPO 기울기에 혼합하여 실험하였다. (이를 PPO-ptx라 한다. 마지막 term은 PPO-ptx를 위한 term을 의미한다.)
    RL 학습에서 다음과 같은 결합된 목적함수를 최대화 한다.

    여기서 πϕRL\pi_\phi^{RL}은 RL policy, πSFT\pi^{SFT}는 지도학습 모델, DpretrainD_pretrain은 사전학습분포이다. KL reward 계수 β\beta와 pretraining loss γ\gamma는 KL penalty와 사전학습의 기울기 강도를 조절한다.
    PPO model의 경우 γ=0\gamma = 0으로 설정된다.
    별도로 명시되지 않는 한 Instuct GPT 모델은 PPO-ptx 모델이다.

  • baseline
    논문에서는 PPO 모델의 성능을 SFT 모델 및 GPT-3와 비교한다.
    각각 약 100만개의 예에서 fine-tuning을 진행하고 validatation set에서 높은 점수를 얻는 체크포인트를 시작한다.

Evaluation

평가 기준
1. 도움을 주는가
2. 정직한가
3. 유해하진 않은가
alignment - LM이 의도에 맞게 동작하는가

모델이 aligned 되었는지 평가하려면 맥락에서 alignment이 무엇을 의미하는지 명확히 해야 한다.
논문에서의 목표는 사용자의 의도에 따라 행동하는 모델을 훈련하는 것이다. 실질적인 언어 작업의 목적을 위해, 정직하고 해롭지 않은 경우 aligned 된 모델을 정의하는 것과 유사한 frame work를 사용한다.

few shot promnpt 도는 QnA와 같은 다른 해석이 가능한 패턴에서 의도를 추론해야한다. 연구자들은 labeler의 판단에 의존하며, 그들의 선호도를 지표로 사용하였다.
-> 하지만 labeler는 사용자가 아니기에 한계가 존재한다.

생성모델에서 정직성을 측정하는 방법은 불분명
-> 닫힌 도메인 작업에 대한 정보를 구성하는 모델 경향을 평가하는 두가지 metric과 Truth를 측정한다

언어 모델의 유해도를 측정하는 것도 불분명
-> labeler 담당자들의 출력물이 유해한지 평가, 하지만 출력이 어떻게 사용될 것인지 너무 많은 추측이 필요하여 중단

따라서 유해할수 있는 행동의 다양한 측면을 포착하는 것을 목표로 하는 것보다 구체적인 프록시 기준을 사용

요약 - 정량적 평가를 두부분으로 나눌 수 있다.

  • Evaluations on API distribution
    논문에서의 지표는 사람의 선호도 등급이다. train prompt가 InstuctGPT 모델과 함께 사용되도록 설게되어, GPT3 baseline에 불리할 가능성이 있다.
    -> 이러한 이유로 API의 GPT-3에 제출된 prompt에 대해 평가
    -> 평가에 사용된 prompt 는 GPT-3용으로 설계 되었다.

  • Evaluations on public NLP datasets
    두가지 유형의 공개 데이터셋에 대해 평가
    NLP 작업에서 zeroshot 성능을 포착하는 데이터셋과 유해성에 대한 평가를 진행

Result

API 베포에대한 결과 및 공개 데이터셋에 대한 결과를 보여준다.

Results on the API distribution

Labeler는 GPT-3의 출력보다 Instruct GPT의 출력을 상당히 선호 한다.

위의 결과를 통해 알 수 있는것
1. InstuctGPT의 output을 좋게 평가
2. 폐쇄적인 domain 작업에서 사실을 만드는 경우가 더 적다.(신뢰성 개선)
3. InstructGPT가 GPT-3 보다 신뢰성이 높고 제어하기 쉽다.
4. 데이터 생성에 참여하지 않는 labeler에게도 더 좋은 평가를 받았다.

  • Our models generalize to the preferences of "held-out" labelers that did not produce any training data
    논문에서 held out labeler는 훈련 데이터를 생산할때의 사람과 유사한 순위 선호도를 가지고 있다. 특히 held out labeler에 따르면 Instruct GPT는 단순히 train labeler에 과적합 된것이 아니다
    -> RM의 일반화 기능에서 추가적인 증거 관찰 가능

  • Public NLP datasets are not reflective of how our language models are used

    그림5는 FLAN 및 T0 데이터셋에 fine tuning 된 GPT3와 instruct GPT를 비교
    -> Instruct GPT가 FLAN과 T0 보다 성능이 잘나온 이유

  1. 공개 NLP 데이터셋은 평가하기 쉬운 작업을 캡쳐하도록 설계 되었으나 분류, QA는 API 고객이 언어모델을 사용하는것이 일부분(18%) 반면 공개 데이터셋 및 브레인 스토밍은 57%로 구성
  2. 공개 NLP 데이터셋에서 매우 다양한 입력을 얻는 것은 어렵다. NLP데이터셋에서 발견되는 task는 LM이 해결할 수 있는 Instuct를 나타내므로, 광범위한 Instuct를 따르는 모델은 두 유형의 데이터셋을 결합한다.

Results on public NLP datasets


위의 그래프는 Instruct GPT가 GPT-3에 비해 Truth가 향상되었음을 보여준다.
논문에서의 Truth 향상은 논문에서의 PPO 모델이 API distribution의 close domain 작업에서 환각을 덜 보인다는 사실에서도 입증된다.


위의 그래프를 통하여 Instruct GPT는 GPT-3에 비해 유해성이 개선 되었으나, 편향성은 개선되지 않았다.
(단 prompt에서 명시적으로 유해성을 요구하면 GPT-3 보다 더 유해성을 보여준다.)

  • RLHF 미세 조정 절차를 수정하여 공개 NLP 데이터셋의 성능 저하를 최소화 할 수 있다.
    (fine-tuning 과정에서 거의 학습되지 않은 것에도 잘 답변하는 것)

기본적으로 API 베포에서 PPO 모델을 교육할 때 여러 공개 NLP 데이터셋에서 성능이 저하 되어 alignment tax로 어려움을 겪는다.
-> alignment tax를 피하는 절차가 필요하다.

Qualitative results

  • InstructGPT 모델은 RLHF Fine-tuning을 하지 않은 데이터셋에 대해서도 일반화 성능을 보여준다
    -> 영어가 아닌 언어로 내린 Instruct에도 잘 답변
    -> 데이터셋에 영어가 아닌 언어 및 코드 데이터가 극 소량인걸 생각하면 훌륭한 결과다

  • InstuctGPT는 여전히 실수를 한다.
  1. 잘못된 전제가 주어진 Instruct를 주었을때 전제가 사실이라고 잘못된 가정을 한다.
  2. 모델이 과도하게 위험을 회피 할 수도 있다.
  3. 명령어에 명시적인 제약조건이 있는 경우 성능이 저하 된다.

Discussion

Implications for alignment research

논문에서 사용하는 alignment기법 RLHF는 초인적 시스템을 alignment를 정렬하기 위한 여러 제안에서 중요한 구성요소다.
RLHF는 사람이 직접 평가하기 어려워 초인적 ai시스템을 aligning하는 어려움을 일부 보여주는 작업이다.
이 작업을 통해 논문에서는 다음과 같은 교훈을 준다.

  1. model alignment 하는 비용은 사전 훈련에 비해 적다.
  2. Instuct GPT가 영어 이외의 언어, 코드 관련 작업이 감독하지 않는 설정에 following instructions를 일반화하는 증거를 보았다.
  3. fine-tuning으로 대부분의 성능을 완화 시킬 수 있으나, 그렇지 않은 성능 저하는 aligning tax를 구성하게 된다.
  4. 현실 세계의 연구를 통해 alignment 기술을 검증했다.

Who are we aligning to?

언어 모델을 사람의 의도와 일치 할때 모델의 최종 행동은 기본모델, 미세 조정데이터 및 사용된 alignment 방법의 함수이다.

사람의 선호 및 가치 같은 용어로 alignment를 구성한다.이 작업에서 그들이 받은 맥락, 지시 등이 labeler들의 선호에 맞추어졌으며, 다음과 같은 주의 사항이 적용된다.

  1. 모델을 fine-tuning을 하는데 사용되는 데이터는 직접 생산하는 train labeler가 제공하는 demonstration과 선호도에 맞춰져 있다.
  2. 연구를 설계하는 연구자들의 선호도에 맞추고 있다.
  3. 교육 데이터는 openai 고객이 open api playground의 모델로 보낸 prompt로 결정되어 고객이 가치 있다고 생각 하는것과 사용자가 현재 api를 사용하는데 가치가 있다고 생각하는것에 암묵적으로 맞춰진다.
  4. OpenAI의 고객은 언어 모델 사용의 영향을 받는 모든 개인 및 그룹 뿐만 아니라 잠재적 똔느 현재 사용자를 대표하지 않는다.

Limitations

  • Methodology
    InstructGPT의 동작은 부분적으로 계약자로부터 얻은 사람 피드백에 의해 결정된다.
    -> 이는 계약자의 정체성, 신념, 가치 등에 의존한다. 하지만 이들이 모두를 대표하지 않는다
    데이터 수집 설정을 개선할 수 있는 다양한 바법이 있으나, 비용적인 문제가 있었다. 예제를 여러 번 레이블을 지정하면 계약자가 동의하지 않는 영역의 식별에 도움이 되며, 이는 단일 모델의 모든 영역에 일치하지 않을 수 있다.

-Models
InstructGPT는 완전히 이해하거나 안전하지 않다. 여전히 유해하거나 편향된 출력, 폭력적 컨텐츠를 생성한다.

Open questions

이 작업은 alignment 기술을 사용하여 언어 모델을 미세조정하여 광범위한 지침을 따르기 위한 단계이다

  • 유해성을 감소시키기 위해 많은 방법을 시도할 수 있다.
  • 사용자가 잠재적으로 유해하거나 부정한 응답을 요청하는 경우 모델이 이러한 출력을 생성하는것을 허용한다.
  • 우리가 원하는 것을 할 수 있는 모델을 얻는 것은 조향성 및 제어 가능성 문헌과 직접적인 관련이 있다.
  • 논문에서는 RLHF에 초점을 맞추고 있지만, 더 나은 결과를 얻기 위한 다른 알고리즘이 있다.
  • 비교가 alignment 신호를 제공하는 가장 효율적인 방법일 필요는 없다.
  • RLHF fine-tuning에 사전 훈련 데이터를 통합하여 alignment tax를 완화하자는 제안은 성능 회귀를 완전히 완화하지 않으며, 일부 작업에 대해 바람직하지 않은 동작을 만들 수 있다.
    -지시, 의도, 선호, 관심사, 가치관에 대한 alignmnet 사이에는 미묘한 차이가 있다.

Broader impacts

사람들이 원하는것을 하도록 훈련 시킴으로써 긍정적인 영향을 증가하려는 목표의 동기 부여가 된다. 하지만 alignment 실패는 더 심각한 결과를 초래 할 수 있음으로 더 많은 주의를 기울여야 한다.

사용자의 의도를 더 잘 따르는 언어 모델을 만드는 것
-> 오용을 더 쉽게 만드는 문제도 있다.

0개의 댓글