LLM은 어떻게 만들어지나요 — 학습부터 RAG까지

LLM이 글자를 받아 답을 만들기까지의 전 과정

엑스디노드 기술팀

읽는 시간 약

14분

ChatGPT에 질문을 입력하면 답이 돌아옵니다. 우리는 결과를 받지만, 화면 안쪽에서 무슨 일이 벌어지고 있는지는 잘 모르죠. 어떻게 컴퓨터가 한국어를 알아듣는지, 어떻게 문장을 만들어내는지, 어떻게 "한국의 수도는 서울"이라는 사실을 알고 있는지 머릿속에 그림이 그려지지 않아요.

이 글은 컴퓨터를 잘 모르는 분도 따라올 수 있도록, ChatGPT 같은 LLM이 작동하는 원리를 처음부터 풀어드리려고 해요. 영어 약자가 나오면 무엇의 약자인지부터 풀고, 새로운 용어가 등장하면 이름의 뜻부터 짚고 넘어갑니다. LLM은 어떻게 우리 질문에 답하고, 어떻게 만들어진 걸까? 라는 질문을 따라가요.

읽고 나면 ChatGPT가 한 글자씩 답을 흘려보내는 이유부터, 같은 질문에도 매번 답이 조금씩 다른 이유, 그리고 회사 자료를 AI가 어떻게 활용할 수 있는지까지 자연스럽게 알게 될 거예요.



LLM이라는 단어부터 풀어볼게요

먼저 LLM이 뭔지부터 짚고 갑니다.

LLM은 무슨 뜻인가요?

LLMLarge Language Model의 약자예요. Large는 "거대한", Language는 "언어", Model은 "모델"이에요. 그대로 "거대 언어 모델"입니다.

단어 뜻 그대로 거대한 규모를 가진 언어 처리 모델을 뜻해요. 텍스트(글)를 받아서 텍스트를 만들어내는 AI 모델인데, 그 안에 들어있는 가중치(학습되는 숫자)의 양이 어마어마하게 커서 "거대"라는 이름이 붙었어요. GPT-3는 그 안에 1,750억 개의 가중치 숫자가 들어 있어요.

우리가 아는 LLM들

ChatGPT, Claude, Gemini, Llama 같은 이름들이 모두 LLM이에요. 회사가 다르고 학습 데이터도 다르지만, 큰 틀에서 작동 방식은 비슷해요. 이 글이 보여드리는 원리가 그대로 적용됩니다.

LLM도 결국 신경망입니다

LLM은 AI라는 큰 우산 아래 머신러닝, 그 안의 딥러닝, 그 안의 한 종류예요. 딥러닝이란 신경망이라는 구조를 깊게 쌓아 올려서 학습하는 방식을 가리킵니다. 신경망은 사람 뇌의 뉴런에서 영감을 받아 만든 컴퓨터 안의 구조로, 작은 계산 단위들이 층으로 쌓여 있어요.

LLM도 이 신경망이에요. 다만 텍스트를 다루기에 특화된 거대한 신경망입니다. 그래서 우리가 알아야 할 첫 번째 질문이 자연스럽게 따라와요. 신경망은 숫자만 다룰 수 있는데, 우리가 입력하는 건 한국어 문장이거든요. 글자와 숫자 사이에 무슨 변환이 일어나는 걸까요?



컴퓨터는 한국어 문장을 어떻게 알아들까요?

컴퓨터는 글자나 단어 자체를 직접 다룰 수 없어요. 모든 계산은 숫자로 이뤄집니다. 그래서 LLM이 우리 문장을 받아들이려면, 글자를 숫자로 바꾸는 과정이 가장 먼저 일어나요. 이 변환은 세 단계로 진행됩니다.

1단계. 토큰화 — 문장을 작은 조각으로 쪼개기

첫 단계는 토큰화(Tokenization)예요. Token은 영어로 "조각, 작은 단위"라는 뜻입니다. 토큰화는 그대로 "토큰으로 만드는 일", 즉 문장을 작은 조각으로 쪼개는 작업이에요.

