LLM 서빙 · 배칭(연속 배칭)과 큐잉 · 퀴즈
퀴즈: 배칭
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
정적 배칭이 LLM 생성에서 비효율적인 이유는?
- 한 번에 묶는 배치 크기가 너무 작기 때문
- 가중치를 올릴 GPU 메모리가 부족하기 때문
- GPU 의 행렬 연산 자체가 느리기 때문
- 요청마다 출력 길이가 달라 가장 긴 요청이 끝날 때까지 다른 슬롯이 놀기 때문
연속 배칭의 핵심 동작은?
- 매 디코딩 반복마다 끝난 시퀀스를 빼고 대기 큐의 요청으로 슬롯을 채운다
- 한 번에 묶는 배치 크기를 크게 키운다
- 요청을 출력 길이별로 미리 분류한다
- GPU 를 여러 개 붙여 병렬로 돌린다
`max_num_seqs` 의 상한을 실질적으로 결정하는 자원은?
- 토크나이즈를 도는 CPU 코어 수
- KV 캐시에 쓸 수 있는 GPU 메모리
- 토큰을 나르는 네트워크 대역폭
- 모델을 올리는 디스크 읽기 속도
KV 캐시 부족으로 시퀀스가 선점(preempt)되면?
- 이미 만든 토큰은 남아 아무 비용 없다
- 문맥이 잘려 생성 정확도가 떨어진다
- 다시 큐로 가서 TTFT 만 나빠진다
- KV 캐시를 버리고 재계산하거나 스왑해야 해서 비싸다
프리픽스 캐싱의 효과가 큰 워크로드는?
- 긴 공통 시스템 프롬프트를 여러 요청이 공유하는 경우
- 프롬프트가 매번 완전히 다른 경우
- 출력이 짧은 경우
- 배치가 작은 경우
용량 계획의 올바른 순서는?
- 처리량을 최대화한 뒤 지연을 확인한다
- 동시성을 최대로 두고 GPU 를 늘린다
- TTFT SLO 를 먼저 정하고 그것을 만족하는 최대 동시성을 찾는다
- 평균 지연이 목표 안이면 된다고 본다