GPT 발전사: GPT-1부터 GPT-4까지, 대규모 언어모델은 어떻게 진화했나

GPT 발전사: GPT-1부터 GPT-4까지, 대규모 언어모델은 어떻게 진화했나

한 문장으로 정리한 GPT의 계보

GPT(Generative Pre-trained Transformer)는 트랜스포머(Transformer) 구조를 기반으로, 방대한 텍스트를 미리 학습(사전학습)한 뒤 다양한 과제에 적응시키는 생성형 대규모 언어모델(Large Language Model, LLM)이다. GPT 발전사란 이 모델이 GPT-1, GPT-2, GPT-3, InstructGPT, GPT-4로 세대를 거듭하며 규모와 능력을 키워온 과정을 뜻한다.

각 세대는 단순히 크기만 키운 것이 아니다. 매 단계마다 '어떻게 학습시킬 것인가'라는 방법론이 함께 바뀌었다. 처음에는 사전학습 후 과제별로 미세조정(fine-tuning)하는 방식이었지만, 뒤로 갈수록 예시 몇 개만 보여주는 few-shot 학습, 나아가 사람의 선호를 반영하는 강화학습으로 무게중심이 옮겨갔다.

이 글에서는 GPT 계열이 어떤 문제의식에서 출발했고, 세대별로 무엇이 달라졌으며, 그 변화가 실무에 어떤 의미를 갖는지 차례로 살펴본다. 각 모델의 이름과 특징을 외우기보다, '왜 그렇게 진화할 수밖에 없었는가'라는 흐름을 이해하는 편이 훨씬 유용하다.

레이블 없는 텍스트의 바다에서 출발하다 — GPT-1

2018년 등장한 GPT-1은 '생성형 사전학습(generative pre-training)'이라는 아이디어를 정면으로 내세웠다. 당시 자연어처리는 과제마다 라벨이 붙은 데이터를 따로 모아 모델을 새로 훈련하는 방식이 주류였다. 감정 분석에는 감정 라벨 데이터가, 문장 함의 판단에는 또 다른 라벨 데이터가 필요했다. 문제는 라벨을 다는 일이 비싸고 느리다는 데 있었다.

GPT-1의 착안점은 명확했다. 라벨이 없는 일반 텍스트는 인터넷에 넘쳐난다. 그러니 먼저 '다음 단어 맞히기'라는 단순한 목표로 방대한 텍스트를 학습해 언어의 일반적인 구조를 익히게 하자는 것이다. 이렇게 언어 감각을 쌓은 모델을, 각 과제에는 비교적 적은 라벨 데이터로 살짝 미세조정만 해주면 된다. 이 두 단계 구성이 바로 '사전학습 후 미세조정' 패러다임이다.

구조적으로 GPT-1은 트랜스포머의 디코더 부분만 쌓아 올린 형태다. 문장을 왼쪽에서 오른쪽으로 읽으며 다음에 올 단어를 예측하는 단방향 언어모델이다. 여기서 핵심 부품이 자기어텐션(self-attention)이다. 문장 속 각 단어가 다른 단어들을 얼마나 참고할지 가중치를 계산해, 문맥을 반영한 표현을 만든다.

GPT-1의 성과는 규모가 크지 않았어도 방향을 증명했다는 데 있다. 하나의 사전학습 모델이 여러 과제에서 두루 쓸 만한 성능을 냈다. 과제마다 밑바닥부터 설계하던 관행을 흔든 것이다. 이후 GPT 계열은 모두 이 사전학습 철학 위에서 자라난다.

규모를 키우자 나타난 뜻밖의 재능 — GPT-2

2019년의 GPT-2는 GPT-1과 뼈대는 같지만 크기를 크게 늘렸다. 파라미터 수를 키우고, 훨씬 방대하고 다양한 웹 텍스트로 학습했다. 논문 제목이 '언어모델은 비지도 다중과제 학습기(Language Models are Unsupervised Multitask Learners)'인 데서 핵심 주장이 드러난다.