어떻게 쪼개는지는 모델마다 달라요. 단어 하나가 한 토큰일 수도 있고, 단어의 일부가 한 토큰일 수도 있어요. ChatGPT 같은 GPT 계열 모델은 자주 같이 등장하는 글자 묶음을 하나의 토큰으로 처리하는 방식을 써요. 영어에서는 평균적으로 한 토큰이 약 4글자 정도에 해당합니다.

한국어는 영어보다 토큰당 글자 수가 적은 편이에요. "안녕하세요" 같은 단어도 여러 토큰으로 쪼개지는 경우가 많아요. 그래서 같은 분량의 글이라도 한국어가 영어보다 토큰 수가 더 많이 나와요. ChatGPT 같은 서비스가 토큰 수로 사용료를 매기는 경우가 많은데, 그래서 한국어 사용자가 영어 사용자보다 비용 면에서 약간 불리합니다.

토큰화가 끝나면 각 토큰에 고유한 번호가 부여돼요. 예를 들어 "안녕"이 12345번, "하세요"가 67890번 같은 식입니다. 이 시점부터 문장은 숫자의 연속이 됩니다.

2단계. 임베딩 — 토큰에 의미를 입히기

토큰에 번호를 매겼다고 해서 의미가 들어있는 건 아니에요. 12345번과 12346번이 가까운 번호라고 해서 의미가 비슷한 단어인 건 아니거든요. 그냥 순서대로 번호를 매긴 것뿐입니다.

그래서 각 토큰을 임베딩(Embedding)이라는 형태로 다시 변환해요. Embedding은 "끼워 넣음, 박아 넣음"이라는 뜻이에요. 단어의 의미를 숫자들 안에 끼워 넣는다는 의미에서 이름이 붙었어요.

임베딩은 한 토큰을 수천 개의 숫자로 이루어진 줄로 표현한 거예요. 예를 들어 GPT-3에서는 한 토큰이 12,288개의 숫자로 표현됩니다. "안녕"이라는 토큰은 길이 12,288인 숫자 줄로 변환돼요.

놀라운 건 이 숫자들이 학습 과정에서 자동으로 의미를 담게 된다는 점이에요. 학습이 잘 끝난 임베딩에서는 의미가 비슷한 단어들의 숫자 줄이 비슷하게 나옵니다. "강아지"와 "고양이"의 임베딩은 비슷하고, "강아지"와 "자동차"의 임베딩은 멀리 떨어져 있어요. 심지어 "왕 - 남자 + 여자 = 여왕" 같은 수학 연산도 의미 차원에서 성립합니다.

3단계. 위치 인코딩 — 단어 순서를 알려주기

한 가지 문제가 더 있어요. 잠시 후 살펴볼 트랜스포머라는 신경망 구조는 문장의 모든 토큰을 한꺼번에 처리해요. 그래서 순서 정보가 자동으로 전달되지 않아요. "나는 너를 좋아해"와 "너는 나를 좋아해"가 같은 토큰들로 구성되어 있으면 구분이 안 됩니다.

그래서 각 토큰의 임베딩에 위치 인코딩(Positional Encoding)을 더해요. 토큰이 문장의 몇 번째 위치에 있는지를 또 다른 숫자 줄로 만들고, 이 숫자 줄을 임베딩에 합쳐줍니다. 그러면 같은 단어라도 문장의 어느 위치에 있느냐에 따라 다른 숫자로 표현돼요.

정리하면 이렇습니다. 우리가 입력한 한국어 문장이 토큰화로 조각나고, 각 조각에 번호가 매겨지고, 임베딩으로 의미를 담은 숫자 줄로 바뀌고, 위치 인코딩으로 순서 정보가 합쳐져요. 그러면 문장은 의미와 순서가 담긴 숫자 줄들의 연속으로 변환됩니다. 이제 신경망이 다룰 수 있는 형태예요.



트랜스포머 — 모든 LLM의 핵심 구조

이 숫자 줄들을 받아 처리할 신경망 구조 중 가장 강력한 게 트랜스포머(Transformer)예요. 2017년 Google이 발표한 "Attention is All You Need"라는 논문에서 처음 제안됐어요. Transformer는 영어로 "변환기"라는 뜻이에요. 입력을 출력으로 변환하는 신경망 구조라는 의미에서 이름이 붙었어요.

