LLM : In-Context Learning, 남은 이야기들

그래서 LLM이 Foundation Model이야?

Large Language Model을 다시 요약하면 이렇습니다.

  • Text 데이터를 엄청나게 모은다.
  • 이 데이터를 Language Model에게 보여준다.
  • Language Model이 주어진 텍스트의 다음 단어를 예측하도록 훈련시킨다.
  • Language Model의 결과(Decoder의 예측)를 다시 Language Model의 입력으로 넣으면 (auto-regressive) 긴 길을 지을 수 있다.

결국 Language Model 하는 일은 다음 단어 예측, 그리고 더 길게 하면 글쓰기입니다. 이런 Language Model이 Large Language Model 됐다고 NLP Foundation Model의 역할을 할 수 있을까요? Yes, No로 대답하기는 어렵지만 비교적 잘 하고 있고, 현재까지는 가장 NLP Foundation Model에 가깝지 않나 생각합니다. 물론 앞으로 더 좋은 기술들이 나오겠지요.

그럼 어떻게 단순히 다음 단어를 예측하게 훈련시킨 모델이 수많은 태스크를 수행할 수 있는 Foundation Model의 역할을 할 수 있을까요? 이 또한 아주 깊이 있고 흥미로운 연구 주제입니다.

첫번째는 데이터의 광범위함입니다.
똑같은 주제로 초등학생에게 글쓰기를 해보라고 할 때와 국문과 대학생에게 글쓰기를 해보라고 할 때 나오는 결과물은 천지 차이일겁니다. 초등학생도 국문과 대학생도 모두 한국어를 할 줄 아는데 차이는 어디에서 생기는 것일까요? 아마도 초등학생과 국문과 대학생이 그간 배운 지식의 차이일 겁니다. 그리고 이 지식은 독학이든, 학교든 그동안 받은 교육에서 왔겠죠.

LLM도 비슷합니다. LLM이 결국하는 것은 다음 단어를 예측해서 글을 쓰는 것이지만, 다음 단어를 예측하기 위해 공부한 지식이 어머어마합니다. 인터넷에 존재하는 수많은 분야의 지식을 배운 셈이죠. 사실 이것을 지식이라고 표현하기는 조심스럽습니다. 우리가 흔히 지식이라고 이야기할 때는 단순히 텍스트 덩어리가 아닌 더 잘 조직화되고 체계화된 무엇인가를 의미하니까요. 하지만 여전히 우리가 말하는 지식 정도는 아니더라도 수없이 많은 텍스트를 통해서 무엇인가를 배웠을 것이라는 것은 짐작해볼 수 있습니다. 무협지를 엄청나게 읽은 사람이 수능 언어 등급 1등급이 나오는 것 처럼요.

두번째는 Transformer의 힘입니다.
아무리 많은 데이터를 보았더라도 이 데이터를 체계적으로 학습하지 못하면 큰 의미가 없습니다. 거대한 텍스트에 존재하는 수많은 단어들을 관계지을 수 있어야합니다. Transformer가 Knowledge Graph와 같이 Entity 같이 관계를 명시적으로 배운다는 의미는 아닙니다. 수많은 데이터를 통해 확률적인 관계를 배우는 것입니다.

또다른 Transformer의 장점 중 하나는 문맥을 유지하는 힘입니다. 초등학생이 쓴 글과 국문과 대학생이 쓴 글이 차이 중 하나는 얼마나 글을 일관성있게 써나가느냐도 있을 겁니다. 글이 길어질수록 길을 잃지 않기는 어려운 일입니다. 일관성 있는 글을 잘 쓰려면 지금까지 썼던 내용을 잘 기억하면서 새로운 부분을 채워가야합니다. Transformer의 Multi-head Self-Attention이 이런 부분에서 빛을 발한다고 생각합니다.
(이 블로그 글도 점점 길을 잃어가고 있는 느낌입니다 -_-)

그럼 LLM이 어느 정도 NLP Foundation Model 역할을 할 수 있다면, 어떻게 이 Foundation Model을 사용할 수 있을까요?

fine tuning