GPT-2가 던진 메시지는 도발적이었다. 과제별 미세조정 없이도, 충분히 큰 언어모델은 여러 과제를 스스로 수행한다는 것이다. 번역이나 요약 같은 작업을 명시적으로 가르치지 않았는데도, 학습 데이터 안에 그런 패턴이 자연스레 섞여 있었기에 모델이 이를 흡수했다. 요약을 원하면 글 끝에 'TL;DR:' 같은 단서만 붙여도 모델이 요약을 시도했다.

이는 오늘날 우리가 당연하게 여기는 '프롬프트로 지시하기'의 원형이다. 별도 학습 없이, 입력 텍스트의 형태만 바꿔 원하는 출력을 유도하는 방식이다. GPT-2는 이 가능성을 처음으로 뚜렷이 보여줬다. 규모를 키우자 명시적으로 가르치지 않은 능력이 저절로 나타나는 현상, 이른바 창발(emergence)의 초기 신호였다.

동시에 GPT-2는 위험성 논의도 불러왔다. 그럴듯한 가짜 글을 대량으로 생성할 수 있다는 우려 때문에, OpenAI는 처음에 큰 모델의 공개를 미뤘다. 생성 능력이 강해질수록 오남용 위험도 커진다는, 이후 계속 반복될 긴장이 이때부터 시작됐다.

예시 몇 개만 보여주면 된다 — GPT-3와 문맥 내 학습

2020년의 GPT-3는 규모의 도약을 상징한다. 논문 제목 '언어모델은 소수샷 학습기(Language Models are Few-Shot Learners)'가 핵심을 압축한다. 여기서 결정적으로 부각된 개념이 문맥 내 학습(in-context learning)이다.

문맥 내 학습이란, 모델의 가중치를 전혀 바꾸지 않고 프롬프트 안에 예시를 몇 개 넣어 과제를 가르치는 방식이다. 예시를 하나도 안 주면 제로샷(zero-shot), 한 개면 원샷(one-shot), 여러 개면 퓨샷(few-shot)이라 부른다. 예를 들어 '사과→apple, 바나나→banana, 포도→'라고 입력하면, 모델은 패턴을 파악해 'grape'를 이어 붙인다. 번역 규칙을 학습시킨 적이 없는데도 그렇다.

이 능력이 실무의 판을 바꿨다. 과제마다 별도로 모델을 재학습하지 않아도, 프롬프트만 잘 설계하면 하나의 모델로 번역·요약·분류·코드 생성을 두루 처리할 수 있게 됐다. '프롬프트 엔지니어링'이라는 분야가 본격화된 배경이다.

GPT-3의 도약은 '스케일링 법칙(Scaling Laws)' 연구와 맞물린다. 모델 파라미터, 데이터, 연산량을 함께 키우면 손실(loss)이 예측 가능한 곡선을 따라 꾸준히 줄어든다는 경험적 관찰이다. 즉 규모를 키우면 성능이 오른다는 사실이 우연이 아니라 어느 정도 예측 가능하다는 것이다. 이 법칙이 이후 대규모 투자를 정당화하는 이론적 근거가 됐다.

다음 단어를 고른다는 것의 실제

GPT 계열이 세대를 거듭해도 근본 원리는 한결같다. 앞에 주어진 토큰(token)들을 보고 '다음에 올 토큰의 확률 분포'를 계산하는 것이다. 토큰은 단어보다 작은 단위일 때가 많다. 예컨대 '토큰화'라는 말도 여러 조각으로 쪼개져 처리된다. 이렇게 쪼갠 토큰을 숫자 벡터로 바꾼 것이 임베딩(embedding)이며, 어텐션 층을 거치며 문맥이 반영된다.