영화의 변신 로봇과는 관계없습니다. 이 논문 한 편이 그 이후 AI 산업 전체의 방향을 바꿨어요. ChatGPT, Claude, Gemini, Llama가 모두 트랜스포머를 기반으로 합니다.

트랜스포머 이전에는 어떻게 했나요?

트랜스포머가 등장하기 전, 언어 처리에 쓰이던 주류 신경망은 RNN이라는 구조였어요. RNN은 문장을 앞에서부터 한 단어씩 순서대로 처리하는 방식이에요. 첫 단어를 처리해서 중간 결과를 만들고, 그 결과를 가지고 두 번째 단어를 처리하고, 다시 그 결과로 세 번째 단어를 처리하는 식입니다.

이 방식에는 두 가지 결정적 한계가 있었어요. 첫째, 앞 단어 처리가 끝나야 다음 단어를 처리할 수 있어서 학습이 느렸어요. 둘째, 문장이 길어지면 앞부분의 정보가 점점 흐려져서 긴 문장의 맥락을 잡지 못했어요.

트랜스포머의 혁신 — 문장 전체를 한꺼번에

트랜스포머의 가장 큰 혁신은 문장 전체의 모든 토큰을 한꺼번에 처리한다는 점이에요. 길이가 1,000개 토큰인 문장도 한 번의 계산으로 동시에 처리할 수 있게 됐어요. 학습 속도가 RNN과 비교할 수 없을 만큼 빨라졌고, 긴 문장도 다룰 수 있게 됐습니다.

"그러면 단어 사이 관계는 어떻게 잡아내지?"라는 의문이 자연스럽게 들 거예요. 순서대로 처리하지 않으면서도 단어 사이 관계를 학습하는 방법이 있어야 합니다. 그 방법이 바로 어텐션이에요.

셀프 어텐션 — 단어들의 관계 잡아내기

트랜스포머의 핵심 메커니즘은 셀프 어텐션(Self-Attention)이에요. Attention은 영어로 "주의, 집중"이라는 뜻이고, Self는 "자기 자신"이라는 뜻이에요. "한 문장 안의 토큰들이 자기들끼리 서로에게 주의를 기울인다"는 의미예요.

예를 들어 "어제 회사에서 받은 보고서를 다시 읽어봤어"라는 문장에서, "읽어봤어"라는 동사는 "보고서"와 강하게 연결되어 있어요. 무엇을 읽었는지의 대상이 보고서이기 때문이에요. 반면 "회사"나 "어제"와는 비교적 약하게 연결됩니다. 셀프 어텐션은 이 연결의 강도를 수치로 계산해내요.

IBM의 설명에 따르면, 이 어텐션 메커니즘 덕분에 트랜스포머는 문장 안에서 각 단어가 어떤 다른 단어들에 주목해야 하는지를 자동으로 학습합니다. "주의를 기울인다"는 일상 표현이 그대로 신경망의 동작 원리가 된 셈이에요.

멀티헤드 어텐션 — 여러 관점으로 동시에

셀프 어텐션을 한 번만 수행하면 한 가지 관점의 관계만 잡혀요. 그래서 트랜스포머는 어텐션을 여러 번 병렬로 동시에 수행합니다. 이걸 멀티헤드 어텐션(Multi-head Attention)이라고 불러요. Multi는 "여럿", Head는 "갈래"라는 뜻이에요.

원래 논문에서는 8개의 갈래를 동시에 운영했어요. 한 갈래는 문법적 관계를 잡고, 다른 갈래는 의미적 유사성을 잡고, 또 다른 갈래는 대명사가 가리키는 대상을 찾는 식으로 자연스럽게 역할이 분화됩니다. 여러 관점에서 동시에 본 결과가 합쳐지면서 모델의 이해력이 훨씬 풍부해집니다.



LLM은 어떻게 문장을 만들어낼까요?