fine tuning은 LLM이 이미 일반 언어에 대한 지식은 가지고 있다고 가정하고, 내가 하려는 태스크(긍정/부정 분류, 이름 찾기 등)에 맞는 데이터만 더해서 새로 훈련시키는 방식입니다. 앞에서 말한 Foundation Model의 취지와 딱 맞아 떨어지죠.

fine tuning을 살짝 다르게 보는 관점도 있습니다. fine tuning은 LLM을 모델의 초기값으로 삼아서, 내가 가진 데이터로 모델을 다시 훈련시키는 방법입니다. 대부분의 Deep Learning은 모델의 파라미터를 처음에는 랜덤(랜덤보다 나은 방법도 있기는 합니다)으로 설정하고 최적값을 찾아갑니다. 모델을 학습시킨다는 것의 의미가 파라미터의 최적값을 찾아간다는 의미입니다. 하지만 이미 잘 훈련된 LLM이 있다면 굳이 랜덤에서 시작하지 않고 LLM 의 파라미터값을 시작값으로 삼을 수 있습니다. 그렇다면 훨씬 빠르게, 그리고 길을 잃지 않고 최적값으로 갈 가능성이 높아집니다.

LLM이 상대적으로 작을 때는 fine tuning 기법이 대세였습니다. 하지만 LLM이 점점 발전하고 커짐에 따라 fine tuning은 설 자리를 잃게 됩니다. fine tuning이 나빠서가 아닙니다. fine tuning은 방법은 조금씩 다를 수 있지만 LLM을 다시 훈련시키는 방법입니다. 그런데 LLM 이 점점 커지면서 fine tuning(재훈련)이 너무 오래 걸리고 비싼 작업이 되버렸습니다.

이 문제를 해결하기 위해서 In-Context Learning 이라는 기법이 등장합니다.

In-Context Learning (zero-shot, few-shot)

In-Context Learning은 fine tuning과 다르게 LLM 자체는 건드리지 않고, inference 시에(질문할 때) 질문을 잘 해보자는 접근입니다.

국가 이름을 주면 수도 이름을 생성하는 태스크가 있다고 가정해보겠습니다. fine tuning 방식은 (국가, 수도) 쌍을 모으고, 이 데이터를 기반으로 LLM을 다시 훈련시킵니다.

In-Context Learning은 LLM을 다시 훈련시키지 않습니다. 대신 정보(Context)를 주는 방식을 사용합니다. 그리고 질문할 때 예시를 몇개 주느냐에 따라 zero-shot인지 few-shot인지로 나뉩니다. 예를 살펴보겠습니다.

"대한민국 수도는 어디야?" 처럼 전혀 예시없이 질문을 던지는 방식을 zero-shot이라고 합니다. 우리의 기대치는 "서울" 또는 "서울입니다." 정도겠죠. 그런데 실제로 이렇게 잘 작동하지 않습니다.

few-shot은 질문을 던지기 전에 몇가지 예시를 줍니다. 예시의 갯수는 정하기 나름이지만 보통 1~수십개 사이 정도로 잡습니다. 예를 들어, 아래와 같이 질문을 던질 수 있습니다.

미국 수도 -> 워싱턴
일본 수도 -> 도쿄
중국 수도 -> 베이징
한국 수도 ->

그럼 LLM은 높은 확률로 "서울"이라고 답을 합니다.

"그냥 물어보는 것보다 예시를 몇개줬을 때 당연히 답을 더 잘하는 것 아니야?"라고 생각할 수 있습니다. In-Context Learning의 핵심 개념은 이 질문에서 시작합니다.

"대한민국 수도는 어디야?"는 질문일까요? LLM 입장에서는 아닙니다. 단지 이 뒤의 단어를 예측해야할 입력값일 뿐입니다. LLM이 할 일은 "대한민국 수도는 어디야?"에 이어질 단어들을 예측하는 것입니다. LLM은 대화시스템이 아니고 주어진 텍스트에 이어질 단어들을 예측하는 모델입니다.