모델의 마지막 출력은 어휘 전체에 대한 확률값이다. '오늘 날씨가'라는 입력 뒤에 '좋다', '흐리다', '춥다' 같은 후보가 저마다 확률을 갖는다. 여기서 어떤 토큰을 실제로 뽑을지 결정하는 과정이 디코딩(decoding)이며, 이때 조절하는 값들이 실무에서 자주 만지는 파라미터다.

온도(temperature)는 확률 분포를 얼마나 날카롭게 혹은 평평하게 만들지 정한다. 값이 낮으면 가장 확률 높은 토큰에 쏠려 안정적이고 반복적인 출력이 나온다. 값이 높으면 분포가 평평해져 다양하고 창의적이지만 엉뚱한 출력도 늘어난다. top-k는 확률 상위 k개 후보만 남겨 그중에서 고르고, top-p(누적확률 샘플링)는 누적 확률이 p에 도달할 때까지의 후보만 남긴다.

아래 표는 대표적인 디코딩 파라미터를 정리한 것이다. 실무에서는 사실 정확성이 중요한 작업일수록 온도를 낮추고, 브레인스토밍처럼 다양성이 필요한 작업일수록 온도와 top-p를 높이는 식으로 조합한다.

디코딩 파라미터 한눈에 비교

파라미터 하는 일 값이 낮을 때 값이 높을 때
temperature(온도) 확률 분포의 날카로움 조절 안정적·반복적 다양·창의적, 오류 증가
top-k 상위 k개 후보만 후보로 선택지 좁음, 일관적 선택지 넓음, 다양
top-p 누적확률 p까지만 후보로 보수적 선택 폭넓은 선택
max tokens 생성 길이 상한 짧게 끊김 길게 이어짐

이 값들은 서로 영향을 준다. 온도를 이미 낮췄다면 top-p를 조금 열어도 큰 무리가 없고, 반대로 온도를 높인 상태에서 top-p까지 열면 출력이 지나치게 산만해진다. 정답이 하나인 작업(코드 생성, 사실 질의)에는 온도를 0에 가깝게 두는 편이 안전하다.

중요한 점은, 이 파라미터들이 모델의 '지식' 자체를 바꾸지는 않는다는 것이다. 이미 계산된 확률 분포에서 무엇을 어떻게 뽑을지를 조율할 뿐이다. 모델이 애초에 모르는 사실을 온도로 끌어낼 수는 없다.

사람의 뜻을 따르게 만들다 — InstructGPT와 RLHF

GPT-3는 강력했지만 문제가 있었다. 다음 단어를 잘 맞히도록 학습했을 뿐, '사람이 원하는 방식으로 답하도록' 학습한 적은 없다. 그래서 질문의 의도를 벗어나거나, 장황하거나, 유해한 내용을 내놓기도 했다. 학습 목표(다음 토큰 예측)와 실제 우리가 바라는 것(도움되고 안전한 응답) 사이에 간극이 있었던 셈이다.

이 간극을 메운 방법이 인간 피드백 기반 강화학습(RLHF, Reinforcement Learning from Human Feedback)이며, InstructGPT가 이를 체계적으로 적용한 대표 사례다. 과정은 크게 세 단계다. 먼저 사람이 직접 시범 답변을 작성해 모델을 지도학습으로 다듬는다. 다음으로 같은 질문에 대한 여러 응답을 사람이 좋은 순서대로 매기고, 이 선호 데이터로 '보상 모델'을 학습한다. 마지막으로 이 보상 모델을 기준 삼아, 언어모델이 더 높은 점수를 받는 방향으로 강화학습을 진행한다.

결과는 인상적이었다. 파라미터가 훨씬 큰 GPT-3보다도, 사람 피드백으로 정렬한 InstructGPT의 응답이 더 유용하고 지시를 잘 따른다는 평가를 받았다. 규모만이 능사가 아니며, '정렬(alignment)'이라는 별도의 축이 존재함을 보여준 것이다. 오늘날 우리가 쓰는 대화형 AI가 질문에 공손하고 조리 있게 답하는 배경에는 이 정렬 과정이 있다.

