상위 목록: 하위 목록: 작성 날짜: 읽는 데 9 분 소요

대규모 언어 모델(Large Language Model)

사전 학습 언어 모델은 모델이 클수록, 데이터가 많을수록 성능이 좋아졌습니다. 2019년 OpenAI는 GPT의 크기를 열 배 이상 키운 15억 개 매개변수의 GPT-2를 공개했고, 2020년에는 다시 백 배 이상 키운 1,750억 개 매개변수의 GPT-3를 발표했습니다. 구조는 트랜스포머의 디코더를 쌓은 것으로 GPT와 크게 다르지 않았고, 사전 학습 과제도 여전히 다음 토큰 예측이었습니다.

그런데 GPT-3에서는 단순히 성능이 조금 좋아지는 것 이상의 일이 일어났습니다. 미세 조정을 전혀 하지 않고도, 입력에 과제 설명과 예시 몇 개를 적어 주기만 하면 번역, 질의응답, 산술 계산 같은 과제를 풀어낸 것입니다. 과제마다 모델을 다시 학습하던 방식에서, 하나의 모델에게 글로 지시하는 방식으로 바뀌는 순간이었습니다.

이처럼 수십억에서 수천억 개 이상의 매개변수를 가지고, 방대한 텍스트로 사전 학습되어 다양한 과제를 범용적으로 수행하는 언어 모델을 대규모 언어 모델(Large Language Model, LLM)이라 합니다. 오늘날 우리가 사용하는 대화형 인공지능은 대부분 대규모 언어 모델을 기반으로 합니다.



스케일링 법칙(Scaling Law)

모델을 키우면 성능이 좋아진다는 것은 경험적으로 알려져 있었지만, 얼마나 좋아지는지는 분명하지 않았습니다. 2020년 OpenAI의 카플란(Jared Kaplan) 연구진은 다양한 크기의 언어 모델을 학습해, 언어 모델의 손실이 매개변수 수 \(N\), 데이터의 토큰 수 \(D\), 학습에 사용한 계산량 \(C\)에 대해 거듭제곱 법칙을 따른다는 것을 보였습니다.

\[L(N) \approx \left( \frac{N_{c}}{N} \right)^{\alpha_{N}}\]


\(N_{c}\)와 \(\alpha_{N}\)은 실험으로 구한 상수입니다. 양변에 로그를 취하면 \(\log L\)과 \(\log N\)이 직선 관계가 되므로, 로그 눈금 그래프에서 손실이 모델 크기에 따라 곧은 직선을 그리며 줄어듭니다. 이 직선은 수천 배의 규모 차이에 걸쳐 놀라울 정도로 일정하게 유지되었습니다. 덕분에 작은 모델 몇 개를 학습해 보면, 훨씬 큰 모델을 실제로 학습하기 전에 그 성능을 미리 예측할 수 있게 되었습니다. 이를 스케일링 법칙(Scaling Law)이라 합니다.

그렇다면 정해진 계산 예산으로는 모델을 키우는 것과 데이터를 늘리는 것 중 무엇이 나을까요? 2022년 딥마인드의 호프만(Jordan Hoffmann) 연구진은 이 질문을 다시 실험해, 모델 크기와 데이터 양을 비슷한 비율로 함께 늘려야 한다는 결론을 얻었습니다. 대략 매개변수 하나당 20개 정도의 토큰으로 학습하는 것이 계산 효율이 가장 좋았습니다.

연구진은 이 결론을 확인하기 위해 700억 개 매개변수의 Chinchilla를 1조 4,000억 개의 토큰으로 학습했습니다. Chinchilla는 같은 계산량으로 학습한 2,800억 개 매개변수의 Gopher보다 대부분의 과제에서 더 좋은 성능을 냈습니다. 그전까지의 대규모 언어 모델들은 크기에 비해 데이터가 부족했던 것입니다.

  • Tip : 스케일링 법칙은 학습에 드는 계산만 고려합니다. 실제 서비스에서는 모델을 학습하는 것보다 수많은 사용자의 요청을 처리하는 추론 비용이 더 클 수 있습니다. 그래서 최근에는 모델을 계산 최적 크기보다 작게 만들고, 그 대신 매개변수당 토큰 수를 훨씬 늘려 오래 학습하는 경우가 많습니다.