LLM이 문장을 생성하는 원리는 의외로 단순해요. 매 순간 "다음에 올 토큰의 확률"을 계산하고, 거기서 한 토큰을 뽑는 일의 반복이에요. 그 이상도 그 이하도 아닙니다.

자기회귀 생성 — 한 토큰씩 만들어내기

ChatGPT에 질문을 입력하면, 모델은 그 질문 전체를 받아서 "이 다음에 올 토큰은 무엇이 가장 자연스러울까?"를 계산해요. 모델이 알고 있는 약 10만 개 토큰 각각에 대해 확률값이 계산됩니다. 그중에서 하나의 토큰을 선택하고, 그 토큰을 입력 끝에 이어 붙입니다. 그러면 시퀀스가 한 토큰 길어졌으니, 다시 그 시퀀스를 보고 다음 토큰을 예측해요. 이 과정을 종료 토큰이 나오거나 최대 길이에 도달할 때까지 반복합니다.

이 반복 생성 방식을 자기회귀(Autoregressive)라고 불러요. Auto는 "스스로", Regressive는 "되돌아가는, 자기를 참조하는"이라는 뜻입니다. 자기가 방금 만든 결과를 다시 입력으로 받아 다음을 만든다는 의미예요.

ChatGPT가 답변을 줄 때 한 글자씩 토큰을 흘려보내듯 화면에 띄우는 이유가 여기 있어요. 모델이 한 토큰씩 차근차근 만들어내고 있기 때문입니다. 미리 답을 다 만들어두고 천천히 보여주는 게 아니에요.

temperature — 답변의 다양성을 조절하는 손잡이

확률 분포에서 다음 토큰을 어떻게 고르느냐에 따라 답변의 성격이 달라져요. 가장 확률이 높은 토큰만 매번 고르면 답변이 일관되지만 단조로워지고, 확률에 비례해 무작위로 고르면 다양성은 늘지만 가끔 엉뚱한 답이 나옵니다.

이 균형을 조절하는 값이 temperature예요. 영어로 "온도"라는 뜻인데, AI 분야에서 이 단어가 통상적으로 쓰입니다. temperature가 낮으면 모델이 보수적이고 결정적인 답변을 내놓고, 높으면 창의적이고 예측하기 어려운 답변을 내놓아요. 같은 질문에도 매번 답이 조금씩 다른 이유가 이 temperature 때문이에요.

Prefill과 Decode — 추론의 두 단계

LLM이 답변을 만드는 과정 전체를 추론(Inference)이라고 불러요. 학습이 끝난 모델로 새 질문에 답변을 만들어내는 단계를 가리킵니다.

NVIDIA의 기술 문서에 따르면 LLM 추론은 두 단계로 나뉘어요. 먼저 Prefill 단계는 사용자가 입력한 질문 전체를 한 번에 처리하는 단계예요. 입력 토큰들의 정보를 동시에 계산할 수 있어서 빠르게 끝납니다. 우리가 긴 질문을 입력해도 첫 글자가 나오기까지는 그렇게 오래 걸리지 않는 이유가 여기 있어요.

그다음 Decode 단계는 새 토큰을 하나씩 생성하는 단계예요. 한 토큰을 만들려면 이전에 만들어진 모든 토큰의 정보가 필요해서, 토큰들을 동시에 만들 수 없어요. 한 번에 한 토큰씩 직렬로 만들어야 합니다. 그래서 Decode 단계는 상대적으로 느리고, LLM 운영 비용의 대부분이 여기서 발생해요.



LLM은 한 번에 만들어지지 않아요

ChatGPT 같은 LLM은 세 단계의 학습 과정을 거쳐 우리가 쓰는 형태가 됩니다. 각 단계는 목적도, 비용도, 데이터도 달라요.

1단계. 사전 학습 — 세상의 지식을 쏟아붓기

첫 단계가 사전 학습(Pre-training)이에요. Pre는 "미리, 사전에"라는 뜻이고, Training은 "학습"입니다. 본격적인 용도별 조정 전에 먼저 진행하는 기초 학습이라는 의미예요. 세 단계 중 가장 비용이 크고 시간이 오래 걸리는 단계입니다.