다만 RLHF에도 그늘이 있다. 사람의 선호를 학습하다 보니, 실제로 옳은 답보다 '옳아 보이는 답', 사용자가 듣기 좋아하는 답에 치우칠 수 있다. 정렬은 만능이 아니라 계속 다듬어야 할 과제다.

멀티모달과 신뢰성으로 — GPT-4

2023년의 GPT-4는 여러 방향에서 도약했다. 기술 보고서에 따르면 텍스트뿐 아니라 이미지도 입력으로 받는 멀티모달(multimodal) 능력을 갖췄고, 각종 전문 시험과 벤치마크에서 이전 세대를 뚜렷이 앞섰다. 복잡한 추론, 긴 맥락 처리, 지시 준수에서 개선이 두드러졌다.

GPT-4의 특징 하나는 개발 과정에서 안전성과 정렬에 큰 비중을 뒀다는 점이다. 유해한 요청을 거절하고, 사실과 다른 주장을 줄이려는 노력이 강화됐다. 물론 완벽하지는 않다. 보고서 자체도 환각(hallucination)과 편향, 신뢰성의 한계가 여전히 남아 있음을 분명히 밝힌다.

또 하나 눈에 띄는 대목은 성능 예측이다. GPT-4 개발진은 작은 규모의 실험 결과로부터 최종 모델의 성능 일부를 미리 예측할 수 있었다고 보고했다. 스케일링 법칙의 정신이 실제 대규모 개발에 녹아든 사례다. 무작정 키우는 것이 아니라, 어느 정도 결과를 가늠하며 자원을 투입하는 방향으로 성숙한 것이다.

GPT-1의 단방향 언어모델에서 출발해, 규모 확장과 문맥 내 학습을 거치고, 인간 피드백 정렬과 멀티모달로 이어진 흐름은 아래 그림처럼 세대별 변화로 정리해볼 수 있다.

세대별 흐름과 자주 하는 오해

세대별 주요 언어모델 — GPT 계열의 발전 흐름

가장 흔한 오해는 GPT가 '사실을 저장한 데이터베이스'라는 생각이다. GPT는 데이터를 검색해 꺼내는 장치가 아니라, 확률적으로 그럴듯한 다음 토큰을 이어 붙이는 생성기다. 그래서 존재하지 않는 논문이나 인용을 자신 있게 지어내는 환각이 생긴다. 모델은 '진실인지'가 아니라 '자연스러운지'를 기준으로 문장을 만들기 때문이다.

언어모델이 환각을 일으키는 원인

또 하나의 오해는 '크면 무조건 똑똑하다'는 단순 도식이다. 규모가 성능의 큰 동력인 것은 맞지만, InstructGPT가 보여줬듯 정렬이라는 별개의 축이 실제 유용성을 크게 좌우한다. 작지만 잘 정렬된 모델이, 크지만 정렬되지 않은 모델보다 실무에서 더 쓸 만할 수 있다.

프롬프트로 학습한다는 표현도 조심해야 한다. 문맥 내 학습은 모델의 가중치를 바꾸지 않는다. 대화 안에서만 임시로 패턴을 흉내 낼 뿐, 대화가 끝나면 그 '학습'은 사라진다. 지속적인 지식 갱신이 필요하면 미세조정이나 외부 검색 연동이 따로 있어야 한다.

다음 걸음 — 함께 익히면 좋은 개념들

GPT 발전사를 제대로 이해하려면 트랜스포머와 자기어텐션의 작동을 먼저 파는 편이 좋다. 어텐션이 문맥을 어떻게 반영하는지 감을 잡으면, 모델이 왜 긴 맥락을 다룰 수 있는지, 왜 문맥 창(context window)에 한계가 있는지가 자연스럽게 이해된다. 토큰화와 임베딩 개념도 함께 짚어두면 입력 처리 과정이 선명해진다.

