배치 크기가 머신러닝 훈련 속도와 정확도에 미치는 영향을 알아보세요. 하드웨어 제약 조건을 탐구하고 AutoBatch를 사용하여 Ultralytics 최적화하세요.
기계 학습, 특히 딥 러닝 분야에서 배치 크기(Batch Size)는 모델 훈련의 한 번의 반복(이테레이션)에 사용되는 훈련 예제의 수를 의미합니다. 전체 훈련 데이터를 한 번에 신경망에 입력하는 것(메모리 제약으로 인해 종종 계산상 불가능함) 대신, 데이터셋은 배치(batch)라고 불리는 더 작은 부분 집합으로 나뉩니다. 모델은 한 배치를 처리하고 오류를 계산한 후 역전파를 통해 내부 모델 가중치를 업데이트한 다음 다음 배치로 넘어갑니다. 이 하이퍼파라미터는 훈련 속도와 학습 과정의 안정성 모두를 결정하는 데 중추적인 역할을 합니다.
배치 크기 선택은 근본적으로 최적화 알고리즘(일반적으로 확률적 경사 하강법의 변형)이 손실 경관을 탐색하는 방식을 변화시킵니다.
실무자들은 순수한 이론적 선호도보다는 하드웨어 제약에 따라 배치 크기를 선택해야 하는 경우가 많다. 딥러닝 모델, 특히 트랜스포머나 고급 컨볼루션 네트워크 같은 대규모 아키텍처는 GPU에 저장됩니다.
NVIDIA를 활용할 때 NVIDIA CUDA 가속화를 위해 사용할 경우, VRAM은 모델 매개변수, 입력 데이터 배치, 그리고 기울기 계산에 필요한 중간 활성화 출력을 저장해야 합니다. 배치 크기가 사용 가능한 메모리를 초과하면, 훈련은 "메모리 부족"(OOM) 오류로 중단됩니다. 혼합 정밀도 훈련과 같은 기법은 종종 메모리 사용량을 줄이기 위해 사용되며, 동일한 하드웨어에서 더 큰 배치 크기를 허용합니다.
효과적인 훈련 구성을 위해서는 훈련 루프 내의 다른 시간적 용어와 배치 크기를 구분하는 것이 필수적이다.
다양한 산업 분야에 컴퓨터 비전 솔루션을 배포할 때 배치 크기 조정은 일상적인 필수 작업입니다.
사용 시 Ultralytics Python 패키지배치 크기 설정은 간단합니다. 고정된 정수를 지정하거나 동적 배치를 사용할 수 있습니다. batch=-1 설정, 이는 활용하는
the 자동 배치 기능 하드웨어가 안전하게 처리할 수 있는 최대 배치 크기를 자동으로 계산합니다.
다음 예제는 특정 배치 설정을 사용하여 속도와 정확도 측면에서 최신 표준인 YOLO26 모델을훈련하는 방법을 보여줍니다.
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train on the COCO8 dataset
# batch=16 is manually set.
# Alternatively, use batch=-1 for auto-tuning based on available GPU memory.
results = model.train(data="coco8.yaml", epochs=5, batch=16)
대규모 실험을 관리하고 다양한 배치 크기가 훈련 지표에 미치는 영향을 시각화하기 위해 Ultralytics 같은 도구는 실행 기록 및 비교를 위한 포괄적인 환경을 제공합니다. 배치 크기에 대한 적절한 하이퍼파라미터 튜닝은 모델에서 최상의 성능을 끌어내는 마지막 단계인 경우가 많습니다.