인터넷에서 모은 수조 개 토큰 분량의 텍스트를 모델에 쏟아부어요. 위키피디아, 책, 뉴스 기사, 코드, 논문, 웹 페이지 같은 데이터입니다. 이 데이터로 모델은 "다음에 올 토큰 예측" 작업을 끝없이 반복해요. 어떤 문장이 주어졌을 때 그다음에 어떤 토큰이 와야 자연스러운지를 학습합니다.

이 과정에서 모델은 언어의 문법, 어휘, 세상에 대한 일반 지식, 추론 패턴을 모두 흡수합니다. "한국의 수도는"이라는 문장 뒤에 "서울"이 자연스럽게 이어진다는 사실도 이때 배워요. 명시적으로 가르치는 게 아니라, 수조 개의 문장 패턴 속에서 자연스럽게 형성되는 지식이에요.

사전 학습에는 대규모 컴퓨팅 자원이 수주에서 수개월 동안 가동되고, 전체 비용은 수천만 달러에서 수억 달러에 이릅니다. GPT-4의 학습 비용은 1억 달러 이상으로 추정돼요.

흥미로운 사실이 있어요. 사전 학습만 끝낸 모델은 ChatGPT처럼 보이지 않습니다. 질문에 답하기보다는 주어진 문장을 그럴듯하게 이어가는 자동 완성기에 가까워요. "한국의 수도는"이라고 입력하면 "서울입니다"라고 친절하게 답하는 게 아니라, "한국의 수도는 서울이고, 인구는 약..."처럼 문장을 계속 이어쓰려고 합니다. 대화하는 능력은 다음 단계에서 만들어져요.

2단계. 지도 파인튜닝(SFT) — 대화하는 법 가르치기

두 번째 단계가 지도 파인튜닝(Supervised Fine-Tuning)이에요. 줄여서 SFT라고 부릅니다. Supervised는 "지도된, 정답이 주어진"이라는 뜻이에요. Fine은 "섬세한", Tuning은 "조정"입니다. 합치면 "정답이 주어진 데이터로 모델을 섬세하게 조정하는 작업"이에요.

방식은 단순해요. 사람이 직접 작성한 고품질의 질문-답변 쌍을 수만에서 수십만 개 모아서, 이걸로 모델을 추가 학습시킵니다. "이런 질문이 오면 이런 식으로 답하세요"의 시범 데이터인 셈이에요.

이 단계를 거치면 모델이 "한국의 수도는?"이라는 질문에 자동 완성처럼 문장을 이어가지 않고, "서울입니다"라고 답하는 형식을 익혀요. 답변의 톤, 길이, 구조 같은 것도 이 단계에서 형성됩니다. 사전 학습이 모델의 지식과 언어 능력을 만들었다면, SFT는 모델의 대화 스타일과 답변 형식을 만든다고 볼 수 있어요.

3단계. RLHF — 인간 선호도에 맞춰 다듬기

SFT까지 끝낸 모델은 답변은 하지만, 어떤 답변이 더 좋은 답변인지에 대한 감각은 부족해요. 같은 질문에 여러 답변을 만들 수 있는데, 사용자가 진짜 원하는 답을 골라내는 능력이 약합니다. 이걸 보정하는 마지막 단계가 RLHF예요.

RLHF는 Reinforcement Learning from Human Feedback의 약자입니다. Reinforcement Learning은 "강화 학습"이고, Human Feedback은 "사람의 피드백"이에요. 합치면 "인간의 피드백으로부터의 강화 학습"이 됩니다.

알체라의 설명에 따르면, 먼저 인간 평가자들이 같은 질문에 대한 여러 답변을 보고 순위를 매깁니다. "A 답변이 B보다 낫다", "C가 D보다 정확하다" 같은 비교 데이터를 대량으로 모아요. 이 데이터로 별도의 보상 모델을 학습시키고, 그다음 원래의 LLM이 이 보상 모델의 점수를 최대화하는 방향으로 다시 학습됩니다.

