인간 피드백 기반 강화학습이 적용된 InstructGPT와 GPT-3.5
지난 글에서는 챗GPT의 기술적 주요 개념인 생성형 AI, 딥러닝, 트랜스포머, 퓨샷 러닝과 자기지도학습에 대해 간략하게 살펴보았다. 요약하면 챗GPT는 GPT-3.5를 기반으로 동작하는 챗봇이다. Generative Pre-trained Transformer가 의미하듯 GPT는 '미리 학습된 인공신경망'으로 문장 생성에 특화된 대표적인 생성형 AI(Generative AI)다.
이번 글은 ChatGPT와 InstructGPT의 중요한 프레임워크인 "인간 피드백 기반 강화학습(RLHF, reinforcement learning with human feedback)"을 주로 다룬다.
자연어 처리 모델의 흐름이 GPT나 BERT 같은 딥러닝 기반 자연어 처리 모델로 흐름이 옮겨온 이유는 단연 압도적인 성능 때문이다. GPT-1 이전의 언어 모델은 감정 분류나 번역과 같은 태스크를 주로 수행하였으며, 생성과 같은 응용 작업에는 한계가 있었다. 앞 글에서 설명했듯 GPT와 BERT 모두 트랜스포머 기반 언어 모델이며 트랜스포머의 경쟁력은 셀프 어텐션 (self-attention)에서 나온다. 셀프 어텐션의 원리는 중요한 요소에 집중하고 그렇지 않은 요소는 무시함으로써 태스크의 성능을 끌어올리는 것이다.
위의 그림을 보자. GPT-1에서 GPT-3로 오면서 입력가능한 토큰의 수와 쌓아 올리는 신경망의 수가 증가하는 것을 볼 수 있다. GPT-1은 512개의 토큰 입력과 12층의 신경망이 가능했다. GPT-2로 오면서 1024개의 토큰 입력과 48층의 신경망을 쌓아 올릴 수 있게 되었다. 그리고 GPT-3는 2048개의 토큰을 입력하고과 96층의 신경망 레이어를 올리는 것이 가능하다.
위 표는 GPT 모델의 연혁과 주요 특징을 정리했다. 2018년 발표된 GPT-1는 라벨링 되지 않은 데이터를 학습했고 트랜스포머를 적용했다. GPT-1으로 오면서 특정 주제에서의 세부 분류나 분위기 분석과 같은 응용 작업들이 가능해졌다. OpenAI가 MS의 투자를 받기 시작했던 2019년에 발표된 GPT-2는 Fine-tuning 단계에서 지도학습이 필요했던 GPT-1과 달리 Fine-tuning과정이 생략되어 대용량 데이터 학습이 가능해졌다. 매개변수인 파라미터의 수도 15억 개로 급격히 증가했다. 또한 다운스트림 태스크의 데이터를 전혀 사용하지 않고 사전학습 모델로 다운스트림 태스크를 바로 수행하는 제로샷 러닝을 적용했는데, 성능에는 한계가 있었다. 2020년 발표된 GPT-3는 모델의 구조적에 있어서는 GPT-2와 큰 차이가 없다. 하지만 더 많은 데이터를 사용했고 Self-attention layer를 많이 쌓음으로써 파라미터 수를 크게 늘릴 수 있었다. 또한 이 모델에 적용된 퓨삿러닝과 미세 조정은 모델의 성능을 높이는 주요 요인이었다. GPT-3부터 마치 사람이 글을 쓰는 것 같은 텍스트 생성이 가능해졌다. 또한 SQL과 파이썬 등의 코딩이 가능해지면서 인공지능 모델이 우리의 생산성을 높이고 현실에서 유용하게 활용될 수 있다는 인식이 자리 잡기 시작했다.
ChatGPT 돌풍과 함께 GPT-3는 놀라운 관심을 받은 반면, ChatGPT 성능 향상에 매우 큰 역할을 했음에도 불구하고 아직 그다지 주목받지 못하는 모델이 있다. 바로 InstructGPT다. InstuctGPT는 모델 빌딩 과정에서 인간의 피드백을 반영하고 학습하는 인간 피드백 기반 강화학습 (RLHF, reinforcement learning with human feedback)을 적용한 것이 가장 큰 특징이다. 이로 인해 GPT-3의 성능은 급속하게 발전했다. (ChatGPT에 적용된 것은 GPT-3가 발전한 GPT-3.5다) InstructGPT에 대해 더 자세히 알아보자.
GPT-3의 한계
GPT-3는 매우 정교하게 craft 된 프롬프트에 대해 놀라운 아웃풋을 생성하지만, 생성되는 아웃풋이 거짓일 확률이 있으며 유해한 내용을 담고 있을 수 있다는 한계가 존재한다. 이는 GPT-3가 사용자가 원하는 언어 태스크를 안전하게 수행하는 목적보다, 인터넷 텍스트라는 대규모 데이터를 바탕으로 다음 단어를 예측하도록 학습되었기 때문이다. 요약하자면, GPT-3 모델의 방향은 사용자의 의도 및 가치와 부합(align)되지 않는다.
인간 피드백 기반 강화학습 (RLHF)
이런 GPT-3의 한계를 극복하고 더 안전하고, 사용자에게 도움이 되며, 사용자의 의도(혹은 가치와 니즈)와 얼라인 되는 모델을 만들기 위해 OpenAI는 인간 피드백 기반 강화학습(RLHF, reinforcement learning with human feedback)이라는 테크닉을 도입한다. 이 RLHF가 적용된 모델이 바로 InstructGPT다. RLHF는 인간이 작성한 설명과 인간이 판단한 아웃풋의 랭킹을 모델에 반영한다. 인간의 선호도(preferences)를 보상 신호(reward signal)로 사용해서 모델을 미세 조정(fine-tuning)하는 것이다. 오픈 도메인 대화는 모델이 목표로 하는 안전과 Alignment 이슈(AI의 목적 함수가 사용자의 의도 및 가치와 일치하는지)가 복잡하고 주관적이다. 따라서 단순한 자동 측정 지표를 중심으로 모델을 만들기에 한계가 있다. 오픈 도메인 대화야말로 인간 선호도라는 시그널이 중요한 영역이고, OpenAI 또한 이 사실을 인지하고 모델에 반영한 것이다.
그림과 함께 RLHF 테크닉이 반영된 InstructGPT의 세부 단계를 살펴보자.
1단계: (인간에 의해 생성된) 설명 데이터 수집 및 지도학습의 방법으로 정책 학습
첫 번째 단계에서는 OpenAI 고객이 API에 제공한 프롬프트를 먼저 샘플링한다. 그리고 샘플링된 프롬프트에 대해 인간 레이블러(Labeler)는 모델 아웃풋으로 나왔을 때 이상적인 설명(demonstration)을 수기로 작성한다. 예를 들어 "6살 아이에게 달 착륙을 설명하라"는 프롬프트에 대해 인간 레이블러가 정답 셋에 가까운 설명을 직접 작성하는 것이다. 이 데이터는 지도 학습의 방법을 통해 GPT-3를 파인 튜닝하는 데 사용된다.
2단계: 다수 아웃풋에 대한 순위 데이터 수집 및 리워드 모델 학습
두 번째 단계에서는 프롬프트와 프롬프트에 대한 몇 개의 아웃풋을 샘플링한다. 샘플링된 프롬프트와 아웃풋에 대해서 인간 레이블러는 어떤 아웃풋이 좋고 나쁜지에 대해 순위를 매긴다 (ranking the output). 레이블러가 어떤 아웃풋을 선호하는지를 예측하기 위해 리워드 모델(Reward model)은 인간 레이블러의 아웃풋 순위 데이터를 학습한다.
3단계: 강화 학습을 통한 보상 모델에 대한 정책 최적화
마지막 단계에서는 리워드 모델을 보상 함수(reward function)로 사용하고 보상을 최대화하기 위해 GPT-3 정책을 미세 조정한다. 이 과정에서는 Proximal Policy Optimization이 사용된다. 그림에서 보듯 생성된 아웃풋에 대해 리워드 모델은 리워드를 계산하고 이 리워드는 정책 업데이트에 사용된다.
"Alignment Tax" 최소화: 인간 레이블러가 생성한 데이터와 인터넷 데이터 섞기
RLHF의 한계는 모델을 고객의 태스크에만 얼라인 했기 때문에 다른 태스크에서는 성능이 떨어지는 "Alignment Tax" 이슈가 발생한다는 것이다. Alignment Tax를 최소화하기 위해 OpenAI는 1단계의 GPT-3를 파인 튜닝하는 단계에서 GPT-3 학습을 위해 사용된 데이터를 일부 포함한다. 인간이 생성한 고퀄리티의 데이터와 인터넷에서 수집한 데이터를 적절히 섞음으로써 안전과 인간 선호도의 강점은 가져감과 동시에 모델의 확장성을 높이는 것이다.
사용자 중심의 모델 성능 평가
OpenAI는 InstructGPT를 평가함에 있어서 철저히 사용자 중심의 지표를 채택했다. 거짓 정보를 포함하고 있는지 (TruthfulQA 기반), 유해 내용을 포함하고 있는지 (RealToxicityPrompts)와 같은 아웃풋의 콘텐츠에 대한 측정은 물론, 모델이 사용자의 지시를 얼마나 잘 따르는지 그리고 사용자가 모델이 얼마나 사실을 지어낸다고 느끼는지 (hallucinates), 얼마나 더 적절한 아웃풋을 생성하는지와 같은 요소들을 측정했다.
그 결과, InstructGPT는 GPT-3는 물론 "instuction-following mode"의 GPT-3보다도 사용자의 지시를 더 잘 따르는 것을 확인할 수 있었다. 사용자의 의도에 더 적합한 답변을 생성한 것이다.
안정성에 있어서도 InstructGPT는 GPT-3 대비 더 높은 성능을 냈다. 유해한 응답을 덜 생성했으며, 사실에 기반한 응답을 더 생성했다. 또한 사용자는 InstuctGPT가 덜 사실을 꾸며내며, 더 적절한 응답을 생성한다고 인지했다.
이런 평가 지표 외에 InstructGPT와 GPT-3가 생성한 응답을 비교해 보아도 직관적으로 InstructGPT가 더 사용자 질문에 적합한 응답을 생성하는 것을 확인할 수 있다.
휴먼인더루프 테크닉으로 학습된 InstuctGPT는 OpenAI의 디폴드 언어모델로 사용 중이다. Instruct GPT에서 사용된 RLHF (reinforcement learning with human feedback)은 ChatGPT에서도 적용되었으며, OpenAI는 InstructGPT와 ChatGPT를 "sibling model"이라고 소개한다. 단, 두 모델은 데이터 수집을 위한 셋업 단계에서 차이가 있다.
챗GPT는 인간 피드백 데이터를 바탕으로 지도 학습의 방법을 통해 GPT-3.5를 파인 튜닝한다. '인간 피드백 데이터' 생성에 있어서 챗GPT와 InstructGPT 사이의 차이가 있다. 챗GPT에서는 인간 AI 트레이너들이 사용자와 AI에이전트 양쪽의 대화 데이터를 생성한다. (InstructGPT에서는 인간 레이블러라고 칭하는 반면 챗GPT에서는 인간 AI 트레이너라고 칭하는 것도 흥미롭다.) 이 단계에서 인간 AI 트레이너들이 좀 더 쉽게 응답을 생성할 수 있도록 OpenAI는 모델 기반 추천 응답(model-written suggestion)을 제공한다. 이 새로운 대화 데이터 셋은 대화 포맷으로 변형된 InstructGPT의 데이터 셋과 합쳐져서 GPT-3.5를 파인 튜닝하는 데 사용된다 (InstructGPT에서는 GPT-3.5가 아니라 GPT-3였다.)
다음 단계에서 강화 학습을 위한 리워드 모델을 만들기 위해 응답(아웃풋)을 비교한 데이터가 필요하다. 이를 위해 인간 AI트레이너들과 챗봇 사이의 대화를 수집한다. 또한 모델에 의해 작성된 메시지와 기타 대체 가능한 응답들도 샘플링한다. 이렇게 수집된 응답들에 대해서 인간 AI트레이너는 순위를 매긴다. InstructGPT에서와 마찬가지로 리워드 모델을 기반으로 정책을 파인 튜닝 하는 과정을 반복한다.
Bing에 탑재된 챗GPT는 더 강력한 OpenAI 모델을 적용했다. GPT-4라는 직접적인 언급은 없지만 MS에 따르면 ChatGPT와 GPT-3.5보다 더 강력하며 특히 검색에 최적화된 경험을 제공한다. MS가 이야기하는 ChatGPT와 GPT-3.5보다 더 빠르고, 더 정확하며, 더 유능한 모델은 베타 기간 동안 수집한 사용자 피드백을 통해 가능했을 것이다. InstructGPT와 GPT-3.5에 적용된 인간 피드백 기반 강화학습 (RLHF) 테크닉이 암시하듯 AI 모델에서 한 끗 차이를 낼 수 있는 것은 결국 고퀄리티의 사용자와 align 되는 사용자 중심의 데이터를 모델에 파인 튜닝하는 것이다. 사용자 데이터를 기반으로 ChatGPT가 얼마나 더 발전할지 기대해 본다.
ChatGPT로 인한 비즈니스 변화, AI시대에 살아남기 위한 산업별 ChatGPT활용법과 바로 써먹는 ChatGPT 꿀팁을 연재합니다.
챗GPT(ChatGPT)와 생성 AI에 관련된 더 자세한 이야기는 도서 "챗GPT 거대한 전환 - 알에이치코리아(RHK)"을 참고해 주세요. 50개의 생성형 AI 기업과 서비스 분석과 인사이트가 담겨 있습니다.
https://product.kyobobook.co.kr/detail/S000201225687