[22′ NIPS] InstructGPT : Training language models to follow instructions with human feedback

This entry is part 5 of 13 in the series Language Model

1. 들어가며

이번 글에서는 OpenAI에서 발표한 InstructGPT 논문을 리뷰합니다. 이 논문은 2022년 NIPS에서 발표되었으며 원 제목은 “Training language models to follow instructions with human feedback” 입니다. 이 논문은 언어 모델이 사용자의 의도에 어떻게 더 잘 반응할 수 있는지에 대한 방법을 제시하고 있습니다. 그렇다면 이 주제가 왜 중요한지, 그리고 이를 가능하게 하는 기술은 무엇인지 궁금하실 것입니다.

먼저, 대규모 언어 모델이라고 불리는 이 기술은 놀라운 성능을 보이고 있지만, 여전히 해결해야 할 문제가 있습니다. 이러한 모델들은 때로는 거짓 정보를 제공하거나, 편향된 의견을 가지고 있을 수 있습니다. 더 나아가 독성 있는 대답까지 생성할 가능성이 있죠. 이런 문제들의 근원은 모델이 학습하는 데이터에 있습니다. 그래서 이번 글에서는 이러한 문제를 어떻게 해결할 수 있는지에 대해 자세히 알아보려고 합니다.

이 글은 다음과 같은 부분으로 구성되어 있습니다. 첫 번째로는 대규모 언어 모델이 왜 사용자 친화적이지 않은지에 대해 알아보겠습니다. 이 부분에서는 모델이 학습하는 데이터가 어떻게 문제를 야기하는지에 대해서도 살펴보려고 합니다. 두 번째로는 InstructGPT가 이 문제를 어떻게 해결하려고 하는지에 대한 방법을 세 가지 주요 단계로 나눠 설명하려고 합니다. 세 번째로는 논문에서 제시한 다양한 실험 결과를 살펴보겠습니다. 그리고 네 번째로는 이 연구가 가져올 수 있는 다양한 시사점과 한계점에 대해 이야기해 보겠습니다. 다음으로는 InstructGPT의 장점과 단점을 정리하려고 합니다. 마지막으로는 이 논문이 왜 중요한지, 그리고 미래에 어떤 영향을 미칠 수 있는지에 대해 깊이 있게 알아보려고 합니다.

여기서 잠깐, 여러분은 언어 모델이 얼마나 똑똑해질 수 있는지, 또는 어디까지 발전할 수 있는지에 대해 생각해 보신 적이 있나요? 이 논문은 그런 미래에 대한 흥미로운 통찰을 제공합니다. 머신 러닝과 인공지능이 우리 일상에 미치는 영향은 점점 커지고 있고, 이 논문은 그 중심에 있습니다.

여러분이 이 글을 읽고 나면, 언어 모델의 한계와 가능성에 대해 깊은 이해를 하실 수 있을 것입니다. 또한 언어 모델이 어떻게 더 사용자 친화적으로 발전할 수 있는지, 그리고 이를 가능하게 하는 기술적인 방법들에 대해서도 알게 될 것입니다. 그럼 지금부터 이 흥미로운 여정을 함께 시작해 보겠습니다.

이번 글을 작성하는 과정에서 참고한 자료들은 이번 글 마지막 챕터인 참고자료 부분에 링크를 첨부하여 정리했습니다. 본문에는 [번호] 형태로 참고자료를 표기했으니 참고자료 챕터를 확인 바랍니다.

2. 기존 방법의 문제점

그럼 이번 챕터에서는 InstructGPT 이전 LLM들의 공통적인 문제점을 살펴보겠습니다. 이를 통해 InstructGPT가 풀고자 했던 문제는 무엇인지 알아보겠습니다.

InstructGPT 이전에도 다양한 LLM들이 발표되었는데요. GPT-1[1], BERT [4] 등 1세대 LLM이라고 할 수 있는 모델들도 비록 오래 전에 발표되었지만 기존 언어 모델과 확실하게 차별화되는 성능으로 주목받았습니다. 이후 다양한 LLM들이 연구, 발표되며 지속적으로 LLM의 성능을 향상시켜왔죠. 특히 InstructGPT 직전에는 GPT 시리즈의 최신버전이라고 할 수 있는 GPT-3 [3]가 발표되었는데요. GPT-3 [3]에서는 Fine Tuning 없이 In Context Learning 방법을 적용하여 범용적인 문제에 만족할만한 수준의 성능을 내는 LLM을 제안했습니다.

하지만 이렇게 많은 발전을 거듭해오고 있는 LLM들에게도 공통적인 여러 한계가 존재하는데요. 대표적으로 거짓말을 하는것, 편향된 대답을 하는것, 나쁜말(toxic text)을 하는것, 사용자의 의도에 맞지 않는 답변을 하는것 등을 들 수 있습니다. 이에 InstructGPT에서는 이러한 기존 LLM들의 공통적 한계를 극복하고자 합니다. GPT 시리즈들이 그렇듯, InstructGPT에서도 이러한 문제에 초점을 맞추는 의도는 명확합니다. 바로 실용적인 이유 때문이죠. 아무리 수치상으로 성능이 좋은 LLM이라고 한들, 거짓말을 하고, 편향된 대답을 하고, 나쁜말도 하고, 의도에 맞지 않는 대답을 하는 모델로는 ChatGPT 같은 응용 어플리케이션을 만들 수 없기 때문이죠. 마치 사람 세상으로 비유하자면, 엄청난 천재인데 툭하면 욕하고 동료들과 싸우는 인재를 채용하기 꺼려하는것과 비슷한 상황이라고 할 수 있겠네요.