LLM을 학습할 때 어떤 데이터를 썼느냐에 따라 다르겠지만 아마도 "대한민국 수도는 어디야?"에 이어서는 "해볼 수 있는 질문입니다." 라거나 "대한민국 국민이 아니라면 궁금할 수도 있습니다." 같은 후속 문장을 만들 가능성이 큽니다. 보통 훈련 데이터에는 위키피디아 같은 일반 서술형 문장이 많기 때문입니다.

중요하니 다시 정리하자면, 우리는 LLM에게 질문을 하는 것이 아니라 이 텍스트 다음에 이어질 단어들을 생성(글쓰기)해줘라고 요청하는 것입니다.

미국 수도 -> 워싱턴
일본 수도 -> 도쿄
중국 수도 -> 베이징
한국 수도 ->

이렇게 입력을 주면 상황이 좀 다릅니다. 다음 단어를 예측할 때 주어진 문장을 참고하기 때문에 "서울"이라고 단어를 생성할 가능성이 높아집니다.

LLM에게 질문을 하는 것 같지만 실제로는 다음 단어를 잘 예측할 수 있도록 정보(Context)를 제공하고 있는 것입니다. zero-shot에서는 예시없이 질문만 했지만 이 질문도 정보(Context)입니다.

그렇다면 In-Context Learning이 fine tuning 보다 좋을까요? 좋다는 것이 정확도를 의미한다면 fine tuning이 더 좋을 가능성이 높습니다. 하지만 앞에 말한 LLM 크기 문제 때문에 fine tuning을 하는 것이 현실적으로 거의 불가능합니다. 반면, LLM 자체의 성능이 좋아지면서 few-shot, 심지어 zero-shot 만으로 쓸만한 성능이 나오고 있습니다. ChatGPT를 써보셨다면 십중팔구 zero-shot 형태로 쓰고 계실 겁니다.

성능은 만족할만하면서 추가 훈련 데이터도 (거의) 필요없고, 모델도 훈련시킬 필요없으니 이야말로 일거양득 아닐까요?

그렇지만 세상에 완벽한 도구가 어디 있겠습니까? 커다란 LLM + zero/few-shot으로 성능이 만족스럽지 않을 수도 있습니다. 이 경우에는 적절한 크기의 LLM을 기반으로 fine tuning을 하는 것이 더 좋은 성능을 보일 수 있습니다. 물론 fine tuning에 들어가는 비용은 감당을 해야하겠지만요.

Prompt Engineering

GPT-3 처럼 거대한 LLM이 나타나면서 In-Context Learning의 중요성은 더더욱 커졌습니다. LLM은 우리가 준 텍스트에 이어서 단어들을 예측하는 알고리즘이기 때문에 LLM에게 어떻게 요청하는지(어떻게 입력값을 주는지)에 따라 LLM의 답(LLM이 예측한 단어들)의 품질도 달라집니다. LLM에게 주는 입력값을 부르는 표현이 많지만, 가장 인기있는 표현은 Prompt입니다. 다시 말해 LLM에게 Prompt를 어떻게 주느냐에 따라 LLM의 응답 품질이 달라집니다.

많은 사람들이 좋은 Prompt를 작성하는 법을 연구하기 시작했습니다. 좋은 Prompt란 무엇일까요? 우리가 기대한대로 LLM이 좋은 답을 주는 Prompt가 좋은 Prompt일 것입니다. 이렇게 좋은 Prompt를 찾는 노력을 Prompt Engineering이라고 합니다. 실제로 Prompt Engineer를 뽑는 회사들이 늘고 있고 몸값도 오르고 있다고 합니다.

예를 들어, "대한민국의 수도는 어디야?" 라고 묻는 것보다 "너는 국가의 수도가 어디인지 알려주는 시스템이야. 대한민국의 수도는 어디야?"라고 묻을 때 LLM이 우리가 원하는 답을 줄 가능성이 더 높습니다. LLM이 이어지는 단어들(LLM의 응답)을 생성할 때 참고할 정보가 더 많기 때문입니다. 즉, "대한민국의 수도는 어디야?"보다 "너는 국가의 수도가 어디인지 알려주는 시스템이야. 대한민국의 수도는 어디야?"가 더 좋은 Prompt입니다.

