DECHIVE
DECHIVE
← Archive
AI/

LLM은 어떻게 답을 만들어내는가

LLM이 텍스트를 생성하는 방식 — 토큰 예측, 어텐션 메커니즘, 온도의 원리를 이해하면 프롬프트가 왜 작동하는지 보인다.

AI를 처음 쓸 때 누구나 비슷한 경험을 한다. 어떤 날은 놀랍도록 정확한 답이 나오고, 어떤 날은 똑같이 물었는데 전혀 다른 말을 한다. 모델이 정말 이해하고 답하는 건지, 내가 질문을 잘못한 건지, 아니면 답변이 우연히 달라지는 건지 헷갈린다.

이 혼란은 AI가 어떻게 작동하는지 모를 때 생긴다. LLM이 실제로 하는 일을 이해하면, 왜 같은 질문에 다른 답이 나오는지, 왜 어떤 문장은 작동하고 어떤 문장은 실패하는지가 보이기 시작한다.


LLM은 문장을 사람처럼 읽지 않는다

LLM이 텍스트를 처리하는 방식은 인간이 글을 읽는 방식과 전혀 다르다.

인간은 문장을 읽을 때 전체 맥락과 의도를 동시에 파악한다. LLM은 그렇게 하지 않는다. 대신 하나의 단순한 작업을 반복한다. 지금까지 입력된 텍스트 뒤에 올 가장 그럴듯한 다음 조각, 즉 토큰 을 예측하는 것.

"프롬프트를 잘 쓰려면"이라는 문장 뒤에 올 단어를 예측할 때, LLM은 학습 데이터에서 이 패턴이 어떻게 이어졌는지를 기반으로 확률을 계산한다. 높은 확률을 가진 단어를 선택하고, 그 단어를 이어 붙이고, 다시 다음 단어를 예측한다. 이 과정이 반복되면서 문장이 만들어진다.

중요한 점이 있다. LLM은 정답을 "알고" 있어서 그 단어를 선택하는 게 아니다. 학습 데이터에서 그 패턴이 충분히 많이 등장했기 때문에 높은 확률로 선택하는 것이다. 이 둘의 차이는 작아 보이지만, 프롬프트를 설계할 때 매우 중요한 의미를 갖는다.

텍스트는 AI 내부에서 숫자로 변환된다. "사과"라는 단어는 수천 차원의 벡터 공간 안에서 좌표를 갖는다. 이 공간에서 "사과"는 "과일", "빨간색", "나무" 같은 단어들과 가까이 위치한다. LLM은 이 수학적 관계를 바탕으로 다음 단어를 예측한다.


모든 단어가 서로를 본다

트랜스포머 아키텍처의 핵심은 어텐션(Attention) 메커니즘 이다.

이전 모델들은 텍스트를 순서대로 처리했다. 앞 단어를 처리하고, 다음 단어를 처리하는 방식. 긴 문장에서는 앞부분 정보가 뒤로 갈수록 희미해지는 문제가 있었다.

어텐션은 다르게 작동한다. 문장 안의 모든 단어가 동시에 서로를 바라본다. "고양이가 담장을 넘었다"라는 문장에서 "넘었다"라는 동사는 "고양이"라는 주어와 "담장"이라는 목적어 모두에 얼마나 집중해야 할지를 동시에 계산한다. 이 계산에서 나오는 것이 어텐션 점수다. 각 단어가 다른 단어에 얼마나 집중해야 하는지를 나타내는 가중치다.

이것이 실용적으로 의미하는 바는 이렇다. 프롬프트가 길어질수록 중요한 정보가 상대적으로 덜 두드러질 수 있다. AI가 "전에 말한 규칙을 잊어버리는" 것처럼 보이는 현상도 이런 맥락에서 이해할 수 있다. 지시사항을 짧고 구조적으로 주는 것이 효과적인 이유도 같다.


같은 질문에 다른 답이 나오는 이유

LLM은 다음 단어를 예측할 때 하나의 답을 확정하는 게 아니라, 가능한 단어들의 확률 분포를 만들고 그 중에서 선택한다.

이 선택 과정을 조절하는 변수가 온도(Temperature) 다.

온도가 낮으면 확률이 가장 높은 단어를 거의 확정적으로 선택한다. 답변이 일관되고 예측 가능해진다. 코드를 짜거나 사실 확인이 필요한 작업에 적합하다.

온도가 높으면 확률이 조금 낮은 단어도 선택될 가능성이 열린다. 창의적인 아이디어가 나오지만, 동시에 사실이 아닌 내용을 그럴듯하게 만들어낼 가능성도 높아진다.

대부분의 API에서는 이 값을 직접 설정할 수 있다. ChatGPT나 Claude 같은 일반 인터페이스를 사용할 때는 온도가 내부적으로 관리되지만, 같은 프롬프트를 여러 번 보내면 미세하게 다른 답이 나오는 이유가 바로 이 샘플링 과정 때문이다.


프롬프트가 작동하는 이유

이 원리들을 이해하고 나면, 프롬프트가 왜 작동하는지가 보인다.

프롬프트는 AI에게 새로운 지식을 주입하는 수단이 아니다. 이미 학습된 방대한 데이터 중에서, 다음 토큰의 확률 분포를 내가 원하는 방향으로 조정하는 수단이다. 역할을 부여하고, 맥락을 제공하고, 출력 형식을 지정하는 것은 모두 이 확률 분포를 조각하는 방법들이다.

예를 들어 "블로그 글을 써줘"라고 말하면 모델은 너무 넓은 가능성 안에서 다음 문장을 고른다. 하지만 "초보 개발자를 대상으로, 짧은 문단으로, GA4의 이벤트 개념을 설명해줘"라고 말하면 가능성의 범위가 좁아진다. 모델이 완전히 새로운 지식을 얻은 것이 아니라, 답을 만들 때 참고해야 할 방향이 더 분명해진 것이다.

LLM이 문장을 이해하는 생명체가 아니라 확률을 계산하는 수학적 구조라는 사실은, 처음엔 실망스럽게 들릴 수 있다. 하지만 이 관점이 잡히면 반대로 더 많은 것이 가능해진다. 그때부터 LLM은 막연한 마법이 아니라, 원리를 알고 다룰 수 있는 도구에 가까워진다.