본문으로 건너뛰기

LLM의 다음 토큰이 만들어지는 과정

토큰 임베딩부터 Attention, KV cache, 다음 토큰 샘플링까지 LLM 순전파의 내부 흐름을 한 번에 연결합니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

이 글은 LLM이 입력 토큰을 임베딩 벡터로 바꾼 뒤 Attention과 Feed-forward network로 구성된 Transformer block을 여러 번 통과시켜 다음 토큰의 확률을 만드는 과정을 순서대로 연결합니다. Attention은 각 토큰의 Query와 앞선 토큰들의 Key를 비교하고 Softmax 가중치로 Value를 섞어 문맥 정보를 전달하며, Feed-forward network는 문맥이 반영된 각 토큰을 서로 독립적으로 변환합니다. 생성 중에는 이미 계산한 Key와 Value를 KV cache에 저장하므로 과거 토큰을 다시 계산하지 않고 새 토큰의 Query만 캐시와 비교할 수 있습니다. Prompt를 읽는 Prefill에서는 N개 토큰의 Attention 점수가 N×N 구조를 이루어 길이의 제곱에 비례하고, Decode에서는 한 번에 한 행씩 계산하지만 생성 토큰마다 반복되며, FlashAttention은 같은 결과를 전체 점수 행렬 없이 계산해 메모리 사용량을 선형으로 유지합니다.

섹션별 상세

01
LLM은 문자를 직접 처리하지 않고 텍스트를 토큰이라는 짧은 단위의 연속으로 바꾼 뒤 다음 토큰을 한 번에 하나씩 계산합니다. 각 입력 토큰은 어휘 행렬에서 임베딩 벡터를 조회하고, 같은 크기의 벡터가 여러 Transformer block을 지나며 문맥 정보를 더해 갑니다. 마지막 위치의 벡터만 어휘 전체에 대한 점수로 변환되므로, 순전파는 임베딩, block 스택, 다음 토큰 점수화라는 세 단계로 이어집니다.
토큰이 입력된 뒤 여러 처리 단계를 거쳐 다음 토큰으로 이어지는 순전파를 보석을 다듬는 생산 라인으로 표현한 그림입니다.
Diagram이미지는 하나의 토큰이 거친 원석처럼 시작해 여러 작업대를 지나며 다듬어진 뒤, 마지막 단계에서 읽히고 다음 단어로 기록되는 과정을 보여줍니다. 이는 입력 토큰의 임베딩, Transformer block 스택을 통한 반복적 벡터 변환, 최종 다음 토큰 예측이라는 글의 전체 흐름과 직접 연결됩니다.
입력 토큰들이 임베딩과 동일한 Transformer block 스택을 거쳐 마지막 위치에서 다음 토큰 확률로 변환되는 순전파 구조도입니다.
Diagram그림은 여러 Prompt 토큰이 EMBED table lookup을 거쳐 벡터가 되고, STACK OF N IDENTICAL BLOCKS를 통과한 뒤 마지막 벡터만 UNEMBED 단계로 들어가는 흐름을 나타냅니다. 출력 부분에서는 어휘 후보 중 “mat”의 확률 막대가 가장 높게 표시되어 최종 위치의 표현이 다음 토큰 분포를 만든다는 점을 시각화합니다.
02
Transformer block은 토큰 사이의 정보 교환을 담당하는 Attention과 각 토큰을 독립적으로 처리하는 Feed-forward network를 이 순서로 실행합니다. Attention이 앞선 토큰의 정보를 Query·Key·Value 계산과 Softmax 가중 평균으로 모은 뒤, Feed-forward network가 문맥이 반영된 벡터를 두 개의 큰 가중치 행렬과 비선형 함수로 변환합니다. Attention은 위치 간 상호작용을 만들고 Feed-forward network는 대부분의 가중치와 토큰별 계산을 담당하므로 두 연산의 역할과 비용이 구분됩니다.
Transformer block 안에서 Attention이 토큰 벡터를 섞고 Feed-forward가 각 토큰을 독립적으로 처리하는 두 단계 구조도입니다.
Diagram왼쪽의 네 토큰 벡터는 Attention 영역에서 서로 교차하는 연결을 통해 위치 간 정보를 교환합니다. 이후 Feed-forward 영역에서는 네 개의 독립적인 경로가 서로 섞이지 않은 채 각 벡터를 처리하므로, Attention의 상호작용과 Feed-forward network의 위치별 계산이 대비됩니다.
03
Attention에서 각 토큰은 자신의 Query를 앞선 모든 토큰의 Key와 내적해 관련성 점수를 만들고, Softmax로 양수의 합계 1인 가중치로 바꿉니다. 각 Value에 이 가중치를 곱해 더한 결과가 해당 토큰의 새 벡터가 되며, Causal mask가 미래 토큰을 보지 못하게 제한합니다. 토큰의 Key와 Value는 한 번 계산되면 시퀀스가 길어져도 바뀌지 않으므로 KV cache에 보관할 수 있고, 이후 생성에서는 새 Query와 저장된 Key만 비교합니다.
Query가 책의 Key와 비교해 관련된 책을 고르고 Value에 해당하는 내용을 새 페이지로 합치는 Attention 비유입니다.
Diagram책장 앞의 인물이 Query에 해당하는 쪽지를 책등의 Key와 대조하고, 일치도가 높은 책을 펼쳐 내용을 옮기는 장면입니다. 이는 각 토큰의 Query가 다른 토큰의 Key를 점수화한 뒤 Softmax 가중치로 Value 벡터를 섞는 Attention의 세 요소를 시각적으로 대응시킵니다.
04
모델은 여러 Attention head를 병렬로 실행해 서로 다른 토큰 관계를 추적하고, 각 block의 결과를 다음 block으로 넘깁니다. 기본 구조에서는 모든 block이 Attention 뒤에 Feed-forward network를 배치하지만, 학습된 가중치가 block마다 달라 각 단계가 벡터를 조금씩 다르게 수정합니다. 일반적인 현재 LLM은 대략 32개에서 120개 사이의 block을 사용하는 경우가 있으며, 잔차 연결이 이전 단계의 정보를 보존해 반복적인 변환이 누적되도록 합니다.
05
Prompt를 읽는 Prefill에서는 N개 Query가 최대 N개 Key를 비교하므로 Attention 점수 구조가 N×N이 되고, 입력 길이를 두 배로 늘리면 해당 작업량이 네 배가 됩니다. Decode에서는 새 토큰 하나의 Query가 지금까지 저장된 모든 Key와 비교하므로 한 단계는 한 행에 해당하지만, 생성 토큰마다 같은 비용을 다시 지불합니다. FlashAttention은 전체 N×N 점수 격자를 메모리에 만들지 않고 Key와 Value를 타일 단위로 스트리밍하면서 동일한 가중 평균을 계산해 산술량은 제곱에 비례하게 유지하고 메모리 사용량은 선형으로 줄입니다.
Prefill의 N×N Attention 계산과 Decode의 한 행 단위 계산을 나란히 비교한 도식입니다.
Diagram왼쪽 Prefill 패널은 N개의 Query와 N개의 Key가 격자를 이루며 Prompt 길이가 두 배가 되면 작업량이 네 배가 되는 구조를 나타냅니다. 오른쪽 Decode 패널은 한 Query가 저장된 모든 Key와 비교하는 한 행으로 표현되어 단계별 계산은 선형이지만 생성 토큰마다 반복된다는 차이를 보여줍니다.
기본 Transformer 구조에 위치 정보, 캐시 절약, 추가 용량, 효율적 혼합을 위한 여러 개선 요소가 부착된 모습을 자전거로 표현한 그림입니다.
Diagram자전거에 나침반, 짐받이와 가방, 기어 묶음이 추가된 모습은 기본 Transformer 골격에 rotary position encodings, Grouped-query attention, Mixture-of-experts, 선형 또는 혼합 Attention 같은 변형이 더해지는 상황을 비유합니다. 그림은 이러한 개선이 Attention 뒤 Feed-forward를 반복하는 기본 구조를 없애기보다 위치 정보와 메모리·계산 효율을 보완한다는 글의 결론과 연결됩니다.

