
LLM API 호출 시 발생하는 과정
요약
LLM API 호출 시 발생하는 인프라 계층과 내부 처리 과정을 상세히 설명합니다. API 게이트웨이부터 로드 밸런싱, 토큰화, 모델 라우팅, 그리고 핵심인 추론(Prefill/Decode) 단계까지의 흐름을 다룹니다.
핵심 포인트
- API 호출은 게이트웨이, 로드 밸런서, 토큰화 등 14개 이상의 계층을 거침
- 추론 단계(Prefill 및 Decode)가 전체 지연 시간의 약 95%를 차지함
- KV 캐시와 스트리밍 기술은 추론 효율성과 사용자 경험을 위해 필수적임
- H100 등 고성능 GPU와 텐서 병렬화 기술이 대규모 연산을 지원함
LLM API 호출에서 "전송"을 누릅니다.
약 400밀리초(milliseconds) 후 응답을 받게 됩니다.
그 사이에 어떤 일이 일어났는지 궁금한 적이 있나요?
14개 이상의 인프라 계층(infrastructure layers). 수십억 번의 행렬 곱셈(matrix multiplications). 시간당 수천 달러의 GPU 연산 비용.
이는 OpenAI, Anthropic, Google 등 모든 주요 제공업체에 적용됩니다.
전체 여정은 다음과 같습니다:
1단계: API 게이트웨이 (API Gateway, ~5ms)
당신의 요청은 모델로 바로 전달되지 않습니다.
→ TLS 종료 (TLS termination)
→ API 키 검증 (API key validation)
→ Rate limiter를 통한 분당 토큰 수(tokens-per-minute) 및 분당 요청 수(requests-per-minute) 확인
→ 요청 스키마 검증 (Request schema validation)
→ 과금 측정(Billing meter) 시작
가끔 발생하는 429 에러(429 error)는 바로 여기서 처리됩니다.
2단계: 로드 밸런서 (Load Balancer, ~2ms)
당신의 요청은 여러 GPU 클러스터 중 하나로 라우팅됩니다.
→ 가장 가까운 데이터 센터로의 지리적 라우팅 (Geographic routing)
→ 최소 연결 알고리즘 (Least-connections algorithm)이 클러스터 선택
→ 지속적인 상태 확인 (Health checks) 실행
동일한 호출 사이에서도 지연 시간(latency)이 차이 나는 이유입니다.
3단계: 토큰화 (Tokenization, ~3ms)
텍스트가 숫자로 변환됩니다.
→ 제공업체에 따라 BPE, SentencePiece 또는 WordPiece 사용
→ 각 토큰은 대략 4글자 정도임
→ 여기서 컨텍스트 창 제한 (Context window limit) 확인
토큰 수가 곧 비용입니다. 여기서 측정기가 돌아갑니다.
4단계: 모델 라우터 (Model Router, ~1ms)
아무도 이야기하지 않는 계층입니다.
→ 대형 모델 요청은 무거운 멀티 GPU 클러스터로 라우팅
→ 소형 모델 요청은 최적화된 싱글 GPU 클러스터로 라우팅
→ 임베딩 (Embedding) 요청은 전용 클러스터로 라우팅
→ 트래픽 피크 시 큐 관리 (Queue management)
여러 모델을 보유한 모든 제공업체에는 이 계층이 있습니다.
5단계: 추론 (Inference, ~300–800ms)
이 단계가 대기 시간의 95%를 차지합니다. 두 단계로 나뉩니다:
Prefill (프리필):
→ 모든 입력 토큰이 병렬로 처리됨
→ Query 및 Key 행렬 전체에서 어텐션 점수 (Attention scores) 계산
→ KV 캐시 (KV Cache)가 생성되어 GPU HBM 메모리에 저장됨
→ 긴 프롬프트의 첫 번째 토큰 생성 시간 (time-to-first-token)이 더 긴 이유임
Decode (디코드):
→ 순전파 (forward pass)당 하나의 토큰 생성
→ 과거 토큰을 재계산하지 않도록 KV 캐시 재사용
→ 이 단계에서 Temperature 및 top_p 샘플링 (sampling) 수행
→ 스트리밍 (streaming)이 켜져 있으면 각 토큰이 즉시 전송됨
이것이 스트리밍 (streaming)이 존재하는 근본적인 이유입니다. 토큰은 한 번에 하나씩 생성되기 때문입니다.
이 과정을 수행하는 하드웨어:
→ 80GB 이상의 HBM을 탑재한 A100 / H100 / H200 GPU
→ 텐서 병렬화 (tensor parallelism)를 통해 여러 GPU에 분산된 모델 가중치 (model weights)
→ 처리량 (throughput)을 높이기 위해 여러 사용자 요청을 하나로 묶는 배치 (batching)
→ 메모리 효율성을 위한 Flash Attention 및 GQA (Grouped Query Attention)
이것이 GPU 연산 비용이 시간당 2~3달러인 이유입니다.
6단계: 후처리 (Post-Processing) (~5ms)
→ 토큰 ID (Token IDs)를 읽을 수 있는 텍스트로 다시 변환
→ 출력값에 대한 안전 분류기 (safety classifier) 실행
→ 중지 시퀀스 (stop sequences) 확인
→ 응답을 JSON 형식으로 패키징
7단계: 과금 및 응답 (Billing & Response)
→ 입력 토큰 수 × 1K당 가격
→ 출력 토큰 수 × 1K당 가격 (보통 3~5배 더 비쌈)
→ 현재 대부분의 제공업체에서 프롬프트 캐싱 (prompt caching)을 통해 비용 절감
이 중 어느 것도 특정 제공업체에만 국한된 것이 아닙니다.
이것이 OpenAI, Anthropic, Google 또는 그 외 누구를 호출하든 관계없이, 대규모 LLM 추론 (inference)이 작동하는 방식입니다.
[IMG:https://pbs.twimg.com/media/HOOsRw8bIAAk84Z.jpg]
AI 자동 생성 콘텐츠
본 콘텐츠는 X @nainsidwiv50980 (자동 발견)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기