https://arxiv.org/abs/2203.02155
Training language models to follow instructions with human feedback
Making language models bigger does not inherently make them better at following a user's intent. For example, large language models can generate outputs that are untruthful, toxic, or simply not helpful to the user. In other words, these models are not ali
arxiv.org
Abstraction.
언어 모델의 크기를 키운다고 해서, 반드시 사용자의 의도를 더 잘 따르는 것은 아닙니다. 예를 들어, 대규모 언어 모델은 거짓되거나 유해한(toxic), 혹은 단순히 사용자에게 도움이 되지 않는 출력을 생성할 수도 있습니다. 즉, 이러한 모델들은 사용자와 정렬(alignment)되어 있지 않습니다. *모델 크기의 증가로 인한 성능 향상과 사용자 입장에서의 성능 향상은 다를 수 있다.
본 논문에서는 사람의 피드백(human feedback)을 활용한 파인튜닝을 통해, 다양한 작업에서 언어 모델을 사용자 의도에 맞출 수 있는 한 가지 방법을 제시합니다. 우선, 라벨러(labeler)가 작성한 프롬프트와 OpenAI API를 통해 제출된 프롬프트를 모아서, 원하는 모델 행동을 시연(demonstration)한 라벨러 데이터셋을 구축합니다. 이를 사용해 GPT-3를 지도학습(supervised learning) 방식으로 파인튜닝합니다. 이후 모델 출력에 대한 순위(rank) 데이터셋을 수집하여, 이를 인간 피드백 기반 강화학습(RLHF, Reinforcement Learning from Human Feedback)으로 추가 파인튜닝하는 데 활용합니다. 이렇게 얻은 모델을 저자는 'InstructionGPT'라 부릅니다. *라벨러와 OpenAI API를 통해 제출된 프롬프트 대신, LLM-as-a-Judge같은 LLM을 통해서 추가 파인튜닝 데이터를 확보할 수도 있을 것같음. 그러기 위해서는 데이터 합성에 대한 지식도 필요할 듯.
인간 평가(human evaluation) 결과, 프롬프트 분포에서 파라미터가 1.3B인 InstructionGPT 모델의 출력이, 파라미터가 175B인 GPT-3의 출력보다 선호되었습니다. 이는 파라미터 수가 100배나 적음에도 불구하고 얻은 결과입니다. 또한, InstructionGPT 모델은 진실성(truthfulness)을 개선하고, 독성(toxic) 출력을 줄이면서도 공공 NLP 데이터셋에서의 성능 감소(performance regression)를 최소화했습니다. 비록 InstructionGPT도 여전히 단순한 실수를 범하지만, 이러한 결과는 사람의 피드백을 통한 파인튜닝이 언어 모델을 인간의 의도와 정렬하는 데 있어 유망한 방향임을 보여줍니다. *모델의 크기를 키우기 위한 치킨게임 대신, 인간 선호와 정렬시키는 방법으로의 LLM의 발전이라는 점에서 유의미하다 생각함.
Instroduction.
대규모 언어 모델(LLMs)은 입력된 작업 사례 몇 개를 예시로 삼아, 여러 자연어 처리(NLP) 태스크를 수행하도록 '프롬프트'할 수 있습니다. 하지만 이러한 모델들은 사실을 지어내거나(bullshitting), 편향되거나 유해한(toxic) 텍스트를 생성하거나, 사용자의 지시를 제대로 따르지 않는 등 의도치 않은 행동을 자주 보이곤 합니다. 이는 많은 대규모 언어 모델이 웹 페이지의 다음 토큰을 예측하는 언어 모델링(Language Modeling) 목표로 학습되어 왔기 때문인데, 이는 '사용자의 지시를 안전하고 도움이 되게 따르는 것'이라는 목표와는 다르기 때문입니다. 따라서 논문의 저자는 이러한 언어 모델링 목표가 사용자의 의도와 '정렬되어 있지 않다(misaligned)'고 말합니다. 그리고 수백 가지 애플리케이션에 적용되는 언어 모델에서 의도치 않은 행동을 막는 것은 특히 중요합니다. *기존의 LLMs의 목표는 언어 모델링이기 때문에 인간 선호에 대한 정렬과는 상관이 없음.
논문은 언어 모델을 사용자 의도에 맞게 행동하도록 학습함으로써, 정렬 문제를 해결하고자 합니다. 여기에는 명시적인 의도(예: 지시를 따르기)뿐 아니라, 거짓된 정보를 제공하지 않거나 편향, 독성, 유해함을 피하는 등 암묵적인 의도까지 포함됩니다. Askell et al. (2021)의 말에 따르면, 우리는 언어 모델이 유용(helpful)하고, 정직(honest)하며, 무해(harmless)하기를 원합니다. 즉, 사용자 태스크 해결에 도움을 주고, 정보를 날조하거나 사용자를 호도하지 않고, 물리, 심리, 사회적 피해를 유발하지 않는 방향입니다.
논문은 언어 모델의 정렬 문제를 '파인튜닝(fine-tuning)'을 통해 해결하는 데 초점을 맞춥니다. 구체적으로, GPT-3를 광범위한 텍스트 지시사항에 맞춰 학습시키기 위해 인간 피드백 기반 강화학습(RLHF, Reinforcement Learning from Hunam Feedback; Chrisriano et al., 2017; Stiennon et al., 2020)을 사용합니다(Figure 2 참고). 이 기법은 사람의 선호를 보상(reward) 신호로 활용해 모델을 파인튜닝합니다. 논문에 따르면, 먼저 40명의 작업자를 고용해 데이터에 라벨을 달도록 했습니다.
이후 OpenAI API에 제출된 프롬프트와 일부 라벨러가 작성한 프롬프트에 대해, 원하는 출력 행동을 시연(demonstrate)하는 예시를 수집해 지도학습용 모델(supervised learning) 베이스라인을 학습합니다. 그 다음, 더 큰 규모의 API 프롬프트 세트에서 무델의 출력들에 대해 라벨러가 직접 '비교평가(ranking)'한 데이터를 모읍니다. 이를 바탕으로 '보상 모델(RM)'을 학습해, 라벨러가 어떤 모델 출력을 더 선호할 것인지를 예측하게 합니다. 마지막으로, 이 RM을 보상 함수로 삼아 PPO(Schulman et al., 2017) 알고리즘을 사용해 우리의 지도학습 모델을 최대 보상 방향으로 파인튜닝합니다. *많은 강화학습 알고리즘 중에서 왜 PPO를 사용했을까?
논문에서는 저자들이 주로 보유한 테스트 세트(학습 데이터에 포함되지 않은 고객의 프롬프트)에서 라벨러들이 모델 출력의 품질을 평가하도록 하여 모델을 측정했습니다. 또한 다양한 공공 NLP 데이터셋에 대한 자동 평가도 수행합니다. 논문에서는 1.3B, 6B, 175B 파라미터를 갖는 세 가지 모델을 학습하며, 모두 GPT-3 아키텍처를 사용합니다. 주요 결론은 다음과 같습니다:
- 라벨러들은 InstructionGPT의 출력을 GPT-3의 출력보다 훨씬 선호합니다.
- 테스트 세트에서, 파라미터 수가 100배 이상 차이나는데도 불구하고, 파라미터가 1.3B에 불과한 InstructGPT 모델의 출력이 175B GPT-3의 출력보다 선호됩니다. 두 모델은 동일한 아키텍처를 쓰지만, InstructGPT는 '인간 데이터'로 파인튜닝된 점만 다릅니다.
- 몇 개의 샘플 예시(few-shot prompt)를 추가해 GPT-3가 지시를 더 잘 따르도록 해도, 이러한 결과는 유지됩니다. 175B InstructGPT는 175B GPT-3에 비해 85±3% 비율로 선호되었고, few-shot 175B GPT-3에 비해서도 71±4% 비율로 선호되었습니다.
- 또한, InstructGPT는 라벨러 기준 더 적절한 출력을 생성하고, 지시문에 명시된 제한사항을 더 잘 따르는 경향을 보였습니다.
- *라벨러들의 선호가 평가 기준이기 때문에, 라벨러들의 평가 기준이 무엇인지 객관적인 설명이 필요할듯
- InstructionGPT는 GPT-3에 비해 진실성(truthfulness)이 개선되었습니다.
- TruthfulQA 벤치마크에서, InstructGPT는 GPT-3보다 두 배 더 자주 '진실하고 유익한 답변'을 생성합니다.
- GPT-3에 불리하게 작성된 문제가 아닌 질문 하위 세트에서도 돌일하게 좋은 성능을 확인했습니다.
- '닫힌 도메인(closed-domain)' 태스크(예: 요약, 닫힌 도메인 QA)에서는 입력에 존재하지 않는 정보를 절반 수준으로만 지어내며(헛소리 비율: 21% vs 41%), GPT-3에 비해 '환각(hallucination)'이 훨씬 적습니다.
- InstructGPT는 독성(toxicity) 측면에서 소폭 개선을 보였으나, 편향(bias) 개선은 크지 않았습니다.
- 독성을 측정하기 위해 RealToxicityPrompt(Gehman et al., 2020) 데이터셋으로 자동/인간 평가를 수행한 결과, '존중(respectful)하며 출력하라'고 프롬프트했을 때, InstructGPT가 GPT-3보다 약 25% 더 적은 독성 출력을 생성했습니다.
- 다만 Winogender(Rudinger et al., 2018), CrowSPairs(Nangia et al., 2020) 데이터셋 등에서 편향 문제는 GPT-3와 크게 다르지 않았습니다. *왜?
또한 논문에서는 RLHF 파인튜닝 과정을 수정함으로써, 공공 NLP 데이터셋에서의 성능 저하(performance regression)를 최소화할 수 있습니다. RLHF 파인튜닝 시, SQuAD, DROP 등 일부 공공 NLP 데이터셋에서 GPT-3 대비 성능이 떨어지는 '회귀' 현상을 관찰했습니다. 이는 '정렬(alignment)'을 달성하는 대가(alignment tax)라고 볼 수 있습니다. *인간 라벨러의 선호에 맞춰서'만' 파인튜닝을 진행하면 사전학습때 정보를 잃어버리기 때문에 인간 선호에 대한 평가 지표말고 객관적인 공공 평가 지표에서는 성능이 낮아진다.
하지만 PPO 업데이트 중에 사전학습 분포(pretraining distribution)의 로그 가능성(log likelihood)를 높이는 업데이트(PPO-ptx)를 섞어 적용하면, 라벨러 선호도 점수를 훼손하지 않으면서도 이들 데이터셋에서의 성능 저하를 크게 줄일 수 있습니다.
공공 NLP 데이터셋은 우리의 언어 모델이 실제로 사용되는 방식을 제대로 반영하지 못합니다. 사람의 선호도 데이터(즉, InstructGPT)로 파인튜닝한 GPT-3와 FLAN과 T0 두 가지 공개 NLP 데이터셋으로 파인튜닝한 GPT-3를 비교했습니다. API 프롬프트 분포에서, FLAN과 T0를 활용해 파인튜닝한 모델들은 지도학습(SFT) 베이스라인 대비 성능이 약간 떨어졌고, 라벨러들은 이러한 모델들보다 InstructGPT 출력을 훨씬 더 선호했습니다.
InstructGPT는 RLHF 파인튜닝 분포 밖에 있는 지시사항에도 유망한 일반화 능력을 보입니다. 논문에서 InstructGPT의 가능성을 정성적으로 점검해본 결과, 코드 요약이나 코드 관련 질의응답 등, 파인 튜닝 데이터에서 드문 지시사항도 어느 정도 따르며, 어떤 경우에는 다른 언어로 된 지시사항도 수행했습니다. 반면 GPT-3도 이를 수행할 수 있지만 훨씬 정교한 프롬프트가 필요하고, 보통 이러한 도메인에서 지시사항을 제대로 따르지 못했습니다. 이는 모델이 '지시사항을 따른다'는 개념을 일반화하고 있다는 점에서 매우 흥미로운 결과이며, 직접적인 감독 신호가 적은 태스크에서도 어느 정도 정렬 상태를 유지한다는 의미로 볼 수 있습니다.
그럼에도 InstructGPT는 여전히 단순한 실수를 합니다. 예를 들어, 지시사항을 따르지 못하거나, 사실을 임의로 지어내거나, 간단한 질문에도 길게 둘러대는 답변을 하거나, 거짓 전제를 포함한 지시사항을 제대로 인식하지 못하는 문제 등이 남아 있습니다. 종합해보면, '인간 선호도'를 활용해 대규모 언어 모델을 파인튜닝하는 것은 여러 태스크에서 모델 동작을 크게 개선한다는 사실이 드러났으나, 여전히 안정성과 신뢰도를 높이기 위한 후속 연구가 많이 필요합니다.
Related Work.
1) 인간 의도에 모델을 정렬시키고, 인간 피드백으로부터 학습하는 연구
논문은 모델을 인간의 의도와 정렬하기 위한 기존 기법, 특히 인간 피드백 기반 강화학습(RLHF)을 바탕으로 발전시킵니다. RLHF는 원래 시뮬레이션 환경의 단순 로봇이나 아타리(Atari) 게임을 학습시키는 데서 시작되었지만, 최근에는 텍스트 요약 작업등에서 적용되어 왔습니다.
2) 언어 모델을 지시사항(instructions)을 따르도록 학습하기
본 연구는 언어 모델에서 '크로스 태스크 일반화(cross-task generalization)'를 다루는 연구와도 밀접한 관련이 있습니다. 여기서는 모델이 다양한 공공 NLP 데이터셋(대개 적절한 지시문이 함께 제공됨)으로 파인튜닝된 뒤, 다른 NLP 태스크들에서 평가되는 방식을 택합니다. Yi et al. (2019), Mishra et al. (2021) 등 많은 연구가 이 분야에 속합니다. 대부분의 연구에서 공통적으로 발견되는 점은, 다양한 NLP 태스크와 지시문을 모델에 파인튜닝하면 zero-shot 혹은 few-shot 환경에서 미지의 태스크에 대한 모델 성능이 향상된다는 사실입니다.
3) 언어 모델의 잠재적 유해성을 평가하기
언어 모델의 동작은 조정(modify)하는 목표 중 하나는, 실제 환경에서 모델이 초래할 수 있는 유해성을 완화하는 것입니다. 이러한 위험성은 다수의 문헌에서 광범위하게 다루어져 왔습니다(Bender et al., 2021' Bommasani et al., 2021). 예컨대, 언어 모델은 편향된 출력을 내거나, 개인 정보를 유출하며, 잘못된 정보를 생성하거나 악용될 수도 있습니다. 특히 대화형 시스템(dialog systems) 등 특정 도메인에 언어 모델을 배포하면 새로운 위험과 과제가 발생합니다. 이런 유해성을 구체적으로 평가하기 위한 벤치마크를 구축하려는 분야도 점차 활발해지고 있습니다. 주로 독성(toxicity), 고정관념, 사회적 편향(social bias)에 초점을 맞춥니다. 그러나 언어 모델의 거동에 대한 '선의의 개입'을 시도할 때도 부작용이 발생할 수 있어, 해결이 간단하지 않습니다. 예를 들어, 독성을 줄이려는 노력이 편향으로 인해 소수 집단의 텍스트를 제대로 모델링하는 능력을 떨어뜨릴 수도 있습니다.
4) 언어 모델의 유해성을 줄이기 위해 모델 거동을 수정하기
언어 모델의 생성 행위를 바꾸는 방법에는 여러 가지가 있습니다. 예컨대 Solaiman과 Dennison(2021)은 가치(value)에 초점을 맞춘 소규모 데이터셋으로 모델을 파인튜닝하여, Q&A 태스크에서 모델이 해당 가치들을 더 잘 준수하도록 했습니다. Ngo et al. (2021)은 사전학습 데이터에서, 특정 트리거 문구를 생성할 확률이 높은 문서를 제거해 필터링한 뒤 이를 학습 데이터로 사용해, 언어 모델이 덜 유해한 텍스트를 생성하도록 했으나, 언어 모델링 성능이 약간 떨어지는 대가가 있었습니다. 이 밖에도, 언어 모델의 편향을 완화하기 위해 워드 임베딩 정규화, 데이터 증강, 민감 토큰 분포를 균등하게 만드는 'null space projection', 대안적 목적함수, 인과적 매개 분석 등이 시도되었습니다. 또한, 보조 언어 모델(주로 더 작은 규모)을 사용해 주 모델의 생성을 유도하는 연구도 있으며, 이를 변형해 언어 모델의 독성을 줄이는 데 적용한 사례(Schick et al., 2021)가 있습니다.
Methods and experimental details.
1) High-level methodology
해당 논문의 방법론은 Ziegler et al. (2019)와 Sitiennon et al. (2020)의 접근 방식을 따른 것으로, 이들은 이를 문체적 연속성(stylistic continuation)과 요약(summarization) 분야에 적용했습니다. 저자들은 먼저 사전 학습 된 언어 모델과, 모델이 특정 방식으로 출력을 내도록 하고 싶은 프롬프트들의 분포, 그리고 훈련된 인간 레이블러 팀을 준비했습니다. 이후 다음과 같은 단계들을 수행했습니다:
1) Step1: 시범(demonstration) 데이터 수집 및 지도 정책(supervised policy) 학습
레이블러들은 입력 프롬프트 분포에 대해 원하는 행동을 시범으로 보여줍니다. 그런 뒤, 이 시범 데이터를 사용해여 사전 학습된 GPT-3 모델을 지도 학습 방식으로 fine-tuning을 합니다.
2) Step2: 비교(comparison) 데이터 수집 및 보상 모델(reward model) 학습
모델이 생성한 여러 출력들을 비교하는 데이터셋을 수집하고, 레이블러들은 주어진 입력에 대해 어떤 출력을 더 선호하는지를 표시합니다. 이 비교 데이터를 바탕으로, 사람이 선호하는 출력을 예측하도록 보상 모델을 학습합니다. *왜 비교 데이터를 이용해서 학습할까? 아마도 ... RM의 출력이 스칼라 보상이기 때문에 자연어 입력을 받고 점수를 출력해야한다. 하지만 자연어 입력과 인간 선호도 점수가 매핑되어있는 데이터셋이 없기 때문에, 두 입력의 선호도 비교를 통해 두 입력의 선호도 점수가 커지는 방향(선호하는 입력은 선호하지 않는 입력과의 점수 차이가 커지는 방향)으로 RM을 학습하는 방법을 선택한 것 아닐까?
3) Step3:PPO(Proximal Policy Optimization)를 활용해 보상 모델을 이용한 정책 최적화
보상 모델(RM)의 출력을 스칼라 보상(scalar reward)으로 사용합니다. 그 후, 지도 학습으로 초기화된 정책을 PPO 알고리즘을 사용해 이 보상을 최적화하도록 미세조정합니다.
Step 2와 3은 연속적으로 반복 가능합니다. 즉, 현재까지 가장 좋은 정책에서 더 많은 비교 데이터를 수집하고, 이를 사용해 새로운 보상 모델을 훈련한 뒤, 다시 새로운 정책을 학습하는 식입니다.
2) Dataset
프롬프트 데이터셋은 주로 OpenAI API에 제출된 텍스트 프롬프트로 이루어져 있는데, 동일(혹은 매우 유사)한 긴 프롬프트가 중복해서 들어오는 경우를 제거하기 위해 휴리스틱 방식으로 프롬프트를 중복 제거했으며, 사용자 ID당 최대 200개의 프롬프트로 제한했습니다. 또한 학습 세트에 포함된 사용자와는 다른 사용자 ID를 검증 및 테스트 세트에 할당함으로써, 학습 세트 사용자와 겹치지 않도록 데이터 분할을 수행했습니다.
최초의 InstructGPT 모델들을 훈련하기 위해, 레이블러들에게 직접 프롬프트를 작성하도록 요청했습니다. 이는 초기 단계에서, 이미 존재하던 GPT-3 모델에 사용자들이 자주 입력하지 않았던 '명령(instruction) 스타일'의 프롬프트가 필요했기 때문입니다. 레이블러들에게는 다음과 같은 세 가지 유형의 프롬프트를 작성하도록 부탁했습니다:
- Plain: 레이블러가 임의의 작업을 생각해내되, 충분한 다양성을 확보하도록 유의하며 작성
- Few-shot: 어떤 지시문(instruction)을 제시하고, 해당 지시문에 대한 여러 질의/응답 예시를 함께 작성
- User-based: OpenAI API 대기열에 기재된 다양한 사용 사례(use-case) 목록을 바탕으로, 그와 관련된 프롬프트를 작성
이러한 프롬프트를 바탕으로 파인튜닝 과정에서 사용되는 세 가지 데이터셋을 만듭니다:
- SFT(Supervised Fine-Tuning) 데이터셋: 레이블러가 제공한 시범(데모)들이 포함되어, 지도 학습 모델(SFT 모델)을 훈련하는 데 사용
- RM(Reward Model) 데이터셋: 모델 출력물에 대한 레이블러들의 상대적 선호도(순위)를 담고 있으며, 보상 모델(RM)을 학습하는 데 사용
- PPO 데이터셋: 별도의 인간 레이블 없이, RLHF(인간 피드백을 활용한 강화학습) 파인튜닝의 입력으로 사용하는 프롬프트들
각 데이터셋의 규모에 대한 자세한 정보는 표 6에 제시되어있습니다.
데이터셋의 구성을 이해하기 위해, 표 1에서는 계약된 레이블러들이 분류한 API 프롬프트의 사용 사례별 분포를 보여줍니다.
표 2에는 연구진이 InstructGPT 모델에 실제 제출된 프롬프트와 유사하도록 따라 작성한 예시 프롬프트들을 보여줍니다.
3) Task
학습에 사용된 작업(task)은 크게 (1) 레이블러가 작성한 프롬프트, (2) API 상의 초기 InstructGPT 모델에 실제로 제출된 프롬프트, 이 두 가지에서 가져왔습니다. 이 프롬프트들은 생성, 질의응답(QA) 등 매우 다양한 자연어 작업들을 포함합니다(표 1 참조). 자연어 프롬프트의 경우, 사용자는 보통 자연어 지시문 "현명한 개구리에 대한 이야기를 써주세요."를 통해 모델에게 원하는 작업을 직접 명시하거나, 몇가지 예시(few-shot 예제)를 제시하여 모델이 유추하게 만들거나(예: 개구리 이야기 예시 2개를 주고 세 번째 이야기를 요청), 혹은 간접적으로 글을 시작해둔 뒤 이어서 작성하도록 요청할 수도 있습니다. 이때 레이블러들은 사용자가 암무적으로 의도한 진실성(truthfulness), 편향적/유해한 언어(biased or toxic language) 방지 등을 모두 고려하도록 지침을 받았습니다.
4) Human data collection
(레이블러에 대한 정보들. 훌륭한 레이블러임.)
5) Models
먼저 Brown et al. (2020)의 GPT-3 사전 학습 언어 모델로부터 시작합니다. 이 모델들은 인터넷 데이터의 광범위한 분포로부터 학습되어 다양한 다운스트림 작업에 쉽게 적응할 수 있지만, 실제 동작 특성은 충분히 명확히 규명되지 않은 상태입니다. 이러한 모델들을 초기값으로 하여, 세 가지 다른 기법을 통해 모델을 훈련합니다. *RM도 LLM, GPT-3구나..
1) Supervised fine-tuning (SFT)
레이블러가 제공한 시범(demonstration) 데이터를 지도 학습 방식으로 GPT-3에 파인튜닝합니다. 저자는 코사인 학습률 감쇠(cosine learning rate decay)와 0.2의 잔차 드롭아웃(residual dropout)를 적용해 총 16 epoch동안 학습했습니다. 최종 SFT 모델 선정 시에는 검증 세트에서 RM(보상 모델) 점수가 가장 높은 지점을 기준으로 했습니다. Wu et al. (2021)와 유사하게, SFT 모델도 검증 손실 기준으로는 1 epoch 이후부터 오버피팅이 발생하지만, epoch를 더 늘려 학습하면 검증 손실이 증가함에도 불구하고 RM 점수와 인간 선호도 평가 모두 향상되는 것으로 나타났습니다.
2) Reward modeling (RM)
SFT 모델에서 최종 언임베딩(unembedding) 레이어를 제거한 상태로 시작하여, 프롬프트와 응답을 입력받아 스칼라 형태의 보상 값을 출력하는 모델을 학습합니다. 본 논문에서는 계산량 절감을 위해 6B 파라미터 규모의 RM만 사용했습니다. 175B 규모의 RM은 학습이 불안정하여 RL 과정에서 가치함수(value function)로 사용하기 적합하지 않았습니다. *모델의 크기에 비해 부족한 데이터 크기?
Stiennon et al. (2020)은, 동일한 입력에 대해 모델이 생성한 두 가지 출력 중 어느 쪽은 인간 레이블러가 선호하는지를 비교한 데이터셋을 사용해 RM을 학습합니다. 이때 비교 데이터에 대해 교차 엔트로피(cross-entropy) 손실을 사용하며, 두 출력의 보상 차가 레이블러가 한쪽 출력을 더 선호할 확률의 로그 오즈(log odds)가 되도록 설정합니다.
비교 데이터 수집 속도를 높이기 위해, 한 번에 K=4에서 K=9개의 응답을 레이블러에게 제시해 순위를 매기도록 했습니다. 이렇께 하면 레이블러가 한 프롬프트당 kC2개의 쌍별 비교를 제공하게 됩니다. 그러나 이러한 비교들은 같은 라벨링 태스크 내에서 매우 상관이 높으므로, 단순히 모든 쌍별 비교들을 하나의 데이터셋으로하여 섞어버리면 모델이 한 번의 epoch 내에 쉽게 오버피팅하는 문제가 발생했습니다. 대신에 저자들은 동일 프롬프트에서 나온 kC2개의 비교를 하나의 배치(batch) 요소로 묶어 한꺼번에 학습합니다. 이는 한 번의 순전파(forward pass)로 K개의 응답 각각에 대한 보상을 계산할 수 있으므로 훨씬 효율적일 뿐 아니라, 오버피팅도 완화시켜 검증 정확도롸 로그손실이 크게 개선되는 결과를 얻었습니다. *즉, kC2개의 쌍별 비교를 각각 별도의 데이터 포인트로 간주하면, 하나의 응답은 최대 K-1번이나 중복 업데이트에 노출될 수 있다. 모델은 한 번의 epoch만으로도 쉽게 오버피팅하기 때문에, epoch 내에서 데이터를 반복해 보는 방식은 문제를 더욱 심화시킬 수 있다.
여기서 rθ(x,y)는 프롬프트 x와 응답 t에 대해 보상 모델이 산출하는 스칼라 값이며, yw는 yw와 yl중 레이블러가 선호한(winning) 응답, D는 인간 비교 데이터셋을 의미합니다. 아울러 RM 손실은 보상 값이 절댓값(시프트)에는 불변이므로, 레이블러 시범(demonstraion) 데이터의 평균 보상 점수가 0이 되도록 RM에 바이어스(bias)를 적용한 후 RL을 진행했습니다.
3) Reinforcement learning (RL)
Stiennon et al. (2020)을 다시 참고해, SFT 모델을 환경에서 PPO 알고리즘으로 fine-tuning합니다. 무작위 프롬프트가 주어지면 모델이 응답을 생성하고, 프롬프트와 응답을 입력받은 보상 모델(RM)이 스칼라 보상을 산출한 뒤 에피소드가 종료됩니다. 이때 보상 모델의 과최적화(over-optimization)를 막기 위해, 매 토큰 단위로 SFT 모델과의 KL차이에 대한 패널티를 부과합니다. 가치 함수는 RM에서 초기화합니다. 이를 PPO라고 칭합니다.
또한 공개 NLP 데이터셋에서의 성능 하락(regression)을 보정하기 위해, PPO 경사(gradient)에 사전 학습(pretraining) 결사를 혼합하는 실험도 진행했고, 이를 PPO-ptx라고 칭합니다. 구체적으로 RL 학습에서 다음과 같은 결합 목적 함수를 최대화합니다.
여기서 πΦRL은 학습 중인 RL 정책, πSFT는 지도 학습으로 훈련된 모델, Dpretrain은 사전 학습 데이터 분포입니다. KL 보상 계수 β와 사전 학습 손실 계수 γ는 각각 KL 패널티와 사전 학습 경사의 강도를 조절합니다.
(RL정책과 RM에 대한 GPT와의 대화 내용, 추후 정리 필요)
https://chatgpt.com/share/67ac61ae-1138-800e-aa7f-0e6d066801db
ChatGPT - 영어 한국어 번역 요청
Shared via ChatGPT
chatgpt.com
(KL Divergense에 관한 블로그, 추후 정리 필요)
https://hyunw.kim/blog/2017/10/27/KL_divergence.html
초보를 위한 정보이론 안내서 - KL divergence 쉽게 보기
사실 KL divergence는 전혀 낯선 개념이 아니라 우리가 알고 있는 내용에 이미 들어있는 개념입니다. 두 확률분포 간의 차이를 나타내는 개념인 KL divergence가 어디서 나온 것인지 먼저 파악하고, 이
hyunw.kim
6) Evaluation
해당 모델이 얼마나 정렬(aligned)되었는지를 평가하려면, 먼저 여기서 말하는 정렬의 의미를 명확히해야 합니다. 해당 논문에서는 언어 모델 작업에서, Askell et al. (2021)의 개념과 유사하게 모델이 도움이 되며, 정직하고, 해롭지 않게 동작하도록 하는 것을 목표로 삼습니다.
- 도움이 됨(helpful): 모델은 지시문을 충실히 따를 뿐 아니라, few-shot 예시나 QA등과 같은 명시적 패턴으로부터 사용자가 의도하는 작업을 추론할 수 있어야 합니다.
- 정직(honest): 순수 생성 모델에서 '정직'함을 측정하기는 어렵습니다. 모델의 실제 '믿음'과 출력이 일치하는지 비교해야 하는데, 대규모 모델 내부 상태를 관찰하지는 사실상 불가능하기 때문에, 모델이 실제 세계의 댛해 '사실'을 얼마나 정확히 표현하는지를 나태내는 진실성(truthfulness)을 측정 지표로 삼습니다. 구체적으로 폐쇄형 도메인 작업에서 모델이 정보를 지어내는 경향(환각, hallucination)을 평가하고, TruthfulQA 데이터셋을 통해 사실성을 측정합니다.
- 해롭지 않음(harmless): 언어 모델이 주는 해를 측정하는 일도 여러 난관이 있습니다. 대부분의 경우, 언어 모델 산출물의 해로움은 실제 세계에 어떻게 사용되는지에 따라 달라집니다. 예를 들어 모델이 독성 언어를 생성한다면, 이를 챗봇에 바로 도입하면 유해할 수 있지만, 더 정확한 독성 검출 모델을 훈련하기 위한 데이터 증강(data augmentation)으로 활용된다면 오히려 유용할 수 있습니다.
이에 레이블러들에게 '고객 지원 어시스턴트로서 부적절한지', '보호 대상 집단을 폄하하는지', '성적이나 폭력적인 내용이 있는지' 등을 확인하도록 합니다. 또한 RealToxicityPrompts(Gehman et al., 2020), CrowS-Pair(Nangia et al., 2020) 같은 데이터셋에 대한 벤치마크를 실시해 모델의 편향 및 독성을 측정합니다.
정리하면, 정량적 평가는 크게 두 부분으로 나누어집니다:
- API 분포에 대한 평가: 주요 평가 척도는 학습에 사용된 것과 동일한 출처의 프롬프트 중 별도록 보관한(held-out) 검증 세트에 대해, 인간 레이블러가 모델 출력을 얼마나 선호하는지의 비율입니다. 레이블러는 각 모델의 출력과 비교 기준이 되는 베이스라인(175B SFT 모델) 중 어느 쪽이 더 선호되는지 비율을 계산합니다. 또한 레이블러가 각 응답의 전체 품질을 1~7점 리커트(Likert) 척도로 평가하고, 다양한 메타데이터를 함께 수집합니다(표 3 참조).
- 공개 NLP 데이터셋 평가: 모델 안정성과 관련이 깊은 진실성, 독성, 편향 등을 측정할 수 있는 공개 데이터셋과, 질문 응답, 독해, 요약 등 전통적인 NLP 작업에 대한 제로샷(0-shot) 성능을 측정할 수 있는 공개 데이터셋을 함께 평가합니다.
Results.
Results on the API distribution
1) 레이블러들은 GPT-3보다 InstructGPT의 출력을 훨씬 더 선호한다.
테스트 세트 프롬프트에서, 모든 모델 크기에서 InstructGPT의 출력을 레이블러들이 상당히 더 선호합니다. 그림 3을 보면, GPT-3 모델에 제출된 프롬프트(GPT distribution)를 사용했을 때도 결과가 크게 달라지지 않습니다. 다만 PPO-ptx 모델은 큰 모델 크기일수록 약간 성능이 떨어지는 모습을 보입니다. *이유는 잘...
2) InstructGPT의 출력은 고객 어시스턴트에 더 적합하고, 지시된 명시적 제약을 더 잘 따르며, 환각(hallucination)이 더 적다.
그림 4에 따르면. GPT-3 대비 InstructGPT 출력은 고객 지원 상황에서의 적절성이 더 높고, 예컨대 "답변을 두 단락 이내로 작성하라" 같은 명시적 제약을 더 잘 지키며, 주어진 지시문을 완전히 놓치는 경우("Fails to follow instruction")가 적고, 패쇄형 도메인 작업에서 정보를 지어내는 빈도도 적습니다.
3) 훈련용 데이터(레이블러)의 선호도에만 특화된 오버피팅이 아니다.
훈련에 참여하지 않은 별로 레이블러(그림 3의 held-out labelers)에게도 비슷한 결과가 나타났습니다(그림 3 참조). 즉, InstructGPT 모델들이 GPT-3 대비 우수한 특성을 보이는 것은 '훈련에 쓰인 레이블러'에게만 국한되지 않음이 드러납니다. 이를 좀 더 구체적으로 확인하기 위해, 저자는 레이블러를 5개 그룹으로 나누고, 5-폴드 교차검증으로 각각의 RM을 학습하는 실험을 진행했습니다. 그 결과, 이 RM들은 테스트시 서로 다른(held-out) 레이블러 그룹의 선호도를 69.6±0.9% 정확도로 예측했는데, 이는 훈련에 사용된 레이블러 그룹을 예측할 때 72.4±0.4%였던 것보다 소폭 낮은 수치입니다. 하지만 이는 여전히 높은 수준으로, 새로운 레이블러 선호도에도 잘 일반화한다는 것을 보여줍니다.
4) 공개 NLP 데이터셋은 실제 사용 사례를 충분히 반영하지 못한다.
그림 5에서, FLAN(Wei et al., 2021)과 T0(Sanh et al., 2021) 데이터셋으로 파인튜닝한 175B GPT-3 모델과 InstructGPT를 비교했습니다. 이들 모델은 기본 GPT-3보다는 성능이 더 좋지만, 적절한 프롬프트를 붙인 GPT-3 수준이며, SFT 베이스라인보다는 떨어졌습니다. 이는 FLAN이나 T0가 API 프롬프트 분포를 커버하기에 충분히 다양하지 않음을 시사합니다.
InstructGPT 모델이 FLAN이나 T0보다 나은 이유는 크게 두 가지로 제시합니다. 첫째, 공개 NLP 데이터셋은 주로 자동 지표로 평가하기 쉬운 과제(분류, QA, 요약, 번역 등)에 집중되어 있는데, 이러한 태스크는 전체 API 사용 사례에서 약 18%에 불과합니다. 둘째, 공개 NLP 데이터셋은 실제 사용자들이 관심을 가질 법한 매우 다양한 입력을 충분히 포함하기가 어렵습니다.
Results on public NLP datasets
1) InstructGPT는 GPT-3 대비 진실성(truthfulness)이 다소 향상되었다.
TruthfulQA(Lin et al., 2021) 데이터셋으로 인간 평가를 해본 결과, PPO 모델은 GPT-3 대비 사실적이고 유용한 답변을 더 자주 생성하는 것으로 확인되었습니다(그림 6 참조). 특히, 따로 "정직하게 답하라"고 명시 지시를 하지 않아도(QA prompt) 기본적으로 진실성이 소폭 개선된 모습을 보입니다. 예외적으로 1.3B 모델의 PPO-ptx는 동일 크기 GPT-3보다 약간 낮은 성능을 보였습니다.
Lin et al. (2021)을 따라, 모델에게 "확실하지 않을 땐 'I have no comment'라고 답하라"고 지시하는 "Instruction + QA"프롬프트를 추가로 제공했습니다. 이 경우 PPO 모델들은 사실이 아닐 가능성이 있는 내용을 자신 있게 단언하기보다는, 차라리 "사실을 모른다"고 답하는 경향이 강해졌습니다.
2) InstructGPT는 독성을 약간 개선하지만, 편향(bias)은 크게 개선하지 못했다.
먼저 RealToxicityPrompts(Gehman et al., 2020) 데이터셋에서 모델을 평가했습니다. 이는 일반적으로 Perspective API를 통해 자동 독성 점수를 매기는 절차가 표준인데, 논문의 저자는 추가로 인간 레이블러에게 절대적 독성, 프롬프트 대비 상대적 독성, 글의 연속성, 전반적 출력 선호도 들을 평가하게 했습니다.
그림 7을 보면, "respectful" 지시문(즉 "안전하고 정중한 답변을 하라"는 추가 지시)을 붙였을 때, Perspective API 기준으로 InstructGPT가 GPT-3보다 독성 점수가 낮았습니다. 그러나 이런 추가 지시가 없는 "no prompt" 상태에서는 두 모델 간 차이가 사라집니다. 흥미롭게도 "유해한 답변을 하라"고 지시하면, InstructGPT가 GPT-3보다 훨씬 더 독성 높은 출력을 냅니다.
한편, 편향을 측정하기 위해 Winogender(Rudinger et al., 2018)와 CrowS-Pairs(Nangia et al., 2020)를 변형한 데이터셋을 사용했습니다. 이는 편향을 유발할 수 있는 문장 쌍을 제시하고, 각 문장에 대한 모델의 확률을 비교해 상대적 엔트로피를 계산합니다. 완전히 편향이 없는 모델이라면 두 문장을 동일하게 취급해 최대 엔트로피를 내야합니다. 이 지표로 측정했을 때, InstructGPT는 GPT-3 대비 편향이 뚜렷하게 줄지 않았습니다. PPO-ptx 모델은 GPT-3와 유사한 수준이며, "정중함(respectful)"지시가 있을 때 오히려 더 낮은 엔트로피(=높은 편향)을 보였습니다. 이는 지시 유무와 관계없이, 모델이 자기 출력에 대한 높은 확신을 가지기 때문으로 보입니다.
3) 사전학습 혼합을 추가해주면, 공개 NLP 데이터셋에서의 성능 하락을 완화할 수 있다.
PPO 모델을 API 분포에서 학습하면, 몇몇 공개 NLP 데이터셋 성능이 떨어지는 "alignment tax"현상이 생긴다는 것을 확인했습니다. 이는 원치 않는 결과로, 모델 사용자가 '정렬된 모델'보다 '정렬은 안됐어도 여러 NLP 태스크를 잘 수행하는 모델'을 택하도록 만들 수 있습니다.
PPO 학습 중에 사전학습(언어 모델링) 경사를 섞어주는 PPO-ptx는 이런 성능 하락을 상당 부분 완화했고, 일부 태스크(예:HellaSwag)에서는 오히려 GPT-3를 웃돌기도 했습니다. 그렇지만 DROP, SQuADv2, 번역 등에서는 여전히 GPT-3 보다 낮은 성능을 보이며, 추가 연구가 필요합니다.
한 가지 단순한 대안으로 KL계수(β)를 크게 잡아 정책이 SFT 모델에서 지나치게 벗어나지 못하도록 하여 성능 하락을 막는 방법도 생각해볼 수 있습니다. 그러나 사전학습 혼합 계수(γ)를 잘 선택하면 SQuADv2와 DROP에서 성능을 회복하면서도 검증 세트 보상(RM 점수)을 크게 훼손하지 않습니다. 반면 KL 계수를 크게 하는 건 검증 보상을 많이 떨어뜨리면서도, DROP이나 SQuAD 성능을 충분히 회복시키지 못했습니다. 초기 KL 모델을 SFT가 아닌 GPT-3로 바꾸는 경우도 결과는 유사했습니다.
Qualitative results
1) InstructGPT는 RLHF 학습 분포 밖의 지시에도 유망한 일반화를 보여준다.
예컨대 영어가 아닌 언어로 된 지시문을 어느 정도 따르거나, 코드에 대한 요약/질의응답에도 대응할 수 있었습니다. 이는 비영어 텍스트와 코드 데이터가 전체 파인튜닝 데이터에서 아주 적은 비중을 차지함에도 관찰된 현상입니다. 정량적인 측정은 아니지만, 그림 8에 예시가 나와있습니다.
2) 하지만 InstructGPT도 여전히 단순한 실수를 저지른다.
175B 파라미터 PPO-ptx 모델을 사용했을 때, 다음과 같은 실수를 관찰했습니다:
- 거짓 전제를 포함한 지시문에서, 모델이 그 전제를 당연히 참이라고 가정하고 답변해버리는 경우
- 답이 명확한 질문에도 지나치게 주저하며 여러 가능성을 나열하거나, "하나의 정답만 있지 않다"고 말하는 경우("hedging")
- 한 지시문에 명시적 제약이 여러 개 들어가면(예: "1930년대 프랑스를 배경으로 만든 영화 10편을 알려줘"), 모델 성능이 저하되거나 언어 모델링 입장에서 까다로운 제약("정확히 3문장으로 요약해라")은 지키기 어려워한다.
그림 9는 이러한 사례를 보여줍니다. 논문의 저자는 (2)와 같은 "지나친 주저"가 생기는 이유가, 레이블러 지침에서 '인식론적 겸손(epistemic humility)'을 높이 평가하라고 했기 때문이라고 추정합니다.
Discussion.
Implications for alignment research
비록 이 연구가 현재의 언어 모델 시스템에 초점을 맞추고 있지만, 궁극적으로는 미래의 AI 시스템에도 적용 가능한, 일반적이고 확장성 있는 방법을 모색해야합니다. 이 연구에서 정렬의 접근법은 반복적(iterative)입니다. 즉, 아직 존재하지 않는 '초인적' AI 시스템을 추상적으로 정렬하는 데만 집중하는 것이 아니라, 현재 AI 시스템의 정렬 수준을 실제로 향상하는 것입니다. 이 방법은 실제로 어느 정도 효과가 있고 어디서 실패하는지를 명확히 피드백 받으며 경험적 루프(emprical feedback loop)를 구축할 수 있다는 장점이 있습니다. 반면, 책 요약과 같은 경우 사람이 직접 평가하기 어려워 초인적 AI 시스템 정렬과 유사한 문제를 일부 보여줍니다. *LLM-as-a-Judge..?
1) 모델 정렬 비용은 사전학습 비용에 비해 상대적으로 낮다.
논문에서의 데이터 수집 및 학습(실험 포함)에 사용된 연산량은 GPT-3를 학습하는 데 소요된 규모의 일부분에 불과합니다. 예를 들어, 175B SFT 모델을 학습하는 데 4.9PF-day가 걸렸고, 175B PPO-ptx 모델을 학습하는 데는 60PF-day가 들었습니다. 이는 GPT-3(3,640 PF-day) 대비 훨씬 적은 양입니다. 그럼에도 RLHF는 모델을 사용자에게 더 '도움이 되는'형태로 만드는 데 매우 효과적이었고, 이는 단순히 모델 크기를 100배 늘리는 것보다도 큰 효과를 보였습니다.
2) InstructGPT가 감독하지 않은 상황(예: 비영어 작업, 코드 관련 작업)에서도 지시문을 따르는 일반화가 일부 관찰된다.
이는 모델이 수행하는 모든 작업마다 사람이 감독하기에는 비용이 매우 큰 현실을 감안할 때 중요한 특성입니다. 향후 모델의 능력이 코질 때, 이 일반화가 얼마나 확장 가능하지에 대한 추가 연구가 필요해보입니다.
3) 파인튜닝으로 인해 발생하는 성능 저하를 대부분 완화할 수 있었다.
(PPO-ptx를 통해...)
Who are we aligning to?
(계약직 레이블러들이 제공한 시범 데이터. 다양한 레이블러를 확보하는 것이 중요.)
Limitations
1) 방법론적 한계
(계약직 레이블러들로부터 제공된 데이터를 통해 학습. 이 자체에는 개별적인 가치가 녹아들어있어 편향을 일으킬 수 있음.)
2) 모델적 한계
(여전히 독성이 있고, 편향된 출력을 낸다. 현실에서 유해할 수 있는 사용자 요청조차도 모델이 그대로 수행하려 함.)
Open questions
1) 독성/편향/유해성 등의 문제를 더 줄일 방법
- 레이블러가 모델의 최악(worst-case) 행위를 발굴하는 적대적 세팅을 통해, 그 사례들을 라벨링하고 데이터셋에 포함시키는 방식
- 사전학습 단계에서부터 데이터 필터링을 적용해 초기 모델 자체를 더 안전하게 만드는 방식
- WebGPT(Nakano et al., 2021)처럼 모델의 진실성을 높이는 기법 병합
2) 사용자가 해롭거나 거짓된 응답을 요구하는 경우
본 연구에서는 사용자가 요구하면 그런 출력을 내도록 허용했지만 이는 실제로 유해한 지시문에 대해서도 모델이 그런 내용을 생성하지 않도록 하는 것이 매우 중요합니다. 다만 어떤 응답이 해롭거나 아닌지는 맥락에 따라 달라질 수 있고, 이 문제를 제대로 다루는 것은 쉽지 않습니다.
3) 모델 조정(steerability), 통제(controllablity)와의 관련성
Dathathri et al. (2019), Krause et al. (2020) 등에 따르면, 모델을 어떻게 원하는 방향으로 손 쉽게 '조종'할 수 있는지가 중요한 연구 주제입니다. 예컨데 RLHF와 다른 스티어링 기법(예: control codes) 등을 결합할 수 있습니다.
4) 다른 알고리즘 적용 가능성
이번 연구에서는 주로 RLHF(PPO) 방식을 다뤘지만, 시범/비교(선호) 데이터를 활용해 더 나은 성능을 내는 다른 알고리즘(예: expert iteration, 또는 비교 데이터 일부를 활용한 단순 행동 클로닝(behavior cloning))을 시도할 수도 있습니다. 혹은 유해 생동을 소수만 일으키는 조건하에서 보상 모델 점수를 극대화하는 제약 최적화(Achiam et al., 2017)를 적용할 수도 있습니다.
5) 비교 데이터가 최적 신호는 아닐 수 있다.
레이블러들이 모델 응답을 직접 수정하거나, 자연어 형태로 비판을 작성해주는 방식이 더 효율적인 피드백이 될 수도 있습니다.
6) 사전학습 데이터를 혼합해 alignment tax를 줄이려는 제안도 완벽하지 않다.
PPO-ptx로도 모든 공개 NLP 태스크 성능 저하가 해결되는 것은 아니며, 일부 작업에서는 원치 않는 행동이 증가할 가능성이 있습니다. 사전 학습 혼합 데이터에서 독성 콘텐츠를 걸러내거나, 인공적으로 만든 안전 지시문을 추가하는 방향으로 추가 연구를 할 수 있습니다.
'[Deep daiv.] > [Deep daiv.] NLP' 카테고리의 다른 글
[Deep daiv.] NLP, 논문 리뷰 - A Survey on LLM-as-a-Judge (2) (0) | 2025.01.15 |
---|---|
[Deep daiv.] NLP, 논문 리뷰 - A Survey on LLM-as-a-Judge (1) | 2025.01.13 |
[Deep daiv.] NLP, 논문 리뷰 - QLoRA: Efficient Finetuning of Quantized LLMs (0) | 2025.01.10 |
[Deep daiv.] NLP - Optimizer 정리 (0) | 2025.01.08 |
[Deep daiv.] NLP, 논문 리뷰 - LoRA: Low-Rank Adaptation of Large Language Models (0) | 2025.01.07 |