실무를 겨냥한다면 프롬프트 엔지니어링 기법을 정리해두면 좋다. 예시를 주지 않는 제로샷, 몇 개 주는 퓨샷, 추론 과정을 단계적으로 유도하는 생각의 사슬(Chain-of-Thought), 도구 사용과 추론을 결합하는 ReAct 등이 대표적이다. 여기에 디코딩 파라미터를 상황별로 조율하는 감각을 더하면 출력 품질을 크게 끌어올릴 수 있다.

환각을 줄이려는 실무 기법으로는 검색 증강 생성(RAG, Retrieval-Augmented Generation)이 핵심이다. 외부 문서를 검색해 근거로 함께 넣어주면, 모델이 지어내는 대신 주어진 자료에 기반해 답하도록 유도할 수 있다. 특정 도메인에 깊이 맞춰야 한다면 미세조정과 RAG의 장단점을 비교해 선택하면 된다.

마지막으로 정렬과 안전성 논의를 놓치지 말아야 한다. RLHF의 원리와 그 한계, 편향과 유해성 완화 방법은 GPT 이후 모든 대규모 언어모델에 공통으로 걸리는 주제다. 원문 논문들, 특히 GPT 시리즈 원 논문과 InstructGPT, GPT-4 기술 보고서, 그리고 스케일링 법칙 논문을 차례로 읽으면 이 발전사의 결을 스스로 확인할 수 있다.

덩치를 키우면 왜 똑똑해지는가 — 스케일링 법칙의 발견

GPT 계보를 관통하는 단 하나의 설계 철학을 꼽으라면 '규모를 키운다'로 요약된다. 다만 이 선택은 막연한 직감이 아니라 정량적 근거 위에 서 있다. 오픈AI 연구진은 모델의 성능, 정확히는 검증 손실(validation loss)이 세 가지 자원 즉 파라미터 수, 학습 데이터 양, 계산량(FLOPs)에 대해 매끄러운 거듭제곱 관계를 그린다는 사실을 관찰했다. 이를 스케일링 법칙(scaling law)이라 부른다. 손실을 로그-로그 좌표에 찍으면 거의 직선으로 떨어진다. 자원을 열 배 부으면 손실이 예측 가능한 폭만큼 줄어든다는 뜻이다.

이 법칙이 실무에서 지니는 함의는 생각보다 크다. 모델을 다 학습시키기 전에, 작은 모델 몇 개의 학습 곡선만으로 훨씬 큰 모델의 최종 성능을 외삽해 예측할 수 있다. GPT-4 기술 보고서에서도 최종 모델의 1,000분의 1 수준 계산량으로 훈련한 소형 모델들의 결과를 근거로 본 모델의 손실을 미리 맞혔다고 밝혔다. 수백억 원이 드는 대규모 사전학습을 '도박'이 아니라 '공학'으로 바꾼 대목이다.

스케일링을 둘러싼 인식은 한 번 크게 뒤집혔다. 초기에는 파라미터를 최대한 키우는 쪽이 정답처럼 여겨졌다. 그런데 딥마인드의 친칠라(Chinchilla) 연구가 판을 바꿨다. 고정된 계산 예산 아래에서는 모델 크기와 데이터 양을 균형 있게 늘려야 하며, 파라미터 하나당 대략 20토큰 정도를 먹여야 최적이라는 결과다. 당시 대형 모델 상당수가 '덩치는 크지만 데이터가 굶주린' 상태였음이 드러났다. 이후 업계는 무작정 파라미터를 늘리기보다 질 좋은 데이터를 더 많이 확보하는 쪽으로 방향을 틀었다.

