
대규모 언어 모델(LLM)이 실제로 텍스트를 생성하는 방법
요약
LLM이 텍스트를 생성하는 근본적인 메커니즘인 토큰화와 트랜스포머의 작동 원리를 설명합니다. 텍스트가 토큰으로 분절되는 과정과 셀프 어텐션을 통한 문맥 파악 과정을 다룹니다.
핵심 포인트
- 텍스트는 BPE 알고리즘을 통해 토큰 단위로 분절되어 처리됩니다.
- 컨텍스트 제한, 지연 시간, 비용은 모두 토큰 단위로 결정됩니다.
- 트랜스포머의 핵심은 셀프 어텐션을 통한 문맥 구축입니다.
- 토큰 ID는 임베딩 벡터로 변환되어 모델 레이어를 통과합니다.
AI 에이전트가 수행하는 모든 작업 — 코드 작성, 고객 지원 티켓 답변, 웹 브라우징 — 은 결국 단 하나의 연산, 즉 다음 토큰(token)을 예측하는 언어 모델(language model)로 귀결됩니다. 이 메커니즘 하나와 그 한계를 이해하면, 전체 "AI 에이전트" 스택은 마법이 아닌 엔지니어링으로 다가오기 시작할 것입니다.
아무것도 없는 상태에서부터 하나씩 구축해 봅시다.
1. 텍스트는 토큰이 됩니다

모델은 문자를 결코 직접 보지 않습니다. 프롬프트(prompt)에 가장 먼저 일어나는 일은 토큰화 (tokenization) 입니다. 즉, 텍스트가 토큰 (tokens) 으로 잘게 쪼개지는데, 이는 Byte-Pair Encoding (BPE)라고 불리는 알고리즘에 의해 생성되는 하위 단어 조각(sub-word chunks)입니다. 토큰은 대략 영어 단어의 3/4 정도(약 4글자)입니다. "the"와 같은 흔한 단어는 하나의 토큰이지만, "unbelievable"은 세 개의 토큰(un / believ / able)이 될 수 있습니다. 각 토큰은 수만 개의 항목으로 구성된 고정된 어휘 사전(vocabulary) 내의 정수 ID로 매핑됩니다.
왜 이것을 알아야 할까요? 이후의 모든 과정은 단어가 아닌 토큰 단위로 계산되고 비용이 청구되기 때문입니다. 컨텍스트 제한(context limits), 지연 시간(latency), 그리고 비용은 모두 토큰 단위로 산정됩니다. 누군가 모델이 "200K 컨텍스트 윈도우 (context window)"를 가지고 있다고 말할 때, 그것은 토큰을 의미합니다.
2. 트랜스포머(Transformer)는 어텐션(attention)을 통해 모든 것을 한 번에 읽습니다

토큰 ID는 임베딩 벡터 (embedding vectors) (숫자 리스트)가 되어 트랜스포머(transformer) 레이어 스택을 통해 흐릅니다. 각 레이어의 엔진은 셀프 어텐션 (self-attention) 이며, 이것이 현대 AI를 작동하게 만든 핵심 아이디어입니다.
셀프 어텐션은 모든 토큰이 문맥을 구축하기 위해 다른 모든 토큰을 살펴볼 수 있게 해줍니다. 예를 들어, 대명사 "it"이 가리키는 명사를 찾아 연결하는 식입니다. 기계적으로는, 각 토큰은 세 가지 벡터로 투영(projected)됩니다:
- Query ("내가 무엇을 찾고 있는가?"),
- Key ("내가 무엇을 제공할 수 있는가?"),
- Value ("내가 주목(attend)받았을 때 무엇을 기여하는가?").
한 토큰이 다른 토큰에 대해 갖는 어텐션(attention)은 해당 토큰의 **Query와 상대방의 Key 사이의 내적(dot product)**이며, 가중치가 양수이고 합이 1이 되도록 소프트맥스(softmax)를 통해 압축됩니다. 각 토큰의 출력값은 Value 벡터들의 가중치 혼합(weighted blend)입니다. 이 과정을 병렬로 여러 번 수행하면 — 오리지널 트랜스포머(Transformer)는 **8개의 어텐션 헤드(attention heads)**를 사용했습니다 — 그 결과들을 연결(concatenate)합니다. 어텐션에는 내재된 순서 개념이 없기 때문에, 모델이 단어 순서를 알 수 있도록 **위치 인코딩 (positional encoding)**이 추가됩니다.
업계 전체의 형상을 결정짓는 핵심적인 문제는 다음과 같습니다: 어텐션은 모든 토큰을 다른 모든 토큰과 비교하므로, n개의 토큰은 n²개의 관계를 생성합니다. 이러한 이차적 비용(quadratic cost)이 컨텍스트 윈도우(context window)가 유한하고, 비용이 많이 들며, 채워질수록 성능이 저하되는 근본적인 이유입니다.
3. 한 번에 하나의 토큰을 생성합니다

