배치 크기(Batch Size)란? AI가 한 번에 학습하는 데이터 묶음
TL;DR
배치 크기(Batch Size)는 AI 모델이 가중치와 편향을 한 번 업데이트하기 전에 처리하는 학습 사례의 수입니다. 학습 데이터가 1,000개이고 배치 크기가 100이면 모델은 보통 100개씩 묶어 계산하며 10번의 반복으로 전체 데이터를 한 번 훑습니다. 배치 크기를 키우면 장치 메모리를 더 쓰는 대신 처리량이 좋아질 수 있지만 가장 큰 값이 언제나 가장 좋은 것은 아닙니다.
핵심 3줄 요약
- 핵심 1
배치 크기는 한 번의 학습 업데이트에 몇 개의 사례를 묶을지 정하는 설정입니다. 배치 크기 32라면 32개 사례의 결과를 모아 한 번 업데이트합니다. - 핵심 2
작은 배치는 업데이트가 잦고 흔들림이 클 수 있습니다. 큰 배치는 메모리를 더 많이 씁니다. 적절한 값은 모델·데이터·장치에 따라 달라집니다. - 핵심 3
배치 크기는 에폭, 스텝, 학습률과 함께 기록해야 합니다. 분산 학습에서는 장치당 배치와 전체 유효 배치도 구분해야 합니다.
이 글에서 다룰 내용
- 배치 크기의 한 문장 정의
- 학습 데이터 1,000개로 보는 쉬운 예시
- 작은 배치와 큰 배치의 차이
- 에폭, 스텝, 학습률, 미니배치와의 구분
- 파인튜닝과 분산 학습에서 확인할 설정
- 메모리 부족과 성능 비교 때 주의할 점
- 자주 묻는 질문과 공식 출처
배치 크기를 한 문장으로 정의하면 무엇인가요?
배치 크기는 모델이 파라미터를 한 번 업데이트하기 전에 함께 처리하는 학습 사례의 수입니다.
Google 머신러닝 용어집은 배치 크기를 한 배치에 들어가는 사례 수로 정의합니다. 배치 크기가 100이면 모델은 한 번의 반복에서 100개 사례를 처리합니다. Google의 머신러닝 단기집중과정도 모델이 가중치와 편향을 업데이트하기 전에 처리하는 사례 수라고 설명합니다.
모델은 배치에 들어온 각 사례의 예측과 정답을 비교해 손실을 계산합니다. 그 결과에서 기울기를 구하고 파라미터를 조정합니다. 배치 크기는 한 번의 조정에 몇 개의 사례를 반영할지 정하는 값인 셈입니다.
한 줄 정리: 배치 크기가 32라는 말은 모델이 학습 사례 32개를 보고 계산한 뒤 파라미터를 한 번 고친다는 뜻입니다.
쉬운 예시로 이해해 볼까요?
감자나라ai님이 고객 문의 1,000개를 환불, 배송, 상품 문의로 분류하는 AI 모델을 학습한다고 가정해 보겠습니다.
- 전체 학습 데이터: 1,000개
- 배치 크기: 100
- 한 에폭에 필요한 반복 수: 10회
모델은 먼저 문의 100개를 읽고 예측 오류를 계산한 뒤 파라미터를 한 번 업데이트합니다. 다음 100개를 처리하고 다시 업데이트합니다. 이런 작업을 10번 하면 데이터 1,000개를 한 번 모두 본 것이므로 1에폭이 끝납니다.
배치 크기를 50으로 바꾸면 한 에폭에 약 20번 업데이트합니다. 배치 크기를 250으로 바꾸면 약 4번 업데이트합니다. 데이터 수가 배치 크기로 정확히 나누어지지 않으면 마지막 배치에는 더 적은 사례가 들어갈 수 있습니다.
쉬운 예시: 한 반의 시험지 1,000장을 100장씩 채점하고 기준을 한 번씩 고친다면, 100장이 배치 크기이고 10번의 채점 묶음이 한 에폭을 이룹니다.
AI 학습에서 왜 중요한가요?
첫째, 파라미터 업데이트 횟수를 바꿉니다. 같은 데이터와 같은 에폭 수를 써도 배치가 작으면 업데이트가 더 자주 일어납니다. 배치가 크면 한 번의 업데이트에 더 많은 사례가 반영되지만 업데이트 횟수는 줄어듭니다.
둘째, 메모리 사용량에 직접 영향을 줍니다. 한 번에 처리하는 사례가 많아지면 입력과 중간 계산 결과를 장치 메모리에 더 많이 올려야 합니다. 이미지 해상도, 문장 길이, 모델 크기가 같아도 배치 크기를 키우면 메모리 부족이 발생하기 쉽습니다.
셋째, 학습 처리량과 시간에 영향을 줍니다. GPU와 TPU는 여러 사례를 병렬로 계산할 때 장점이 있습니다. Google의 딥러닝 튜닝 안내는 배치 크기를 키웠을 때 처리량이 실제로 늘어나는 범위까지만 후보로 보라고 권합니다. 장치가 이미 포화됐거나 입력 파이프라인이 병목이면 더 큰 배치가 속도를 높인다는 보장이 없습니다.
넷째, 기울기의 흔들림 정도가 달라집니다. 배치 크기 1을 쓰는 확률적 경사 하강법은 사례 하나에 따라 업데이트가 크게 흔들릴 수 있습니다. 여러 사례를 평균내는 미니배치는 이런 변동을 줄이면서 전체 데이터를 한꺼번에 계산하는 부담을 피하는 절충안입니다.
다섯째, 다른 하이퍼파라미터와 함께 조정해야 합니다. Google 튜닝 안내는 배치 크기를 바꾸면 학습률, 모멘텀, 정규화 같은 설정의 적정값도 달라질 수 있다고 설명합니다. 배치 크기만 바꾸고 결과 차이의 원인을 단정하면 안 됩니다.
핵심 인사이트: 배치 크기는 품질을 바로 높이는 마법의 숫자가 아니라 메모리, 처리량, 업데이트 빈도와 학습 안정성 사이의 조건을 정하는 값입니다.
작은 배치와 큰 배치는 어떻게 다른가요?
작은 배치
작은 배치는 한 번에 적은 사례를 처리합니다. 메모리 부담이 낮고 업데이트가 자주 일어납니다. 각 배치의 데이터 구성이 달라지면서 손실 곡선이 더 흔들릴 수 있지만 이런 변동이 항상 나쁜 것은 아닙니다. 다만 배치가 너무 작으면 장치의 병렬 처리 능력을 충분히 쓰지 못해 학습 시간이 길어질 수 있습니다.
큰 배치
큰 배치는 한 번에 많은 사례를 처리합니다. 기울기 평균이 비교적 안정적이고 장치 처리량이 좋아질 수 있습니다. 그만큼 메모리를 더 씁니다. 일정 크기 이후에는 처리량 증가가 멈출 수 있습니다. 배치 크기가 달라지면 학습률과 학습 스텝도 다시 검토해야 합니다.
전체 배치와 확률적 경사 하강법
전체 배치는 학습 데이터 전부를 한 번에 처리한 뒤 업데이트합니다. 데이터가 매우 크면 메모리와 계산 부담 때문에 비실용적일 수 있습니다. 확률적 경사 하강법은 배치 크기 1을 사용합니다. 실제 딥러닝 학습에서는 두 극단 사이의 미니배치를 많이 씁니다.
비교 정리: 작은 배치는 메모리 부담이 낮고 업데이트가 잦습니다. 큰 배치는 더 많은 사례를 평균내지만 메모리 요구량이 커집니다.
헷갈리는 용어와 무엇이 다른가요?
배치와 배치 크기
배치는 한 번에 처리하는 실제 사례 묶음입니다. 배치 크기는 그 묶음에 들어가는 사례의 수입니다. 배치라는 상자에 사례가 64개 들어가면 배치 크기는 64입니다.
배치 크기와 에폭
에폭은 모델이 전체 학습 데이터를 한 번 모두 훑는 단위입니다. 배치 크기는 그 데이터를 몇 개씩 나누어 볼지 정합니다. 데이터가 1,000개이고 배치 크기가 100이면 약 10번의 반복이 1에폭을 구성합니다.
배치 크기와 반복 또는 스텝
반복은 보통 배치 하나를 처리하는 한 번의 학습 동작을 가리킵니다. 다만 프레임워크와 로그에 따라 스텝이 배치 처리, 역전파, 옵티마이저 업데이트 가운데 무엇을 세는지 달라질 수 있습니다. 기울기 누적을 쓰면 여러 미니배치를 처리한 뒤 한 번만 업데이트하므로 로그 정의를 확인해야 합니다.
배치 크기와 학습률
배치 크기는 한 번의 업데이트에 몇 개 사례를 반영할지 정합니다. 학습률은 그 업데이트에서 파라미터를 얼마나 크게 움직일지 조절합니다. 역할은 다르지만 서로 영향을 주므로 함께 기록하고 조정해야 합니다.
배치 크기와 기울기 누적
기울기 누적은 여러 작은 미니배치에서 계산한 기울기를 모은 뒤 파라미터를 한 번 업데이트하는 방법입니다. 장치 메모리에 큰 배치를 한꺼번에 올리지 않고도 더 큰 유효 배치와 비슷한 업데이트 단위를 만들 수 있습니다. 그러나 여러 번 계산하므로 실제 처리량이 자동으로 좋아지는 것은 아닙니다.
학습 배치와 배치 추론
학습 배치는 파라미터 업데이트에 쓰는 데이터 묶음입니다. 배치 추론은 운영 단계에서 여러 입력의 예측을 모아 처리하는 실행 방식입니다. 둘 다 데이터를 묶지만 목적이 다릅니다.
한눈에 보기: 에폭은 전체 데이터 한 바퀴, 배치는 한 번에 처리할 묶음, 배치 크기는 묶음의 사례 수, 학습률은 업데이트 폭입니다.
파인튜닝과 분산 학습에서는 어떻게 확인하나요?
1. 장치당 배치인지 확인합니다
Hugging Face Trainer 문서의 per-device 학습 배치 설정은 GPU, TPU 코어 또는 CPU 하나를 기준으로 합니다. 여러 장치를 쓰면 화면에 적힌 장치당 배치와 전체 학습에서 한 업데이트에 반영되는 사례 수가 다를 수 있습니다.
2. 기울기 누적 단계를 함께 기록합니다
장치당 배치가 2이고 여러 번 기울기를 누적한다면 파라미터는 여러 미니배치를 처리한 뒤 업데이트됩니다. 배치 크기 숫자 하나만 복사하지 말고 장치 수, 누적 단계, 실제 업데이트 횟수를 함께 남깁니다.
3. 입력 길이와 메모리를 함께 봅니다
텍스트 파인튜닝에서는 같은 배치 크기라도 토큰 길이가 길면 메모리를 더 많이 씁니다. 이미지 학습에서는 해상도가 커질수록 부담이 늘어납니다. 모델 크기, 정밀도, 입력 길이, 배치 크기를 한 세트로 비교해야 합니다.
4. 기준 실행을 만든 뒤 한 조건씩 바꿉니다
모델, 데이터 분할, 시드, 학습률과 에폭을 기록한 기준 실행을 만듭니다. 배치 크기를 바꾼 뒤 초당 처리 사례 수, 최대 메모리, 스텝 시간, 학습·검증 손실을 비교합니다.
5. 마지막 배치 처리 규칙을 확인합니다
데이터 수가 배치 크기로 나누어지지 않으면 마지막 배치가 더 작아질 수 있습니다. 일부 학습 설정은 크기가 작은 마지막 배치를 버리기도 합니다. 데이터 로더와 분산 학습의 처리 규칙을 확인해야 재현 가능한 실험이 됩니다.
실전 팁: 실험표에는 장치당 배치, 장치 수, 기울기 누적 단계, 입력 길이, 정밀도, 에폭, 학습률과 최대 메모리를 한 줄에 기록하세요.
사용할 때 무엇을 주의해야 하나요?
첫째, 가장 큰 배치가 정답이라고 단정하지 않습니다. 처리량이 더 늘지 않는 구간에서는 메모리만 더 쓰거나 전체 학습 시간이 줄지 않을 수 있습니다. 실제 장치에서 짧은 시험을 해 봐야 합니다.
둘째, 메모리 부족만 보고 품질 문제로 오해하지 않습니다. Out of Memory 오류가 나면 배치 크기, 입력 길이, 이미지 해상도, 정밀도, 기울기 체크포인팅 같은 조건을 함께 봅니다.
셋째, 배치 크기를 바꾸고 학습률을 그대로 둘 때는 비교 조건을 명시합니다. 두 값은 서로 영향을 줍니다. 최종 품질을 비교하려면 충분한 학습 스텝과 조정된 하이퍼파라미터가 필요합니다.
넷째, 장치당 배치와 전체 유효 배치를 섞지 않습니다. 다른 사람의 파인튜닝 설정을 재현할 때 GPU 수와 기울기 누적 단계가 빠지면 같은 배치 조건이 아닐 수 있습니다.
다섯째, 학습 배치와 추론 배치를 구분합니다. 모델 학습에서 좋은 값이 실시간 서비스에도 좋은 값이라는 보장은 없습니다. 추론은 지연 시간, 동시 요청, 처리량과 메모리를 별도로 측정해야 합니다.
주의: 배치 크기 비교표에 모델, 데이터, 장치 수, 입력 길이와 학습률이 빠져 있다면 숫자를 그대로 가져오기 어렵습니다.
자주 묻는 질문
Q1. 배치 크기는 클수록 좋은가요?
아닙니다. 큰 배치는 장치 병렬성을 활용해 처리량을 높일 수 있지만 메모리를 더 씁니다. 일정 크기 이후에는 속도 이점이 줄어듭니다. 모델·데이터·장치에서 실제 처리량과 품질을 확인해야 합니다.
Q2. 배치 크기 1은 잘못된 설정인가요?
잘못은 아닙니다. 배치 크기 1은 확률적 경사 하강법에 해당합니다. 업데이트가 자주 일어나고 흔들림이 클 수 있으므로 목적과 장치 효율에 맞는지 확인해야 합니다.
Q3. 배치 크기를 두 배로 늘리면 학습 시간이 절반이 되나요?
항상 그렇지는 않습니다. 장치 처리량, 메모리, 데이터 입력 속도, 통신과 필요한 학습 스텝이 함께 영향을 줍니다. 짧은 처리량 시험과 전체 학습 결과를 따로 확인하세요.
Q4. 메모리가 부족하면 배치 크기만 줄이면 되나요?
가장 먼저 시험하기 쉬운 방법이지만 유일한 방법은 아닙니다. 입력 길이, 이미지 해상도, 숫자 정밀도, 모델 크기와 기울기 체크포인팅도 메모리에 영향을 줍니다. 조건을 한 번에 여러 개 바꾸면 원인을 찾기 어려워집니다.
Q5. 파인튜닝 설정을 공유할 때 무엇을 적어야 하나요?
장치당 학습 배치, 장치 수, 기울기 누적 단계, 입력 길이, 에폭 또는 최대 스텝, 학습률, 정밀도와 모델 이름을 적으세요. 이 정보를 빠뜨리지 않아야 다른 사람이 실제 업데이트 단위와 메모리 조건을 정확히 이해합니다.
출처
마무리
배치 크기는 AI 모델이 파라미터를 한 번 업데이트하기 전에 함께 처리하는 학습 사례의 수입니다. 에폭, 스텝, 학습률, 기울기 누적과 구분하면 파인튜닝 설정과 학습 로그를 훨씬 정확하게 읽을 수 있습니다.
감자나라ai님이 다음 학습 설정을 비교할 때는 배치 크기 숫자 하나만 보지 마세요. 장치당 배치인지, 장치 수와 누적 단계는 얼마인지, 입력 길이와 최대 메모리는 어떤지부터 확인하면 재현 가능한 비교에 가까워집니다.
