챗봇
언어모델이라는 것은 우리가 어떤 문장의 확률을 계산할 수 있는 모형인데 문장의 확률을 계산을 할 수 있으면 그걸 이용해서 그 뒤에 어떤 단어가 붙어야 자연스러울지 예측을 할 수 있겠죠
그래서 나는 오늘 밥을 네모, 네모에 먹었다가 들어가야 확률이 높은지 마셨다가 들어갈 확률이 높은지 계산을 할 수 있고 그래서 그걸 이용해서 문장을 생성을 합니다
그래서 그렇게 문장을 생성하면 항상 확률이 높은 쪽으로만 생성하니까 약간 이제 이상한 좀 자연스럽지 않은 현상들이 생겨난단 말이에요
그래서 그걸 극복하기 위해서 이제 강화학습을 해가지고 어떤 우리가 원하는 어떤 특정 형태에다가 보상을 주는 겁니다
그래서 그 형태로 답을 하도록 시키는 거죠
그래서 우리가 그 유명한 채찌 GPT가 그런 식으로 하는데 이제 보상을 어떻게 하냐면 사람들의 선호도 데이터를 만들어서 사람들이 A란 답변하고 B란 답변 중에 A란 답변을 더 좋아한다 그러면 A에 보상을 좀 더 많이 주고 C란 답변과 D란 답변 중에 D를 더 좋아한다
그럼 D를 더 보상을 많이 주고 이런 식으로 보상을 하는 어떤 딥러닝 모델을 만들어서 사용을 해요
그리고 그 보상을 이용을 해서 강화학습을 하는 거죠
그러니까 우리가 이제 이때까지 괴적이라는 얘기를 많이 했는데 언어모델에서는 만들어진 문장 자체가 괴적이 됩니다
그렇겠죠?
우리가 앞에 있는 텍스트가 상태가 되고 그 텍스트를 바탕으로 어떤 단어를 뒤에 붙였냐
그게 액션이 돼가지고 그거를 괴적으로 강화학습을 시키게 되고요 그래서 이렇게 강화학습 시킨 거를 지금 채찌 GPT에 쓰고 있는데 이런 강화학습 방식을 RLHF 인간의 피드백으로부터 강화학습을 했다
이렇게 얘기를 합니다
근데 인간 피드백 부분이 문제가 되는 거죠
인간이 피드백을 그렇게 정확하게 잘 줄 수 있느냐
이런 것이 첫 번째 문제가 되고 이 뒷부분의 문제를 제기하면 RLHF가 되는 거고요 앞부분에 애초에 강화학습이 문제다 라고 하면 다른 방법들이 됩니다
RLHF 방식은 여러 가지가 있는데 그 중에 하나로 Constitutional AI라는 방식인데요
이거는 채찌 GPT하고 거의 지금 막상막하로 하고 있는 Claude라는 서비스가 있거든요
Claude라는 서비스 만든 회사에서 나온 논문에 나오는 방법인데 어떻게 하냐면 일종의 헌법을 작성을 해요
AI가 따라야 할 반드시 따라야 할 헌법 대원칙 같은 거를 텍스트로 줍니다
그 다음에 우리가 굉장히 유해한 응답을 고의적으로 생성해요 남을 욕한다든가 차별적인 발언을 한다든가 무기 제조 방법을 알려준다든가 이런 거를 생성을 한 다음에 제3의 AI한테 주고 이 유해한 답변하고 헌법을 주고 이 헌법에 따라서 수정을 해봐라
이렇게 시키게 됩니다
그래서 최 종 수정된 응답을 만들어요
그래서 이 AI가 충분히 똑똑하다면 이 헌법에 따라 이걸 수정할 수 있겠죠
예를 들면 남을 욕하면 안 된다 욕을 좀 톤을 낮추고 위험한 내용을 담으면 안 된다 무기 제조 방법은 좀 지우고 이렇게 하겠죠
그래서 최종 수정된 응답으로 이제 나쁜 답변하고 이게 나쁜 답변이고 좋은 답변이면 이쪽이 좋은 답변이잖아요
사람이 고르는 과정 없이 이 좋은 답변을 선호하도록 모델을 만들어 가지고 얘가 보상을 주는 거예요
그래서 우리가 이런 식으로 강화학습을 하는 것을 RLAIF라고 합니다
AI가 성격은 못 돼 먹었어도 이 헌법을 이해할 능력만 있으면 제대로 업무를 수행할 수 있는 거죠
예를 들면 우리가 변호사가 인성은 나쁘지만 능력은 좋을 수 있잖아요
인성 나쁘고 능력 좋은 변호사가 있으면 얘가 인간이 개인적으로는 되게 도덕성이 나쁜데 어쨌든 우리가 규칙을 줄 테니까 이 규칙을 가지고 완벽하게 도덕적인 답변을 만들고 답변을 잘 하겠죠
본인 인성은 나빠도 머리가 나쁜 건 아니니까 인성이 나쁜 거지
그래서 AI를 이용해서 이렇게 피드백을 줄 수 있다
그래서 우리가 헌법만 잘 작성을 해주면 된다
우리가 AI에게 원하는 어떤 대원칙들만 주면 된다
이런 얘기고 실제로 해보니까 RLAIF로 만든 답하고 RLAIF로 만든 답에 대해서 인간 평가자는 50대50의 선호도를 보여줬습니다
RLAIF가 더 사실적인지 더 안전한지 이런 거는 좀 평가하기 힘들어요
왜냐하면 그거는 또 누가 평가할 거냐
이런 문제가 생기거든요
근데 적어도 선호도 측면에서 보면 RLHF나 RLAIF나 차이가 없다
즉 우리가 인간이 적어도 선호도 수준에서는 인간 과 거의 똑같은 수준으로 AI가 할 수 있다 다리 말하면 이렇게 열심히 논문을 썼는데 인간보다 잘하는 데는 실패한 거죠
뭔가
이렇게 열심히 한 거는 뭔가
사실 살짝 기대를 했을 거 아니에요
인간보다 좀 잘하고 싶은데 했는데 잘하지 못했다
하지만 어쨌든 비슷하게 할 수 있다고 하면 우리 이제 비용을 많이 절감할 수 있는 거죠
어쨌든 사람은 아무리 최저임금을 줘도 사람이 더 비싸니까 그래서 효과적이다 라는 걸 보여줬고 이게 23년에 나온 논문이니까 그래도 1년 정도 지났으니까 지금은 아마 더 발전했겠죠
그다음에 이제 최근에 굉장히 각방 받고 있는 방법 중에 DPO라는 방법이 있습니다
Direct Preference Optimization인데
그러니까 직접 선호도에 최적화한다
이런 얘기 그래서 어떻게 하냐면 강화학습을 빼버리는데 어떻게 빼냐면 지도학습을 하면서 어떻게 묘한 트릭을 써가지고 이제 우리가 두 개의 문장을 주고 사람이 고르게 하잖아요
그러면 이긴 문장이 있고 진 문장이 있는데 이건 이겼다 졌다 일 뿐인데 이긴 문장이 마치 확률이 높은 것처럼 손실함수를 어떤 수학적 트릭을 써가지고 인위적으로 만들게 됩니다
그러면 강화학습을 하지 않고 이 데이터를 이용해서 지도학습을 하면 사람들이 선호하는 문장이 확률이 높아져서 더 많이 생성되는 그런 상황이 됩니다
그래서 이 경우에는 PPO로 강화학습 시킨 것보다도 사람들에게 보여주고 어느 쪽 답변이 더 마음에 들어요 라고 했을 때 사람들의 선호도가 더 높아지는 그런 결과를 지금 보여주고 있고 여기 보시면 DPO하고 PPO하고 이렇게 있으면 아 이게 사람이 평가했을 때 Human Win이 사람이 평가했을 텐데 DPO가 이기는 경우가 58%입니다
그래서 DPO가 가장 선호가 된다
이런 얘기입니다
그 다음에 이 방법이 현재 가장 각광받는 그런 방법이라고 할 수 있어요
그래서 어떤 식으로 하냐면 우리가 이제 정책 파일을 학습을 시켜야겠죠
이때는 언어 모형이 그대로 정책이 됩니다
그래서 그렇게 되는데 일단 밑도 끝도 할 수는 없기 때문에 일단 지도학습된 모형을 가져와요
지도학습된 모형을 기준정책이라고 합니다
그래서 이거는 우리가 기존의 데이터로 지도학습을 한 거예요 선호도는 반영이 안 돼 있고 그러면 우리가 보상함수를 적용을 하면 수식으로 이런 형태의 수식을 우리가 만족을 해야 된다
이렇게 정의를 하는데 어떻게 하냐면 보상은 크면서 원래의 기준정책하고는 너무 멀리 떨어지지 않은 이 차이는 적고 보상은 큰 이런 정책을 찾으려고 한다
근데 문제는 이걸 모르잖아요
모르는 걸 어떻게 제일 크게 만드느냐 이런 겁니다
그래서 여기서 이제 약간 희한한 수학적 트릭을 쓰는데 이렇게 어떻게 유도를 잘 해가지고 Z라는 값을 찾는데 그러면은 이 Z는 정책에 의존하지 않는 여기 보면 시계 보면은 파이가 없죠
그런 Z를 만들어내고 그 다음에 여기에다가 이거를 잘 끼워놓고 정리를 쭉 하면은 우리가 찾으려는 파인은 이 시계 형태를 만족한다
이런 식으로 유도를 해요
그래서 우리가 데이터에서 Y1이 Y2보다 더 선호가 된다 라고 하면은 보상함수는 이런 꼴을 만족을 한다
이런 식으로 증명을 하고 그래서 17을 여기다가 16에다가 끼워넣으면 또 이렇게 되는데 이거를 열심히 열심히 열심히 유도를 하면은 결국에는 이런 7번 같은 형태가 됩니다
그래서 이거를 다시 미분을 해보면 결국 이런 형태가 되는데 어떻게 되냐면 우리가 이긴 문장이 있고 진 문장이 있는데 만약에 진 문장이 기존의 보상을 더 많이 받았다 그러면 이긴 문장은 확률을 높이고 진 문장의 확률은 높이면 안되죠
낮춤이죠 진 문장의 확률은 낮춰서 이렇게 우리가 학습을 시키면 된다
이런 식으로 하는 거예요
그래서 사실은 앞에서 약간 이상한 조건이 붙는데 기준정책하고 차이가 적을 필요가 뭐 있냐
제 생각에는 이걸 넣어서 결과적으로 이렇게 되게 만든 게 아닌가
이런 생각이 드는데 사실 제가 그 속내까지는 잘 모르겠고 이런 식으로 유도를 하면은 우리가 보상함수를 모르더라도 보상함수가 이런 성격을 띌 수 밖에 없기 때문에 우리가 학습을 시킬 수 있다
이런 희한한 논리를 만들어내게 됩니다
근데 이제 이 DPO는 몇 가지 한계가 있는데 기본적으로 DPO의 어떤 가정이 결국 보상함수가 기준정책과 현재 정책의 어떤 확률의 비율 이 차이에 의해서 보상함수를 우리가 간접적으로 재정의 할 수 있을 거다 라는 수학적 유도 과정에 의존하는데 사실 약간 누구 맘대로 약간 이런 거죠
이 기준정책이 맞다는 건 누가 보장해 약간 이런 게 있고 그래서 기본적으로 기준정책이 좋아야 어쨌든 그 보상함수 뭐 그 유도 과정이 맞다고 쳐도 보상함수가 결국에는 결국 기준정책의 품질에 좌우되는 그런 문제가 있죠
그래서 일단 기준정책이 좋아야 된다
이런 거고 두 번째는 이건 강화학습에도 적용되는 문제지만 기본적으로 선호도로 학습을 하니까 사람들이 좋아하는 문장을 생성하는 거지
뭐 내용이 정확하다든가 표현이 좋다든가 이런 건 아니죠
요즘에 약간 문외력 가지고 논란이 있는데 예를 들면 맨날 평가를 중학생들한테 시키면 어떻게 되겠어요
중학생들이 좋아하는 식으로밖에 말을 못 하겠죠
요즘에 중학생들은 뭐라고 말을 할까요
따라도 못 하는데 그런 말투로 밖에 말 안 하겠죠
그게 좋다고 하겠죠
그래서 그렇고 그다음에 기본적으로 어떤 보상함수를 극대화 시키는 식으로 학습을 하는데 여기에는 사람들의 선호도도 있지만 어떤 사람들이 무의식적으로 보여준 양태가 있습니다
예를 들면 사람들이 대체로 긴 답변을 좋은 점수를 주는 경향이 있어요
우리도 그렇잖아요
누가 말을 길게 하면 말을 잘한다고 생각을 해요 의식적으로 그렇게 판단한 건 아닌데 말을 막 많이 하는 사람을 들으면 뭔가 말을 되게 잘하는 것 같습니다
말을 짧고 간결하면서도 핵심을 깨뚤어 말을 하면 어지간히 핵심을 깨뚤지 않으면 그냥 말 수가 없네
그냥 이렇게 생각하지
그 사람 간결하면서도 핵심을 깨뚤어 이렇게는 잘 안 해요
물론 말이 너무 많으면 말이 왜 이렇게 많은지 모르겠다
이렇게 하지만 어느 정도는 말을 길게 하는 게 좋은 평가를 받을 수 있습니다
예를 들면 여러분이 면접을 갔다고 생각해 보세요
네, 아니요 이렇게 대답만 하면 어지간하면 대답을 저렇게 하지
이런 생각이 들겠죠
그래서 약간은 길게 하는 것이 심리적으로 상대방한테 말을 잘하는 것처럼 보일 수가 있습니다
사람들이 그걸 의식적으로 생각하지 않기 때문에 평가를 할 때 그런 식으로 평가는 경향이 있고 그런 거에 최적화가 돼 있기 때문에 기본적으로 말을 좀 장황하게 하는 경향이 있어요 채취 PD도 보면 우리가 따로 말을 짧게 하라고 안 시키면 굉장히 길게 답변합니다
주저리 주저리 주저리 그게 어떤 그런 보상함수에 있는 암묵적인 그런 미묘한 그런 거에 좀 반응을 하는 그런 거죠
그 다음에 DPO 말고 좀 더 간단한 방법도 있는데 어떻게 하냐면 Best of N Sample Rejection이라고 해서 이거는 별 건 아니고 그냥 답변을 여러 개 만들어요 답변을 여러 개 만든 다음에 강화학습은 애초에 보상이 높도록 답변을 만드는 건데 Best of N Sample은 N 개를 답변을 만든 다음에 이거에 각각 보상을 계산을 해봅니다
보상 모델에 넣어서 그러면 계산해 보니까 얘가 보상이 제일 크더라
그럼 이 말을 사용자한테 내보내는 거예요
이해되시죠?
그러니까 굉장히 단순한 방법입니다
그래서 강화학습 하지 말고 여러 번 만들어 본 다음에 그 중에서 제일 사람들이 좋아할 만한 말을 하자
이런 방식이죠
그래서 만약에 생성을 충분히 많이 하면 이것만으로도 강화학습 과정을 건너 띌 수가 있겠죠
보상 모델만 좋으면 그래서 실제로 상용 서비스에서 수백만 명이 사용하는 논문 제목이 보시면 Millions of Users 이렇게 나오는데 실제로 사용자가 굉장히 많은 채포 서비스에서 백만 명 이상 수백만 명이 쓰는 서비스에서 해봤더니 이런 식으로 채포시 답변을 제공했을 때 사용자들이 그 서비스를 더 오래 유지하고 잘 탈퇴를 안 하더라
이런 결과를 보여줬습니다
이렇게 해서 우리가 요즘에 핫한 뭐 요즘에 핫하다고 하기도 뭐 하지만 어쨌든 채찌 GPT 이런 데서 강화학습이 어떻게 쓰이고 있는가
이런 것들을 알아봤습니다