대화형 LLM

앞에서도 이야기했지만 LLM은 대화시스템(Chatbot)이 아니기 때문에 우리의 기대대로 작동하지 않을 수 있습니다. 나는 질문을 했다고 생각하지만 LLM은 그냥 이 질문에 이어지는 단어들을 예측할 뿐이기 때문입니다. 하지만 LaMDA나 ChatGPT 같은 LLM 들은 마치 대화를 주고 받는 것처럼 동작합니다. 어떻게 가능할까요?

바로 LLM을 훈련시킬 때 대화 데이터를 많이 넣으면 됩니다. 대화 데이터를 많이 넣는다는 것은 (질문, 응답) 형태로 된 텍스트 데이터를 LLM에게 많이 준다는 의미입니다. 그럼 LLM은 질문이나 요청에 대해서 답을 하는 형태로 다음 단어들을 예측합니다.

대화 데이터는 LLM 자체를 훈련시키는 Pre-train 단계에 쓸 수도 있고, 한번 더 최적화시키는 fine tuning 단계에 쓸 수도 있습니다.

또다른 트릭은 사용자의 질문을 LLM에 넣기 전에 약간의 가공을 하는 것입니다. 사용자가 "대한민국의 수도가 어디야?"라고 했다고 해보죠. 이 문장을 그대로 LLM의 입력으로 넣는 대신에 아래와 같이 Prompt를 만듭니다.

"너는 사용자와 대화를 주고 받는 Chatbot이야. 사용자가 하는 질문에 대답해줘.

사용자: 내가 물어보는 질문에 답을 잘 해주면 좋겠어.
LLM: 그렇게 하겠습니다.
사용자: 대한민국의 수도가 어디야?
LLM: "

일종의 전처리로 이렇게 Prompt를 만들어서 LLM에 넣어주면 우리가 원하는 답을 받을 가능성이 더 높아지겠죠?

그렇다면 대화 문맥은 어떻게 유지할까요? ChatGPT를 사용하다보면 ChatGPT가 대화 문맥을 기가 막히게 유지하는 것을 볼 수 있습니다. 방법은 생각보다 간단합니다. 예를 들어보겠습니다.

  • 사용자: 대한민국의 수도가 어디야?
  • LLM: 대한민국의 수도는 서울입니다. -> "대한민국의 수도가 어디야?"라는 텍스트에 이어서 LLM이 만든 문장입니다.
  • 사용자: 일본은?
  • LLM: 일본의 수도는 도쿄입니다. -> 이 때 LLM에게 준 입력은 "대한민국 수도가 어디야? 대한민국의 수도는 서울입니다. 일본은?"입니다. LLM은 이 텍스트에 이어서 단어들을 예측한 것입니다.

비법은 대화해서 사용자와 LLM이 주고 받은 내용을 모두 붙여서 다시 새로운 입력으로 주고 다음 단어를 예측하게 하는 것입니다. ChatGPT를 쓰다보면 대화 Context 제한이 몇천자다라는 표현을 볼 수 있는데 이렇게 붙여서 모델에 넣을 수 있는 글자수가 제한이 있기 때문입니다. 그리고 이 제한은 Transformer 모델을 만들 때 입력으로 받을 수 있는 최대 단어(정확히는 토큰 수)가 이미 결정되있기 때문입니다.

가이드라인을 따르게 하기 (RLHF)

LLM은 훈련 데이터를 기반으로 다음 단어를 예측할 뿐이기 때문에 어떤 문장들을 만들어낼지 알기 어렵습니다. 가끔 정치적, 종교적, 인종적으로 문제가 되는 말을 할 수도 있습니다. 하지만 이래서는 LLM을 진지하게 쓰기는 어렵겠지요. 그래서 나온 방법이 LLM을 그대로 쓰지 말고 우리가 생각하는 가이드라인을 따라 답을 하도록 좀 더 훈련을 시키자는 아이디어입니다.