다만 스케일링 법칙에도 그림자가 있다. 거듭제곱 곡선은 완만하게 꺾이며, 어느 지점을 넘어서면 자원을 아무리 부어도 손실 감소폭이 미미해진다. 게다가 검증 손실이 낮아진다고 해서 사람이 원하는 유용함이 그만큼 오르는 것도 아니다. 손실은 '다음 토큰을 얼마나 잘 맞히는가'를 잴 뿐, '유용하고 안전한 답을 내는가'와는 다른 축이다. 그래서 규모 경쟁은 정렬(alignment)과 데이터 품질이라는 별도의 과제와 늘 짝을 이루어 진행됐다.

능력이 갑자기 튀어나오는 순간 — 창발성 논쟁

GPT 발전사에서 가장 흥미로운 현상은 창발적 능력(emergent abilities)이다. 특정 작업, 이를테면 여러 자리 덧셈이나 논리 추론을 시켜 보면, 작은 모델에서는 성능이 사실상 무작위 수준에 머물다가 어떤 규모를 넘어서는 순간 급격히 치솟는다. 마치 물이 99도까지는 그대로이다가 100도에서 끓어오르는 상전이처럼 보인다. GPT-2에서는 흉내조차 못 내던 과제를 GPT-3가 예시 몇 개만으로 풀어낸 사례들이 이 논의에 불을 붙였다.

이 현상을 어떻게 해석하느냐를 두고 진영이 갈린다. 한쪽은 진짜 질적 도약이 일어났다고 본다. 규모가 임계점을 넘으면서 모델 내부에 새로운 표현이나 알고리즘이 형성됐다는 관점이다. 반대편은 창발이 상당 부분 '착시'라고 반박한다. 정답이냐 오답이냐로만 채점하는 불연속 지표를 쓰면 계단처럼 보이지만, 부분 점수를 주는 연속 지표로 다시 재면 성능이 사실은 매끄럽게 올라가고 있었다는 것이다. 어느 쪽이든, 겉으로 드러나는 능력의 도약이 실무자에게 강렬한 인상을 남긴 것만은 분명하다.

실무 관점에서 창발성이 주는 교훈은 명확하다. 작은 모델에서 어떤 기능이 안 된다고 해서 그 기능이 '원리적으로 불가능하다'고 단정하면 안 된다. 반대로 큰 모델에서 된다고 해서 작은 모델로 값싸게 대체하려다 낭패를 볼 수도 있다. 특히 사고 사슬(chain-of-thought) 추론은 충분히 큰 모델에서만 이득이 나타나는 대표적 사례다. 작은 모델에 단계적 추론을 시키면 오히려 성능이 떨어지기도 한다.

창발성은 곧 예측 불가능성이기도 하다. 스케일링 법칙이 '평균 손실'은 잘 예측해도, '특정 과제가 언제 갑자기 될지'는 미리 못 맞힌다. 그래서 새 모델이 나올 때마다 광범위한 벤치마크로 능력의 지형을 다시 그려야 한다. 이 불확실성은 안전성 논의와도 직결된다. 원치 않는 능력, 이를테면 사람을 속이거나 위험한 정보를 조합하는 능력 역시 예고 없이 창발할 수 있기 때문이다.

숫자를 어떻게 문장으로 되돌리나 — 토큰화의 실무 함정

GPT 계열은 글자 단위도 단어 단위도 아닌, 그 중간인 서브워드(subword) 단위로 텍스트를 자른다. GPT-2 이후로는 바이트 페어 인코딩(Byte Pair Encoding, BPE)을 바이트 수준에서 변형한 방식을 쓴다. 원리는 단순하다. 자주 붙어 나오는 문자쌍을 반복해서 하나의 토큰으로 병합해 사전을 키운다. 흔한 단어는 통째로 한 토큰이 되고, 드문 단어는 여러 조각으로 쪼개진다. GPT-3와 GPT-4 계열의 사전 크기는 대략 5만에서 10만 개 수준이다.

