연속 배치
연속 일괄 처리는 전체 고정 일괄 처리가 완료될 때까지 기다리는 대신 실행 중인 일괄 처리에서 토큰별로 요청을 추가하고 제거하는 제공 기술입니다.
개요
It keeps the GPU constantly busy and sharply increases how many users an AI model can serve at once.
심층 분석
GPU는 많은 요청을 일괄 처리할 때 가장 빠릅니다. 순진한 접근 방식인 정적 일괄 처리는 고정된 요청 세트를 그룹화하고 모두 실행하여 완료한 후 다음 일괄 처리를 시작합니다. 문제: 언어 모델 출력의 길이는 매우 다양하므로 짧은 요청은 일찍 완료되고 해당 슬롯은 배치가 가장 긴 요청을 기다리는 동안 유휴 상태가 되어 GPU 주기를 낭비하고 새로운 도착이 지연됩니다. 연속 일괄 처리(기내 또는 반복 수준 일괄 처리라고도 하며 Orca 문서에서 대중화되고 vLLM, TensorRT-LLM 및 TGI에서 사용됨)는 단일 디코딩 단계의 세분성에서 작동합니다. 각 토큰이 생성된 후 완료된 시퀀스는 배치를 종료하고 새로 도착한 요청은 즉시 슬롯에 추가됩니다. 이는 배치를 가득 채우고 GPU를 포화 상태로 유지하여 대기 사용자의 대기 시간을 낮추고 처리량을 여러 배로 높이는 경우가 많습니다.
기술적 통찰력
주요 변화는 전체 요청을 일괄 처리하는 것에서 개별 반복을 일괄 처리하는 것입니다. 모든 디코딩 단계에서 스케줄러는 활성 세트를 구축합니다. 즉, 모든 진행 중인 시퀀스에 대해 하나의 정방향 패스를 실행하고, 각각 하나의 토큰을 내보내고, 시퀀스 끝 토큰 또는 길이 제한에 도달한 모든 항목을 제거하고, 해제된 슬롯을 채우기 위해 대기 중인 요청을 허용합니다. 이를 PagedAttention의 유연한 KV 메모리와 결합하면 각 시퀀스의 캐시가 독립적인 블록에 있기 때문에 비행 중에 시퀀스를 삽입하고 제거하는 비용이 저렴해집니다.
전략적 영향
비용 및 예산
아키텍처 결정은 수년 동안 성능과 운영 비용을 결정합니다.
더 명확한 결정들
기술 교육은 팀이 최신 스택뿐만 아니라 올바른 스택을 선택하는 데 도움이 됩니다.
품질 관리
더 나은 엔지니어링 선택은 생산 시 신뢰성 사고를 줄입니다.
연속 배치의 미래
이제 연속 일괄 처리가 프로덕션 LLM 서비스의 표준입니다. 향후 작업에서는 컴퓨팅 집약적인 사전 채우기 단계를 가벼운 디코드 단계(분할)에서 분리하고, 디코딩 지연을 방지하기 위한 청크 사전 채우기, 혼합 작업 부하에 대한 우선순위 및 공정성 정책, 예측 디코딩과의 긴밀한 결합을 통해 단계별로 여러 초안 토큰을 검증합니다. 목표는 개별 응답 대기 시간을 낮고 예측 가능하게 유지하면서 GPU당 초당 최대 토큰을 압축하는 것입니다.
실제 구현
새로 도착한 사용자 메시지를 다음 배치를 위해 대기열에 넣지 않고 즉시 실행 중인 배치에 허용하는 채팅 API
배치 중간에 완성된 짧은 답변을 제거하고 슬롯을 다시 채워 GPU가 오랜 세대를 기다리며 유휴 상태가 되지 않도록 합니다.
지속적인 일괄 처리와 vLLM의 PagedAttention을 결합하여 각 디코딩 단계에서 시퀀스를 저렴하게 삽입 및 제거
배치를 전체 상태로 유지하여 폭주하는 가변 길이 트래픽에서 초당 높은 토큰을 유지하는 코드 완성 서비스
위험 및 가드레일
하나의 벤치마크를 최적화하면 더 광범위한 시스템 약점을 숨길 수 있습니다.
인프라 및 유지 관리 비용은 종종 과소평가됩니다.
시스템이 더욱 복잡해짐에 따라 보안 및 관찰 가능성의 격차가 커질 수 있습니다.
구현 로드맵
구현하기 전에 지연 시간, 품질, 비용 목표를 정의하세요.
현실적인 로드 및 데이터 조건에서 벤치마킹합니다.
오류, 드리프트 및 사용자 영향에 대한 계측기 모니터링.
확장하기 전에 롤백 및 사고 대응 경로를 준비하세요.
계속 탐색하세요
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Continuous Batching quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
다음 가이드
ML 워크로드를 위한 Kubernetes
자주 묻는 질문
What is Continuous Batching?
연속 일괄 처리는 전체 고정 일괄 처리가 완료될 때까지 기다리는 대신 실행 중인 일괄 처리에서 토큰별로 요청을 추가하고 제거하는 제공 기술입니다. 이는 GPU를 지속적으로 바쁘게 유지하고 AI 모델이 한 번에 서비스를 제공할 수 있는 사용자 수를 급격히 증가시킵니다.
LLM 제공을 위한 정적(고정) 일괄 처리의 주요 약점은 무엇입니까?
출력 길이가 다양하기 때문에 완료된 시퀀스는 가장 느린 시퀀스가 완료될 때까지 유휴 상태로 유지되어 GPU 주기를 낭비하고 새 요청이 지연됩니다.
지속적인 일괄 처리는 요청을 어떤 단위로 추가하고 제거합니까?
지속적인(반복 수준) 일괄 처리는 모든 단일 디코드 단계 후에 활성 세트를 업데이트하므로 전체 요청이 아닌 토큰별로 작동합니다.
연속 일괄 처리에서 시퀀스가 중간 일괄 처리를 완료하면 해당 슬롯은 어떻게 되나요?
완료된 시퀀스는 제거되고 대기 중인 요청은 즉시 슬롯에 추가되어 배치가 가득 차고 GPU가 바쁜 상태로 유지됩니다.
시퀀스 삽입/제거를 저렴하게 만들기 위해 연속 일괄 처리와 자연스럽게 결합되는 기술은 무엇입니까?
PagedAttention은 각 시퀀스의 KV 캐시를 독립적인 블록에 저장하므로 비행 중에 시퀀스를 추가하거나 제거해도 다른 사람의 메모리가 방해받지 않습니다.
반복 수준(연속) 일괄 처리를 대중화한 것으로 일반적으로 인정받는 연구 논문은 무엇입니까?
Orca 문서에서는 반복 수준 스케줄링을 소개했으며 이 아이디어는 vLLM, TGI 및 TensorRT-LLM과 같은 서비스 시스템에 채택되었습니다.