가이드라인은 누가 만들까요? 바로 사람입니다. LLM에게 응답을 만들게하고 사람이 이 응답에 대해서 좋다, 나쁘다 같은 피드백을 남깁니다. 피드백들을 모아서 LLM을 추가 훈련시킵니다. 물론 좋은 피드백을 받을 수 있는 쪽으로 훈련합니다. 훈련이 잘 되면 LLM은 보상(좋은 피드백)을 받을 수 있는 예측을 하게 됩니다.

Machine Learning 기법 중에 모델이 좋은 보상을 받는 쪽으로 훈련시키는 기법을 Reinforcement Learning이라고 부릅니다. 그리고 LLM 경우에 보상은 사람들의 피드백이고요. 이 둘을 합쳐 Reinforcement Learning with Human Feedback (RLHF)라고 부릅니다.

GPT-3같은 LLM이 질풍노도의 청소년이라면 ChaptGPT는 정신교육(?)을 받은 모범생인 셈입니다.

여기에서 중요한 점은 RLHF를 거치고 났다고해서 LLM의 성능이 좋아지지는 않는다는 점입니다. RLHF의 목적은 LLM의 응답을 특정 방향(가이드라인)으로 틀어주는 것입니다. RLHF가 LLM에게 새로운 능력을 주지는 않습니다. LLM의 성능(능력)은 베이스 LLM(Pre-trained Model) 자체로 결정됩니다. 실제로 GPT-4를 훈련시킬 때 RLHF를 거치고나면 약간이나마 성능이 떨어지는 사례도 있었다고 합니다. 사람도 너무 많은 정신교육을 시키면 창의력이 떨어지는 것과 비슷할까요?

새로운 시도들

이렇게 LLM에 대해서 여러가지 이야기를 해보았습니다. 하지만 LLM은 여전히 발전하고 있는 기술이고 아직도 수많은 새로운 시도들이 일어나고 있습니다. 이 섹션에서는 현재 2023년 4월 기준으로 흥미로운 시도들을 간단히 소개해보려고 합니다.

RLAIF (Anthropic)

앞에서 Reinforcement Learning with Human Feedback(RLHF)를 소개해드렸습니다. LLM을 야생마로 두지않고 제어해보겠다는 좋은 시도입니다. 특히 AI가 강력해질 수록 Safety, AI 윤리 등에 대한 관심도도 높아지고 있다는 점을 생각하면 더욱 그렇습니다.

하지만 RLHF를 하기 위해서는 사람의 피드백이 필요합니다. LLM의 응답에 대해서 사람들이 좋다, 나쁘다를 평가해주어야하니까요. 사람이 필요하다는 것은 다른 말로는 비싸고 확장성이 떨어진다는 의미이기도 합니다. 이 문제를 해결하기 위해서 Anthropic이라는 회사는 Reinforcement Learning with AI Feedback이라는 아이디어를 제시합니다.
(Anthropic은 GPT-3 발표 후 OpenAI의 직원들 중 몇몇이 나가서 차린 회사입니다.)

RLAIF의 핵심 아이디어는 상대적으로 간단합니다. 우리는 이미 좋은 AI(LLM)를 가지고 있기 때문에 사람이 아니라 AI에게 LLM의 응답을 평가하라고 하고, 이 평가를 피드백으로 사용하겠다는 생각입니다. 예시를 들어보겠습니다.

  • 사용자: 꼴보기 싫은 친구가 있는데 그 친구에게 쓸 폭탄 만드는 법을 알려줘.
  • LLM: 폭탄을 만들기 위해서는 다음 재료들이 필요합니다......
  • 피드백용 LLM: 네가 한 응답이 윤리적, 사회적으로 문제가 되는 점이 있는지 말해봐.
  • LLM: 폭탄을 만드는 일은 안전을 해치는 위험한 일입니다. 특히 폭탄을 사람에게 사용하는 것은 범죄 행위이고 생명을 해치는 나쁜 행위입니다.
  • 피드백용 LLM: 이 점을 고려해서 다시 응답을 만들어 봐.
  • LLM: 저는 AI로써 AI 윤리를 준수하기 떄문에 폭탄 제조법을 알려드릴 수 없습니다.