LLM은 **자기회귀적 (autoregressive)**입니다. 마지막 레이어는 어휘 사전(vocabulary)에 있는 모든 토큰에 대한 원시 점수인 **로짓 벡터 (logit vector)**를 생성하며, 소프트맥스(softmax)는 이를 "다음 토큰"에 대한 확률 분포로 변환합니다. 모델은 그중 하나를 선택하여 입력값에 추가하고, 이 과정을 반복합니다. 이 루프가 바로 텍스트 생성입니다.
그렇다면 모델은 어떻게 "선택"할까요? 바로 샘플링 (sampling) 조절 장치를 통해서입니다:
- **탐욕적 디코딩 (Greedy decoding)**은 항상 가장 확률이 높은 단일 토큰을 선택합니다. 결정론적(Deterministic)이지만, 반복적일 수 있습니다.
- **온도 (Temperature)**는 확률 분포를 날카롭게 만들거나 완만하게 만듭니다. 낮은 온도는 집중적이고 반복적인 결과를, 높은 온도는 다양하지만 일관성이 깨질 위험이 있는 결과를 만듭니다.
- **Top-p (nucleus) 샘플링 (sampling)**은 확률의 합이
p가 되는 가장 작은 토큰 집합에서만 샘플링합니다. 이는 각 단계에서 모델의 확신도에 따라 적응하므로, 일반적으로 top-k보다 선호됩니다. - 반복 페널티 (Repetition penalty) (~1.2–1.5)는 루프를 끊기 위해 모델이 이미 생성한 토큰의 가중치를 낮춥니다.
4. 모델이 환각 (hallucinate)을 일으키는 이유

사람들이 불안하게 느끼는 부분은 바로 이것입니다: 모델의 목표는 진실이 아니라, 그럴듯한 다음 토큰 (plausible next tokens)을 생성하는 것입니다. 모델은 내장된 데이터베이스도 없고 접지 (grounding) 단계도 없습니다. 사실 관계가 부족할 때도 모델은 가장 그럴듯하게 들리는 이어지는 내용을 매우 자신 있게 생성합니다.
환각 (Hallucination)은 패치를 기다리는 버그가 아니라, 메커니즘 자체의 특성입니다. 그리고 바로 이 점 때문에 나머지 스택들이 존재하는 것입니다. 검색 증강 생성 (RAG), 도구 사용 (tool use), 그리고 접지 (grounding)는 모두 동일한 역할을 수행합니다: 모델의 컨텍스트 (context) 안에 실제 사실을 공급하여
모든 토큰에는 기회비용이 있습니다. 컨텍스트 창이 채워질수록 정확도가
저하된다는 점을 상기하십시오. 더 많은 토큰은 그 안에서의 검색(retrieval) 성능을 악화시킵니다. 이를 때때로 "컨텍스트 부패 (context rot)"라고 부르며, 그 이유는 n²의 어텐션 (attention) 비용 때문입니다.
중간에서의 상실 (Lost in the middle). 잘 알려진 2023년 연구 ("Lost in the Middle")에 따르면, 모델은 컨텍스트의
_시작과 끝_에 있는 정보에는 가장 잘 집중하지만,
_중간_에 있는 정보에는 가장 낮게 집중하여 U자형 정확도 곡선을 생성한다는 것이 밝혀졌습니다. 이는 긴 컨텍스트를 위해 명시적으로 설계된 모델에서도 마찬가지입니다. 단순히 관련 구절을 중간으로 옮기는 것만으로도, 내용의 단 한 단어도 바꾸지 않고 정답의 질을 떨어뜨릴 수 있습니다.
기억해야 할 단 하나의 아이디어
LLM은 고정된 어텐션 예산 (attention budget)을 가진 상태 비저장 (stateless) 방식의 다음 토큰 예측기 (next-token predictor)입니다. 메모리 (memory), 도구 (tools), 에이전트 (agents), RAG, 그리고 캐싱 (caching)은 모두 이 상태 비저장 코어 주변에 결합된 장치들입니다. 즉, 모델에 상태 (state), 사실 (facts), 행동 (actions), 그리고 효율성을 부여하기 위한 것입니다.
이런 관점으로 바라보기 시작하면, "에이전트 (agents)"는 더 이상 신비로운 새로운 종(species)이 아닙니다. 그것들은 매우 뛰어난 자동 완성 (autocomplete) 기능 주위를 감싸고 있는 제어 루프 (control loop)일 뿐입니다. 다음 기사에서는 그 루프를 직접 구축해 보겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기