인컨텍스트 학습(In-Context Learning)

GPT-3 논문의 제목은 “Language Models are Few-Shot Learners”였습니다. 모델에게 과제를 가르치는 방법이 가중치를 바꾸는 학습이 아니라, 입력 문맥에 예시를 적어 주는 것만으로 충분하다는 뜻입니다. 이를 인컨텍스트 학습(In-Context Learning)이라 하며, 모델에게 주는 입력 텍스트를 프롬프트(Prompt)라 합니다.

  • 제로샷(Zero-shot) : 과제 설명만 주고 예시는 주지 않습니다. “다음 문장을 영어로 번역하세요: 나는 학교에 간다 →”
  • 원샷(One-shot) : 과제 설명과 함께 예시를 하나 줍니다.
  • 퓨샷(Few-shot) : 예시를 여러 개 줍니다. 예시가 늘어날수록 모델이 과제의 형식과 의도를 더 정확히 파악합니다.


리뷰: 배송이 빠르고 품질도 좋아요. → 긍정
리뷰: 사진과 색상이 완전히 달라요. → 부정
리뷰: 가격 대비 만족스럽습니다. → 긍정
리뷰: 한 번 빨았더니 늘어났어요. →


위 프롬프트는 퓨샷 감성 분류의 예입니다. 모델은 “→” 다음에 올 토큰으로 “부정”을 예측하는데, 이는 모델이 감성 분류를 위해 따로 학습된 것이 아니라 앞의 패턴을 이어 쓰는 다음 토큰 예측을 했을 뿐입니다. T5가 모든 과제를 텍스트-투-텍스트로 통일했다면, 인컨텍스트 학습은 과제를 알려 주는 방법까지 텍스트로 통일한 것입니다.

인컨텍스트 학습 능력은 모델이 작을 때는 거의 나타나지 않다가, 일정 규모를 넘으면 두드러지게 나타났습니다. GPT-3 논문에서도 퓨샷 성능과 제로샷 성능의 차이는 모델이 클수록 크게 벌어졌습니다. 이처럼 작은 모델에는 없다가 큰 모델에서 나타나는 능력을 창발적 능력(Emergent Ability)이라 부르기도 합니다. 다만 이러한 급격한 변화가 정답 여부만 보는 평가 방식 때문에 그렇게 보일 뿐, 실제 능력은 연속적으로 늘어난다는 반론도 제기되었습니다.



사고의 사슬(Chain-of-Thought)

대규모 언어 모델은 여러 단계의 추론이 필요한 문제, 특히 산술 문장제에서 약한 모습을 보였습니다. “사과가 23개 있었는데 20개를 요리에 쓰고 6개를 더 샀다면 몇 개인가?”라는 질문에 곧바로 답을 쓰게 하면, 모델은 한 번의 다음 토큰 예측으로 계산 전체를 끝내야 합니다.

2022년 구글의 웨이(Jason Wei) 연구진은 퓨샷 예시에 답만 적지 않고 풀이 과정을 함께 적어 주는 방법을 제안했습니다. 예시가 “23개에서 20개를 쓰면 3개가 남는다. 6개를 더 사면 3 + 6 = 9개다. 답은 9”처럼 생겼다면, 모델도 새 질문에 대해 중간 단계를 먼저 쓰고 답을 냅니다. 이를 사고의 사슬(Chain-of-Thought) 프롬프팅이라 하며, 대규모 모델의 산술 및 상식 추론 성능을 크게 높였습니다. 예시 없이 질문 뒤에 “단계별로 생각해 봅시다”라는 한 문장만 붙여도 비슷한 효과가 나타난다는 연구도 이어졌습니다.

사고의 사슬이 효과적인 이유는 언어 모델의 생성 방식에서 찾을 수 있습니다. 모델은 토큰 하나를 생성할 때마다 정해진 양의 계산만 수행합니다. 중간 단계를 글로 써 내려가면, 앞서 쓴 결과가 다음 토큰의 입력이 되어 계산을 여러 토큰에 나누어 수행하게 됩니다. 사람이 암산 대신 종이에 풀이를 적는 것과 같습니다. 최근의 대규모 언어 모델은 이 원리를 발전시켜, 답하기 전에 긴 추론 과정을 스스로 생성하도록 학습되기도 합니다.