이 방식은 실무에서 두고두고 발목을 잡는 미묘한 문제를 만든다. 대표적인 것이 산술이다. 숫자 '12345'가 하나의 토큰이 될지 '123'과 '45'로 쪼개질지가 학습 데이터의 빈도에 좌우된다. 자릿수 경계와 토큰 경계가 어긋나면 모델은 덧셈에서 어이없는 실수를 저지른다. 문자를 세는 과제, 이를테면 'strawberry에 r이 몇 개인가' 같은 질문에 모델이 틀리는 근본 원인도 여기 있다. 모델은 글자를 직접 보지 못하고 토큰이라는 덩어리만 보기 때문이다.

다국어 환경에서는 토큰화의 불균형이 비용으로 직결된다. 영어는 단어당 토큰 수가 적지만, 한국어나 일본어처럼 학습 데이터에 상대적으로 덜 노출된 언어는 같은 의미를 담는 데 훨씬 많은 토큰이 든다. 한글 한 글자가 여러 바이트로 쪼개지는 경우도 흔하다. 결국 같은 내용을 처리해도 한국어 프롬프트가 영어보다 토큰을 더 잡아먹고, 청구 비용과 문맥 창(context window) 소모가 늘어난다. 프롬프트를 설계할 때 이 점을 염두에 두면 불필요한 지출을 줄일 수 있다.

토큰화가 정확히 어떻게 이뤄지는지 확인하고 싶다면 tiktoken 같은 라이브러리로 직접 확인하는 습관을 들이는 편이 좋다. 예를 들어 GPT-4용 인코딩으로 짧은 문장을 잘라 보면 공백이 앞 토큰에 붙는지 뒤에 붙는지, 특정 고유명사가 몇 조각으로 나�‌는지가 한눈에 보인다. 프롬프트 길이 예산을 잡거나, 왜 특정 출력이 이상하게 잘렸는지 원인을 추적할 때 이 감각이 큰 도움이 된다.

긴 글을 어떻게 기억하나 — 문맥 창과 어텐션의 비용

트랜스포머의 자기어텐션(self-attention)은 입력의 모든 토큰이 서로를 참조하게 만든다. 덕분에 문장 앞뒤의 먼 관계까지 포착하지만, 대가가 있다. 토큰 수가 n이면 어텐션의 계산량과 메모리가 대략 n²에 비례한다. 문맥을 두 배로 늘리면 비용은 네 배로 뛴다. GPT-1의 문맥이 512토큰, GPT-3가 2048토큰이던 시절에는 큰 문제가 아니었지만, 수만에서 수십만 토큰을 다루는 지금은 이 제곱 비용이 핵심 병목이다.

그래서 최신 모델은 문맥 창을 늘리기 위해 여러 공학적 기법을 겹겹이 쓴다. 위치 정보를 다루는 방식만 해도 초기의 절대 위치 임베딩에서, 상대 위치를 회전으로 표현하는 로터리 위치 임베딩(RoPE), 학습 없이 편향을 더하는 ALiBi 같은 방식으로 진화했다. 이런 기법 덕에 짧게 학습한 모델을 학습 때보다 훨씬 긴 입력으로 확장(context extension)하는 일이 가능해졌다. 메모리 접근을 최적화한 플래시어텐션(FlashAttention)도 긴 문맥을 실용화하는 데 결정적 역할을 했다.

문맥 창이 넓어졌다고 해서 그 안을 모델이 고르게 활용하는 것은 아니다. 실무에서 자주 부딪히는 함정이 '중간을 잊는(lost in the middle)' 현상이다. 긴 문맥의 맨 앞과 맨 뒤에 놓인 정보는 잘 참조하지만, 한가운데 파묻힌 핵심 문장은 놓치는 경향이 관찰된다. 그래서 검색 증강 생성(RAG) 파이프라인을 짤 때, 검색해 온 근거 문서를 프롬프트의 어디에 배치하느냐가 답변 품질을 좌우한다. 가장 중요한 근거는 앞이나 뒤 끝으로 몰아 두는 편이 안전하다.