이 과정에서 모델이 더 도움이 되고, 더 안전하고, 더 정직한 답변을 내놓도록 다듬어져요. 우리가 ChatGPT나 Claude를 쓸 때 느끼는 "사람과 대화하는 듯한 자연스러움"은 사전 학습보다 SFT와 RLHF의 결과예요. 같은 베이스 모델로도 이 단계를 다르게 하면 성격이 완전히 다른 어시스턴트가 만들어집니다. ChatGPT와 Claude의 답변 스타일이 다른 이유가 결국 여기 있어요.



RAG — LLM의 한계를 메우는 방법

세 단계 학습을 다 거친 LLM에도 여전히 한계가 있어요. 학습이 끝난 시점 이후의 정보를 모르고, 회사 내부 자료는 더더욱 모릅니다. 게다가 모르는 사실에 대해서도 자신 있게 답변을 만들어내는 문제도 있어요.

환각이라는 문제

LLM이 학습 데이터에 없는 사실에 대해서도 자신 있게 답변을 만들어내는 현상을 환각(Hallucination)이라고 불러요. Hallucination은 영어로 "환각, 헛것"이라는 뜻이에요. "그럴듯한 다음 토큰을 예측한다"는 동작 원리상 어쩔 수 없이 생기는 부작용입니다.

LLM은 "이 답을 모른다"와 "이 답을 안다"를 구분하지 못해요. 가중치 안에 분산되어 저장된 패턴 위에서 가장 그럴듯한 토큰을 뽑아낼 뿐이라, 잘 모르는 영역에서도 그럴듯한 답을 만들어냅니다. 그래서 모델 자체의 개선만으로는 한계가 있고, 외부의 신뢰할 수 있는 자료를 모델에 함께 제공하는 접근이 필요해져요. 그게 RAG예요.

RAG라는 단어

RAGRetrieval-Augmented Generation의 약자입니다. Retrieval은 "검색, 찾기", Augmented는 "증강된, 보강된", Generation은 "생성"이에요. 합치면 "검색으로 증강된 생성"이 됩니다. 한국어로는 보통 "검색 증강 생성"이라고 번역해요.

AWS의 정의에 따르면 RAG는 LLM이 답변을 생성하기 전에 외부의 신뢰할 수 있는 문서를 먼저 검색해서 참조하도록 만드는 방식이에요.

RAG의 작동 방식

RAG의 흐름은 단순해요. 사용자 질문이 들어오면 시스템은 먼저 외부 문서 데이터베이스에서 그 질문과 관련된 문서를 찾아옵니다. 그 문서를 원래의 질문과 함께 LLM의 프롬프트에 포함시키고, LLM은 이 문서를 근거로 답변을 만들어요. 모델이 자기 기억에만 의존하지 않고, 검색된 자료에 기반해서 답하는 방식이에요.

Intel의 설명에 따르면, RAG의 핵심 가치는 모델 자체를 재학습시키지 않고도 새로운 지식을 활용할 수 있다는 점이에요. 환각이 줄어들고, 답변의 출처를 추적할 수 있고, 정보가 바뀌면 데이터베이스만 갱신하면 됩니다.

벡터 데이터베이스 — 의미로 검색하기

RAG의 검색 단계는 일반 키워드 검색과 달라요. 키워드가 정확히 일치하지 않아도 의미가 비슷하면 검색되도록 의미 기반 검색을 합니다.

방법은 앞서 본 임베딩의 원리를 활용해요. 외부 문서를 일정 단위(이걸 청크라고 부릅니다, "덩어리"라는 뜻이에요)로 자른 뒤 각 청크를 임베딩 벡터로 변환해서 벡터 데이터베이스(Vector Database)에 저장해둡니다. 사용자 질문이 들어오면 질문도 같은 방식으로 임베딩으로 변환하고, 그 질문 벡터와 가장 가까운 청크 벡터들을 찾아내요. 단어가 정확히 일치하지 않아도 의미적으로 가까우면 검색됩니다.

기업이 RAG를 채택하는 이유