명령어 미세 조정(Instruction Tuning)

다음 토큰 예측만으로 학습한 언어 모델은 사용자의 지시를 따르도록 학습된 것이 아닙니다. “프랑스의 수도를 알려줘”라는 입력에, 인터넷 문서에서 흔히 볼 수 있는 패턴대로 “독일의 수도를 알려줘. 이탈리아의 수도를 알려줘.”처럼 비슷한 질문을 줄줄이 이어 쓸 수도 있습니다. 모델에게는 그것도 그럴듯한 다음 문장이기 때문입니다.

명령어 미세 조정(Instruction Tuning)은 지시문과 그에 맞는 응답으로 이루어진 데이터로 사전 학습 모델을 미세 조정해, 지시를 이해하고 따르는 능력을 기르는 방법입니다. 2021년 구글의 FLAN은 60여 개의 자연어 처리 데이터셋을 다양한 지시문 형식으로 바꾸어 학습했고, 그 결과 학습 때 보지 못한 종류의 과제에서도 제로샷 성능이 크게 향상되었습니다. 지시를 따르는 일 자체를 배우면, 새로운 지시에도 일반화된다는 것입니다.

명령어 미세 조정은 사전 학습에 비하면 아주 적은 데이터로 이루어집니다. 모델의 지식은 대부분 사전 학습에서 얻고, 미세 조정은 그 지식을 어떤 형식으로 꺼내 쓸지를 가르치는 단계라 할 수 있습니다. 사람이 직접 작성한 고품질의 지시-응답 예시로 학습하는 이 단계를 지도 미세 조정(Supervised Fine-Tuning, SFT)이라고도 부릅니다.



인간 피드백 기반 강화 학습(RLHF)

지시를 따르는 것만으로는 충분하지 않습니다. 좋은 응답은 정확해야 하고, 도움이 되어야 하며, 해롭지 않아야 합니다. 그런데 “좋은 응답”을 하나의 정답 문장으로 정의하기는 어렵습니다. 같은 질문에도 좋은 답은 여러 가지이고, 무엇이 더 나은지는 사람이 비교해 보아야 알 수 있습니다.

2022년 OpenAI의 InstructGPT는 사람의 선호를 학습 신호로 사용하는 인간 피드백 기반 강화 학습(Reinforcement Learning from Human Feedback, RLHF)을 대규모 언어 모델에 적용했습니다. 과정은 세 단계로 이루어집니다.

  1. 지도 미세 조정 : 사람이 작성한 모범 응답으로 사전 학습 모델을 미세 조정합니다.
  2. 보상 모델 학습 : 하나의 질문에 대해 모델이 생성한 여러 응답을 사람이 순위를 매깁니다. 이 순위 데이터로, 응답을 입력받아 사람이 얼마나 선호할지를 점수로 출력하는 보상 모델(Reward Model)을 학습합니다.
  3. 강화 학습 : 언어 모델이 응답을 생성하면 보상 모델이 점수를 매기고, 점수가 높아지는 방향으로 언어 모델을 학습합니다. 강화 학습의 관점에서 언어 모델은 에이전트, 토큰 생성은 행동, 보상 모델의 점수는 보상입니다.


세 번째 단계에서는 주로 PPO(Proximal Policy Optimization) 알고리즘을 사용합니다. 이때 보상만 쫓다 보면 모델이 보상 모델의 허점을 파고들어, 점수는 높지만 실제로는 이상한 응답을 만들 수 있습니다. 이를 막기 위해 학습 중인 모델의 출력 분포가 지도 미세 조정 모델에서 너무 멀어지지 않도록 두 분포의 차이(KL 발산)를 벌점으로 함께 줍니다.

결과는 인상적이었습니다. 사람 평가자들은 13억 개 매개변수의 InstructGPT가 생성한 응답을, 100배 이상 큰 1,750억 개 매개변수의 GPT-3 응답보다 더 선호했습니다. 모델의 크기보다 사람의 의도에 맞추는 정렬(Alignment)이 사용자 경험에 더 큰 영향을 줄 수 있다는 것을 보여 준 결과로, 이후 대화형 인공지능의 표준 학습 과정이 되었습니다.

  • Tip : 보상 모델과 강화 학습 단계는 구현이 복잡하고 학습이 불안정합니다. 2023년 제안된 DPO(Direct Preference Optimization)는 보상 모델을 따로 만들지 않고, 사람이 선호한 응답의 확률은 높이고 선호하지 않은 응답의 확률은 낮추도록 선호 데이터로 언어 모델을 직접 학습해 과정을 크게 단순화했습니다.



