Data-Centric AI
데이터 중심 AI는 모델 아키텍처를 고정한 채 학습 데이터의 레이블, 포괄성, 품질을 체계적으로 개선하여 모델 성능을 높입니다.
데이터 중심 AI는 레이블 일관성, 실제 환경의 조건을 반영하는 범위, 클래스 균형, 데이터 정제 등 데이터를 체계적으로 엔지니어링해 AI 시스템을 개선하는 방법입니다. 이때 모델과 학습 코드는 대부분 그대로 유지합니다. Andrew Ng은 2021년에 이 용어를 널리 알리며, 합성곱 신경망과 트랜스포머 같은 아키텍처가 충분히 성숙해 대부분의 애플리케이션은 더 나은 모델보다 더 나은 데이터에서 큰 이점을 얻는다고 주장했습니다. 반대 개념인 모델 중심 AI는 벤치마크 데이터셋을 고정하고 아키텍처, 손실 함수, 하이퍼파라미터 튜닝을 반복 개선합니다. 대부분의 학술 리더보드가 이러한 방식으로 운영됩니다.
Ng의 가장 잘 알려진 사례는 강판 검사에서 나온 것입니다. 결함 탐지기의 정확도는 76.2%에 머물러 모델 중심의 개선으로는 나아지지 않았지만, 일관되지 않은 레이블을 수정하자 정확도가 93.1%로 상승했습니다. 같은 해 말 DeepLearning.AI와 Landing AI는 데이터 중심 AI 대회를 개최했습니다. 이 대회에서는 모델을 고정하고 참가자가 최대 10,000개의 이미지로 구성된 로마 숫자 손글씨 이미지 분류 데이터셋의 노이즈만 개선할 수 있었습니다.
핵심 실천 방법#
- 일관된 데이터 레이블링: 주석 작성자는 자동차의 사이드미러를 박스에 포함할지, 반쯤 가려진 사람을 어떻게 레이블링할지와 같은 모호한 사례에 대해 문서화된 규칙을 따릅니다. 이러한 사례를 서로 다르게 처리하는 주석 작성자가 둘 이상이면 어떤 모델도 학습으로 해결할 수 없는 레이블 노이즈가 발생합니다.
- 레이블 오류 찾기: 모델의 예측과 제공된 레이블 간의 불일치에서 오류가 있을 가능성을 확인할 수 있습니다. Northcutt, Athalye, Mueller가 2021년에 수행한 연구에 따르면, 널리 사용되는 데이터셋 10개에서 테스트 예제의 평균 최소 3.3%에 레이블 오류가 있었으며 ImageNet 검증 세트에서는 최소 6%에 오류가 있었습니다.
- 목표를 정한 데이터 수집과 합성 데이터: 클래스, 장면, 조명, 객체 크기별 오류 분석을 통해 모델이 실패하는 지점을 찾을 수 있습니다. 이러한 데이터 구간에 정확히 해당하는 새 예제를 추가하면 무작위로 데이터를 추가하는 것보다 효과가 큽니다.
- 데이터 정제: 손상된 파일, 관련 없는 이미지, 중복 이미지를 제거합니다. 특히 학습 분할과 테스트 분할에 모두 포함된 거의 동일한 이미지를 제거합니다.
- 데이터 증강: 새 이미지를 수집하지 않고도 모델이 접하는 조명, 크기, 시점의 범위를 넓힙니다.
분할 간 중복 데이터는 데이터 누수를 일으켜 테스트 점수를 부풀립니다. 클래스 불균형이 있으면 모델은 높은 정확도를 달성하면서도 제조 결함 탐지에서처럼 드문 중요 클래스를 놓칠 수 있습니다. 의료 영상 분석에서는 데이터셋이 작고 전문가 레이블의 비용이 높으므로 데이터 양보다 일관되고 검토된 레이블이 중요합니다.
데이터 중심 개선 루프#
데이터 중심 팀은 모델을 고정하고 혼동 행렬과 같은 도구로 오류를 분석한 뒤, 결과에 따라 데이터를 변경합니다. 첫 번째 미세 조정과 반복 루프 강의에서는 YOLO26 모델의 성능이 가장 낮은 클래스를 다음 데이터셋 개선 대상으로 삼아 이 과정을 설명합니다.
이 예제는 scikit-learn의 손글씨 숫자 데이터셋에서 레이블의 20%를 손상시킨 뒤, 교차 검증에서 제외된 예측이 레이블과 일치하지 않는 예제를 표시하고 해당 예제를 제외한 동일한 모델을 다시 학습합니다.
import numpy as np
from sklearn.datasets import load_digits
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_predict, train_test_split
X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
# Replace 20% of the training labels with random digits to mimic annotation errors
rng = np.random.default_rng(0)
noisy = y_train.copy()
flip = rng.random(len(noisy)) < 0.2
noisy[flip] = rng.integers(0, 10, flip.sum())
wrong = noisy != y_train # some random digits match the true label
# The model stays fixed; only the training data changes
model = LogisticRegression(max_iter=5000)
print(f"noisy labels: {model.fit(X_train, noisy).score(X_test, y_test):.1%} test accuracy")
# Flag examples whose out-of-fold prediction disagrees with their label, then drop them
keep = cross_val_predict(model, X_train, noisy, cv=5) == noisy
print(f"flagged {(~keep).sum()} examples, {(~keep & wrong).sum()} of {wrong.sum()} wrong labels")
print(f"cleaned labels: {model.fit(X_train[keep], noisy[keep]).score(X_test, y_test):.1%} test accuracy")모델을 변경하지 않아도 테스트 정확도는 87.0%에서 94.1%로 상승합니다. 필터는 예제 354개를 표시합니다. 잘못된 레이블 213개 중 211개와 정확하지만 특이한 예제 143개가 포함됩니다. 따라서 정제된 데이터셋에서는 거의 모든 오류와 함께 유효한 예제 일부도 제외됩니다.
데이터 변경의 영향을 비교하려면 어떤 데이터로 어떤 모델을 학습했는지 정확히 알아야 합니다. Ultralytics Platform은 변경할 수 없는 데이터셋 버전을 저장합니다. 클라우드 학습의 데이터셋 버전 저장 옵션은 각 모델을 학습에 사용한 스냅샷에 연결합니다. 버전 비교 기능은 두 스냅샷 간에 변경된 이미지, 주석, 클래스를 나열하며, 데이터셋의 모델 탭에는 각 모델의 데이터셋 버전과 mAP50-95와 같은 주요 지표가 표시됩니다.
데이터 중심 AI와 관련 용어 비교#
- 액티브 러닝: 다음에 레이블링할 레이블 미지정 예제를 선택하며, 보통 모델이 가장 확신하지 못하는 예제를 고릅니다. 데이터 중심 AI에서 사용하는 기법 중 하나입니다.
- 데이터 플라이휠: 배포된 모델의 입력 데이터와 오류가 새로운 학습 데이터가 되는 프로덕션 반복 과정입니다. 따라서 릴리스할 때마다 데이터 중심 작업을 반복하게 됩니다.
- 머신러닝 운영(MLOps): 모델의 버전 관리, 학습, 배포, 모니터링을 위한 엔지니어링 실천 방법으로, 데이터 변경을 재현하고 비교할 수 있도록 합니다.










