Yolo 비전 선전
선전
지금 참여하기
용어집

배치 크기

배치 크기가 머신러닝 훈련 속도와 정확도에 미치는 영향을 알아보세요. 하드웨어 제약 조건을 탐구하고 AutoBatch를 사용하여 Ultralytics 최적화하세요.

기계 학습, 특히 딥 러닝 분야에서 배치 크기(Batch Size)는 모델 훈련의 한 번의 반복(이테레이션)에 사용되는 훈련 예제의 수를 의미합니다. 전체 훈련 데이터를 한 번에 신경망에 입력하는 것(메모리 제약으로 인해 종종 계산상 불가능함) 대신, 데이터셋은 배치(batch)라고 불리는 더 작은 부분 집합으로 나뉩니다. 모델은 한 배치를 처리하고 오류를 계산한 후 역전파를 통해 내부 모델 가중치를 업데이트한 다음 다음 배치로 넘어갑니다. 이 하이퍼파라미터는 훈련 속도와 학습 과정의 안정성 모두를 결정하는 데 중추적인 역할을 합니다.

배치를 활용한 훈련의 역학

배치 크기 선택은 근본적으로 최적화 알고리즘(일반적으로 확률적 경사 하강법의 변형)이 손실 경관을 탐색하는 방식을 변화시킵니다.

  • 소규모 배치 크기: 소수(예: 8 또는 16)를 사용하면 "잡음이 많은" 업데이트가 발생합니다. 데이터셋 전체에 대한 기울기 추정 정확도는 낮아지지만, 이 잡음은 모델이 국소적 최소점을 벗어나는 데 도움이 되어 일반화 성능 향상을 이끌 수 있습니다. 그러나 더 작은 배치는 에포크당 더 많은 업데이트를 필요로 하여 오버헤드로 인해 실제 소요 시간 측면에서 훈련 속도가 느려질 수 있습니다.
  • 대규모 배치 크기: 더 큰 배치(예: 128 또는 256)는 기울기에 대한 더 정확한 추정치를 제공하여 손실 함수의 수렴을 더 부드럽게 만듭니다. 이는 현대 하드웨어에서 대규모 병렬 처리를 가능하게 하여 계산 속도를 크게 향상시킵니다. 그러나 배치 크기가 지나치게 클 경우, 모델이 날카로운 차선책의 최소값에 안주할 수 있으며, 이는 과적합을 유발하고 새로운 데이터에 대한 일반화 능력을 저하시킵니다.

하드웨어 및 메모리 영향

실무자들은 순수한 이론적 선호도보다는 하드웨어 제약에 따라 배치 크기를 선택해야 하는 경우가 많다. 딥러닝 모델, 특히 트랜스포머나 고급 컨볼루션 네트워크 같은 대규모 아키텍처는 GPU에 저장됩니다.

NVIDIA를 활용할 때 NVIDIA CUDA 가속화를 위해 사용할 경우, VRAM은 모델 매개변수, 입력 데이터 배치, 그리고 기울기 계산에 필요한 중간 활성화 출력을 저장해야 합니다. 배치 크기가 사용 가능한 메모리를 초과하면, 훈련은 "메모리 부족"(OOM) 오류로 중단됩니다. 혼합 정밀도 훈련과 같은 기법은 종종 메모리 사용량을 줄이기 위해 사용되며, 동일한 하드웨어에서 더 큰 배치 크기를 허용합니다.

관련 개념 구분하기

효과적인 훈련 구성을 위해서는 훈련 루프 내의 다른 시간적 용어와 배치 크기를 구분하는 것이 필수적이다.

  • 배치 크기 대 에포크: 에포크는 전체 훈련 데이터셋을 한 번 완전히 통과하는 것을 의미합니다. 배치 크기는 해당 에포크 내에서 데이터가 몇 개의 청크로 분할되는지를 결정합니다. 예를 들어, 1,000개의 이미지와 배치 크기 100을 가진 경우, 하나의 에포크를 완료하는 데 10번의 반복이 필요합니다.
  • 배치 크기 대 반복 횟수: 반복(또는 단계)은 하나의 배치를 처리하고 가중치를 업데이트하는 행위입니다. 훈련에서의 총 반복 횟수는 에포크당 배치 수에 총 에포크 수를 곱한 값입니다.
  • 배치 크기 대 배치 정규화: 이름은 같지만, 배치 정규화는 현재 배치의 평균과 분산을 기반으로 레이어 입력을 정규화하는 특정 레이어 유형입니다. 이 기법은 배치 크기에 크게 의존합니다. 배치 크기가 너무 작을 경우(예: 2), 통계적 추정치가 신뢰할 수 없게 되어 성능이 저하될 수 있습니다.

실제 애플리케이션

다양한 산업 분야에 컴퓨터 비전 솔루션을 배포할 때 배치 크기 조정은 일상적인 필수 작업입니다.

  1. 고충실도 의료 영상: 의료 AI 분야에서 실무자들은 종종 MRI나 CT 스캔과 같은 3D 체적 데이터를 다룹니다. 이러한 파일은 매우 밀도가 높고 메모리 집약적입니다. 의료 영상 분석이나 복잡한 이미지 분할과 같은 작업을 시스템 충돌 없이 수행하기 위해 엔지니어들은 종종 배치 크기를 매우 작은 수로 줄이며, 때로는 배치 1개로도 처리합니다. 여기서 우선순위는 순수한 훈련 속도보다 고해상도 세부 사항 처리에 있습니다.
  2. 산업 품질 관리: 반면 제조업에서의 인공지능은 속도가 가장 중요합니다. 컨베이어 벨트 위의 제품을 검사하는 자동화 시스템은 시간당 수천 장의 이미지를 처리해야 합니다. 추론 과정에서 엔지니어들은 들어오는 카메라 영상을 더 큰 배치로 통합하여 에지 AI 장치의 활용도를 극대화함으로써 실시간 결함 검출을 위한 높은 처리량을 보장할 수 있습니다.

Python에서 배치 크기 설정하기

사용 시 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 같은 도구는 실행 기록 및 비교를 위한 포괄적인 환경을 제공합니다. 배치 크기에 대한 적절한 하이퍼파라미터 튜닝은 모델에서 최상의 성능을 끌어내는 마지막 단계인 경우가 많습니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기