텍스트 생성 전략

어텐션에서 다룬 탐욕적 디코딩과 빔 서치는 가장 확률이 높은 문장을 찾는 방법이었습니다. 번역처럼 정답이 비교적 명확한 과제에는 적합하지만, 대화나 글쓰기에서는 같은 표현을 반복하거나 밋밋하고 뻔한 문장을 만드는 경향이 있습니다. 그래서 대규모 언어 모델은 주로 확률 분포에서 토큰을 무작위로 뽑는 샘플링(Sampling) 방식으로 문장을 생성합니다.

샘플링의 다양성은 온도(Temperature) \(T\)로 조절합니다. 소프트맥스를 적용하기 전에 점수를 온도로 나누는 것입니다.

\[P(w_{i}) = \frac{\exp(z_{i} / T)}{\sum_{j} \exp(z_{j} / T)}\]


어텐션 계산 예제와 같은 점수 \(z = [2.0, \ 1.0, \ 0.1]\)로 온도에 따른 변화를 계산해 보겠습니다.

  • \(T = 1.0\) : 점수를 그대로 사용하므로 \([0.659, \ 0.242, \ 0.099]\)입니다.
  • \(T = 0.5\) : 점수가 \([4.0, \ 2.0, \ 0.2]\)로 커집니다. \(e^{4.0} \approx 54.598\), \(e^{2.0} \approx 7.389\), \(e^{0.2} \approx 1.221\)이므로 확률은 \([0.864, \ 0.117, \ 0.019]\)로 첫 번째 토큰에 집중됩니다.
  • \(T = 2.0\) : 점수가 \([1.0, \ 0.5, \ 0.05]\)로 작아집니다. \(e^{1.0} \approx 2.718\), \(e^{0.5} \approx 1.649\), \(e^{0.05} \approx 1.051\)이므로 확률은 \([0.502, \ 0.304, \ 0.194]\)로 고르게 퍼집니다.


온도가 0에 가까워지면 가장 높은 점수의 토큰만 확률 1을 받아 탐욕적 디코딩과 같아지고, 온도가 커질수록 모든 토큰의 확률이 같아져 무작위 선택에 가까워집니다. 사실 확인이나 코드 작성처럼 정확성이 중요한 작업에는 낮은 온도를, 아이디어 발상이나 창작처럼 다양성이 중요한 작업에는 높은 온도를 사용합니다.

온도만으로는 확률이 아주 낮은 엉뚱한 토큰이 가끔 뽑히는 것을 막을 수 없습니다. 어휘가 수만 개라면 하나하나는 확률이 낮아도 합치면 무시할 수 없기 때문입니다. 그래서 후보를 미리 줄인 뒤 샘플링합니다.

  • Top-k 샘플링 : 확률이 높은 순서로 \(k\)개의 토큰만 남기고 나머지는 버린 뒤, 남은 토큰의 확률을 다시 합이 1이 되도록 맞추어 샘플링합니다.
  • Top-p 샘플링 : 확률이 높은 순서로 토큰을 더해 가다가, 누적 확률이 \(p\)를 넘는 지점까지만 남깁니다. 뉴클리어스 샘플링(Nucleus Sampling)이라고도 합니다.


확률이 \([0.5, \ 0.2, \ 0.15, \ 0.1, \ 0.05]\)인 다섯 개의 토큰에 \(p = 0.9\)를 적용하면, 누적 확률이 0.5, 0.7, 0.85, 0.95로 늘어나 네 번째 토큰에서 0.9를 넘습니다. 따라서 앞의 네 토큰만 남기고, 이들의 합 0.95로 나누어 \([0.526, \ 0.211, \ 0.158, \ 0.105]\)에서 샘플링합니다. Top-p는 모델이 확신할 때는 후보를 적게, 확신하지 못할 때는 후보를 많이 남기므로, 후보 수가 고정된 Top-k보다 상황에 맞게 동작합니다.

  • Tip : 생성할 때마다 앞의 모든 토큰에 대한 키와 값을 다시 계산하는 것은 낭비입니다. 이전 토큰의 키와 값은 바뀌지 않으므로 메모리에 저장해 두고 새 토큰의 것만 계산해 덧붙이는데, 이를 KV 캐시(KV Cache)라 합니다. 생성 속도를 크게 높이는 대신, 문맥이 길어질수록 많은 메모리를 차지합니다.