자, 문제는 이 원인이 무엇이냐는 겁니다. 원인을 알아야 해결을 하니까요. 해결을 하려면 도대체 기존 LLM들은 왜 이러한 공통적인 문제를 갖고 있는지에 대한 원인을 고민해 봐야겠죠. 이 원인을 찾기 위해 기존 LLM들이 학습하는 방법을 생각해볼게요. LLM은 엄청난 사이즈를 갖고 있고, 또 엄청난 성능을 보이는 모델이지만 학습 방법은 아주 간단합니다. 특히 GPT 시리즈는 공통적으로 ‘다음 단어 예측하기’ 방식으로 학습하는데요. (자세한 내용은 GPT-1 논문 리뷰글[1] 참고) 이렇게 학습한 모델이 문제가 있다는건 학습 과정에 무언가 문제가 있다는 말이겠죠. 모델은 단순히 학습한 대로 대답할 뿐이니까요. 그럼 다음 단어 예측 방식으로 학습한게 무엇이 문제일까요?

가장 중요한 포인트는 데이터입니다. LLM이 학습한 데이터가 문제에요. 앞선 연구들인 GPT-1 [1], GPT-2 [2] 등의 논문에서는 학습 데이터 구성을 밝히고 있는데요. 절대 다수의 데이터는 인터넷 웹상에서 모은 데이터임을 밝히고 있습니다. 굳이 찾아보지 않더라도 인스타그램, 트위터등의 SNS상에 얼마나 많은 ‘질 나쁜 대화들’이 오고 가는지 상상할 수 있습니다. 데이터 정제를 한다고는 하지만, 이러한 질 나쁜 데이터들이 학습 데이터에 꽤나 많이 포함되어 있을 확률이 아주 높겠죠. LLM들은 이렇게 질 나쁜 데이터를 사용해 다음 단어를 예측하도록 학습한 겁니다. 이렇게 학습했으니, 모델이 가끔 욕도 하고 편향된 표현을 뱉는다는게 전혀 이상할게 없겠죠?

그래서 InstructGPT에서는 이 부분에 초점을 맞춥니다. 이렇게 인터넷상에서 모은 다량의 데이터로 학습하는 방식으로는 결코 응용 어플리케이션으로 사용할 수 있는 수준의 LLM을 만들 수 없다고 결론 내린거죠. 다음 챕터에서는 그럼 InstructGPT에서는 어떻게 이 문제를 해결했는지 살펴보겠습니다.

3. InstructGPT

위에서 설명했듯이 InstructGPT 저자들은 학습 데이터가 가장 큰 문제라고 결론 내립니다. 따라서 ‘질 좋은 학습 데이터’를 구성하기로 하는데요. 그렇다고 기존 데이터를 버리는건 어리석은 짓입니다. 앞서 지금 모델을 사람으로 비유하면 성격이 나쁘고 동료들과 매일 싸우는 천재라고 설명했는데요. 성격이 좀 나쁘다고 천재를 그냥 해고해 버리기에는 너무 아깝잖아요? 상담 치료를 시키든, 회유를 하든 성격만 좀 개선해주면 엄청난 인재가 될 테니 말이죠.

InstructGPT 저자들도 마찬가지 생각을 합니다. 우선 괴팍한 천재인 GPT-3 [3]는 지금 그대로 놔둡니다. 이 천재를 성격만 온순하게 만들어줄거에요. 이를 위해서 3단계 학습 단계를 제안합니다.

그림1. InstructGPT 3단계 구성
그림1. InstructGPT 3단계 구성

위 그림은 InstructGPT의 3단계 학습 과정을 도식화한 그림인데요. 초록색으로 표시한 GPT-3, SFT, RM, PPO 는 모델 이름입니다. 빨간색으로 표시한 SFT Dataset, RM Dataset, PPO Dataset은 각각의 모델 학습에 사용한 데이터셋입니다. 아래에서 하나씩 자세히 설명하겠지만, 계속해서 나오는 단어이니 기억해주세요.

3-1. Step1 : 우리가 원하는 대답을 지도학습으로 학습

자 첫 번째 단계를 살펴볼게요. 괴팍한 천재인 GPT-3 [3]를 온순한 천재로 만들어주려면 어떻게 해야할까요? 물론 여러가지 방법이 존재하겠지만, InstructGPT에서는 가장 간단하지만 가장 확실한 방법을 먼저 적용합니다. 바로 지도 학습 (Supervised Learning) 이에요. 지금 우리가 원하는건 착하게 말하는 GPT-3 [3]를 만들고 싶은 거잖아요? 예를 들면 이런 상황 인거죠.

[기존]
질문 : 이순신 장군에 대해 설명해줘
대답 : 그것도 몰라? 조선시대에 가장 유명한 장군 중 한 명 이잖아.

[희망]
질문 : 이순신 장군에 대해 설명해줘
대답 : 이순신 장군은 16세기 말 조선의 명장이자…

그니까 말하자면, 질문에 대해 원하는 답이 있는 상황이라는 거잖아요? 이런 상황에서 가장 효과적인 학습 방법이 뭐죠? 바로 지도 학습이죠. 문제와 정답이 있는 상황에서는 모델에게 문제를 주고 정답을 대답하도록 학습하는 방법이 가장 효과적입니다. 그래서 Step1의 이름이 SFT(Supervised Fine Tuning) 이에요. 이렇게 SFT를 하려면 당연히 모델이 학습하기 위한 데이터셋이 있어야겠죠? 이 데이터셋은 질문과 이에 대한 정답으로 구성되어 있어야 할 겁니다. 그래서 SFT 데이터셋을 다음과 같이 구성해줍니다.