긴 문맥과 RAG는 흔히 경쟁 관계로 오해받지만 실제로는 상호 보완적이다. 문맥 창이 아무리 넓어도 회사 내부 문서 전체를 매번 통째로 밀어 넣으면 비용과 지연이 감당이 안 된다. 검색으로 관련 조각만 추려 넣고, 넓어진 문맥은 그 조각들을 넉넉히 담고 대화 이력을 유지하는 데 쓰는 조합이 현실적이다. 문맥 길이를 무한정 늘리는 방향과, 필요한 정보만 골라 넣는 방향이 함께 발전해 온 이유다.

GPT는 왜 없는 사실을 지어내는가 — 환각의 구조적 원인

환각(hallucination)은 GPT 계열의 가장 끈질긴 약점이다. 그럴듯하지만 사실이 아닌 내용을, 그것도 자신만만한 어조로 만들어 낸다. 이 현상을 '버그'로만 보면 본질을 놓친다. 근본 원인은 학습 목표 자체에 있다. 모델은 '진실을 말하도록'이 아니라 '다음 토큰의 확률 분포를 잘 맞히도록' 훈련됐다. 학습 데이터에서 자주 등장한 문장 형태를 이어 붙이는 데 최적화된 것이지, 자기 출력이 세계의 사실과 맞는지 검증하는 장치는 애초에 없다.

확률적 생성 과정도 환각을 부추긴다. 앞서 다룬 온도(temperature)나 top-p 같은 디코딩 파라미터로 다양성을 높이면, 모델은 확률이 낮은 토큰도 선택하게 된다. 창의적 글쓰기에는 좋지만 사실 확인이 중요한 작업에서는 위험을 키운다. 게다가 자기회귀(autoregressive) 방식은 한 번 잘못된 토큰을 뱉으면 그 오류를 전제로 뒤 문장을 계속 이어 가기 때문에, 작은 착오가 눈덩이처럼 불어나기 쉽다. 존재하지 않는 논문의 저자와 연도를 술술 만들어 내는 것이 대표적이다.

정렬 과정이 환각을 되레 부채질하는 역설도 있다. 사람 피드백 기반 강화학습(RLHF) 단계에서 평가자들은 '모르겠다'는 답보다 그럴듯하고 완결된 답에 높은 점수를 주기 쉽다. 그러면 모델은 '확신에 찬 어조로 말하는 습관'을 보상으로 학습한다. 아는 것과 모르는 것의 경계를 스스로 표현하도록 훈련하는 일, 이른바 보정(calibration)이 별도의 연구 주제가 된 배경이다. 실제로 사전학습만 마친 모델이 정렬 이후 모델보다 자기 확신도를 더 정직하게 표현한다는 관찰도 있다.

실무에서 환각을 완전히 없앨 수는 없지만 억제할 수단은 여럿 있다. 검색 증강 생성으로 답변의 근거를 외부 문서에 묶어 두고 출처를 함께 제시하게 하면, 모델이 기억에만 의존해 지어낼 여지가 줄어든다. 온도를 낮춰 결정적으로 생성하고, '근거가 없으면 모른다고 답하라'는 지시를 명시하며, 중요한 출력은 별도 검증 단계나 다른 모델로 교차 확인하는 방식도 널리 쓰인다. 환각을 이해하는 첫걸음은 그것이 우연한 결함이 아니라 '다음 단어 예측'이라는 설계에서 자연스럽게 흘러나오는 성질임을 받아들이는 데 있다.

출처

  1. Improving Language Understanding by Generative Pre-Training (GPT-1)
  2. Language Models are Unsupervised Multitask Learners (GPT-2)
  3. Language Models are Few-Shot Learners (GPT-3)
  4. Training language models to follow instructions with human feedback (InstructGPT)
  5. GPT-4 Technical Report
  6. Scaling Laws for Neural Language Models
뉴스레터로 매주 받아보기 ← 기술블로그 목록