기업이 자체 AI 챗봇이나 사내 어시스턴트를 만들 때 RAG가 거의 표준이 된 이유는 명확해요. 사내 문서, 제품 매뉴얼, 정책 자료, 고객 이력 같은 정보는 어떤 LLM의 학습 데이터에도 들어가 있지 않거든요. 모델을 처음부터 재학습시키는 건 비용도 시간도 비현실적이고, 파인튜닝조차 작은 회사 입장에서는 부담입니다.

반면 RAG는 회사 문서를 벡터 데이터베이스에 적재만 해두면, 기존 LLM을 그대로 쓰면서도 회사의 모든 자료를 참조하는 어시스턴트를 만들 수 있어요. 비용이 적게 들고, 자료가 추가되면 데이터베이스에 넣기만 하면 즉시 반영되고, 답변의 출처를 명시할 수 있어서 신뢰도도 올라갑니다.

국내에서도 금융권의 사내 문서 검색 챗봇, 제조업의 기술 매뉴얼 어시스턴트, 법률 서비스의 판례 검색, 의료기관의 진료 가이드 도우미 같은 형태로 RAG가 도입되고 있어요. AI 도입을 검토하는 입장에서는 RAG가 가장 현실적인 첫 단계가 되는 경우가 많습니다.



정리하자면

이 글의 핵심을 한 줄기로 다시 따라가 봅니다.

LLM(거대 언어 모델)은 ChatGPT, Claude, Gemini 같은 텍스트 처리 AI를 가리키는 말이에요. 작동 원리는 결국 한 줄로 요약되는데, "다음에 올 토큰의 확률을 계산해서 한 토큰을 뽑는 작업의 반복"이라는 자기회귀 생성 방식이에요.

그 전에 우리가 입력한 문장은 토큰화, 임베딩, 위치 인코딩 세 단계를 거쳐 신경망이 다룰 수 있는 숫자 줄로 변환됩니다. 이 숫자 줄을 처리하는 가장 강력한 신경망 구조가 트랜스포머예요. 셀프 어텐션 메커니즘으로 문장 안 단어들이 서로에게 얼마나 주의를 기울여야 할지를 자동으로 학습하고, 멀티헤드 어텐션으로 여러 관점에서 동시에 본 결과를 합쳐 풍부한 이해력을 갖습니다.

추론은 Prefill(질문 전체를 한 번에 처리)과 Decode(새 토큰을 하나씩 생성) 두 단계로 나뉘어요. ChatGPT가 답변을 한 글자씩 흘려보내는 이유가 이 Decode 단계 때문이에요.

ChatGPT 같은 어시스턴트는 한 번의 학습으로 완성되지 않아요. 사전 학습으로 세상의 지식을 흡수하고, SFT(지도 파인튜닝)로 대화 형식을 익히고, RLHF로 인간 선호도에 정렬됩니다. 이 세 단계가 끝나야 우리가 쓰는 형태가 돼요.

그래도 학습 시점 이후의 정보나 도메인 특화 지식, 환각 문제는 모델 자체로 해결되지 않아요. 이 한계를 메우는 게 RAG입니다. 외부 문서를 벡터 데이터베이스에 적재해두고, 사용자 질문에 맞는 문서를 의미 기반 검색으로 가져와 LLM 프롬프트에 함께 넣어주는 방식이에요. AI 도입을 검토하는 기업에는 가장 현실적인 첫 단계가 되는 경우가 많습니다.

처음에는 막막했던 LLM, 트랜스포머, 어텐션, 사전 학습, RAG 같은 단어들이 이제 자기 자리를 가지게 됐을 거예요. ChatGPT라는 거대해 보이는 시스템도 결국은 가중치라는 숫자들의 절묘한 조합 위에서 한 토큰씩 다음을 예측해 가는 작업이에요.

Newsletter

AI 인프라 인사이트, 메일로 받아보세요

GPU 시세 동향, 신제품 출시, 인프라 구축 기술 가이드를 월 2회 정리해 보내드립니다.

XDNODE를 통해 한정된 예산을
얼마나 잘 활용할 수 있을지 확인해 보세요.

XDNODE를 통해 한정된 예산을
얼마나 잘 활용할 수 있을지 확인해 보세요.

XDNODE를 통해 한정된 예산을
얼마나 잘 활용할 수 있을지 확인해 보세요.