LLM은 어떻게 다음 단어를 맞히는가 — 비전공자를 위한 AI 설명
ChatGPT에 질문을 던지면 마치 사람이 곰곰이 생각한 뒤 답하는 것처럼 보입니다. 그래서 많은 분이 LLM을 “아주 똑똑한 검색 엔진” 또는 “생각하는 컴퓨터"라고 짐작합니다. 그런데 그 안에서 실제로 벌어지는 일은 생각보다 단순합니다.
대규모 언어 모델, 즉 LLM이 하는 일은 한 문장으로 요약됩니다. 지금까지 주어진 글에 이어, 다음에 올 가장 그럴듯한 단어를 확률로 예측하는 것입니다. 이 글에서는 이 한 줄이 어떻게 ChatGPT 같은 대화로 이어지는지, 그리고 왜 이 원리를 알아야 AI를 더 잘 쓰고 덜 속는지 풀어보겠습니다.
LLM은 생각하지 않고 다음 단어를 예측합니다 #
휴대폰으로 메시지를 칠 때 키보드가 다음 단어를 미리 추천하는 기능을 떠올려 보면 좋습니다. “오늘 날씨가"라고 치면 “좋습니다” 같은 단어를 제안합니다. LLM은 이 자동완성을 상상하기 어려울 만큼 거대하게 키운 기계라고 보면 큰 그림이 맞습니다.
차이는 규모와 정교함입니다. 휴대폰 자동완성은 바로 앞 단어 몇 개만 보고 단순하게 추천합니다. 반면 LLM은 지금까지의 문맥 전체를 살펴, 그 뒤에 올 단어를 훨씬 정교한 확률로 계산합니다. 그래서 결과물이 문장을 넘어 긴 글, 코드, 번역으로까지 자연스럽게 이어집니다.
여기서 중요한 점이 있습니다. LLM은 질문의 뜻을 사람처럼 이해하거나, 어딘가에서 정답을 찾아오는 것이 아닙니다. 그저 “이 글 다음에는 어떤 단어가 올 확률이 가장 높은가"를 계산할 뿐입니다.
모델은 단어가 아니라 토큰을 다룹니다 #
조금 더 정확히 말하면 LLM은 단어가 아니라 토큰(token)이라는 더 잘게 쪼갠 단위를 다룹니다. 토큰은 하나의 단어일 수도 있고, 단어의 일부 조각일 수도 있습니다. 예를 들어 “자동완성"이라는 한 단어가 모델 내부에서는 “자동"과 “완성” 같은 두 조각으로 나뉘어 처리되기도 합니다.
왜 이렇게 쪼갤까요. 세상의 모든 단어를 통째로 외우는 것보다, 자주 등장하는 조각들의 조합으로 다루는 편이 처음 보는 단어나 오타까지 유연하게 처리할 수 있기 때문입니다. 그래서 정확히 표현하면 LLM은 “다음 단어"가 아니라 “다음 토큰"을 예측합니다. 다만 이해를 위해 이 글에서는 토큰을 단어와 거의 같은 뜻으로 쓰겠습니다.
인터넷 텍스트로 다음 토큰 맞히기를 반복하며 배웁니다 #
그렇다면 모델은 무엇이 그럴듯한 다음 단어인지를 어떻게 알게 될까요. 답은 학습입니다.
LLM은 책, 기사, 위키, 웹페이지 등 인터넷에 쌓인 방대한 텍스트를 재료로 삼습니다. 학습 과정은 의외로 단순한 반복입니다. 문장의 일부를 가린 다음 모델에게 가린 부분의 다음 단어를 맞혀보게 합니다. 틀리면 내부 수치를 조금씩 조정하고, 다시 맞혀보게 합니다.
이 과정을 천문학적인 횟수만큼 반복합니다. 그 결과 모델은 어떤 정답을 외우는 것이 아니라, 언어에 담긴 패턴을 통계적으로 익힙니다. 문법의 규칙, 단어들이 함께 쓰이는 습관, 자주 등장하는 사실, 특정 문체의 분위기까지 모두 “어떤 단어 다음에 어떤 단어가 오는 경향이 있는가"라는 형태로 모델 안에 자리잡습니다.
지식처럼 보이는 것도 사실은 이 통계의 결과입니다. “대한민국의 수도는"이라는 문장 다음에 “서울"이 올 확률이 압도적으로 높다는 패턴을 수없이 봤기 때문에, 모델은 그 답을 자신 있게 내놓습니다.
한 단어씩 이어 붙여 문장을 완성합니다 #
학습을 마친 모델이 실제로 답을 만드는 과정도 살펴보겠습니다. 핵심은 한 번에 문장 전체를 쓰는 것이 아니라, 단어를 하나씩 이어 붙인다는 것입니다.
모델은 먼저 가장 그럴듯한 다음 단어 하나를 고릅니다. 그다음에는 방금 고른 단어까지 포함한 글을 다시 입력으로 삼아, 그 뒤에 올 단어를 또 한 번 예측합니다. 이렇게 자기가 쓴 결과를 다시 입력으로 되먹이며 한 단어씩 늘려가는 방식을 자기회귀(autoregressive)라고 부릅니다. ChatGPT의 답변이 왼쪽부터 한 글자씩 흘러나오는 것도 이 때문입니다.
이때 모델은 항상 확률이 가장 높은 단어만 고르지는 않습니다. 온도(temperature)라는 값을 조절해, 안전하고 무난한 단어를 고를지 조금 더 다양하고 의외인 단어를 고를지 조절합니다. 같은 질문에도 답이 매번 조금씩 달라지는 이유입니다.
앞에 주어진 맥락이 예측을 바꿉니다 #
LLM의 예측은 진공 상태에서 이뤄지지 않습니다. 모델은 그때까지 주어진 대화와 지시를 함께 보고 다음 단어를 계산합니다. 이 입력 전체를 컨텍스트(context)라고 합니다.
같은 “사과"라는 단어도 앞에 과일 이야기가 있었는지, 사과문 이야기가 있었는지에 따라 이어질 단어의 확률이 완전히 달라집니다. 모델이 앞 내용을 함께 보기 때문에 가능한 일입니다.
프롬프트가 중요하다는 말이 여기서 나옵니다. 우리가 어떤 맥락과 지시를 앞에 놓아주느냐에 따라, 모델이 계산하는 확률과 그 결과물이 통째로 달라집니다. 역할을 정해주거나, 원하는 형식과 조건을 구체적으로 적어줄수록 모델은 그 맥락에 맞는 단어를 골라냅니다. 좋은 답을 얻는 일은 좋은 컨텍스트를 만들어주는 일과 거의 같습니다.
그래서 환각이 생깁니다 #
이 원리를 이해하면 LLM의 가장 큰 약점도 자연스럽게 설명됩니다. 바로 환각(hallucination), 즉 틀린 내용을 사실인 것처럼 자신 있게 지어내는 현상입니다.
모델은 어떤 정보가 사실인지 아닌지를 따로 판단하지 않습니다. 그저 “그럴듯한 다음 단어"를 이어 붙일 뿐입니다. 그래서 실제로 존재하지 않는 책 제목, 가짜 논문, 틀린 통계도 문법적으로 매끄럽고 그럴듯하게 만들어낼 수 있습니다. 모델 입장에서는 진짜 정보와 그럴듯한 거짓 사이에 본질적인 차이가 없습니다. 둘 다 확률이 높은 단어의 나열일 뿐입니다.
게다가 모델이 학습한 텍스트에는 시점이 있습니다. 학습 이후에 일어난 최신 사건이나 바뀐 정보는 모델 안에 담겨 있지 않습니다. 따라서 중요한 사실, 최신 정보, 숫자, 인용은 LLM의 답을 그대로 믿지 말고 따로 확인하는 습관이 필요합니다. 요즘은 검색이나 외부 자료를 함께 활용해 이 약점을 보완하는 방식도 널리 쓰이지만, 마지막 확인은 여전히 사람의 몫입니다.
원리를 알면 더 잘 쓰고 덜 속습니다 #
지금까지의 이야기를 정리하겠습니다. LLM은 생각하거나 검색하는 기계가 아니라, 방대한 텍스트로 다음 토큰 맞히기를 반복해 언어의 패턴을 익힌 다음, 주어진 맥락에 이어 단어를 한 개씩 확률로 골라 붙이는 기계입니다.
이 단순한 원리가 번역, 요약, 글쓰기, 코딩까지 해내는 놀라운 능력의 바탕입니다. 동시에 사실을 보장하지 못하는 한계의 이유이기도 합니다. 강력하지만 한계가 분명한 도구라는 뜻입니다.
원리를 알고 나면 사용법도 분명해집니다. 좋은 맥락과 지시를 정성껏 만들어주고, 결과물 중 사실에 해당하는 부분은 스스로 검증하는 것입니다. 그러면 같은 도구로도 훨씬 더 나은 결과를 얻고, 그럴듯한 거짓에 덜 속을 수 있습니다.
참고로 글자나 단어가 컴퓨터 안에서 결국 숫자로 다뤄진다는 더 근본적인 이야기는 컴퓨터는 어떻게 0과 1로 모든 것을 표현할까 글에서 다뤘습니다. LLM이 토큰을 숫자로 바꿔 계산한다는 점과 자연스럽게 이어지니 함께 읽어보시면 좋겠습니다.