그림2. SFT Dataset 예시
그림2. SFT Dataset 예시

위 그림은 SFT 데이터셋을 표현한 그림인데요. n개의 Prompt (질문)이 있고, 이에 대한 정답이 매칭되어 있는 모습입니다. GPT-3 [3]를 이 SFT 데이터셋으로 다시 튜닝해 주는거에요.

그림3. SFT 학습 과정
그림3. SFT 학습 과정

그 과정은 위 그림과 같을 겁니다. GPT-3 [3]는 입력으로 SFT 데이터셋의 Prompt를 받고요. 이때 나온 Output은 SFT 데이터셋의 정답 Output과 같도록 Supervised Loss로 학습 하는거죠. 그럼 이 SFT 데이터셋의 정답은 어떻게 만들까요? 이 정답을 만들기 위해 저자들은 사람들을 고용합니다. 이 사람들을 라벨러 (Labeler)라고 부릅니다. 그동안 LLM은 이러한 Label 데이터 없이도 다량의 데이터를 비지도 학습(Unsupervised Learning) 방법으로 학습하여 혁신적인 성과를 냈는데요. 또한 Label 데이터 없이 학습할 수 있다는 사실 그 자체가 엄청난 장점이기도 했고요. 하지만 이번에는 별 수 없습니다. 목표가 ‘우리가 원하는대로’ 대답하는 모델이기 때문에, ‘우리가 원하는대로’ 가 정확히 어떤 것인지를 알려줄 필요가 있죠. 이를 위해서는 질문에 대한 대답을 정리한 Label 데이터를 만들어 학습하는 방법이 가장 확실하다고 판단한듯 합니다.

그림4. SFT 논문 설명
그림4. SFT 논문 설명

위 그림은 InstructGPT 논문에서 설명한 Step1 구성 방법입니다. 먼저 질문을 샘플링 하고요. Labeler가 이 질문에 대해 가장 이상적인 답을 적습니다. 이제 이 데이터를 사용해서 GPT-3 [3]를 지도 학습 방법으로 Fine Tune 한다고 말하고 있습니다.

3-2. Step2

좋아요. 그럼 문제가 다 해결되었을까요? 이 질문에 대한 대답을 하려면 이번에는 지도 학습의 한계를 생각해 봐야겠죠. 지도 학습의 한계는 무엇일까요? 지도 학습은 원하는 바를 정확하게 모델에게 전달할 수 있는 확실한 장점이 있습니다. 하지만 이 데이터의 양이 적으면 충분히 학습할 수 없다는 한계가 있죠. 이를 위해 기존 지도 학습 방법들은 엄청난 양의 Label 데이터를 수집해야만 했습니다. 이 한계가 너무 명확하고 치명적이었기에 비지도 학습 (Unsupervised Learning), 자기 지도 학습 (Self Supervised Learning) 등의 방법이 발전해 왔던 거죠.

이번에도 마찬가지인데요. 데이터의 양이 문제였습니다. 심지어 이미지 문제처럼 단순히 ‘강아지’, ‘고양이’ 등의 Label을 달아주는 수준의 작업이 아니잖아요. 질문에 대해 서술형 형태의 답안을 작성해야 하는 작업입니다. 서술형 답안이기에 작업자와 검사자들 사이의 의견 조율 과정도 필요할 거고요. 이래저래 공수가 아주 많이 드는 작업이었겠죠. 따라서 아무리 꼭 필요한 작업이라고 할 지라도 이러한 Label 데이터를 무한정 만들어낼 수는 없습니다. 적당히 많은 Label 데이터를 사용해서 효과를 극대화해줄 방법이 필요했죠.

이를 위해 저자들은 강화 학습(Reinforcement Learning)을 사용합니다. 강화학습에 대해서는 아래 Step3에서 조금 더 자세히 설명 할게요. 이번 챕터에서는 강화 학습이란 ‘내 행동에 대한 보상이 최대화되는 방향으로 학습하는 방법’ 이라고만 알고 넘어가겠습니다. 지금 상황에 강화 학습을 적용한다면 행동이란 ‘질문에 대해 모델이 내놓은 Output’에 해당하겠죠. 행동에 대한 보상이 최대화되는 방향이란, Output에 대한 보상이 최대화되는 방향이라는 의미가 될 거고요. 이때 보상이 최대화되는 방향이란, ‘우리가 원하는 대로’ Output을 내는 방향이라는 뜻이겠죠. 문제는, 이 보상을 누가 평가하냐는 것입니다. 즉 모델이 내놓은 질문에 대한 Output에 대해서 ‘이 대답은 70점짜리네’ 이걸 누가, 어떻게 평가하냐는 거죠.

Step2에서는 그래서 이렇게 모델의 Output에 대한 평가를 해줄 모델을 만들 겁니다. 이 모델 이름이 보상 모델, RM(Reward Model)이에요. 질문에 대한 모델의 Output에 대해 얼마큼의 보상을 해 줄지 (몇 점을 줄지) 결정하는 모델이라는 의미죠. 자, 그럼 무얼 하려는 건지는 알겠고, 이제 또 마찬가지로 데이터셋이 필요하겠죠? 이번에도 지도 학습 방법을 사용할 겁니다. 그럼 데이터셋은 이런 형태가 되어야겠죠.

그림5. RM Dataset 예시
그림5. RM Dataset 예시