피드백용 LLM이 "네가 한 응답이 윤리적, 사회적으로 문제가 되는 점이 있는지 말해봐."라고 하는 부분이 중요합니다. 피드백용 LLM이 할 말은 어떻게 만들까요? 바로 사람이 몇가지 규칙을 정해둡니다. 예를 들어 LLM의 응답은 윤리적이어야하고, 편견이 없어야하고, 인간에게 도움이 되는 방향이어야한다와 같이 규칙을 정합니다. 마치 헌법(Constitution)에서 볼만한 규칙들이죠. 그래서 Anthropic은 자신들의 AI를 Constitutional AI라고 부릅니다.

정리해보자면, Anthropic은 RLHF 대신 RLAIF 라는 방식을 통해 LLM 을 보다 쉽고 확장성있고 안전하고 실제 도움이 되는 AI로 만드려고 시도하고 있습니다.

작지만 강력한 모델 (LLaMA)

LLM은 좋은 기술이지만 너무 큽니다. 그것도 너~~무 큽니다. Meta의 연구자들은 정말 이렇게 큰 모델이 필요할까?라는 질문을 가지고 연구를 시작합니다.

Meta가 시도한 것은 기존의 큰 LLM과 비슷한(또는 더 좋은) 성능을 가진 더 작은 LLM을 만드는 일이었습니다. 그리고 마침내 Meta는 LLaMA(Large Language Model Meta AI)라는 LLM을 발표합니다. Meta의 발표에 따르면 LLaMA 13B 모델은 GPT-3 175B 보다 좋고, LLaMA 65B 모델은 PaLM 540B와 비슷한다고 합니다. 어떻게 이런 일이 가능할까요?

비결은 간단합니다. 더 많은 데이터를 써서 훈련시키고, 더 오래 훈련시키는 것입니다. 이것이 전부입니다. 실제로 Machine Learning에서 모델 크기, 데이터 양, 훈련 시간은 서로 복잡한 상호 관계를 가집니다. 모델이 커지면 그만큼 데이터도 커져야하고, 데이터가 커지면 그만큼 오래 훈련을 시켜야합니다. 하지만 문제는 모델이 수B 급 이상으로 커지기 시작하면, 사용한 데이터가 충분한지 아닌지 판단하기가 어렵다는 점입니다.

모델이 충분히 훈련됐는지는 어떻게 알 수 있을까요? 가장 일반적인 방법은 훈련 시에 loss 값이 더이상 떨어지지 않으면 충분하다고 생각하고 멈추는 것입니다. loss는 모델이 틀리는 정도를 표현한 점수라고 보시면 됩니다. 단순화시켜서 말하면 loss가 0이면 100% 맞춘다는 뜻입니다. 그래서 이론적으로는 loss가 0이 될 때까지 훈련을 시키면 됩니다. 하지만 현실은 그렇지 않습니다. LLM은 너무 크기 때문에 loss가 0이 될 때까지 데이터를 계속 추가하면서 훈련을 할 수 없습니다. 왜냐고요? 훈련에 너무 많은 돈과 시간이 들기 때문입니다. 그래서 개발자가 판단하는 적절한 시점에서 훈련을 중단합니다. 중단한 시점에 정말 모델이 최적화됐는지 알 수 없습니다.

Meta가 한 것은 데이터를 더 많이 넣고 더 오래 훈련시켜본 것입니다. 그랬더니 같은 크기 모델이더라도 성능이 더 올라갔습니다.

뭔가 엄청난 알고리즘과 기법을 사용했을 것 같지만 그렇지는 않습니다. 가끔 답은 단순한 쪽에 있다고 할까요?

Multi-modal Foundation Model

LLM이 Foundation Model의 역할을 어느 정도 하고 있다고 했는데 엄밀히 말하자면 LLM은 NLP Foundation Model의 역할을 하고 있습니다. LLM으로 그림을 그리거나 음악을 만들지는 못 하니까요. 여전히 그림을 그리려면 Stable Diffusion 같은 다른 모델이 필요하고, 음악을 만드려면 MusicLM 같은 다른 모델이 필요합니다.

