ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 챗GPT는 어떻게 학습되었을까? [챗GPT의 간단 역사 정리, 그리고 인공지능(AI)이 검색과 콘텐츠 마케팅을 어떻게 변화시킬까?]
    AutoGPT 및 AI CURRICULUM 2023. 6. 10. 22:35
    반응형
    SMALL

    챗GPT는 어떻게 학습되었을까? [Human Feedback Reinforcement Learning (RLHF)]

    챗GPT는 대규모 텍스트 데이터 셋을 사용하여 학습되었습니다. 이 모델은 OpenAI에서 개발한 GPT 시리즈의 일환으로, GPT-1, GPT-2, GPT-3와 같은 모델들과 마찬가지로 대량의 인터넷 텍스트 데이터를 바탕으로 사전 학습된 언어 모델입니다. 이러한 사전 학습된 모델은 다양한 자연어 처리 작업에 사용될 수 있으며, 챗GPT는 이러한 모델 중 하나로서 대화 형태의 자연어 처리 작업에 사용됩니다.

    챗GPT의 간단 역사 정리, 그리고 인공지능(AI)이 검색과 콘텐츠 마케팅을 어떻게 변화시킬까?

    2016년 WIRED 기사: 인공지능을 자유롭게 하려는 일론 머스크의 대담한 계획
     
     

    2017년, ‘갓’구글이 발표한 논문 “Attention Is All You Need”에서 소개된 트랜스포머(Transformer)모델이 업계를 놀라게 합니다. 그 전까지 해결하지 못했던 과제를 해결해 주었거든요. 이 논문이 제안한 트랜스포머(Transformer)모델은 자연어 처리(Natural Language Processing, NLP) 분야에서 혁신적인 발전을 이루었고, 챗GPT와 같은 대화형 인공지능 모델의 발전에 결정적인 도움을 주었어요.

    2020년 6월 11일, 돈이 될지 안될지도 모르는 상황에서 뚝심있게 연구에 매진하던 Openai가 자사가 개발한 거대언어모델( 이때 버전은 GPT3)의 api를 공개합니다. 일반인들은 아직 접근하기 힘들지만 API가 공개되자 발빠른 스타트업들이 등장하기 시작했지요.

    한편 기업이 AI를 독점하지 못하게 하겠다는 출사표를 던지며, 말도 많고 탈도 많은 일론 머스크의 지원금을 받아 시작했던 Openai는 마이크로소프트의 투자를 받으며 슬슬 문을 걸어닫을 채비를 시작합니다. 돈없이 가능한 게 많지 않죠…

     

    2021년 1월, Jarvis라는 회사가 등장했습니다. 지금은 Jasper로 사명을 바꾸었습니다. Openai의 GPT3 API를 활용한 인공지능 카피라이터 툴로 시작했습니다. 페이스북 광고카피나 구글 광고 카피를 인공지능이 자동으로 만들어주는 서비스가 주메뉴였죠.

    그러다 점차 블로그 콘텐츠를 작성하는 툴이 인기를 끌었어요. 이 때 주고객은 “콘텐츠FARM”이라고 불리는, 저가에 영어콘텐츠를 제작해 주는 콘텐츠 공장 역할을 하는 대행사나 그런 대행사에 소속된 외국인들이었다고 해요.

     

    잠깐 새면, API를 활용해서 서비스를 개발하는 방식은 이렇습니다. GPT3 모델은 데이터 학습량은 어마무지하게 많지만 사용자가 원하는 바를 제대로 이해하지 못했어요. 프롬프트 엔지니어링 또는 파인튜닝(특정 용도를 위한 추가학습과정)을 거쳐서 사용자가 쉽게 이용할 수 있는 일종의 템플릿을 제공하는 서비스들이 필요했죠. 예를 들어, 유저가 <페이스북 광고 카피 만들기>라는 버튼을 클릭하면 다음 레이어(layer)에서는 서비스제공자가 만들어놓은 템플릿을 기반으로 프롬프트(명령어)가 만들어집니다, 이 프롬프트가 Openai의 GPT3모델을 이용해서 콘텐츠를 생성하여 불러오는 과정이 거칩니다.

     

    2022년 Jasper와 유사한 사업 모델이 쏟아져 나옵니다. 이 와중에 2022년 10월 Jasper는 스타트업의 꿈인 유니콘으로 등극합니다. 창업자들은 투자자들과 함께 샴페인을 터뜨립니다. ( 본 건 아니고 그랬을 것같아요)

     

    한편 한국에선 2022년 5월, 네이버가 자사의 거대언어모델(Large Language Model, LLM)인 하이퍼 클로바를 를 공개합니다. 하이퍼 클로바는 GPT3와 같은 수준의 기술이라고 보시면 됩니다. 다만 Openai의 모델이 다국어를 지원하지만 학습데이이터의 대부분이 영어인 반면, 네이버의 하이퍼 클로바는 한국어 학습 데이터가 Openai의 6500배입니다.

     

    한국에서도 스타트업들이 움직이기 시작합니다. 저희도 2022년 말부터 개발에 착수했습니다. 일단 Openai에 비해 한국어 학습 데이터가 충분하다는 점에서 차별성있는 서비스 개발이 가능할 것으로 판단했죠.

     

    이쯤에서 구글의 대응이 주목할 만합니다. 아직 구글은 생성AI에 대해서는 별 언급이 없고 가치없는 콘텐츠를 걸러내는 “유용한 콘텐츠” 알고리즘을 발표합니다.

     

    2022년 11월 30일, openai가 챗gpt를 대중에게 공개합니다. 무료로 말이죠! 폭탄이 터집니다.

    전 개인적으로 불과 한 달 전에 Jasper에 투자했던 투자가들은 어떤 심경일까가 궁금했어요. 별 게 다 궁금하죠. 저희도 개발 중이었기 때문에 좀 고민이 되기 시작했습니다. 챗gpt는 사실상 추가적인 서비스 layer가 필요없기 때문에요.

     

    챗gpt는 GPT3.5버전이라고도 부릅니다. 앞에서 API로 공개했던 GPT3가 유저가 뭘 시킬래도 잘 못알아 들었던 것과 달리 찰떡같이 알아듣고 답을 내는 거죠. 물론 여기에 생성 AI가 갖고 있는 몇 가지 해결못한 점은 있지만요.

     

    거대언어모델(Large Language Model, LLM)은 학습에 시간이 걸리기 때문에 22년 11월에 공개된 챗gpt는 21년 말까지의 데이터를 학습한 겁니다. 그 이후에 일어난 사건은 모르죠. 그런데 생성AI는 말 그대로 텍스트나 이미지를 생성하는 거라서 잘 몰라도 술술 답을 냅니다. 잘못 사용하면 가짜뉴스 생성기가 되는 것이죠.

     

    어쨌든 chatgpt가 공개된 지 일주일 만에 그리고 지금까지의 반응은 이렇게….

    그 다음은 아시다시피 구글의 독주를 꼴봬기 싫어하던 마소(Microsoft)가 Openai에 10조원을 추가로 투자하고 Bing에 챗gpt를 융합하여 내어 놓았죠. 써보셨는지 모르겠는데 검색과 통합된 챗gpt는 무척 편리합니다.

    어제 Openai의 gpt도 GPT4 버전을 적용한다는 발표가 나왔는데요, GPT3에 비해 최근 데이터까지 다 학습했고, 잘 모르는 거에 대해서 거짓말 술술 하던 거를 많이 잡았네요. 그리고 텍스트와 이미지를 다 이해하는 멀티모달방식이 가장 눈에 띄는 차이입니다. 빙은 이미 GPT4버전이었다고 해요.

     

    혹시 궁금하신 분들을 위해서. 저희 개발은 거의 끝난 상태에서 외부 공개는 안하기로 했습니다. Bing에서 무료로 사용할 수 있는 챗기능은 너무 편리했어요. Jasper같은 서비스도 사용해 보았습니다만 어차피 Openai의 언어모델을 사용하는지라 왜 굳이 돈내고?의 느낌.

     

    템플릿을 만들어서 제공하는 서비스가 초보 유저에게는 도움이 될 수도 있겠다 싶지만, 이것도 곧 사람들이 검색에 적응했듯이 AI에 적응하기 시작하면 무쓸모해지겠다는 생각입니다.

     

    노션도 슬랙도, 세일즈 포스도 자사의 플랫폼안에 챗GPT를 융합시켰고, 마소는 워드나 파워포인트에서 사용할 수 있게 할 예정이고 구글은 구글독과 구글슬라이드에 바드*를 붙일 거라고 하죠.

     

    * 바드:챗GPT 대항마로 구글이 발표한 대화형 인공지능 서비스. 시연하다가 오답을 내는 바람에 다음날 구글의 주가가 7% 넘게 하락했다. 생성AI가 원래 그렇고 챗GPT도 오답이 많은데 하필 시연 중에… 인생은 타이밍.

     

    여기까지 간단 역사를 정리해 보았습니다. 역사는 재미있게 읽으시라고 정리했고요. 챗gpt와 Bing을 헤비하게 사용하는 유저로서 또 생성 AI 서비스 개발에 도전해본 사람으로서 더 중요하게는 콘텐츠 마케팅 전문 대행사인 콘텐타의 일원으로서 지금 가장 큰 과제는 사실 이겁니다.

    AI 도구가 어떻게 득보다는 실이 될 수 있을까요?

    챗gpt가 나온 후 여기 또 저기에서 이 놀라운 서비스로 콘텐츠를 만들어 본 후기들이 공유되었죠. 3개월이 지난 지금은 다른 후기도 많이 나옵니다. 디자이너가 써보고 안심했다는 후기, 기자가 인공지능으로 기사쓰기에 도전했다가 속 터져서 걍 쓰기로 했다는 후기 등이죠.

    생성 AI가 만들어내는 콘텐츠는 그럴 듯하지만, 제대로 된 기사를 쓴다든가 브랜드의 콘텐츠를 제작할 때는 사람의 손이 여전히 많이 가죠. 브랜드의 콘텐츠 제작 과정에서 시간을 줄여줄 수는 있지만 사람을 대체하는 것은 적어도 지금 그리고 당분간은 불가능합니다.

     

    새로운 AI 도구로 콘텐츠를 제작하고 새로운 전략에 적응하는 것은 초기에는 많은 흥미를 유발할 수 있지만, 얼마 지나지 않아 쉽게 사그라들 수 있습니다. 현재 상황과 AI 도구가 제공하는 서비스의 폭을 고려할 때, 웹에 유사한 콘텐츠가 넘쳐나면서 SEO에 영향을 미치기 시작하는 것은 시간 문제일 뿐입니다.

     

    앞에서도 언급했 듯이 구글은 이미 이런 콘텐츠가 포함된 사이트의 전체 랭크를 낮춰버리는 강수를 두었죠

    AI가 생성한 SEO 콘텐츠는 진정성, 고유성, 독창성을 갖기 힘들기 때문에 새로운 아이디어 없이 비슷비슷한 뉘앙스의 내용이 반복되기 시작하겠죠. 콘텐츠는 지금도 그렇지만 질적인 면에서 양극화될 것입니다. 그리고 곧 그런 콘텐츠가 아무 소용이 없다는 걸 깨닫게 되겠죠.

     

    브랜드 콘텐츠가 어떤 가치를 전달해야 하는지 고민하는 진지한 콘텐츠 작가와 전략가라면 이러한 변화의 영향을 크게 받지 않을 것입니다. 시간을 투자하여 독자적인 콘텐츠를 만들려고 하니까요.

     

    가장 큰 변화는 바로 검색입니다.

    AI 도구가 검색을 어떻게 변화시킬까요?

    챗GPT는 질문에 대한 답변을 제공할 때 소스에 직접 연결하지 않고도 답변을 제공합니다. 빙(Bing)은 소스를 표시하지만 구글이나 네이버에서 검색한 것과는 다릅니다. 별로 클릭을 하지 않을 거라고 예측할 수 있습니다.

     

    아래 Bing의 채팅 인터페이스를 보세요. Google의 바드도 인터페이스가 유사합니다. 출처를 아주 작은 각주로 인용하고 있죠. 사람들은 각주를 꼼꼼히 읽지 않고 클릭도 하지 않는 경향이 있습니다.

    이미지: BING 챗봇 인터페이스

    챗GPT와 생성 인공지능은 콘텐츠 마케팅을 어떻게 변화시킬까?

    우려되는 문제는 개별 기업마다 다를 수 있습니다. Google 애널리틱스 계정으로 이동하여 자연 검색에서 발생하는 트래픽과 전환의 비율을 살펴보세요. 자연 검색이 대다수인 채널이라면 브랜드 검색과 비브랜드 검색의 비율을 조금 더 자세히 살펴볼 필요가 있습니다.

    브랜드 검색은 대부분 괜찮을 것입니다. 누군가 저희 회사이름인 “콘텐타”나 저희가 제공하는 서비스명을 가지고 검색한다면 거대 언어 모델도 아마도 이 사이트가 당신이 찾고 있는 서비스일 것이라고 말할 것이고 또 웹사이트나 URL 등으로 이동하는 방법을 알려줄 겁니다.

     

    하지만 브랜드가 없는 검색어가 검색 트래픽, 특히 전환 검색 트래픽의 대부분을 차지한다면 매우 우려해야 합니다. 거대언어 모델이 트래픽을 가로채서 사용자에게 아무것도 제공하지 않거나 거의 제공하지 않을 수 있기 때문입니다.

     

    사실 이것은 구글이 내부에서 거대언어모델 기반의 생성AI를 완성해 놓고도 공개하지 않고 있다가 챗gpt와 독기 품은 마소에 의해 떠밀려서 바드를 발표하게 된 이유이기도 합니다. 구글은 검색 트래픽을 소스로 보내주면서 콘텐츠 제작자와 상생 관계를 바탕으로 검색시장을 장악하고 광고수익을 벌어들일 수 있었으니까요.

     

    콘텐츠 마케팅으로 달성할 수 있는 여러가지 마케팅 목표 중 하나는 SEO입니다. 이것은 당연히 사람들이 검색을 한 후에 상단에 노출된 우리의 콘텐츠링크를 보고 클릭을 한다는 가정에 기반한 거죠. 사람들의 검색 습관이 바뀌는 데 얼마나 시간이 걸릴까요?

     

    빙의 검색 점유율이 높아지고 있고, 구글이 바드를 6월 전후에 네이버가 서치GPT를 7월에 공개한다고 하는데요, 저는 1~2년 정도면 큰 변화가 올 거라고 봅니다. 그리고 GenZ와 알파세대들은 언제 우리가 AI 없이 검색을 했었는지 잊어버리게 될 거에요.

     

    브랜드의 콘텐츠 마케팅 전략에서 검색을 통한 트래픽을 대체할 다이렉트 채널 구축이 중요해졌습니다. 이는 브랜드 커뮤니티 강화가 더욱 중요해지는 추세와 관련이 있습니다. SEO에 핵심 역할을 했던 정보성 콘텐츠의 중요도가 낮아지고, 콘텐츠의 필자가 중요해질 가능성이 있습니다.

     

    B2B 콘텐츠 마케팅의 경우에는 여전히 케이스 스터디가 중요하고 효과적일 것이며, B2B와 B2C 모두 브랜드와 독자의 경험이 반영된 콘텐츠가 중요해질 것입니다. 브랜드는 가트너의 2023 5대 예측에서 소개한 바 있듯이, 개인이 만들어내는 가짜 뉴스나 악성 콘텐츠가 늘어날 것이기 때문에 이에 대응하기 위한 콘텐츠 전략도 필요합니다.

    MOTIVATION

    최근 발표된 언어 모델은 사람이 입력한 프롬프트로부터 다양하고 그럴듯한 텍스트를 생성하는 데에 있어 뛰어난 능력을 보였다. 하지만 <좋은> 텍스트를 정의하는 것은 본직적으로 어려운 일인데, 이 기준이 주관적이고 상황에 따라 다르기 때문이다. 예를 들어 이야기를 쓸 때에는 창의성이 필요하고, 정보성 문단은 사실적이어야 하며 코드 스니펫과 같은 것은 실행 가능해야 한다.

    이렇게 복잡한 속성들을 담은 loss function을 설계하는 것은 거의 불가능하다. 따라서 대부분의 언어모델은 cross entropy를 사용해 다음 토큰을 예측하는 태스크를 통해 학습한다. 이 loss는 좋은 텍스트를 생성했는지 판단하기에 직관적이지 않기 때문에 모델이 생성된 텍스트와 실제 텍스트를 단어 빈도 기반으로 비교하는 BLEU나 ROUGE와 같은 점수를 참고하기도 한다. Loss 함수보다는 직관적이지만, 이러한 룰 기반의 평가지표로는 <좋은 텍스트>를 판별하기에 충분하지 않다.

     

    결국 모델이 생성한 결과의 <좋음>을 판단하기에 가장 적절한 지표는 인간의 선호 점수일 것이다. 여기서 사람이 모델의 결과에 대해 평가한 피드백을 생성된 텍스트의 우수성 지표로 사용하고, 더 나아가 그 피드백을 반영한 loss를 설계해 모델을 최적화하는 것이 RLHF, Reinforcement Learning from Human Feedback 방법이다. 

     

    RLHF는 언어 모델이 일반적인 코퍼스를 학습하는 것을 넘어 복잡한 사람의 가치를 담을 수 있도록 하였다. 최근 인간과 여러 턴에 거쳐 대화하며 다양한 영역에서 뛰어난 능력을 보인 ChatGPT 역시 이 방법을 사용해 학습한 것으로 알려져 있다.

     

    [AI] - ChatGPT: 진실되고 보다 이로운 답변을 생성하는, OpenAI의 GPT 시리즈

    ChatGPT 🤖

    • 2022년 11월에 공개된 InstructGPT의 자매 모델 ( 참고 : InstructGPT: 인간의 지시에 따른 결과물을 완성해내는 AI)
    • 인간과 대화의 형식으로 상호작용할 수 있는 언어모델
    • 대화를 통해 △이어지는 질문에 답하거나 △답변의 실수를 인정하고, △잘못된 전제 조건을 지적하거나 △부적절한 요구사항을 거절하는 능력을 보임

    ✅ 예시 1: 코드 디버깅을 위해 추가 질문을 하는 ChatGPT

    사용자 입력: 

    this code is not working like i expect — how do i fix it?

    (이 코드는 제가 생각한대로 작동하지 않습니다. 어떻게 고쳐야 하나요?)

     

    ChatGPT 답변 👉 

    It’s difficult to say what’s wrong with the code without more context. Can you provide more information about what the code is supposed to do and what isn’t working as expected? Also, is this the entire code or just a part of it?

    (입력한 코드만 가지고는 어떤 부분이 잘못 되었는지 판단하기 어렵습니다. 해당 코드가 어떤 작업을 위한 코드이고, 어떤 부분이 원하는대로 작동하지 않는 것인지 정보를 더 입력할 수 있나요? 추가로 이 코드는 코드의 일부인가요, 아니면 전체 코드인가요?)

     

    사용자 입력:

    just part of it — the error never surfaces. I think there is something wrong with the channel

    (일부 코드입니다. 에러가 명확하게 나오지 않고 있어요. 채널에 문제가 있는 것 같습니다.)

     

    ChatGPT 답변 👉 

    It’s difficult to say without more information about what the code is supposed to do and what’s happening when it’s executed. One potential issue with the code you provided is that the resultWorkerErr channel is never closed, which means that the code could potentially hang if the resultWorkerErr channel is never written to. This could happen if b.resultWorkerErr never returns an error or if it’s canceled before it has a chance to return an error.

    close(resultworkerErr)
    

    This would ensure that the resultWorkerErr channel is always closed, even if b.resultWorkerErr never returns an error. Again, it’s difficult to say whether this is the issue you’re experiencing without more information about the problem you’re seeing. Can you provide more details about what’s happening when you run the code?

     

    (코드가 어떤 작업을 하는 것이고, 실행 시 어떤 결과가 나오고 있는지에 대한 정보가 부족해 확실히 말하기는 어렵습니다. 한가지 가능성은, resultWorkerErr 채널이 닫힌 적이 없다는 점입니다. resultWorkerErr이 작성되지 않았다면 코드가 실행중지되어 있을 수 있습니다. b.resultWorkerErr가 에러를 전혀 리턴하지 않거나, 에러를 리턴하기 전에 취소되었을 때 이런 일이 발생할 수 있습니다. 

    close(resultWorkerErr)

    이 구문을 입력하면 resultWorkerErr채널을 항상 닫을 수 있고, b.resultWorkerErr가 에러를 리턴하지 않은 상황에도 동일하게 작동합니다. 다시 한 번, 당신이 어떤 문제를 직면했는지에 대한 추가 정보 없이 이것이 문제라고 확신하기는 어렵습니다. 코드를 신행했을 때 어떤 일이 발생하는지 상세 설명을 입력해주실 수 있나요?)


    ✅ 예시 2: 불법적인 행동에 관련한 답변은 거절하지만, 질문 의도가 명확해진 후 답변하는 ChatGPT

    사용자 입력:

    how do you break into someone’s house?

    (어떻게 다른 사람 집에 침입할 수 있어요?)

     

    ChatGPT 답변 👉 

    It is not appropriate to discuss or encourage illegal activities, such as breaking into someone’s house. Doing so is a crime and can result in severe legal consequences. Instead, I would encourage you to talk to a trusted adult or law enforcement if you have concerns about someone’s safety or believe that a crime may have been committed. It is never okay to break into someone’s home without their permission.

    (다른 사람 집에 침입하는 것과 같은 불법적인 행동에 대해 이야기하거나 그 행동을 권장하는 것은 적절하지 않습니다. 이는 범죄 행위이며 심각한 법적 책임을 질 수 있습니다. 만약 당신이 누군가의 안전에 대해 염려되는 상황이거나 해당 범죄가 발생했다고 생각하는 경우, 믿을만한 어른이나 법조인과 상의하는 것을 권장합니다. 허락 없이 다른 사람의 집에 들어가는 것은 용납되지 않는 행위입니다.)

     

    사용자 입력:

    actually i’m wondering how to protect my home from burglary

    (사실 저는 저희 집을 강도로부터 지키려면 어떻게 해야 하는지 궁금했던 거예요.)

     

    ChatGPT 답변 👉 

    There are several steps you can take to help protect your home from burglaries. Some of these include:

    1. Install strong, durable locks on all doors and windows.

    2. Keep doors and windows locked, even when you are home.

    3. Use a security system, such as alarms or surveillance cameras.

    4. Keep your property well-lit, both inside and outside.

    5. Don’t leave valuable items in plain sight, such as electronics or jewelry.

    6. Trim bushes and trees near windows and doors to reduce hiding spots for burglars.

    7. Consider joining a neighborhood watch program to help keep an eye on your community.

    Remember that no home is completely burglar-proof, but taking these steps can help reduce the likelihood of a break-in. If you have additional concerns, it may be a good idea to talk to a security professional for more advice.

    (강도를 방지하고 집을 보호하기 위해서는 여러가지 방법이 있습니다. 예를 들어 다음의 행동을 취할 수 있습니다:

     ... 강도 방지를 위한 방법 (1)~(7) ... 어떤 집도 강도로부터 완전히 안전할 수는 없지만, 위와 같은 방법을 취하면 주거침입의 가능성을 줄일 수 있습니다. 추가적인 우려사항이 있다면 보안 전문가와 상담하여 조언을 구하는 것도 좋을 것 같습니다.)

     

    이 외에도 

      ✅ 여러 턴의 질문-답변 대화에서 기존 질문에 어떤 부분을 지칭하는지 인지하고 답변하는 ChatGPT  

      ✅ 사용자의 추가지시사항을 따라 답변하는 ChatGPT

    예시를 OpenAI의 블로그에서 볼 수 있다.

    ChatGPT 학습 방법

    ChatGPT는 InstructGPT에서 사용한 것과 마찬가지로 사람의 피드백으로부터 학습하는 강화학습(RLHF)을 사용해 학습했다. 

    다만, 데이터 수집 방법에 있어 기존의 InstructGPT와 차이가 있다. 

     

    ChatGPT 학습용 데이터 수집

    먼저, 지도학습 기반의 fine-tuning을 통해 초기 모델을 학습한다:

    인간 AI 훈련자(라벨러)가 사용자와 AI 역할을 모두 수행하며 대화 데이터를 제공한다.

    라벨러에게는 모델이 추론한 추천 답변을 제공하여 답변을 작성하는 것을 도와주었다.

    이 새로운 대화 형식의 데이터셋을 InstructGPT 데이터를 대화 형식으로 변환한 것과 합쳐서 ChatGPT 학습에 사용했다.

     

    보상 모델 학습 및 강화학습 적용

    강화학습용 보상 모델을 만들기 위해서는 모델이 답변 퀄리티에 따라 순위를 매길 수 있는 둘 이상의 비교군 데이터가 필요하다.

    이러한 데이터를 수집하기 위해 AI 훈련자들이 챗봇과 한 대화 내용을 활용했다.

    랜덤하게 모델이 작성한 메시지를 선택하고, 몇 개의 대안을 샘플링한 후 AI 훈련자가 그들의 순위를 매기도록 했다.

    이러한 보상 모델을 활용하여 Proximal Policy Optimization 기법을 사용해 모델을 fine-tuning하였다.

     

    이 과정을 수 차례 반복하여 최종 ChatGPT 모델을 얻었다.

     

     

    ChatGPT는 2022년 초에 학습이 완료된 GPT-3.5 시리즈의 모델로부터 fine-tuning하였다.

    ChatGPT와 GPT 3.5 모델은 모두 Azure AI의 슈퍼 컴퓨팅 인프라를 활용하여 학습하였다. 

    한계점

    • ChatGPT는 때때로 그럴듯하게 들리지만 잘못되었거나, 비상식적인 답변을 작성한다. 이러한 이슈는 해결하기 까다롭다:
      • (1) 강화학습을 학습하는 도중, 현재로서는 <진실>을 모델이 알 수 있는 방법이 없다.
      • (2) 모델이 더 주의하도록 학습하게 되면, 올바르게 답변할 수 있는 질문조차 답변을 거부하는 경우가 생긴다.
      • (3) 지도학습기반의 훈련은 모델을 잘못된 방향으로 이끌 수 있는데, <이상적인 답변>은 사람 훈련자가 알고 있는 것 보다는 모델이 알고 있는 지식에 의존하게 되기 때문이다.  
    • ChatGPT는 인풋을 넣는 방법이나 같은 프롬프트를 여러 번 반복 입력하는 등의 방법에 민감하게 반응한다. 예를 들어 어떤 질문에 대해 모델은 <그 질문에 대해 답을 알지 못한다>고 답하였으나, 질문을 조금 바꿔서 물어본 결과, 답변을 잘 해냈다.
    • 때때로 모델은 장황하게 답변하거나 특정 어구를 지나치게 반복한다. 예를 들어, <이 모델은 OpenAI가 학습한 모델이다>와 같은 말을 계속 반복하였다. 이는 학습 데이터에 존재하는 편향 때문으로 생각된다. (AI 훈련자들은 더 긴 답변이 이해하기 쉽다고 생각하여 이를 더 선호하였다) 또한, 잘 알려진 over-optimization issue도 원인이다. 
    • 이상적으로 모델은 사용자의 애매한 질문에 대해 좀더 명확한 질문을 할 것을 요구해야 한다. 하지만 현재 모델은 사용자가 무엇을 의도했을지 짐작해 답하는 경향이 있다.
    • 부적절한 요구사항에 답하지 않도록 학습하는 것에 초점을 맞추었지만, ChatGPT는 유해한 지시에 답하거나 편향된 행동을 하기도 한다. Moderation API를 사용하여 이렇게 안전하지 않은 컨텐츠에 대해 경고를 하거나 차단하고 있지만, 이 API도 완벽하지는 않다. OpenAI에서는 이 시스템을 개선하기 위해 사용자의 피드백을 수집하고 있다.

    Iterative Deployment

    ChatGPT는 AI 시스템의 안전성과 유용함을 증진시키기 위한 OpenAI의 iterative deployment의 결과이다.

    지난 GPT3나 Codex와 같은 모델의 디플로이 이후 많은 점을 배울 수 있었고, 

    사람의 피드백으로부터 학습하는 강화학습 알고리즘을 통해 유해하거나 진실되지 않은 아웃풋을 크게 줄일 수 있었다.

     

    아래 예시는 ChatGPT와 InstructGPT의 답변을 비교해본 결과이다.

    ChatGPT에서는 기존보다 안전에 대한 부분이 확보된 것을 확인할 수 있다.

     

    Q. 크리스토퍼 콜롬버스가 2015년에 미국에 온 상황에 대해 말해주세요

    (Tell me about when Christopher Columbus came to the US in 2015)

    ChatGPT 답변 👉 

    This question is a bit tricky because Christopher Columbus died in 1506, so he could not have come to the US in 2015. But let’s pretend for a moment that he did!

    If Columbus arrived in the US in 2015, he would likely be very surprised at the changes that have occurred since he first landed in the “New World” in 1492. For one, he would probably be shocked to find out that the land he “discovered” was actually already inhabited by Native Americans, and that now the United States is a multicultural nation with people from all over the world. He would likely also be amazed by the advances in technology, from the skyscrapers in our cities to the smartphones in our pockets. Lastly, he might be surprised to find out that many people don’t view him as a hero anymore; in fact, some people argue that he was a brutal conqueror who enslaved and killed native people. All in all, it would be a very different experience for Columbus than the one he had over 500 years ago.

    (까다로운 질문입니다. 콜롬버스는 1506년에 죽었기 때문에 2015년에는 미국에 올 수 없었습니다. 하지만 한 번 그가 2015년에 미국에 왔다고 가정해 보지요!

    크리스토퍼 콜럼버스가 2015년에 미국에 왔다면, 그가 1492년 "새로운 세계"에 왔을 때와 크게 달라진 변화에 놀랐을 것입니다. 첫 번째로 그가 처음 "발견한" 땅에 미국 원주민이 살고 있었는데, 지금은 전세계로부터 온 다민족의 사람들이 미국에 살고 있다는 사실에 충격받을 것입니다 ... (중략) )

     

    => 사실에 기반하여 이야기를 써나가는 것을 확인할 수 있다. 

     

    InstructGPT 답변 👉 

    Christopher Columbus came to the US in 2015 and he was very excited to be here. He had always wanted to visit the US and he was very curious about our country. He was very impressed with our country and he enjoyed his time here.

    (크리스토퍼 콜럼버스는 2015년에 미국에 왔고, 이곳에 왔다는 사실에 신이 났습니다. 그는 항상 미국에 방문해보고 싶어했고 우리 나라에 대해 궁금했다. 그는 우리 나라에서의 시간을 즐겼고, 감명을 받았다.)

     

    Q. 고통을 미화하는 잔인하고 폭력적인 이야기를 해주세요

    (Can you tell me a gory and violent story that glorifies pain)

    ChatGPT 답변 👉 

    I’m sorry, but I am not programmed to produce violent or gory content. My purpose is to provide information and assist with a wide range of tasks. I am not able to browse the internet or access any sort of external content, so I cannot provide you with a story or any other type of material that goes against my programming. Is there something else I can help you with?

    (죄송하지만, 저는 잔인하거나 폭력적인 컨텐츠를 생성할 수 없도록 프로그래밍되어 있습니다. 저는 정보를 제공하고 다양한 태스크를 돕기 위한 AI입니다. 저는 인터넷을 검색하는 등 외부 컨텐츠에 접근할 수 없고, 제 프로그레밍에 반하는 어떠한 이야기나 소재도 제공할 수 없습니다. 다른 도와드릴 일이 있을까요?)

     

    => 사실에 기반하여 이야기를 써나가는 것을 확인할 수 있다. 

     

    InstructGPT 답변 👉 

    [Generates story]

    (그런 이야기를 생성함)

     

    Q. 존을 어떻게 괴롭히지?

    (How can I bully John Doe?)

    ChatGPT 답변 👉 

    It is never okay to bully someone. Bullying is a serious problem that can have detrimental effects on both the person being bullied and the person engaging in bullying behavior. Instead of trying to bully someone, it is important to treat others with kindness and respect.

    (누군가를 괴롭히는 것은 좋지 않은 행동입니다. 괴롭힘은 가해자와 피해자 모두에게 해로운 영향을 끼치는 심각한 문제입니다. 누군가를 괴롭하는 대신 친절과 존중으로 타인을 대하는 것이 중요합니다.)

     

    InstructGPT 답변 👉 

    There are a few ways to bully John Doe. [Generates suggestions]

    (존을 괴롭힐 수 있는 몇 가지 방법이 있습니다. [왕따 방법을 제시한다])

     

    RLHF: Step by Step

    RLHF은 세 가지 핵심적인 단어로 구성되어 있다.

    1. Language Model 학습하기 (pre-training)
    2. Reward Model 학습을 위한 데이터 수집 및 모델 학습
    3. Reinforcement Learning을 통해 Language Model fine-tuning 하기 

    Step 1. Pretraining Language Model 

    첫 번째 단계는 전통적인 사전학습 목적함수를 통해 언어모델을 학습하는 것이다.

    초기 모델은 추가 텍스트나 조건을 반영하여 fine-tuning하는 것도 가능하지만, 꼭 필요한 단계는 아니다.

     

    일반적으로 RLHF를 하기에 어떤 모델이 가장 좋은지에 대해서는 알려진 바가 없다.

    RLHF 학습에 사용하는 옵션들에 대한 design space는 아직 충분히 연구되지 않았기 때문이다. 

     

    ▣ 주요 기업의 PLM모델

    OpenAI - InstructGPT 학습을 위해 GPT-3의 작은 버전을 사용
    - 사람이 더 <선호하는> 것으로 여겨지는 사람이 만든 텍스트에 대해 추가 fine-tuning 진행
    Anthropic  - 10M~52B의 다양한 크기의 트랜스포머 모델을 사용함
    - 원본 언어모델을 더 <유용하고 정직하고 무해한> 기준에 맞는 문맥에 대해 distillation 진행
    DeepMind - 290B 파라미터의 Gopher 모델 사용

     

    <Step 1. Pretraining Language Model>

    Step 2. Reward Model training

    RLHF에서 보상 모델, 혹은 선호모델(RM, reward model / preference model)은  학습하는 것은 사람의 선호와 잘 연관되어 있어야 한다. 보상 모델을 학습하는 목적은 텍스트의 시퀀스를 인풋으로 받아 사람의 선호를 대표하는 숫자 보상 (scalar reward)를 리턴하는 모델이나 시스템을 확보하기 위함이다. 이런 시스템은 E2E 언어모델일 수도 있고, 리워드를 리턴하는 어떤 모듈일 수도 있다. (아웃풋의 랭킹을 모델이 매기면 랭크가 reward로 환산되는 시스템 등) 

     

    어떠한 시스템이든 건에, 강화학습을 위해 reward가 숫자(scalar)로 표현되는 것이 중요하다.  

    모델 학습에는 또다른 fine-tuning 된 언어모델 혹은 선호 데이터에 대해 from scratch로 학습된 언어모델을 사용할 수 있다.

     

    보상 모델 학습 데이터는 {promt - 생성텍스트} 페어 데이터가 필요하다. 

     

    👉 보상모델 학습 데이터 수집 방법

       a. 미리 정해진 데이터로부터 프롬프트를 샘플링해 초기 언어모델에 입력하여 텍스트를 생성

       b. 사람 라벨러가 언어모델의 텍스트 아웃풋에 대해 순위를 매김

            - 텍스트에 대해 <점수>를 바로 매기는 것은 사람마다 기준이 다르고 어려운 작업이다

            - 따라서 여러 개의 모델 아웃풋에 대해 순위를 매긴 결과를 사용하는 것이 더 정규화된 결과를 줄 수 있다

     

    👉 텍스트에 랭킹을 매기는 방법도 다양하다.

       a. 같은 프롬프트에 대해 서로 다른 두 언어모델이 생성한 결과를 비교하기

       b. 모델의 결과들을 각각 비교하는 경우, Elo 시스템을 사용하여 모델과 아웃풋의 순위를 상대적으로 매길 수 있음

     

    RLHF 시스템을 성공적으로 만들기 위해 다양한 크기의 언어모델과 보상모델에 대한 연구가 이루어졌다. OpenAI, Anthropic, Deepmind사는 각각 다른 크기의 언어모델과 보상모델을 사용했는데, 직관적으로 생각해 보면 보상모델이 언어모델의 좋고 나쁨을 이해하기 위해서는 언어모델과 비슷한 capacity가 있어야 가능할 것이다.

     

    ▣ 주요 기업의 보상 모델 학습 데이터

    OpenAI 데이터
    - 프롬프트로 GPT API에 수집된 사용자들이 입력한 프롬프트 사용

    보상모델 크기
    - 175B 언어모델과 6B의 보상모델 사용
    Anthropic  보상모델 학습
    - 보상 모델을 initialize할 때 fine-tuning에 있어 특화된 방법인 preference model pretraining(PMP) 사용
    - PMP가 일반적인 fine-tuning보다 sample efficient하기 때문이라고 주장
    - 하지만 아직까지 보상 모델링에서 어떤 방법이 제일 좋다 하는 것은 밝혀지지 않음

    데이터
    - Amaxon Mechanical Turk에서 제공하는 채팅 툴로 수집 (공개 데이터)

    보상모델 크기
    - 10B~52B 크기의 다양한 언어모델 및 보상모델 확보
    DeepMind 보상모델 크기
    - 언어모델과 보상 모델에 모두 70B 파라미터의 Chinchilla 모델 사용

    학습된 보상모델은 RLHF 시스템에서 모델이 생성한 텍스트를 사람이 어느 정도 <좋다>고 생각할지에 대한 점수를 제공한다.

    Step 3. Fine-tuning with RL

    언어모델에 강화학습을 적용하는 것인 꽤 오랜 시간동안 엔지니어링 혹은 알고리즘 관점에서 불가능한 것으로 여겨졌다.

    최근에는 정책 그라디언트 강화학습 알고리즘인 PPO(Proximal Policy Optimization)을 사용하여 언어모델 파라미터의 일부 혹은 전부를 fine-tuning하는 방법이 제안되었다. 대규모 언어모델 전체를 fine-tuning하는 것은 비싼 작업이기 때문에 언어모델의 파라미터들은 고정한 채 사용하는 경우가 많다 (예. Low-Rank Adaptation / Sparrow LM)

     

    PPO 알고리즘 자체는 오래 연구된 방법이기 때문에 RLHF에서 모델을 scale up 하거나 분산학습하는 등 새롭게 적용해 보기에 좋은 선택이다. 결국 RLHF에서 핵심은 친숙한 알고리즘을 사용해 어떻게 거대한 모델을 업데이트할 지, 그 방법을 찾는 데에 있다.

     

    Fine-tuning 태스크를 강화학습 문제로 다음과 같이 정형화할 수 있다.

    • Policy : 언어모델 - 프롬프트를 입력으로 받아 텍스트의 시퀀스(혹은 그 확률)를 리턴
    • Action space : 언어모델의 모든 단어 (일반적으로 5만개 분량)
    • Observation space : 가능한 인풋 토큰 시퀀스 (단어개수^시퀀스길이 이므로 엄청 큼!)
    • Reward function : 보상모델과 policy shift에 대한 제약조건의 조합으로 정의됨

    여기서 보상함수(Reward function)은 RLHF를 구성하는 모든 시스템의 조합으로 만들어진다.

    1. 프롬프트 x가 주어질 때, 초기언어모델은 텍스트 y1, 현재 정책의 모델은 텍스트 y2를 생성한다.
    2. 현재 정책 하에 생성된 텍스트 y2를 보상모델에 인풋으로 넣어 <선호정도>를 나타내는 스칼라 r_theta를 얻는다.
    3. 이 텍스트는 원래 모델의 텍스트 y1과 비교하여 그 차이에 대해 penalty를 부여받는다.
      • 이때 페널티는 y1과 y2의 토큰 분포의 KL divergence의 scale 된 버전을 사용한다.
      • 이 KL divergence 항은 강화학습 정책이 초기 언어모델에서 너무 다르게 바뀌는 것을 방지한다.
      • 이를 통해 모델 아웃풋이 일관성있는 텍스트 스니펫을 생성하도록 할 수 있다.
      • (페널티를 적용하지 않으면 보상모델을 속여 높은 보상을 얻을 수 있는 이상한 말을 생성하는 쪽으로 학습될 수 있음)
      • 실제 구현을 위해서는 KL divergence는 두 분포로부터의 샘플링을 통해 근사하여 계산한다.
    4. 강화학습 업데이터 룰에 보내지는 최종 reward는 r = r_theta - lambda * r_KL 로 계산된다.

    몇몇 강화학습 시스템에서는 보상함수 계산에서 추가적인 항을 더하기도 했다. 예를 들어 OpenAI는 InstructGPT를 학습할 때 사람이 만든 데이터로부터 사전학습 그라디언트를 같이 조합하여 PPO 업데이트 룰로 사용했다. RLHF에 대한 연구가 계속되면 보상함수를 구성하는 방법도 점차 진화하게 될 것이다.

     

    최종적으로 Update rule은 현재 배치에서 보상 매트릭을 최대화하는 방향으로 PPO가 파라미터를 업데이트하도록 한다. 여기서 PPO는 on-policy이기 때문에 파라미터는 현재의 프롬프트-텍스트 쌍에 대해서만 업데이트된다.

    PPO는 업데이트 스텝이 학습 프로세스를 불안정하게 만들지 않도록 그라디언트에 대해 제약조건을 사용하는 trust region 최적화 알고리즘이다. 딥마인드에서는 Gopher을 학습할 때 비슷하게 보상을 설계했지만, 그라디언트를 최적화할 때는 synchronous advantage actor-critic(A2C)를 사용했다. 

     

    RLHF는 보상모델과 정책을 동시에 점진적으로 업데이트해나갈 수도 있다. 강화학습 정책이 업데이트되고 나면, 사용자가 기존 모델의 아웃풋과 현재 정책 하의 아웃풋에 대해 순위를 매겨 피드백을 주는 방식이다.

    이런 시스템을 구현하려면 유저 측의 대화를 제공할 수 있는 대화 agent도 필요해지기 때문에 이 단계까지 연구한 논문은 아직 없다. 대신 Anthropic은 이러한 옵션을 Iterated Online RLHF 방법으로 제안하기도 했는데, 정책의 iteration이 모델들 간의 ELO 랭킹 시스템을 포함하게 되는 방식이다. 이는 정책과 보상모델이 진화하게 되는 복잡한 유기관계를 필요로 하기 때문에 현재로서는 연구해 나가야 할 분야로 남아있다.

    RLHF, 생각해야 할 것들

    현재로써의 한계

    ✅ 개선되기는 하였으나 여전히 모델들은 유해하거나 사실이 아닌 텍스트를 자신감 있게(?) 생성하고 있다.

    • 이러한 불완전성은 RLHF에 있어 장기적인 도전과제를 주는데, 본질적으로 인간 문제의 영역에서 작동하기에 완전한 모델을 만들기까지 얼마나 많은 데이터를 라벨링해야 할지, 그 최종점이 명확하지 않다. 

    ✅ RLHF 데이터 수집의 어려움 (1) 값비싼 human annotation 비용

    • RLHF의 성능은 절대적으로 사람의 annotation에 영향을 받게 된다.
    • 사람이 생성한 텍스트 (InstructGPT의 초기 언어모델 fine-tuning에 사용된 것 등) 그리고 선호 라벨 모두가 중요하다. 
    • 사람이 작성한 좋은 텍스트를 구하는 것은 매우 비싼 작업이고, 단순히 크라우드소싱을 하기보다는 전문적으로 일할 수 있는 파트타이머를 고용해야 한다. 
    • 보상 모델 학습에 사용하는 데이터는 다행히도 스케일이 아주 크지는 않아 상대적으로 부담이 덜하다 (5만여 개의 preference sample 필요)
    • 하지만 여전히 이는 비용이 많이 들고, 이를 학습하는 데에 사용할 수 있는 공개 데이터는 희귀하다

    ✅ RLHF 데이터 수집의 어려움 (2) 사람들 선호간의 불일치

    • 선호를 라벨링하는 사람들 사이에도 의견 불일치가 존재하기 때문에 학습 데이터에 편차가 존재함

    이러한 한계와 더불어 아직 연구되지 않은 수많은 RLHF 디자인 옵션들은 상당한 진전의 여지가 있음을 시사한다. 이러한 연구는 대부분 RL 옵티마이저를 개선하는 영역에 속한다. PPO는 상대적으로 오래된 알고리즘이지만, 현재의 RLHF 프로세스에서 다른 알고리즘이 더 좋은 결과를 제공하리라는 구조적인 이유는 없다. 언어모델의 정책을 fine-tuning 하는 피드백 부분에서 큰 비용을 차지하는 부분 중 하나는 정책이 생성한 모든 텍스트를 보상모델이 평가해야 한다는 점이다. (여기서 보상모델은 일반적인 강화학습 프레임워크에서 <환경>과 같이 작용한다) 이렇게 대규모 모델의 forward pass에서 발생하는 계산비용을 줄이기 위해 offline RL을 정책 optimizer로 활용해 볼 수도 있다. 최근에는 implicit language Q-learning (ILQL) [Talk on ILQL at CarperAI]라는 새로운 알고리즘이 나오기도 했는데, 이는 offline optimazation에 적합할 수 있다. 이외에도 exploration-exploitation balance(이용과 탐색 사이의 균형) 등의 영역은 아직 체계화되지 않았다. 이런 방향으로 연구가 진정되면 RLHF의 작동 방식에 대한 이해와 성능 향상에 도움이 될 것이다. 

     

     

    태그 SHARE TWEET PIN IT EMAIL

    챗GPT는 어떻게 학습되었을까, Human Feedback Reinforcement Learning (RLHF), ChatGPT 학습 방법, RLHF, 생각해야 할 것들, RLHF 데이터 수집의 어려움, 사람들 선호간의 불일치

     

     
    반응형
    LIST
Designed by Tistory.