실행 프로그램과 확장
최종 업데이트
Continuous Batching과 단일 사용자 속도
완료된 요청의 빈자리에 새 요청을 넣어 계산을 이어가요.
연속 배칭은 완료된 요청을 처리 묶음에서 빼고 기다리는 새 요청을 빈 슬롯에 넣어 서버의 계산 자원을 계속 쓰는 방식이에요. 여러 사람의 총 처리량1이 늘 수 있지만, 개인의 첫 토큰2 대기·토큰 간격·완료 시간은 별도로 측정해야 해요.
공유 서버에서 한 사람은 긴 계약서 분석을 요청하고 다른 사람은 짧은 날짜 확인을 보낼 수 있어요. 답변 길이와 도착 시각이 다르면 고정 묶음은 먼저 끝난 요청의 슬롯을 비워 둘 수 있지만, 연속 배칭은 대기 중인 새 요청으로 자리를 채워요.
연속 배칭은 완료된 요청 자리를 다시 써요
고정 배치는 정해진 요청 묶음을 함께 실행해 짧은 응답이 먼저 끝나도 다른 요청이 끝날 때까지 그 자리가 빌 수 있어요. 연속 배칭은 완료된 요청을 빼고 대기 중인 요청을 넣어 GPU3 계산 자원을 계속 활용해요. 모델 가중치를 요청마다 복제하는 것이 아니라 같은 가중치를 여러 요청이 공유해 계산해요.
이 방식이 특히 보는 값은 동시에 온 요청이 서버에서 얼마나 꾸준히 처리되는지예요. 혼자 보내는 요청 하나는 배칭이 채울 다른 슬롯이 없으므로, 그때의 첫 토큰과 토큰 간격을 따로 확인해요.

합산 tok/s와 한 사람의 응답 시간을 구분해요
대시보드의 전체 tok/s는 동시에 생성된 여러 요청의 토큰을 더한 값일 수 있어요. 개인에게 중요한 값은 자기 요청의 첫 토큰까지 기다린 시간, 토큰이 이어지는 간격, 답이 끝날 때까지의 시간이에요. 전체 처리량이 높아져도 개별 질문은 큐에서 오래 기다리거나 토큰 간격이 늘 수 있어요.
속도 주장에 있는 합산 값이 누구의 시간을 나타내는지 확인해요. 서버가 처리한 전체 토큰 수는 운영 용량을 비교할 때 쓰고, 문서 앱의 응답 경험은 요청별 지연으로 봐요. 두 수치가 같은 비율로 함께 바뀌지는 않아요.

공유 가중치와 요청별 KV 캐시는 별개예요
여러 요청은 같은 모델 가중치를 공유해도 각자 입력 문맥, 생성한 출력, 이어갈 위치를 따로 유지해요. 이 상태를 위해 요청별 KV 캐시4가 필요해요. 동시 요청이 많아지거나 각 문서가 길어지면 캐시 메모리도 함께 늘 수 있으므로, 동시 한도와 문맥 한도를 무작정 키우면 안 돼요.
긴 문서의 프리필5이 들어오면 입력 계산도 GPU 자원을 써요. 진행 중인 디코드6와 계산 자원을 나눠 쓰면 토큰 간격이 길어질 수 있어요. 일부 런타임7은 긴 프리필을 나누어 스케줄링하지만 지원 여부와 정책은 구현·설정마다 달라요. Paged KV나 공통 접두사 캐시는 배치·캐시 사용을 개선할 수 있지만 물리 메모리를 더해 주지는 않아요.

단일 요청용 MTP·추측 디코딩이 배치에서도 켜지는지 확인해요
실제 도착 순서로 처리량과 사용자 대기를 시험해요
요청 하나로 기준을 만든 뒤 A의 긴 분석 중 B의 짧은 질문을 넣고, B가 끝나면 C의 요약이 합류하는 흐름을 재현해요. 도착 시각, 첫 토큰 대기, 토큰 간격, 완료 시각과 동시 요청 수를 기록하면 새 요청이 슬롯을 채울 때 각 사용자가 얼마나 기다렸는지 알 수 있어요.
요청이 한꺼번에 오거나 조금씩 이어지는 실제 앱 패턴도 시험하고, 평균 처리량뿐 아니라 오래 밀린 요청을 살펴요. 개인용이면 단일 응답을, 팀 공유 서버면 실제로 겹치는 요청의 처리량과 지연을 구매·운영 기준으로 삼아요. GPU 사용률이나 합산 tok/s 하나만으로 개인 답변이 빨라졌다고 결론 내리지 않아요.
용어 각주
처리량 — 일정 시간 동안 처리하거나 생성한 작업량입니다. 토큰/초, 요청/초처럼 단위를 함께 확인해야 비교할 수 있습니다.
본문으로 돌아가기토큰 — 모델이 입력이나 출력을 나누어 처리하는 단위입니다.
본문으로 돌아가기GPU — 많은 계산을 병렬로 처리하는 프로세서입니다. AI 모델 실행에서는 모델 계산을 맡습니다.
본문으로 돌아가기KV 캐시 — 어텐션에서 이전 토큰의 키·값을 저장해 다음 토큰 생성 때 재사용하는 메모리입니다. 문맥 길이와 배치 크기에 따라 용량이 달라집니다.
본문으로 돌아가기프리필 — LLM이 입력 프롬프트를 읽고 각 토큰의 내부 표현을 계산하는 단계입니다. 입력이 길수록 처리할 토큰이 많아집니다.
본문으로 돌아가기토큰 디코드 — 입력과 앞서 만든 답변을 바탕으로 다음 출력 토큰을 차례로 생성하는 단계입니다.
본문으로 돌아가기런타임 — 프로그램이 실행될 때 필요한 기능을 제공하는 소프트웨어 환경입니다. 로컬 AI에서는 모델을 실행하는 엔진을 가리키기도 합니다.
본문으로 돌아가기MTP — 한 번에 여러 미래 토큰을 예측하도록 학습하는 목표 또는 이를 수행하는 모델 구성입니다. 추측 디코딩에서는 이 예측을 후보 토큰으로 제안할 수 있습니다.
본문으로 돌아가기추측 디코딩 — 초안 모델·MTP 헤드·반복 문맥 조회가 출력 후보를 먼저 만들고, 본 모델이 후보를 검증해 확정하는 생성 기법입니다.
본문으로 돌아가기
자주 묻는 질문
- 이 글에서 가장 먼저 확인할 것은 무엇인가요?
- 연속 배칭은 완료된 요청을 처리 묶음에서 빼고 기다리는 새 요청을 빈 슬롯에 넣어 서버의 계산 자원을 계속 쓰는 방식이에요. 여러 사람의 총 처리량이 늘 수 있지만, 개인의 첫 토큰 대기·토큰 간격·완료 시간은 별도로 측정해야 해요.
- 필요한 메모리는 어느 정도인가요?
- 여러 요청은 같은 모델 가중치를 공유해도 각자 입력 문맥, 생성한 출력, 이어갈 위치를 따로 유지해요. 이 상태를 위해 요청별 KV 캐시가 필요해요. 동시 요청이 많아지거나 각 문서가 길어지면 캐시 메모리도 함께 늘 수 있으므로, 동시 한도와 문맥 한도를 무작정 키우면 안 돼요.