대규모 언어 모델의 한계

대규모 언어 모델은 놀라운 능력을 보이지만, 그 원리가 다음 토큰 예측이라는 점에서 오는 분명한 한계가 있습니다.

가장 대표적인 것은 환각(Hallucination)입니다. 언어 모델은 사실인지를 확인하는 것이 아니라 그럴듯한 다음 토큰을 생성하도록 학습되었습니다. 그래서 존재하지 않는 논문 제목, 틀린 날짜, 실제와 다른 인용문을 매우 자연스럽고 자신 있는 문체로 만들어 낼 수 있습니다. 학습 데이터에 드물게 나온 정보일수록 환각이 일어나기 쉽습니다.

모델의 지식은 학습 데이터를 수집한 시점에 멈춰 있습니다. 그 이후에 일어난 사건은 알지 못하며, 알지 못한다는 사실을 스스로 인지하지 못한 채 과거의 정보로 답할 수 있습니다. 또한 학습 데이터에 담긴 사회적 편향이 그대로 모델에 스며들 수 있고, 한 번에 처리할 수 있는 입력 길이인 컨텍스트 길이(Context Length)에도 제한이 있습니다.

이러한 한계를 보완하는 대표적인 방법은 검색 증강 생성(Retrieval-Augmented Generation, RAG)입니다. 질문이 들어오면 먼저 문서 저장소에서 관련 문서를 검색하고, 검색된 문서를 프롬프트에 함께 넣어 모델이 그 문서를 근거로 답하게 합니다. 모델의 가중치를 다시 학습하지 않고도 최신 정보나 사내 문서 같은 외부 지식을 사용할 수 있고, 답의 출처를 함께 제시할 수 있어 환각을 줄이는 데 도움이 됩니다. 문서 검색에는 단어 임베딩에서 다룬 것처럼 질문과 문서를 벡터로 바꾸어 유사도를 비교하는 방법이 주로 사용됩니다.

  • Tip : 대규모 언어 모델의 출력은 확률적으로 생성된 텍스트이므로, 사실관계, 수치, 인용, 코드는 반드시 원본이나 실행 결과로 검증해야 합니다. 특히 모델이 단호한 문체로 답했다고 해서 그 답이 더 정확하다는 뜻은 아닙니다.



대규모 언어 모델 정리

단계 데이터 목표 얻는 능력
사전 학습 레이블 없는 방대한 텍스트 다음 토큰 예측 언어 지식, 세상에 대한 지식, 인컨텍스트 학습
지도 미세 조정 지시문과 모범 응답 모범 응답의 토큰 예측 지시를 이해하고 따르는 형식
선호 학습(RLHF, DPO) 응답 사이의 사람 선호 선호되는 응답의 확률을 높임 도움이 되고 해롭지 않은 응답
생성 프롬프트 온도와 샘플링으로 토큰 선택 정확성과 다양성 사이의 조절

대규모 언어 모델은 새로운 원리에서 나온 것이 아닙니다. 텍스트를 토큰으로 나누고, 토큰을 벡터로 바꾸고, 트랜스포머로 문맥을 계산해 다음 토큰을 예측한다는 이 강좌의 모든 내용이 그대로 들어 있습니다. 달라진 것은 규모였고, 규모가 커지자 같은 원리에서 이전에는 보이지 않던 능력이 나타났습니다.

자연어 처리란?에서 대규모 언어 모델이 모든 과제를 “텍스트를 입력받아 텍스트를 출력하는 하나의 문제”로 통일했다고 설명했습니다. 이제 그 문장의 의미를 처음부터 끝까지 따라왔습니다. 규칙을 손으로 적던 시대에서 통계로, 신경망으로, 그리고 하나의 거대한 언어 모델로 이어진 흐름은 지금도 빠르게 이어지고 있습니다.



  • Writer by : 윤대희

댓글 남기기