이 문서는 자라는 중인 질문입니다. 아직 증거를 모으고 있으며, 내용이 바뀔 수 있습니다.
한 줄로 말하면
프리필·디코드 분리는 언어모델 추론을 “입력을 읽는 일”과 “답을 한 토큰씩 쓰는 일”로 나눠, 두 일을 서로 다른 GPU 묶음에서 처리하게 하는 구조야.
비유로 이해하기
식당으로 비유하면 프리필은 손님 주문서를 한 번에 읽고 조리 준비를 끝내는 일에 가깝고, 디코드는 완성된 음식을 한 접시씩 내보내는 일에 가까워. 긴 주문서 하나가 들어오면 준비대가 오래 붙잡히고, 그 사이 이미 음식이 나와야 할 손님도 기다릴 수 있어.
프리필·디코드 분리는 준비대와 배식대를 분리하는 방식이야. 긴 주문서는 준비대에서 오래 처리하고, 접시를 계속 내보내는 일은 배식대가 맡는다.
여기까지가 이해를 돕기 위한 비유야. 실제 언어모델 추론에서는 준비대와 배식대 사이에 사람 말을 넘기는 게 아니라, 앞선 토큰에서 만든 KV 캐시를 넘겨야 해.
정확한 정의
언어모델 추론에는 크게 두 단계가 있어. 프리필은 사용자의 입력 토큰을 한꺼번에 읽어 첫 답을 만들 준비를 하는 단계야. 디코드는 그 다음부터 답을 한 토큰씩 생성하는 단계야.
두 단계는 병목이 다르다. AWS 공지는 프리필을 연산에 묶이는 단계, 디코드를 메모리 대역폭에 묶이는 단계로 나눠 설명해.1 그래서 둘을 같은 GPU에서 섞어 돌리면, 긴 문맥 요청 하나가 들어왔을 때 다른 요청의 토큰 생성까지 밀릴 수 있어.1
프리필·디코드 분리는 이 두 단계를 전용 GPU 풀로 나누고, 프리필이 만든 KV 캐시를 디코드 쪽으로 넘긴다. AWS의 SageMaker HyperPod 구현은 이 전송을 Elastic Fabric Adapter와 GPU-Direct RDMA로 처리한다고 설명해.1
flowchart LR A["긴 입력 요청"] --> B["프리필 GPU 풀<br/>입력 토큰을 한꺼번에 읽음"] B --> C["KV 캐시 전송"] C --> D["디코드 GPU 풀<br/>답을 한 토큰씩 생성"] E["짧은 요청"] --> F["라우터"] F -->|분리 이득이 클 때| B F -->|전송 비용이 더 클 때| D
왜 중요한가
추론 비용은 GPU 가격만으로 정해지지 않아. 정해진 지연시간 안에서 얼마나 많은 요청을 처리하고, 첫 토큰과 다음 토큰을 얼마나 안정적으로 내보내느냐가 같이 중요해.
프리필과 디코드를 분리하면 운영자가 두 용량을 따로 맞출 수 있어. 입력이 긴 업무가 많으면 프리필 쪽을 더 키우고, 짧은 요청에서 긴 답을 많이 내보내는 업무라면 디코드 쪽을 더 봐야 한다. AWS는 이 방식이 지속적인 동시 요청 아래에서 토큰당 지연시간을 더 일정하게 만들고, 엄격한 지연시간 조건에서 goodput을 높이며, 입력·출력 분포에 맞춰 두 용량을 독립적으로 늘릴 수 있게 한다고 설명해.1
이 개념은 AI 토큰이 데이터센터를 지나가는 경로와도 맞닿아 있어. 프리필은 긴 문맥을 빨리 읽어 첫 응답까지 도달하는 문제에 가깝고, 디코드는 커지는 캐시와 모델 가중치를 계속 읽으며 토큰을 밀어내는 문제에 가깝다. 같은 “추론” 안에서도 돈이 새는 위치가 다르다는 뜻이야.
실제 예시
AWS는 2026년 7월 SageMaker HyperPod에서 Disaggregated Prefill and Decode를 지원한다고 공지했어. 이 기능은 HyperPod의 EKS orchestrator 클러스터와 EFA 지원 인스턴스에서 쓸 수 있고, InferenceEndpointConfig custom resource에 pdSpec을 더해 켠다고 설명돼.1
AWS 구현에는 라우터도 붙어 있어. 긴 문맥 요청은 분리 경로로 보내고, 짧은 프롬프트는 바로 디코더로 보내 전송 비용을 피한다는 설명이야.1 그러니까 분리 자체가 항상 이득이라는 뜻은 아니고, 요청 길이와 캐시 전송 비용을 보고 어느 길로 보낼지 고르는 문제가 같이 붙는다.
AWS는 이 기능이 기존 KV cache offloading, intelligent routing과도 함께 쓸 수 있다고 설명해.1 Amazon SageMaker AI가 모델 개발 도구를 넘어 추론 endpoint의 운영 스케줄링까지 제품 안으로 끌어들이는 장면으로 볼 수 있어.
헷갈리지 말아야 할 점
- 프리필·디코드 분리는 모델 품질 개선이 아니야. 같은 모델을 더 안정적으로, 더 맞는 자원 배치로 서빙하려는 추론 운영 구조야.
- KV 캐시 전송은 공짜가 아니야. 프리필과 디코드를 나누면 두 GPU 풀 사이에 캐시를 넘겨야 해. 짧은 요청은 이 전송 비용이 분리 이득보다 클 수 있어.
- “GPU를 더 많이 쓴다”와 같은 말도 아니야. 핵심은 총량보다 배치야. 연산에 묶이는 단계와 메모리 대역폭에 묶이는 단계를 같은 비율로 늘리지 않아도 되게 만드는 구조지.
- SageMaker HyperPod만의 개념은 아니야. 이번 근거는 AWS 구현이지만, 개념 자체는 대형 언어모델 추론에서 프리필과 디코드의 병목이 다르다는 문제에서 나온다. 다른 엔진과 클라우드 구현은 별도 근거로 더 확인해야 해.
관련 문서
남은 질문들
- 프리필과 디코드를 나눴을 때 KV 캐시 전송 시간이 어느 길이의 요청부터 이득을 갉아먹을까?
- 긴 문맥 요청이 많은 업무와 짧은 채팅 요청이 많은 업무는 프리필 GPU 풀과 디코드 GPU 풀의 비율을 어떻게 다르게 잡아야 할까?
- EFA, InfiniBand, Ethernet 같은 네트워크 선택은 분리 추론의 비용과 지연시간을 얼마나 바꿀까?
- 프리필·디코드 분리와 KV cache offloading을 함께 쓰면 메모리 비용과 네트워크 비용은 어디서 맞바뀔까?
댓글