📚 전체 지도 보기
LLM이 뭐냐고 물으면 말이 막히는 분께 — 자동완성이 끝까지 간 이야기
“LLM이 뭐예요?”
누가 이렇게 물어봤을 때,
머릿속에선 답이 맴도는데
입 밖으로는 깔끔하게 안 나오는 느낌,
한 번쯤 겪어보셨을 거예요.
ChatGPT 2년, Claude 1년 넘게 쓰고 있는데도
말로 설명하려면 이상하게 꼬이는 게 바로 이 개념입니다.
이 글 하나 읽고 나면, 친구든 팀원이든 누가 물어봐도 “자동완성이 끝까지 간 거야” 라는 한 문장으로 깔끔하게 시작할 수 있도록, 거기서부터 한 층씩 쌓아 드리려고 합니다.
순서는 이렇습니다.
- 핸드폰 자동완성이랑 뭐가 다른지
- “토큰“이 대체 뭔지
- 왜 가끔 말이 안 되는 답을 하는지
- 모델 안에 실제로 뭐가 들어 있는지
- 학습과 추론의 차이
- LLM이 모르는 것들
- 왜 LLM 혼자로는 agent가 못 되는지
천천히 가볼게요.
1. 시작은 핸드폰 자동완성이랑 비교하는 게 제일 빠르다
|
SHRUNK
📱 핸드폰 자동완성
방금 친 2~3글자만 본다
“요” 1개만 제안하고 끝 |
→ |
FULL
💡 LLM
수만 토큰을 다 본다
“요” → “.” → “저는” → “어제” … 한 문장·한 문단·한 페이지를 이어감 |
핸드폰에서 “안녕하세”까지 쳤을 때 “요”가 툭 튀어나오는 거, 쓰시죠?
그게 바로 LLM이 하는 일의 축소판입니다. 진짜로 축소판이에요. 비유가 아니라 구조가 같습니다.
다만 LLM은 그 자동완성을:
- 훨씬 더 긴 문맥까지 읽고
- 훨씬 더 넓은 지식에서 골라서
- 훨씬 더 세밀한 다음 단어를 예측합니다
핸드폰은 방금 친 두세 글자만 보지만, LLM은 이 대화 전체, 방금 붙인 파일 전체, 시스템 프롬프트 전체를 다 봅니다.
핸드폰은 “요” 하나 제안하고 끝나지만, LLM은 그 “요” 다음 “.” 다음 “저는” 다음 “어제” 다음 “회의에서”… 이런 식으로 이어서 한 문장, 한 문단, 한 페이지를 만들어냅니다.
그러니까 LLM이 하는 일을 한 줄로 쓰면:
“다음에 올 말을 예측하는 것.”
이게 전부입니다. 진짜로요.
이걸 처음 들으면 약간 배신감이 들어요. 저도 그랬거든요. “그게 다야? 그거밖에 안 해?” 싶은 거죠.
근데 이 “그거밖에 안 하는 기계”가 코드를 짜고, 이메일을 쓰고, 논문을 요약하고, 친구처럼 답장합니다.
왜 그게 되냐고요?
그건 “다음 단어를 맞히는 게임”을 극단까지 잘하려면, 세상에 대한 모델을 통째로 머릿속에 들여놓아야 하기 때문입니다.
생각해 보세요.
“고양이는 털이 있는 ___” 다음에 올 단어를 맞히려면 고양이가 뭔지는 알아야 하잖아요.
“파이썬에서 리스트의 마지막 원소를 빼는 방법은 my_list.___” 다음에 올 걸 맞히려면 파이썬 문법을 알아야 하잖아요.
“이 환자의 증상은 발열, 기침, 숨 가쁨이고, 가능성 있는 진단은 ___” 다음을 맞히려면 의학을 어느 정도 알아야 하잖아요.
그래서 “다음 단어 예측”을 엄청난 양의 텍스트에 대해 억지로 잘하게 만들다 보니, 그 기계는 언어, 코드, 논리, 지식, 말투까지 다 학습해 버린 겁니다.
의도해서 그렇게 만든 게 아니라, 부작용으로 그렇게 된 거예요.
이게 LLM이 신기한 이유입니다.
ⓘ “그럼 LLM은 어떻게 그렇게 많은 걸 학습하죠? 이게 Transformer랑 무슨 관계예요?” 가 궁금해지셨다면, 👉 F2. Transformer 구조 와 F4. Attention is All You Need 해설 로 넘어가시면 됩니다. 이 글에선 “어떻게 만드는가”는 잠시 접어두고 “지금 하는 일이 뭔가”에만 집중할게요.
2. 근데 “토큰”이 뭔데?
LLM 이야기를 읽다 보면 “토큰”이라는 말이 계속 나옵니다.
- “컨텍스트 윈도우가 20만 토큰이다”
- “토큰당 얼마를 청구한다”
- “토큰이 부족해서 답이 잘렸다”
이걸 그냥 “단어 같은 거겠지” 하고 넘어가도 큰 탈은 안 납니다. 근데 조금 더 정확히 잡아두면 나중에 길을 덜 잃어요.
토큰은 “모델이 한 번에 삼키는 한 조각” 입니다.
단어 하나일 수도 있고, 단어의 반쪽일 수도 있고, 한 글자일 수도 있고, 여러 글자의 묶음일 수도 있어요.
예를 들어 영어 “unbelievable”은 보통 un + believ + able — 토큰 3개로 쪼개집니다.
“apple”은 그냥 apple — 토큰 1개.
한국어 “자동완성”은 보통 자 + 동 + 완 + 성 — 토큰 4개 정도로 쪼개집니다. (영어보다 한국어가 토큰 효율이 나쁜 이유가 이거예요.)
왜 이렇게 잘라요?
단어 단위로만 자르면, 새로운 단어가 나왔을 때 모델이 아예 처음 보는 글자가 돼버립니다. 알파벳 하나씩 자르면, 너무 잘게 쪼개져서 학습이 느려집니다.
그래서 “자주 같이 붙어 다니는 글자 묶음은 하나로 묶고, 드문 조합은 쪼개는” 중간 지점을 택한 겁니다.
이 방식 이름이 BPE(Byte Pair Encoding)예요. 외우실 필요는 없습니다. “토큰은 단어보다 조금 더 작은 단위”로만 기억하셔도 충분합니다.
그래서 LLM 입장에서 세계는 이렇게 보입니다:
입력: [
오,늘,은,날,씨,가,참, …]
작업: 이 뒤에 올 다음 토큰은 뭐일까?
출력:좋
다음 작업: [오,늘,은,날,씨,가,참,좋] → 다음은? →네
이 과정을 한 토큰씩 반복하면서 문장을 만들어냅니다.
그러니까 당신이 “ChatGPT가 대답하는 중”을 보고 있을 때, 그 친구는 단어가 아니라 토큰을 한 개씩 뱉어내는 중이에요. 커서가 깜빡이면서 한 토큰씩 나오는 그 경험 그대로입니다.
3. 확률 게임이라, 가끔 말이 안 되는 답이 나온다
여기서부터가 “LLM은 왜 가끔 이상한 말을 하는가” 에 대한 답입니다.
LLM이 다음 토큰을 고를 때, 한 개만 쳐다보는 게 아니에요.
매번 수만 개의 가능한 토큰에 대해 “얘가 다음에 올 확률은 몇 퍼센트” 라는 표를 만들어냅니다.
대충 이런 식:
"오늘 날씨가 참 " 다음에 올 토큰 확률:
좋 — 42%
나 — 18%
이 — 12%
시 — 7%
...
(나머지 수만 개 토큰에 0.x%씩 분산)
그 다음 이 중에서 하나를 고릅니다.
근데 항상 1등만 고르지는 않아요. 1등만 고르면 답이 너무 뻔해집니다. (모든 사람에게 똑같은 답을 주는 로봇이 되는 거죠.)
그래서 확률에 따라 랜덤하게 고릅니다. (여기 붙는 설정이 temperature라는 거예요. 높일수록 덜 확률 높은 애들도 뽑힙니다.)
여기서 중요한 포인트:
LLM은 “정답”을 계산하지 않습니다. “그럴듯한 다음 토큰”을 확률로 뽑을 뿐입니다.
이 한 줄이 환각(hallucination)이 왜 생기는지도 설명해 줍니다.
모델 입장에선 “존재하지 않는 논문 제목”도 통계적으로는 아주 그럴듯한 문자열입니다. “Smith et al., 2019 — A Comparative Study of…”는 논문 제목으로서 확률이 매우 높은 패턴이거든요.
그래서 LLM은 그 논문이 실제로 있는지 없는지는 모른 채 논문 같아 보이는 문자열을 만들어냅니다.
이건 버그가 아니에요. LLM이 원래 하는 일의 본래 모습입니다.
LLM은 사실 검증기가 아닙니다. 그럴듯함 생성기입니다. 이걸 섞어서 쓰고 있는 겁니다.
그럼 “그럴듯한 것”이 어떻게 “대부분 맞는 것”이 되느냐? 학습 데이터가 충분히 컸을 때, 그럴듯한 문장 = 대체로 사실인 문장이라는 상관관계가 강하게 잡히기 때문입니다.
근데 상관관계는 인과가 아니잖아요. 그래서 가끔 그럴듯하지만 틀린 답이 튀어나옵니다.
이걸 알고 LLM을 쓰는 것과 모르고 쓰는 건 정말 다릅니다.
알고 쓰면:
– 중요한 사실은 LLM 답변 말고 원문을 직접 확인하고
– 인용 출처를 강제해서 검증 루프를 붙이고
– 창작·브레인스토밍처럼 그럴듯함 자체가 가치인 작업에 주로 씁니다
모르고 쓰면:
– LLM이 만들어낸 가짜 인용을 그대로 논문에 붙였다가 망합니다
4. 모델 안에는 실제로 뭐가 들어 있나?
여기서 사람들이 가장 헷갈리는 게 “그럼 GPT나 Claude 안에 위키백과가 통째로 들어 있는 거예요?” 라는 질문입니다.
아닙니다.
모델 안에 실제로 들어 있는 건 파라미터(parameter) 또는 가중치(weight) 라고 부르는 수백억에서 수조 개의 숫자입니다.
GPT-3가 1,750억 개(175B)의 파라미터를 가졌다, GPT-4는 1조 개를 넘는다, Claude는 몇 B다… 이런 이야기 들어보셨을 거예요. 이 숫자들이 모델의 전부입니다.
비유를 하나 들어볼게요.
사람 뇌에는 약 1,000억 개의 뉴런이 있고, 그 뉴런들 사이에 수백조 개의 시냅스가 있습니다. 시냅스마다 “이 방향으로 신호가 얼마나 강하게 흐를지”의 강도가 있어요.
당신이 뭔가를 학습하면, 뇌는 새로운 뉴런을 만드는 게 아니라 기존 시냅스의 강도를 조금씩 바꿉니다.
LLM의 파라미터도 비슷합니다. 파라미터 하나는 “이 입력 신호를 다음 층으로 얼마나 강하게 보낼지”의 숫자 하나입니다.
모델을 학습시킨다는 건, 이 수백억 개 숫자들을 아주 천천히, 조금씩 조정하는 과정입니다.
중요한 건 이겁니다:
학습된 LLM 안에는 “사실”이 통째로 저장돼 있지 않습니다.
“입력이 이런 모양일 때, 출력이 이런 모양으로 나오게 하는 숫자 조합”만 저장돼 있습니다.
이게 왜 중요하냐면, LLM의 환각과 지식 구분이 이 구조에서 나오거든요.
- “프랑스 수도” 같이 학습 데이터에 반복해서 자주 등장한 패턴 → 파라미터가 강하게 “파리” 쪽으로 기울어져 있음 → 거의 틀리지 않음
- 드문 인물, 드문 논문, 드문 지역 정보 → 파라미터가 약하게 여러 답에 분산 → 그럴듯하지만 틀린 답이 섞임
LLM은 “기억”이 아니라 “압축된 패턴”입니다.
그래서 같은 모델도 프롬프트에 따라 답이 달라지고, 아주 구체적인 사실을 물으면 틀리고, 아주 흔한 패턴을 물으면 거의 안 틀립니다.
ⓘ 파라미터를 어떻게 그렇게 미세하게 조정할 수 있나요? 그게 학습 과정인데, 자세한 내용은 👉 F6. 학습이란 무엇인가 에서 안개 낀 산에서 내려가기 비유로 풀어드립니다.
5. 학습 vs 추론 — 요리 배우기와 요리하기의 차이
LLM을 이해하는 데 또 하나 중요한 구분이 “학습(training)”과 “추론(inference)” 입니다. 이 둘은 완전히 다른 작업입니다.
비유:
- 학습 = 요리를 처음 배우는 과정. 수천 가지 레시피를 보고, 수천 번 실패하면서, “이 재료엔 이 양념”이라는 감을 만드는 단계.
- 추론 = 이미 감이 잡힌 사람이 실제로 요리하는 과정. 냉장고 재료를 보고, 바로 뭘 만들지 결정하고, 만든다.
LLM도 똑같습니다.
학습 단계:
– 인터넷, 책, 코드, 논문 등 엄청난 양의 텍스트를 모델에 통과시킨다
– 모델이 “다음 토큰”을 예측하게 시키고
– 틀리면 수백억 개 파라미터를 아주 조금씩 고친다
– 이 과정을 수조 번 반복한다
이게 몇 달, 수천만 달러 단위로 걸립니다. 엄청난 GPU가 필요해요.
추론 단계:
– 이미 파라미터가 고정된 모델을 쓴다
– 당신이 프롬프트를 입력한다
– 모델은 파라미터를 전혀 수정하지 않고, 그 프롬프트에 대한 다음 토큰을 예측한다
– 당신에게 답을 준다
이건 훨씬 가볍습니다. GPU 한 장이나 심지어 CPU에서도 돌 수 있어요.
중요한 포인트:
당신이 ChatGPT나 Claude와 대화할 때, 그 모델은 학습하고 있지 않습니다. 추론만 하고 있습니다.
당신이 오늘 ChatGPT에게 뭔가를 가르쳐줘도, 내일 다른 사람이 그 주제를 물어보면 그 모델은 당신이 가르쳐준 것을 기억하지 못합니다.
모델의 파라미터는 고정돼 있기 때문이에요.
이게 “LLM은 기억이 없다” 의 기술적 의미입니다.
그래서 장기 기억처럼 보이는 게 필요하면 retrieval이나 memory adaptation 같은 별도 구조를 바깥에 붙여야 하는데, 그건 다른 기사에서 다룹니다.
ⓘ “근데 대화 안에선 기억하잖아요?” 맞습니다. 하지만 그건 대화 전체를 매번 프롬프트에 넣어서 다시 보여주는 방식이에요. 대화창을 새로 열면 싹 날아갑니다. 👉 M2. Long-context / Memory 에서 자세히 다룹니다.
6. LLM이 “모르는 것”들
LLM이 할 수 있는 일만 보면 감탄하게 됩니다. 그래서 LLM을 잘 쓰려면 “뭘 못하는가” 를 정확히 아는 게 더 중요해요.
한계를 네 개만 정리할게요.
(1) 최신 정보를 모른다
LLM의 파라미터는 학습이 끝난 시점의 스냅샷입니다. 학습이 끝난 후 세상에 일어난 일은 모델 안에 없습니다.
“오늘 날씨 어때?”라고 물어보면 LLM은 오늘이 몇 월 며칠인지조차 모릅니다. 이걸 해결하려면 외부 검색이나 도구를 붙여야 합니다.
(2) 정말로 드문 사실은 섞는다
방금 파라미터 얘기에서 말한 그대로입니다. 흔한 패턴은 잘 맞히지만, 희귀한 사실은 그럴듯하게 지어냅니다. 이게 환각(hallucination)입니다.
중요한 건 “환각을 0으로 만들 순 없다”는 점이에요. 아무리 큰 모델도 이걸 완전히 없앨 수는 없습니다. 구조상 가지고 있는 속성이거든요.
그래서 실무에서는 “환각을 줄이려면 외부 retrieval을 붙이고, 사실 기반 작업은 꼭 검증 루프를 돌린다”는 식으로 우회합니다.
(3) 긴 과정을 스스로 못 끌고 간다
LLM 하나로 긴 작업을 시키면, 중간에 길을 잃거나, 초반 지시를 까먹거나, 엉뚱한 방향으로 갑니다.
이걸 해결하려고 바깥에서 상태를 기억하고, 다시 지시를 넣어주는 구조 를 붙인 게 우리가 “agent”라고 부르는 것입니다.
(4) 자기가 틀린 걸 모른다
LLM은 틀린 답을 줄 때도 똑같이 확신 있게 말합니다. 자기가 확률 낮은 답을 골랐는지, 높은 답을 골랐는지를 사용자에게 알려주는 기능은 기본적으로 없어요.
“잠깐, 이건 내가 확실하지 않아” 같은 말을 LLM이 해 주는 건 사람이 프롬프트로 그렇게 하도록 훈련시킨 결과입니다. 원래 LLM 자체는 자기 확신을 들여다볼 능력이 없어요.
이 네 가지를 알고 있으면, LLM을 쓸 때 “왜 이거 내가 물은 거랑 다른 답이 나왔지?”가 훨씬 줄어듭니다.
7. 왜 LLM 혼자로는 agent가 못 되나
이제 연결 지점입니다.
요즘 “agent”라는 말을 많이 듣죠? Claude Code, Codex, OMX, OMC, Devin 같은 것들 다 agent의 변종입니다.
근데 agent는 LLM 자체가 아닙니다.
agent = LLM + 시스템
비유로 정리하면:
- LLM = 엔진
- Agent = 그 엔진이 들어간 자동차 한 대 전체
엔진이 아무리 좋아도, 핸들도 없고, 바퀴도 없고, 연료 시스템도 없으면 그건 자동차가 아닙니다. 엔진일 뿐이에요.
agent가 된다는 건 LLM 주변에 이런 걸 붙이는 겁니다:
- 목표를 잡아주는 구조
- 상태를 기억해 주는 저장소
- 도구를 쓰게 해주는 tool use 레이어
- 파일/검색/코드 실행 같은 실제 세계 손발
- 실패하면 다시 시도하게 만드는 loop
- 규칙을 알려주는 시스템 프롬프트
- 권한을 제한해 주는 sandbox
이 모든 게 LLM 자체 안엔 없습니다. 바깥에서 감싸줘야 해요.
이걸 전체로 묶은 게 하네스(harness) 라는 개념입니다. (이건 정말 중요해서 따로 기사 하나를 할애합니다.)
그래서 같은 모델(예: Claude)을 써도, 어떤 하네스 위에서 돌리느냐에 따라
– 너무 똑똑한 답변기가 되기도 하고
– 꽤 쓸만한 작업 에이전트가 되기도 하고
– 믿을 수 없는 불안한 친구가 되기도 합니다.
모델 성능보다 하네스가 더 중요할 때가 많은 이유가 이거예요.
ⓘ “그럼 그 agent라는 거 좀 더 자세히” → 👉 B1. Agent란 무엇인가 에서 구체적으로 구조 하나씩 풀어드립니다. 그 위 작업환경인 harness는 👉 M4. Harness 로.
8. 한 줄로 다시 묶으면
지금까지 나온 얘기를 압축하면 이렇습니다.
- LLM은 다음 토큰 예측기다.
- 그 예측을 극단까지 잘하려다 보니, 세상에 대한 패턴 대부분을 파라미터에 압축해 버렸다.
- 그래서 LLM은 질문에 답할 수 있는 것처럼 보이지만, 사실상은 “그럴듯한 다음 토큰을 확률로 뽑는 기계” 이다.
- 안에 사실이 저장된 게 아니라 압축된 패턴만 있다.
- 학습이 끝난 뒤에는 기억하지 못한다. 대화 안에서의 “기억”은 매번 프롬프트에 다시 얹어주는 것뿐이다.
- 한계는 구조적이다: 최신 정보 없음, 환각 가능, 자기 확신 모름, 긴 작업 혼자 못 끎.
- 이 한계를 바깥에서 시스템(하네스, 도구, 루프, 검색) 으로 보완하면 agent가 된다.
이 7가지만 머릿속에 있으면, 이제부터 읽는 모든 LLM 관련 뉴스·논문·제품이 한 단계 더 투명하게 보입니다.
“이건 모델이 좋아진 얘기인가, 시스템이 좋아진 얘기인가?” 이 질문만 할 줄 알아도 절반은 먹고 들어갑니다.
닫는 한 문장
LLM을 이해하는 핵심은, 이 기계가 얼마나 똑똑한가가 아니라, “다음 토큰을 확률로 뽑는 단 하나의 일”을 하는 기계 주위에 어떤 시스템을 붙이느냐에 따라 전혀 다른 것이 된다는 점을 보는 데 있습니다.
FAQ
Q1. LLM이랑 ChatGPT는 같은 거예요?
아닙니다. LLM은 엔진이고, ChatGPT는 그 엔진을 싣고 있는 제품입니다. ChatGPT 뒤에는 OpenAI의 GPT 계열 LLM이 돌아가지만, 당신이 보는 화면·대화 기억·안전 필터·도구 사용 같은 건 LLM 자체가 아니라 주변 시스템이 담당합니다. Claude도 마찬가지예요. Claude 앱은 Anthropic의 Claude 모델(LLM) 위에 올린 사용자 인터페이스입니다.
Q2. LLM이 환각을 말하는 걸 완전히 없앨 수 있나요?
구조상 완전히 없앨 수는 없습니다. LLM은 “그럴듯한 다음 토큰”을 뽑는 기계라, 희귀한 사실일수록 “그럴듯한 거짓말”로 빠질 가능성이 남습니다. 실무에선 줄이는 방식으로 갑니다 — 외부 검색(RAG)을 붙이고, 사실이 중요한 영역에선 반드시 원문 검증 루프를 붙이고, 인용 없이 단언하는 답은 받지 않는 식으로 설계합니다.
Q3. 파라미터가 많을수록 무조건 더 똑똑한 모델인가요?
과거 몇 년은 그런 경향이 꽤 강했는데, 지금은 깨지고 있습니다. 작은 모델을 좋은 데이터로 세게 학습시키거나, 추론 시 더 오래 생각하게 하거나(thinking/reasoning 모드), 하네스를 잘 짜면 더 작은 모델이 더 큰 모델보다 실무 품질이 좋은 경우가 흔해졌어요. 그래서 “파라미터 크기” 하나로 모델 순위를 매기는 건 더 이상 안전한 기준이 아닙니다.
- ◀ 앞 편: F0. AI·ML·DL·LLM 용어 구분
- 지금 편: F1. LLM이 뭔지 (1/20)
- ▶ 다음 편: F2. Transformer 구조
뉴스레터 CTA
이렇게 한 개념씩 끝까지 풀어서 설명하는 글을 매주 월요일 아침 메일로 보냅니다. 받아보고 싶으면 뉴스레터 회원가입(무료·30초)에서 신청하세요.
LLM 본체 이해 위치에 있는 편입니다. 앞뒤 편 링크는 본문 하단 지도 위 현재 위치 박스에서 확인하세요.
“LLM이 뭐냐”는 질문에 “자동완성이 끝까지 간 거다”라고 답할 수 있게 되는 편. 토큰·파라미터·환각·학습/추론까지 비유 하나로 이어 읽는다.
소스 리스트
- 태일러 지식백과사전 — AI 공부 지도 카테고리 (본 시리즈 20편 전체)
- AI 공부 지도 엔트리맵 — 전체 구조 + 3가지 독법
- “Attention Is All You Need” (Vaswani et al., 2017)
- Anthropic · OpenAI · Google 공식 docs
- mathbullet (YouTube) / Jay Alammar “Illustrated Transformer” / 3Blue1Brown 영상 — 쉬운 설명 레퍼런스
著者: 바이브코딩 태일러 (VibeCoding Tailor) — Lovable公式アンバサダー. AI·バイブコーディング専門メディアshuntailor.net運営.
本シリーズ “AI 공부 지도” 22편은 위키 자료와 공식 논문·공식 문서를 근거로 정리한 체계적 학습 커리큘럼입니다.