LLM을 처음 공부할 때 가장 먼저 잡아두면 좋은 질문은 이것입니다. “이 모델은 도대체 어떻게 문장을 만들어 내는가?”입니다. 겉으로 보면 사람처럼 답하는 것처럼 보이지만, 내부적으로는 생각보다 훨씬 단순한 원리에서 출발합니다.
핵심은 LLM이 문장을 통째로 한 번에 이해해서 완성하는 것이 아니라, 지금까지 나온 토큰을 바탕으로 다음에 올 토큰의 확률을 예측하는 방식으로 동작한다는 점입니다.
이 글에서는 아래 내용을 정리합니다.
- LLM이 무엇을 예측하는지
- 토큰과 확률 기반 생성이 왜 중요한지
- temperature 와 top-p 같은 설정이 왜 나오는지
결론부터 말하면 LLM은 “정답 문장”을 꺼내는 기계라기보다, 다음 토큰 확률 분포를 계속 예측하며 문장을 이어 가는 모델입니다.
LLM은 실제로 무엇을 예측할까
LLM은 흔히 “다음 단어를 예측한다”고 설명되지만, 더 정확히는 다음 토큰을 예측합니다. 토큰은 단어 하나일 수도 있고, 단어 일부나 구두점일 수도 있습니다.
예를 들어:
Hello,world
처럼 사람이 보는 단어 단위와 완전히 같지 않을 수 있습니다.
즉, LLM은 “문장의 의미를 한 번에 완성”하기보다, 현재까지 토큰 흐름을 보고 다음 토큰 후보들의 확률을 계산합니다.
왜 확률이 중요할까
LLM은 보통 하나의 토큰만 가능한 것으로 보지 않습니다. 여러 후보에 각각 확률을 둡니다.
예를 들어 문맥이:
The capital of France is
라면 다음 토큰 후보들 중 Paris가 높은 확률을 가질 가능성이 큽니다. 하지만 항상 하나의 답만 있는 것은 아닙니다. 문맥에 따라 다른 표현도 확률을 가질 수 있습니다.
이 점 때문에 LLM 출력은 규칙 기반 프로그램처럼 딱 하나의 고정 답을 내는 구조와 다릅니다.
다음 토큰 예측이 반복되면 문장이 된다
LLM은 보통 아래 흐름을 반복합니다.
- 지금까지 토큰을 본다
- 다음 토큰 확률을 계산한다
- 하나를 선택한다
- 그 토큰을 다시 입력에 포함한다
- 이 과정을 반복한다
즉, 한 문단도 사실은 “다음 한 조각”을 계속 이어 붙인 결과입니다.
이 구조를 이해하면 왜 작은 설정 차이로도 출력 스타일이 꽤 달라지는지 감이 옵니다.
Temperature 와 top-p 는 왜 나올까
이 설정들은 “다음 토큰을 얼마나 보수적으로 혹은 다양하게 뽑을 것인가”에 영향을 줍니다.
Temperature
temperature는 확률 분포를 얼마나 날카롭거나 퍼지게 볼지를 조절합니다.
- 낮을수록: 더 보수적이고 예측 가능한 출력
- 높을수록: 더 다양하고 때로는 더 튀는 출력
top-p
top-p는 누적 확률이 일정 수준에 도달할 때까지 후보를 남기고 그 안에서 선택하는 방식입니다.
즉, 모델이 모든 후보를 똑같이 보는 것이 아니라, 어느 범위까지 허용할지를 정하는 설정이라고 보면 좋습니다.
이 원리를 알면 무엇이 달라질까
입문자에게는 이 이해가 꽤 중요합니다.
- 왜 같은 질문에도 답이 조금씩 달라질 수 있는지
- 왜 프롬프트가 출력 확률 분포에 영향을 주는지
- 왜 hallucination 이 생길 수 있는지
가 더 잘 보이기 때문입니다.
LLM은 데이터베이스처럼 “저장된 정답”을 그대로 꺼내는 것이 아니라, 문맥에 맞는 다음 토큰을 계속 생성합니다. 그래서 그럴듯하지만 틀린 답도 나올 수 있습니다.
자주 하는 오해
1. LLM은 사람처럼 완성된 생각을 먼저 만든다
겉으로는 그렇게 보이지만, 실제 동작은 다음 토큰 예측 반복에 더 가깝습니다.
2. temperature 를 높이면 더 똑똑해진다
그렇지 않습니다. 더 다양해질 수는 있지만, 더 정확해진다는 뜻은 아닙니다.
3. 모델이 틀린 답을 하면 학습 데이터에 답이 없어서다
항상 그런 것은 아닙니다. 확률적 생성 구조 때문에 문맥상 그럴듯한 잘못된 토큰 흐름이 만들어질 수도 있습니다.
처음 공부할 때 추천하는 연결
이 글 다음에는 아래 순서가 좋습니다.
즉, “모델이 어떻게 토큰을 뽑는가”를 이해한 뒤 “그 출력을 어떻게 더 잘 유도할 것인가”로 넘어가는 흐름이 자연스럽습니다.
FAQ
Q. 다음 단어 예측이면 왜 긴 설명도 가능한가요?
짧은 예측을 매우 많이 이어 붙이면 긴 문장과 문단이 만들어질 수 있습니다.
Q. 토큰은 단어와 완전히 같은가요?
아닙니다. 단어 일부, 구두점, 공백이 포함된 조각일 수도 있습니다.
Q. 이 원리를 알면 프롬프트도 더 잘 쓰게 되나요?
그렇습니다. 모델이 문맥에 따라 다음 토큰 확률을 바꾼다는 점을 이해하면 프롬프트 설계 감각이 훨씬 좋아집니다.
Read Next
- 출력 품질을 어떻게 유도하는지 궁금하다면 프롬프트 엔지니어링 가이드를 이어서 읽어보세요.
- 모델이 외부 지식을 더 잘 찾게 만드는 구조는 RAG 가이드에서 이어집니다.
심사 대기 중에는 광고 대신 관련 가이드를 먼저 보여줍니다.
먼저 읽어볼 가이드
검색 유입이 많은 핵심 글부터 이어서 보세요.
- 미들웨어 트러블슈팅 가이드: Redis vs RabbitMQ vs Kafka 개발자를 위한 미들웨어 트러블슈팅 허브 글입니다. Redis, RabbitMQ, Kafka 중 어떤 증상부터 먼저 봐야 하는지와 어떤 문제 패턴이 각 시스템에 가까운지 정리합니다.
- Kubernetes CrashLoopBackOff: 먼저 볼 것들 startup failure, probe, config, resource limit 관점에서 CrashLoopBackOff를 어떻게 나눠서 봐야 하는지 정리한 가이드입니다.
- Kafka consumer lag가 계속 늘 때: 트러블슈팅 가이드 Kafka consumer lag가 계속 늘어날 때 무엇부터 봐야 하는지 정리합니다. poll 주기, 처리 속도, rebalance, consumer 설정까지 실전 기준으로 다룹니다.
- Kafka Rebalancing Too Often 가이드 Kafka consumer group에서 rebalance가 너무 자주 일어날 때 membership flapping, poll timing, protocol, assignment churn을 어떤 순서로 봐야 하는지 설명하는 실전 가이드입니다.
- Docker container가 계속 재시작될 때: 먼저 확인할 것들 exit code, command failure, environment mistake, health check 관점에서 Docker restart loop를 푸는 실전 가이드입니다.
심사 대기 중에는 광고 대신 관련 가이드를 먼저 보여줍니다.