지속적 배치 처리가 GPU 최적화하고 지연 시간을 줄이는 방법을 알아보세요. Ultralytics 활용하여 생산 환경의 머신러닝 작업 효율을 극대화하는 방법을 확인하세요.
지속적 배치(Continuous Batching)는 하드웨어 활용도와 처리량을 극대화하기 위해 머신 러닝(ML) 에서 사용되는 고급 스케줄링 및 추론 최적화 기법입니다. 기존의 정적 배치 방식에서는 추론 엔진이 미리 정해진 수의 요청이 누적될 때까지 기다린 후 이를 동시에 처리합니다. 이로 인해 시스템이 배치 내 가장 오래 걸리는 요청이 완료될 때까지 자원을 해제하지 못해 비효율성이 발생하는 경우가 많습니다. 동적 배치 또는 반복 단위 배치라고도 하는 연속 배치는 활성 요청이 완료되는 즉시 새로운 요청을 컴퓨팅 배치에 주입함으로써 이 문제를 해결합니다. 이는 GPU의 유휴 시간을 크게 줄이고 전반적인 효율성을 향상시킵니다.
모델 배포 과정에서 데이터가 어떻게 처리되는지 더 잘 이해하려면, 용어집에서 연속 배치(continuous batching)를 다른 관련 용어와 구분하는 것이 도움이 됩니다:
예측 불가능한 대량의 요청을 처리하는 생산 시스템에서는 연속 배치 처리가 매우 중요합니다. 다음은 그 적용 사례 두 가지입니다:
고트래픽 모델 배포 관행에서 스트리밍 추론을 반복적으로 수행하면 메모리가 차단되지 않고 점진적으로 해제되도록 하여 동적 배치 처리의 이점을 시뮬레이션할 수 있습니다. 다음 Python 생성자 패턴을 모델 예측 API와 함께 사용하여 연속적인 이미지 스트림을 효율적으로 처리하는 방법을 보여줍니다.
from ultralytics import YOLO
# Load the latest Ultralytics YOLO26 model
model = YOLO("yolo26n.pt")
# Using stream=True acts as a generator, iteratively processing inputs
# to keep memory usage low and throughput high
results = model.predict(source=["img1.jpg", "img2.jpg", "img3.jpg"], stream=True)
# Process each result as soon as it completes
for result in results:
print(f"Detected {len(result.boxes)} objects in this frame.")
시스템 수준의 자원 스케줄링 관리는 순수 속도와 운영 비용 간의 균형을 요구합니다. 대규모 컴퓨터 비전(CV) 및 언어 모델을 배포하는 팀들은 이러한 동적 배치 관리를 위해 점점 더 진보된 서비스 프레임워크에 의존하고 있습니다. 인프라를 간소화하려는 기업 팀을 위해 Ultralytics 모델 훈련, 모니터링 및 고도로 최적화된 운영 환경으로의 모델 내보내기를 위한 강력한 도구를 제공합니다.