용어 해설

순전파(Forward pass)
모델이 입력 토큰을 벡터로 바꾸고 Transformer block을 차례로 통과시킨 뒤 다음 토큰의 확률을 계산하는 전체 실행 과정입니다. 출력 토큰 하나마다 한 번 수행되며, 생성 단계에서는 새 토큰을 입력으로 다시 순전파를 실행합니다.
임베딩(Embedding)
어휘에 있는 각 토큰을 고정된 크기의 숫자 벡터로 바꾸는 표현입니다. 모델은 토큰마다 학습된 행을 조회해 벡터를 얻고, 이후 Transformer block은 텍스트가 아닌 이 벡터를 계속 수정합니다.
소프트맥스(Softmax)
여러 원시 점수를 양수인 가중치 또는 확률로 변환해 합계가 1이 되게 하는 함수입니다. Attention에서는 어떤 토큰의 정보를 얼마나 반영할지 정하고, 마지막 출력층에서는 각 후보 토큰의 확률 분포를 만듭니다.
어텐션 헤드(Attention Head)
하나의 Transformer block 안에서 독립적인 Query·Key·Value 변환을 수행하는 병렬 Attention 단위입니다. 여러 헤드가 서로 다른 토큰 관계를 학습한 뒤 결과를 합치며, 각 block과 헤드의 Key·Value가 KV cache 메모리를 차지합니다.
Grouped-query attention
여러 Query 헤드가 하나의 Key·Value 묶음을 공유하도록 구성하는 Attention 변형입니다. 헤드마다 Key와 Value를 따로 저장하는 구조보다 KV cache 크기를 줄이면서 품질 저하를 작게 유지하는 방향으로 사용됩니다.
Mixture-of-experts
하나의 Feed-forward network 대신 여러 전문가 네트워크를 두고 각 토큰을 일부 전문가에만 라우팅하는 구조입니다. 전체 파라미터 수는 크게 유지하면서도 개별 토큰이 실제로 사용하는 계산량을 제한하는 방식입니다.

기술

  • Transformer
  • Attention
  • Feed-forward network
  • MLP
  • Softmax
  • KV cache
  • FlashAttention
  • rotary position encodings
  • Grouped-query attention
  • Mixture-of-experts

활용 사례

  • LLM 추론 과정 이해
  • 긴 Prompt의 처리 비용 분석
  • KV cache 메모리 구조 이해
  • Prefill과 Decode 성능 구분
  • Attention 최적화 방식 비교
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 09. 09.수집 2026. 09. 09.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.