위 그림은 RM 데이터셋을 표현한 그림인데요. 이번에는 선호하는 대답을 고르는 문제이니까, 하나의 질문에 대해 여러 개의 대답이 필요하겠죠? 위 예시에서는 하나의 질문에 세개의 답변이 포함되었다고 가정했습니다. 그리고 이 답변들에 대한 점수를 학습할 거니까, 점수 (Rank) 도 포함되어야 합니다. 이제 마찬가지로 RM은 이렇게 구성된 RM 데이터셋을 사용해서 Supervised Loss로 학습합니다. Step2의 전체적인 구성은 이렇게 됩니다.

그림6. RM 모델 학습 방법
그림6. RM 모델 학습 방법

RM은 입력으로 질문과 대답을 받습니다. 그리고 이 대답에 대한 순위를 Output으로 내는 거죠. 이 순위는 RM 데이터셋을 사용해서 지도 학습 방식으로 학습해줍니다.

그림7. RM 논문 설명
그림7. RM 논문 설명

위 그림은 InstructGPT 논문에서 표현한 Step2의 구성입니다. Step2는 비교 데이터를 구축하고 Reward Model을 학습하는 단계임을 밝히고 있고요. 질문과 여러 모델의 Output을 샘플링 해줍니다. 이제 사람 라벨러가 이 Output들의 순위를 정해줍니다. 이렇게 구성된 RM 데이터셋은 질문, Output들, 순위로 구성되어 있고, 이 데이터셋을 사용해서 RM을 학습해줍니다.

3-3. Step3

이제 마지막 Step3입니다. 앞서 Step2에서는 RM을 학습했는데요. 이 RM은 최종적으로 강화 학습에서 모델의 Output에 대해 평가해주기 위함이라고 설명했습니다. 조금 더 자세히 이해하기 위해 강화 학습부터 간단히 살펴 볼게요.

그림8. 강화학습 설명
그림8. 강화학습 설명

위 그림은 강화 학습 과정을 도식화한 그림인데요. 아주 간단하게 생각해보면 강화 학습은 위 그림과 같이 구성되어 있습니다.

대표적인 강화 학습 상황인 알파고의 바둑을 상상해 볼게요. 알파고는 강화 학습을 사용하여 스스로 아주 많은 대국을 통해 학습한 모델인데요. 위의 강화 학습 구성 도식에 맞춰 생각해보면 이런 상황이 됩니다. 먼저 위 그림의 모델은 알파고가 해당하겠죠. 행동 (Action)은 알파고가 어디에 바둑알을 놓을지 결정하고, 최종적으로 바둑알을 놓은 상황에 해당합니다. 결과 (Result)는 이 행동에 따라 변한 바둑판 상황에 해당합니다. 이렇게 알파고가 둔 한수는 평가를 받는데요. 이 한수가 이번 판을 이기기 위해 유리한 수라면 + 보상(Reward)를, 불리한 수라면 -보상을 받습니다. 이러한 보상을 통해 모델은 상황별로 어떠한 판단을 해야 하는지에 대한 피드백을 받고 학습하는 것이죠. 이러한 아이디어는 기본적으로 우리가 자전거 타는 방법을 배우는 방법과 아주 유사합니다. 자전거 타는 방법은 머리로 배울 수 있는 지식이 아니잖아요. 그저 직접 타고 넘어져 보면서 넘어지지 않는 방법을 본능적으로 배우죠.

그림9. InstructGPT에서의 강화학습
그림9. InstructGPT에서의 강화학습

위 그림은 InstructGPT에서 사용한 강화 학습 방법을 그대로 매칭한 그림입니다. 먼저 모델은 PPO [5]라는 강화 학습 모델을 사용했습니다. 이 모델이 하는 행동(Action)은 질문에 대해 모델이 대답하는 상황에 해당하겠죠. 이렇게 나온 대답은 결과(Result)에 해당합니다. 이제 이렇게 나온 대답에 대해 좋은 대답인지, 나쁜 대답인지에 대한 피드백을 결정해줘야 하는데요. 이 점수를 주는 모델이 바로 Step2에서 설명한 RM입니다.

이러한 루프로 모델을 학습해 줄겁니다. 이때 사용한 강화 학습 알고리즘을 PPO라고 하고요. PPO에 대한 자세한 내용은 InstructGPT의 핵심 내용을 이해하기 위한 범위를 벗어나므로 이번 글에서는 자세히 설명하지 않겠습니다. 이번 챕터에서 중요한 건, ‘왜 강화 학습을 사용했는지, 그리고 이 강화 학습 과정에서 앞서 살펴본 RM은 어떤 역할을 하는지’ 입니다.

다시 한번 정리해 볼게요. Step1에서는 지도 학습으로 GPT-3 [3]를 튜닝했습니다. 지도 학습이 반드시 필요했던 이유는 ‘우리가 원하는 대답’을 직접 학습해줘야 했기 때문이었죠. 하지만 이러한 방식으로는 한계가 있었습니다. Label 데이터의 양에 한계가 있기 때문이죠. 때문에 저자들이 선택한 방법이 강화 학습이었습니다. 강화 학습을 사용하면 모델의 대답에 피드백을 해주며 무한히 학습해줄 수 있기 때문이죠. 하지만 강화 학습을 사용하려면 보상을 결정해줄 무언가가 필요한데요. 즉 모델의 대답에 대해 평가해줄 무언가가 필요한거죠. 이를 위해 RM을 만드는 과정이 Step2 였습니다. 마찬가지로 RM도 사람 라벨러가 직접 만든 대답 별 순위 데이터를 사용해서 지도 학습으로 학습했죠. 마지막으로 이렇게 만든 RM을 사용해서 강화 학습 방식으로 최종 학습한 모델이 PPO였습니다. 따라서 PPO는 이론적으로는 ‘무한히 많은’ 질문에 대해 ‘우리가 원하는 방식의 대답’을 하도록 학습한 모델이라고 할 수 있습니다. 마치 알파고가 무한히 많은 대국을 스스로 두면서 이기기 위한 최선의 수를 학습한 것과 마찬가지로 말이죠.