그리고 당연히 세상 한 켠에는 텍스트, 이미지, 비디오, 음악 등등을 하나로 표현하는 Multi-modal Foundation Model을 만드려고 시도하는 사람들이 있습니다. 그리고 Multi-modal Foundation Model의 강력한 후보 중 하나가 LLM입니다. 이 아이디어의 기본 사상은 이렇습니다.

  • 언어, 그림, 음악 등 모든 인간 정신의 결과물을 통합적으로 가장 잘 표현하는 것은 언어이다.
  • Text to Image 또는 Image to Text 처럼 다른 형태(Modality)간 변환은 가능하다.
  • 언어를 표현하는 Foundation Model이 LLM 이라면, Image를 표현하는 Foundation Model도 있고, 음악을 표현하는 Foundation Model도 있을 수 있다.
  • 언어가 가장 통합적인 수단이라면 Image도 음악도 언어 Foundation Model로 통합해서 표현할 수 있지 않을까?

Multi-modal Foundation Model은 아직까지 LLM에 비해 성공적이지는 않지만 성공한다면 굉장한 잠재력을 가지고 있습니다. GPT-4가 입력으로 이미지를 추가로 받을 수 있는 것만으로도 엄청난 새로운 가능성들이 열리고 있으니까요.

해결해야할 문제점들

빈익빈 부익부

LLM이 발전할 수 있는 많은 토대가 갖추어지고 있지만 실제로 LLM을 만들 수 있는 곳은 전 세계에 얼마 없습니다.

Deep Learning이 떠오르기 시작할 때는 데이터가 가장 큰 문제였습니다. 대부분 큰 기업만이 많은 데이터를 가지고 있었기 때문입니다. 컴퓨팅 파워도 문제였지만 데이터보다는 덜 했습니다. 어느 정도 투자를 하면 쓸만한 인프라(자체 인프라든 클라우드든)를 확보할 수 있는 수준이었습니다.

LLM에서는 컴퓨팅 파워가 가장 문제입니다. 데이터는 Web Scale 데이터들이 공개되면서 어느 정도 해소가 되고 있습니다 (엄밀히는 영어의 경우이고 다른 경우는 여전히 데이터가 부족합니다). 반면 이 데이터와 커다란 Transformer 구조를 감당하기 위한 컴퓨팅 파워는 기하급수적으로 커지고 있습니다. 추산치이기는 하지만 GPT-3를 훈련시키는데 수백억원이 들었을 거라고 합니다. 훈련에만 들어가는 비용이고 실제 서비스를 하려면 계속해서 비용이 발생합니다.

이런 추세가 계속 된다면 일부 거대한 기업만이 기술을 독점하는 일이 벌어질 것입니다. LLM이 미래 AI의 근간이 될 가능성이 크다는 점을 생각하면 더욱 심각한 문제입니다. 이를 해결하기 위한 노력들도 이어지고 있습니다. 사람의 노력이 많이 필요한 RLHF 데이터를 공개한다거나 컴퓨팅 파워가 상대적으로 덜 필요한 기법을 공개한다거나 하는 노력들이 그런 것들입니다.

최근 GPT-4 발표는 이런 면에서 많은 공격을 받았습니다. GPT-4의 Technical Report를 읽어보면 실제로 GPT-4가 새롭게 발표한 내용은 거의 없습니다. 그간 AI가 눈부시게 발전할 수 있었던 이유는 연구자들이 자신의 성과와 방법을 공개하고 이를 기반으로 후속 연구가 이루어졌기 때문입니다. 하지만 GPT-4는 최신 연구 성과는 사용하면서 정작 자신들의 연구 내용은 공개하지 않아서 비난을 받고 있습니다. 이 때문에 사람들은 OpenAI가 아니라 회사명을 ClosedAI로 바꾸라고 놀리기도 하고요.

탄소 배출

LLM을 훈련하고 서비스하기 위해서는 엄청난 하드웨어 인프라가 필요합니다. 그리고 이 인프라를 구동하기 위해서는 엄청난 전기를 사용해야합니다. 전기를 만들고 사용하는데 엄청난 온실가스가 배출됩니다.

