AI · AI 기초
대규모 언어 모델(LLM)은 어떻게 작동하나요?
핵심 답변
대규모 언어 모델은 앞에 나온 모든 토큰(작은 텍스트 조각)을 보고 다음 토큰을 예측하도록 학습한 신경망입니다. 답을 만들 때는 프롬프트를 토큰으로 나누고, 가능한 모든 다음 토큰에 점수를 매겨 하나를 고르고, 그것을 텍스트에 붙이는 과정을 멈출 때까지 반복합니다. 지시문과 사람의 피드백으로 추가 학습을 하면 이 예측기가 쓸모 있는 어시스턴트가 됩니다.
한 줄 요약: 아주 똑똑한 다음 단어 맞히기
LLM은 한 가지 일을 계속 반복합니다. 지금까지의 텍스트를 보고, 다음에 올 수 있는 조각마다 얼마나 그럴듯한지 추정합니다. 그중 하나를 골라 붙이고 다시 같은 일을 합니다. 300단어짜리 답변은 이런 작은 단계가 수백 번 이어진 결과입니다.
에세이, 코드, 번역을 만들어 내기에는 너무 단순하게 들리지만, 힘은 규모에서 나옵니다. 모델에는 학습 중에 조정되는 숫자인 매개변수(파라미터)가 수십억 개 있고, 아주 방대한 텍스트로 학습했습니다. 그 많은 텍스트에서 다음 단어를 잘 맞히려면 문법, 사실, 추론 방식, 코드의 구조까지 익힐 수밖에 없습니다.
ChatGPT, Claude, Gemini, DeepSeek, Qwen 같은 대화형 어시스턴트는 LLM을 중심에 두고 만든 제품입니다. 제품은 채팅 화면, 숨겨진 시스템 프롬프트, 안전 규칙, 그리고 웹 검색 같은 도구를 더합니다. 핵심은 여전히 다음 토큰 예측입니다.
내 메시지에 일어나는 일, 단계별로
프롬프트 The capital of France is를 예로 들어 보겠습니다. 모델은 이렇게 처리합니다.
- 토큰화(Tokenize): 텍스트를 토큰으로 나눕니다. 흔히 쓰는 토크나이저에서는 이 프롬프트가 The, capital, of, France, is 다섯 토큰이 됩니다(대부분 앞에 공백이 붙습니다).
- 임베딩(Embed): 각 토큰을 긴 숫자 목록인 임베딩으로 바꿉니다. 의미가 가까운 토큰끼리 가까이 놓이는 공간에 배치됩니다.
- 어텐션(Attend): 임베딩이 수십 개의 트랜스포머 층을 지납니다. 층마다 어텐션 단계에서 모든 토큰이 앞선 토큰을 보고 관련 있는 정보를 가져옵니다.
- 점수 계산(Score): 마지막 층이 어휘 전체(보통 10만 개 이상)의 토큰마다 점수를 냅니다. 이 점수가 확률로 바뀝니다.
- 샘플링(Sample): 그 확률과 샘플링 설정에 따라 토큰 하나를 고릅니다.
- 반복(Repeat): 고른 토큰을 텍스트에 붙이고 다음 토큰을 위해 전체 과정을 다시 실행합니다. 모델이 종료 토큰을 내거나 길이 제한에 닿을 때까지 계속됩니다.
다음 토큰의 확률은 대략 이런 모습일 수 있습니다. 숫자는 설명을 위한 예시이며 실제 모델의 값이 아닙니다.
| 다음 토큰 후보 | 예시 확률 | 설명 |
|---|---|---|
| Paris | 0.92 | 기대하는 정답 |
| a | 0.03 | "a city of ..."로 이어질 수 있음 |
| the | 0.02 | "the city of ..."로 이어질 수 있음 |
| located | 0.01 | 문법은 맞지만 드문 표현 |
| Lyon | 0.001 | 틀렸지만 뽑힐 가능성은 있음 |
이 표에서 두 가지를 알 수 있습니다. 첫째, 모델은 데이터베이스에서 항목을 찾아보는 것이 아니라 가장 그럴듯한 다음 내용을 만들고 있습니다. 둘째, 틀린 토큰에도 항상 어느 정도 확률이 있어서, 모델이 가끔 거짓을 말하는 이유 중 하나가 됩니다.
어텐션: 모델이 의미를 따라가는 방법
어텐션은 2017년에 발표된 트랜스포머 구조의 핵심 아이디어입니다. 각 토큰의 의미를 만들 때 앞선 모든 토큰에 얼마나 비중을 둘지 계산합니다.
The trophy did not fit in the suitcase because it was too big.라는 문장을 보세요. it이 무엇을 가리키는지 알려면 모델은 이를 suitcase가 아니라 trophy와 연결해야 합니다. big을 small로 바꾸면 it은 suitcase를 뜻하게 됩니다. 어텐션은 주변 단어를 바탕으로 이런 연결을 해내고, 여러 층이 거치며 그림을 점점 다듬습니다.
어텐션은 각 토큰을 앞선 토큰과 모두 비교하므로, 텍스트가 길어질수록 계산 비용이 빠르게 늘어납니다. 모든 모델에 컨텍스트 윈도우(context window), 즉 한 번에 고려할 수 있는 최대 토큰 수가 있는 이유입니다.
LLM은 어떻게 학습하나: 세 단계
다음 토큰 예측기만으로는 아직 쓸모 있는 어시스턴트가 아닙니다. 질문을 던지면 인터넷 글에도 흔한 일이라서 또 다른 질문으로 이어 갈 수도 있습니다. 요즘 어시스턴트는 여러 단계의 학습을 거칩니다.
| 단계 | 학습 데이터 | 모델이 배우는 것 | 결과 |
|---|---|---|---|
| 사전 학습(Pretraining) | 공개된 방대한 텍스트와 코드 | 언어, 사실, 패턴, 추론 방식 | 어떤 텍스트든 이어 쓰는 기반 모델 |
| 지시 튜닝(Instruction tuning) | 사람이 쓴 질문과 좋은 답변 예시 | 지시를 따르는 형식 | 딴소리 대신 답을 하는 모델 |
| 선호 튜닝(예: RLHF) | 사람이나 모델이 여러 답변에 순위를 매긴 데이터 | 사람이 선호하는 답: 도움이 되고, 정직하고, 안전한 답 | 일관된 말투와 거절 기준을 갖춘 어시스턴트 |
InstructGPT 연구는 이렇게 학습한 작은 모델이, 사전 학습만 한 훨씬 큰 모델보다 사용자에게 더 선호된다는 것을 보여 줬습니다. 이 글을 쓰는 시점에는 많은 모델이 답하기 전에 문제를 단계별로 풀도록 추가 학습을 받기도 하며, 제품에서는 보통 생각 모드나 추론 모드로 보입니다.
학습은 출시 전에 막대한 비용을 들여 한 번 진행합니다. 모델과 대화할 때 매개변수는 바뀌지 않습니다. 대화 내용을 그 자리에서 배우지는 않지만, 정책이 허용한다면 서비스 제공자가 나중 버전을 학습시키는 데 대화를 쓸 수는 있습니다.
답을 바꾸는 샘플링 설정
모델이 확률에서 샘플링하기 때문에 같은 프롬프트에도 답이 달라질 수 있습니다. API를 쓴다면 이 과정을 조절할 수 있습니다. 정확한 범위와 기본값은 서비스 제공자마다 다릅니다.
| 설정 | 하는 일 | 바꿀 때 |
|---|---|---|
temperature | 낮으면 1순위가 더 자주 뽑히고, 높으면 확률이 평평해져 다양성이 늘어남 | 정보 추출과 코드는 낮게, 아이디어 발상은 높게 |
top_p | 확률 합이 p가 되는 가장 작은 토큰 집합에서만 샘플링 | 보통 이것과 temperature 중 하나만 조절 |
max_tokens | 출력 길이의 상한 | 답이 문장 중간에 끊기면 올리기 |
| 중단 시퀀스(Stop sequences) | 나타나면 생성을 끝내는 텍스트 | 구조화된 출력, 템플릿 |
| 시스템 프롬프트 | 대화 앞에 놓이는 숨겨진 지시 | 역할, 말투, 형식, 규칙을 한 번에 지정 |
온도를 낮추면 답이 더 일관돼지지만 더 정확해지는 것은 아닙니다. 가장 그럴듯한 내용이 틀렸다면, 온도를 낮출수록 매번 똑같이 틀립니다.
LLM이 하지 않는 것
작동 방식을 떠올리면 의외의 실패도 이해가 갑니다.
- 글자를 보지 못합니다. 모델은 토큰을 보기 때문에 strawberry는 st, raw, berry 같은 세 조각으로 들어올 수 있습니다. 글자 수를 세거나 단어를 거꾸로 쓰기 어려운 이유입니다.
- 이전 대화를 스스로 기억하지 못합니다. 앱의 메모리 기능은 메모를 저장해 두었다가 프롬프트에 끼워 넣는 방식입니다.
- 최신 사건을 모릅니다. 앱이 검색 결과나 문서를 컨텍스트에 넣어 줄 때만 압니다.
- 사실을 확인하지 않습니다. 다음 토큰 예측에는 출력을 현실과 대조하는 단계가 없어서, 유창한 글도 거짓일 수 있습니다.
- 도구를 호출하지 않으면 코드를 실행하거나 정확한 산수를 하지 못합니다. 텍스트만으로 하는 긴 곱셈은 틀리기 쉽습니다.
좋은 제품은 계산기, 코드 실행기, 웹 검색, 내 문서에서의 검색(retrieval) 같은 도구로 이런 틈을 메웁니다. 이 한계를 알면 언제 도구를 요청하고 언제 직접 확인해야 하는지 알 수 있습니다.
LLM 작동 방식에서 나오는 실전 팁
- 자료를 프롬프트에 넣으세요. 문서에 대해 물으려면 관련 부분을 붙여 넣습니다. 모델은 학습에서 얻은 흐릿한 기억보다 눈앞의 텍스트를 훨씬 잘 다룹니다.
- 출력을 구체적으로 지정하세요. 형식, 길이, 독자, 언어를 말해 주세요. 빈틈은 모델이 가장 흔한 선택으로 채웁니다.
- 어려운 문제는 단계별로 풀게 하세요. 중간 과정을 쓰면 답을 정하기 전에 모델이 쓸 수 있는 토큰이 늘어납니다.
- 새 작업은 새 채팅에서 시작하세요. 관련 없는 예전 메시지도 컨텍스트에 남아 답을 엉뚱한 쪽으로 끌 수 있습니다.
- 이름, 숫자, 인용문, 링크는 직접 확인하세요. 가장 지어내기 쉬운 세부 정보입니다.
자주 묻는 질문
대규모 언어 모델은 자기가 하는 말을 이해하나요?
의미를 풍부하게 담은 내부 표현을 만들어, 많은 경우 답하고 번역하고 추론할 수 있습니다. 하지만 경험이나 목표가 있는 것은 아니고, 사람에게는 당연한 간단한 일에서도 실패하기 때문에 이를 이해라고 부를 수 있는지는 아직 논쟁 중입니다.
AI는 같은 질문에 왜 답이 다르게 나오나요?
모델이 확률 분포에서 다음 토큰을 샘플링하기 때문에, 답변 초반의 작은 무작위 선택이 뒤쪽 표현을 다르게 만듭니다. 온도를 낮추면 답이 더 반복 가능해집니다.
GPT는 무슨 뜻인가요?
Generative Pre-trained Transformer의 약자입니다. 방대한 텍스트로 사전 학습하고 텍스트를 생성하는 트랜스포머 모델이라는 뜻입니다.
LLM은 인터넷에 연결되어 있나요?
모델 자체는 연결되어 있지 않습니다. 기준 시점까지의 학습 데이터만 알고 있습니다. 일부 앱은 웹 검색 도구를 붙여 결과를 컨텍스트에 넣는데, 그래서 최신 사건을 언급할 수 있습니다.
LLM의 매개변수란 무엇인가요?
학습이 조정하는 신경망 안의 숫자 하나하나입니다. 모델에는 수십억 개가 있고, 이 숫자들이 모여 모델이 배운 내용을 담습니다. 매개변수가 많을수록 더 많은 패턴을 담을 수 있지만 실행 비용도 커집니다.