4. 실험 결과

지금까지 InstructGPT의 구성 방법을 살펴봤습니다. 기존 LLM들은 사용자의 지시와 다르게 대답을 한다는 공통점이 있음을 살펴봤고요. 이러한 문제점의 발단은 인터넷상에서 모은 다량의 ‘나쁜 데이터’ 를 그대로 예측하도록 학습했기 때문임도 이해했습니다. InstructGPT는 이러한 문제를 해결하기 위해 사람 라벨러를 고용해서 각 질문에 대해 ‘우리’ 가 원하는 대답 데이터를 직접 만들었죠. InstructGPT는 이렇게 질문에 대한 대답 Label 데이터를 학습함으로써 ‘우리’ 에게 좀 더 친화적인 LLM이 될 수 있었습니다.

이번 챕터에서는 여러 실험을 통해 과연 InstructGPT는 기존 LLM과 달리 저자들의 의도대로 사용자 친화적인지 살펴보겠습니다. 먼저 사람 라벨러들이 직접 평가한 결과를 살펴보고요. InstructGPT와 기존 모델들의 진실성, 독성, 편향의 차이를 알아보겠습니다.

4-1. 라벨러들의 평가

LLM이 사용자 친화적인지를 평가하기 위한 여러 방법이 존재할 텐데요. 역시 가장 확실한 방법은 사용자가 직접 평가하는 것이죠. 이 방법이 어려우니까 여러 Metric을 고안하여 간접적으로 평가하는 방법을 사용하는 것이니까요. InstructGPT 저자들은 이 점을 고려하여 사람 라벨러들이 직접 모델을 평가합니다.

그림10. 라벨러들에 대한 평가 실험 결과
그림10. 라벨러들에 대한 평가 실험 결과

위 그림은 사람 라벨러들이 여러 모델을 평가한 결과 그래프입니다. GPT, SFT, PPO 등 다양한 모델들을 모델 사이즈별 성능을 표현해주었는데요. 우선 GPT의 성능이 가장 안좋은 모습을 볼 수 있습니다. GPT (Prompted)는 GPT-3 [3]에 Few Shot Prompt를 추가해준 방법을 말하는데요. 이렇게 Few Shot Prompt만 추가해주어도 성능이 대폭 좋아지는 모습을 볼 수 있습니다. 이어서 Label 데이터로 학습해준 SFT의 성능이 GPT 보다 더 좋은 모습을 볼 수 있습니다. 역시 원하는 대답에 대한 Label 데이터로 직접 학습하는 방법이 효과적임을 알 수 있습니다. 또한 강화학습 방식으로 학습한 PPO 모델이 SFT보다 성능이 좋아, 가장 사용자 친화적인 모습을 볼 수 있습니다.

4-2. 라벨링에 참여하지 않은 사람들의 평가

위 결과를 통해서 InstructGPT의 제안 방법이 사용자 친화적으로 LLM을 튜닝할 수 있다고 결론 내릴 수 있을까요? 그렇지 않습니다. 위 실험은 SFT 데이터셋 Label 작업에 참여한 라벨러들을 대상으로 평가한 결과입니다. 다시 사람으로 비유하자면, 내가 키운 아이들을 내가 평가한 셈이라고 할 수 있는데요. 왜냐하면 InstructGPT는 이 라벨러들이 만든 데이터를 학습했죠. 이렇게 학습한 InstructGPT는 배운대로 대답을 할테고요. 따라서 InstructGPT는 라벨러들의 취향을 그대로 반영한 모델이라고 할 수 있죠. 팔은 안으로 굽는다고, 아무래도 내 취향을 한껏 반영한 대답이 더 선호되는건 어쩔 수 없겠죠?

그래서 이번에는 라벨링에 참여하지 않은 사람들을 대상으로도 평가를 진행했습니다.

그림11. 비라벨러들에 대한 평가 실험 결과
그림11. 비라벨러들에 대한 평가 실험 결과

위 그림은 여러 모델에 대한 라벨러들의 평가 결과를 나타낸 그래프입니다. 왼쪽의 Heldout workers는 라벨링에 참여하지 않은 라벨러들에 대한 모델의 성능을 나타내고 있는데요. 오른쪽의 라벨러를 대상으로한 평가 결과와 비교 했을때 약간의 차이는 있지만, 전체적인 경향은 동일한 모습을 보이고 있습니다. 이 말은 InstructGPT는 라벨링에 참여한 라벨러들에게 과적합되지 않았다는 말인거죠. 즉 일반화가 잘 된 모델이라고 말할 수 있습니다.

4-3. 진실성

LLM에서는 진실성 문제 또한 존재하는데요. 사용자의 물음에 대해 당당하게 거짓 대답을 하는 문제를 말하죠. 이에 대한 실험도 진행했는데요.

그림12. 진실성 실험 결과
그림12. 진실성 실험 결과

위 그림은 TruthfulQA 데이터셋에 대한 여러 모델의 평가 결과를 나타낸 그래프입니다. GPT, SFT, PPO 순으로 조금씩 진실성이 개선되는 모습을 볼 수 있습니다.