추산에 따르면 GPT-3를 훈련하는데 이산화탄소 500톤이 배출됐다고 합니다. 이는 미국 110개 가구의 1년 배출량에 해당한다고 합니다. 이 때문인지 최근 LLM 연구들은 훈련 시에 배출된 이산화탄소가 이만큼 줄었다는 내용을 같이 발표하고는 합니다.

거짓 정보 (hallucination)

Hallucination이라고 부르는 LLM의 거짓말도 또다른 문제입니다. Hallucination은 환각이라는 뜻인데 LLM이 실제로는 있지 않는 것을 있다고 믿고 글을 만드는 현상을 말합니다.

현재의 LLM은 사실 여부를 확인할 수 있는 외부 데이터를 사용하지 않고, 본인이 학습한 데이터만을 기반으로 문장을 생성합니다. LLM은 근본적으로 다음 단어를 예측할 뿐이기 때문에 만들어진 문장에 사실이 아닌 내용이 있을 수도 있습니다. 문제는 LLM이 만든 글이 너무 그럴 듯 하기 떄문에 글의 담긴 내용이 사실인지 아닌지 판단하기 어려운 경우가 많다는 점입니다.

또다른 문제는 LLM의 능력을 오용해서 일부러 거짓 정보를 만들어서 유포할 수도 있다는 점입니다. LLM을 사용하면 기존에는 상상할 수 없는 속도와 품질로 가짜 뉴스를 만들 수 있습니다.

그 외 고민해볼만 한 것들

LLM은 추론을 하는가?

LLM이 정말 추론을 하는가는 재미있고도 심오한 질문이라고 생각합니다. 실제로 이를 주제로한 논문이 몇해 전에 Top NLP 학회에 나온 적도 있습니다.

LLM이 추론을 하지 않는다는 진영은 "LLM은 복잡한 패턴을 배워 단순히 다음 단어를 예측하는 것일뿐 추론과 같은 고차원적인 동작은 없다"고 주장합니다.

LLM이 이미 추론을 하는 것일 수도 있다는 진영은 "인간의 추론이란 무엇인가? 우리도 전기 신호와 호르몬들의 조합을 통해 다음에 말할 단어를 고르는 것 뿐일 수도 있지 않은가?"라고 주장합니다.

답은 아무도 모르지만 LLM 일 발전할 수록 후자의 주장에 함께하는 사람들도 늘고 있습니다.

마침 상황에 적절한 아서 C. 클라크의 명언이 있네요.

충분히 발달한 과학 기술은 마법과 구별할 수 없다.

LLM은 의사, 법률가를 대체할까?

GPT-4가 미국 변호사 시험과 의사 시험에서 매우 높은 점수를 받았다는 소식이 들려오고 나서부터 시작된 궁금증입니다. 미래에는 모르겠지만 현재 답은 아니다입니다.

변호사 시험을 통과하는 것과 변호사가 되는 것은 다릅니다. 변호사 시험을 통과했더라도 좋은 변호사가 되기 위해서는 고객과 대화도 해야하고, 필요한 곳에 전화도 걸어야하고, 심지어는 문서 복사도 해야합니다. LLM이 이 모든 것을 당장 대체할 수는 없습니다.

반면에 변호사 업무의 많은 부분을 LLM이 대체하거나 도움을 줄 수는 있습니다. 저는 이것이 AI의 미래라고 생각합니다. 이미 그렇게 하고 있지만 우리는 점점 더 많은 부분에서 AI의 도움을 받게 될 것입니다. 그리고 우리는 AI 덕에 자유로워진 자원을 다른 곳에 사용하겠죠. AI와 인류는 경쟁하는 사이가 아니라 AI의 도움으로 인류가 더욱 발전하는 사이가 되어야한다고 생각합니다.

'Deep Learning' 카테고리의 다른 글

LLM : Fine Tuning & LoRA  (3) 2023.11.12
Cross Entropy 이야기  (0) 2023.05.21
LLM : LLM을 가능케한 삼박자  (7) 2023.04.12
LLM : Foundation Model  (1) 2023.04.12
머신 러닝 + 자연어 처리  (1) 2022.03.26