이 결과가 재미있는데요. InstructGPT는 결국 사용자 친화적인 모델을 만들기 위해 사람이 직접 Label을 만들고 이를 학습한 모델인데요. 이 결과 사용자 친화적인 답변을 하는 모델이 완성되었다는 결론은 충분히 납득 가능하지만, 진실성 측면에서 개선되었다는 실험 결과는 조금 결이 다르기 때문이죠. 이 부분을 좀 더 생각해봐야 합니다.

먼저 왜 LLM은 진실성이 부족할까요? 다시 말하면 왜 가끔씩 당당하게 거짓 대답을 하는 걸까요? 이에 대한 원인은 크게 두 가지라고 생각하는데요.
첫 번째는 데이터입니다. 보통 LLM은 인터넷에서 아주 다량의 데이터를 모아 학습하죠. 이 데이터를 모두 정제할 수 없기에 데이터 질은 담보할 수 없는 상황이고요. 따라서 이러한 데이터에는 오류, 편견, 미신등이 포함되어 있을 가능성이 매우 큽니다. 이렇게 LLM이 잘못된 데이터로 학습했기에 진실성이 떨어진다고 생각할 수 있습니다.
두 번째는 목적 함수의 한계 때문입니다. GPT 시리즈는 다음 단어를 예측하도록 학습하죠. 이러한 목적 함수에는 진실만을 말해야 한다는 의도는 배제되어 있습니다. 그저 학습 데이터를 바탕으로 지금 내가 말해야 하는 가장 높은 단어를 출력해줄 뿐이죠.

따라서 LLM의 진실성을 개선하기 위해서는 이 두가지 측면을 개선해주어야 합니다. 그리고 InstructGPT는 첫 번째 문제인 ‘데이터’ 를 개선해준 모델인거죠. 꽤나 많은 Label 데이터를 만들었고, 이를 사용하여 모델을 튜닝해줌으로써 조금 더 진실된 대답을 하도록 모델을 개선해준 효과가 있다고 이해할 수 있습니다. 물론 목적 함수를 근본적으로 개선해주지 않는 이상 ‘진실성’ 문제를 근본적으로 개선해주기는 어려울것으로 예상됩니다.

4-4. 독성과 편향

이번에는 독성 (Toxicity)에 관한 실험 결과를 살펴보겠습니다.

그림13. 독성과 편향 실험 결과
그림13. 독성과 편향 실험 결과

위 실험 결과는 다양한 모델에 대한 독성 정도를 측정한 그래프인데요. GPT보다는 SFT, PPO 등 모델의 독성이 더 낮은 모습을 볼 수 있습니다. 이 또한 진실성과 동일한 이유로 개선되었다고 볼 수 있습니다. 하지만 편향 (Bias) 측면에서는 큰 개선 효과가 없었다고 합니다.

5. 토론

지금까지 InstructGPT의 실험 결과를 살펴봤습니다. 기존 LLM보다 더 사용자 친화적이며 진실성과 독성이 개선되었음을 알 수 있었습니다. 이번에는 InstructGPT 논문에서 제시한 여러 토론 주제들을 정리해보겠습니다.

5-1. Alignment 연구에 주는 시사점

InstructGPT와 같이 LLM을 사람의 의도에 맞추려는 시도를 Alignment라고 하는데요. 이번 연구를 통해 Alignment와 관련된 세 가지 시사점을 얻을 수 있습니다.

첫 번째는 비용적인 관점입니다. 지금까지 LLM 연구의 주된 아이디어 방향은 사전 학습이었습니다. 사전 학습을 어떻게 차별화하여 모델의 성능을 개선할 것인지에 초점을 맞추고 있었죠. 하지만 이렇게 LLM을 통채로 학습하는 방법은 엄청난 비용이 듭니다. 데이터양도 엄청날뿐더러 모델 사이즈 자체도 엄청 크기 때문이죠. 반면 Alignment 방식은 사전 학습에 비해 훨씬 적은 비용이 듭니다. 사용하는 데이터가 훨씬 적기 때문이죠. 따라서 사전 학습 방법을 고민하는 것 보다 Alignment 방법을 잘 활용하는 방향을 고민하는것이 더 비용 관점에서 효율적입니다.

두 번째는 사용자 질문에 대한 일반화 능력에 대한 관점입니다. InstructGPT는 강화학습을 사용하여 사용자 친화적인 답변을 하도록 모델을 튜닝하는 방법을 제안하고 있는데요. 이는 지금까지 제안된 방법 중 가장 효율적으로 사용자 친화적인 모델을 만드는 방법이라고 할 수 있습니다.

세 번째는 성능 저하에 대한 관점입니다. 지금까지의 LLM들은 사전 학습이 끝나고 특정 문제를 풀기 위해 해당 데이터셋을 사용하여 미세 조정을 진행했는데요. 대부분의 경우 이 과정에서 모델의 성능이 저하되는 문제가 있었습니다. 해당 문제는 잘 풀게 되지만, 일반화 능력을 잃어 버리는거죠. InstructGPT의 제안 방법은 이러한 성능 저하 없이도 일반화 능력을 유지할 수 있는 하나의 방안을 제시한다고 볼 수 있습니다.

5-2. 이번 연구의 Alignment 목표

이번 연구가 주는 또 다른 시사점은 바로 Alignment의 가능성을 보여준것인데요. 앞서 다양한 실험 결과를 통해 모델의 성능이 개선되었음을 보였습니다. 하지만 이는 라벨링 작업에 참여한 특정 사람들의 취향에만 적합함을 의미하지 않습니다. InstructGPT는 OpenAI사의 의도에 맞도록 튜닝된 것이고요. 동일한 방법을 사용해서, 누구든 각자의 취향에 맞게 모델을 튜닝할 수 있음을 의미하죠. 따라서 앞으로는 다양한 취향에 정렬된 LLM들이 발표될 것을 예상할 수 있습니다.

5-3. 한계

그럼에도 불구하고 이번 연구는 한계 또한 가지고 있는데요.

첫 번째 한계는 역시 데이터입니다. InstructGPT 방식을 사용하기 위해서는 결국 사람의 라벨링 작업이 반드시 필요합니다. 이 Label에는 해당 작업자의 가치관, 믿음 등이 반영될 수밖에 없고요. 정확히는 라벨러가 아닌 라벨러를 고용한 고용주의 가치관과 믿음이 반영되겠죠. 따라서 이번 연구는 모든 인류에게 친화적인 모델을 만드는 방법은 아니라고 할 수 있습니다.

두 번째 한계는 모델의 성능입니다. 특히 진실성, 독성, 편향에 관한 것인데요. 실험 결과를 통해 약간의 진실성은 개선된 모습을 확인할 수 있었습니다. 하지만 독성과 편향 측면에서는 크게 개선되지 못한 결과를 보았죠. 설사 모든 면에서 약간 개선된 모습을 보였다고 하더라도, 앞서 언급했듯 지금과 같은 목적 함수를 사용해서는 근본적으로 문제를 해결할 수 없죠. 게다가 더욱 큰 문제는 이 모델은 사용자의 지시를 절대적으로 따른다는 것입니다. 이에 대한 실험 결과는 없지만, 만약 사용자가 나쁜 의도를 가지고 사용하더라도 이 모델은 충실하게 그 지시를 따를겁니다. 이에 대한 안전 장치는 전혀 고려되지 않은 상태입니다.

5-4. 사회적 파장

그럼에도 불구하고 이번 논문은 엄청난 사회적 파장을 몰고 올 것이 분명합니다. 기존 LLM을 한차원 높게 도약시킬것이 확실하기 때문이죠. 이러한 기술을 잘만 활용한다면 분명 인류는 사용하기 좋은 AI를 얻게 될 것입니다. 하지만 언제나 그렇듯 이 기술을 오용, 악용할때가 문제인데요. 긍정적인 효과가 큰 만큼 이를 악용할때의 임팩트 또한 크겠죠. 따라서 저자들은 의료 진단, 신용, 법 집행, 정치 광고 등 파급 효과가 막대할 것으로 예상되는 분야에서는 오히려 사용을 제안해야 한다고 주장합니다. 이는 현재도 많은 논란거리가 되고 있는 주제이기도 하죠.

6. 장단점

여기까지 InstructGPT 논문 내용을 정리해봤습니다. 이번에는 논문 내용을 바탕으로 InstructGPT의 장단점을 생각해보겠습니다.

6-1. 장점

첫 번째 장점은 사용자의 의도에 더 가깝게 반응한다는 것입니다. 이는 instructGPT가 사용자 의도로 구성한 데이터셋으로 미세조정(fine-tuning)을 했기 때문입니다. 마치 친구와 대화하면서 서로의 의견을 더 잘 이해하게 되는 것처럼, instructGPT도 인간의 피드백을 통해 더 정확하게 사용자의 의도를 파악합니다.

두 번째 장점은 진실성이 향상된다는 것입니다. 이는 모델이 인간의 피드백을 받으면서 더 정확한 정보를 학습했기 때문입니다. 마치 사전이 업데이트되어 더 정확한 정보를 제공하는 것처럼, instructGPT는 더 정확하고 진실된 정보를 제공할 수 있습니다.

세 번째 장점은 유해한 출력을 줄인다는 것입니다. 이는 모델이 인간의 피드백을 통해 유해한 출력을 인식하고 이를 줄이는 방법을 학습했기 때문입니다. 마치 필터를 통해 물을 정화하는 것처럼, instructGPT는 유해한 정보를 걸러내어 더 안전한 결과를 제공합니다.

네 번째 장점은 다양한 자연어 처리 작업에 적용할 수 있다는 것입니다. 이는 인간의 피드백을 통한 미세조정 방법이 다양한 작업에 확장 가능하기 때문입니다. 마치 다재다능한 스포츠 선수가 여러 종목에서 활약하는 것처럼, instructGPT도 다양한 작업에서 뛰어난 성능을 보입니다.

6-2. 단점

첫 번째 단점은 아직 완벽하지 않다는 것입니다. 이는 모델이 아직도 간단한 오류를 범할 수 있고, 모든 상황에 완벽하게 대응하지는 못한다는 점에서 기인합니다. 마치 새로운 기술이 나와도 여전히 개선할 부분이 있는 것처럼, instructGPT도 간단한 오류를 범할 수 있습니다.

두 번째 단점은 많은 양의 인간 피드백이 필요하다는 것입니다. 이는 좋은 성능을 위해서는 많은 양의 인간 피드백이 필요하며, 이는 시간과 비용이 많이 들 수 있다는 점에서 기인합니다. 마치 좋은 성적을 얻기 위해 많은 공부가 필요한 것처럼, instructGPT의 성능 향상도 많은 데이터가 필요합니다.

세 번째 단점은 편향의 문제가 있다는 것입니다. 이는 인간의 피드백이 편향되어 있다면, 모델 역시 편향된 정보를 학습할 가능성이 있습니다. 마치 뉴스가 특정 성향에 치우쳐져 있다면, 사람들도 그 성향에 영향을 받는 것처럼, instructGPT도 편향된 피드백으로 인해 문제가 될 수 있습니다.

7. 의의

마지막으로 InstructGPT의 의의를 생각해보겠습니다.

첫 번째 의의는 사용자 의도와 더 잘 정렬된다는 것입니다. 이는 instructGPT가 사용자 의도에 맞는 데이터셋으로 미세조정을 했기 때문에 가능합니다. 이러한 점은 마치 친구와의 대화가 시간이 지남에 따라 더 자연스러워지는 것처럼, instructGPT도 사용자와 더 자연스러운 대화를 할 수 있게 됩니다.

두 번째 의의는 안전성과 신뢰성이 향상된다는 것입니다. 유해한 출력을 줄이고, 더 정확한 정보를 제공함으로써, 언어 모델이 실제 세계에서 더 널리 사용될 수 있게 됩니다. 이는 마치 안전한 자동차가 사람들에게 더 널리 사용되는 것처럼, instructGPT도 더 안전하고 신뢰할 수 있는 정보를 제공합니다.

세 번째 의의는 다양한 자연어 처리 작업에 확장 가능하다는 것입니다. 인간의 피드백을 통한 미세조정 방법은 다양한 작업에 적용할 수 있어, 이 방법론은 다른 연구나 응용 분야로도 확장될 수 있습니다. 이는 마치 다재다능한 스포츠 선수가 여러 종목에서 활약하는 것처럼, instructGPT도 다양한 분야에서 활약할 가능성이 있습니다.

네 번째 의의는 인간과 기계의 협력을 더욱 강화한다는 것입니다. 인간의 피드백을 통해 미세조정되는 이 모델은 인간과 기계가 어떻게 협력할 수 있는지에 대한 좋은 예시를 제공합니다. 이는 마치 선생님과 학생이 서로 배우고 성장하는 것처럼, instructGPT도 인간의 피드백을 통해 계속해서 발전하고 있습니다.

다섯 번째 의의는 미래 연구의 방향성을 제시한다는 것입니다. 이 연구는 언어 모델을 더 안전하고 유용하게 만들기 위한 미래 연구의 방향성을 제시하며, 이는 마치 나침반이 길을 잃은 사람에게 방향을 제시하는 것처럼, instructGPT 연구도 미래의 언어 모델 연구에 방향을 제시합니다.

8. 마치며

이번 글에서는 OpenAI의 ‘InstructGPT’ 논문을 중심으로 언어 모델의 한계와 가능성, 그리고 미래에 대해 깊이 있게 다루어 보았습니다.

우리는 먼저 대규모 언어 모델이 왜 사용자 친화적이지 않은지에 대한 문제를 살펴보았습니다. 이 모델들이 때로는 거짓 정보나 편향된 의견을 제공하는 원인은 대부분 학습 데이터에 있음을 확인했습니다. 이후에는 InstructGPT가 이 문제를 어떻게 해결하려고 하는지에 대해 세 가지 주요 단계를 통해 알아보았습니다. 특히, 지도학습과 PPO [5]를 활용한 학습 방법이 어떻게 모델의 성능을 향상시키는지에 대해 깊게 들어갔습니다.

실험 결과 부분에서는 InstructGPT의 성능이 기존 모델보다 얼마나 향상되었는지, 특히 진실성과 독성, 편향 등 여러 측면에서 어떤 변화가 있었는지를 살펴보았습니다. 그리고 이 연구의 시사점과 한계, 그리고 미래에 미칠 영향까지도 함께 고민해 보았습니다.

이 모든 내용을 바탕으로, InstructGPT는 사용자의 의도에 더 가깝게 반응하며, 진실성이 향상되고 독성이 줄어든 모델을 제시한다는 것을 알 수 있습니다. 하지만 이 모델도 완벽하지는 않으며, 특히 편향과 독성 문제는 여전히 해결해야 할 과제로 남아 있습니다.

마지막으로, 이 논문과 이번 블로그 포스트가 언어 모델의 발전과 인공지능 기술의 미래에 대한 통찰을 제공했다면 기쁠 것입니다. 기술이 발전함에 따라, 우리는 더 나은 협력과 더 나은 세상을 기대할 수 있습니다. 이번 글이 여러분에게 많은 도움이 되었기를 바랍니다.

9. 참고 자료

  1. GPT-1 논문 리뷰
  2. GPT-2 논문
  3. GPT-3 논문 리뷰
  4. BERT 논문 리뷰
  5. PPO 논문
Series Navigation<< [20′ NIPS] GPT-3 : Language Models are Few-Shot Learners[21′ ICLR] LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS >>
5 3 votes
Article Rating
Subscribe
Notify of
guest

3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
John
John
1 year ago

정성과 실력이 돋보이는 글 같아요
어제 처음 방문 했는데 쭉 읽어볼 생각에 두근거립니다 ㅋㅋㅋ

근데 어젯밤에 딥러닝 발전흐름을 전체적으로 설명해주신 글을 읽다가 잠들었는데 오늘 다시 보려니 없더라구요…

수정중이신지 너무 궁금합니다

연말 잘 마무리하시구 새해에도 좋은 일 가득하세요!!!

John
John
1 year ago
Reply to  Ffightingseok

아유 전혀 아닙니다. 이런 양질의 글을 볼 수 있는 것만으로 감사드려요!!

3
0
Would love your thoughts, please comment.x
()
x
Scroll to Top