https://github.com/HazyResearch/data-centric-ai?tab=readme-ov-file


Data-Centric AI의 주요 목표는 모델보다 데이터의 품질과 활용에 집중하는 것.

 

Background:

  • 모델 중심에서 데이터 중심으로 접근 방법을 강조.
  • 기존의 AI 개발에서는 주로 모델을 개선하고 복잡한 모델 아키텍처를 연구하는 것이 주요 흐름이었음. 그러나 Data-Centric AI에서는 모델보다 데이터의 품질과 데이터 관리 프로세스를 우선시 함.
  • 이를 통해 AI 모델을 실제 활용 가능한 제품으로 만들 때, 더 효율적이고 실질적인 결과를 얻을 수 있다고 한다.

 

Data Programming & Weak Supervision:

  • 데이터 라벨링을 효율적으로 처리하는 방법인 Data Programming과 Weak Supervision (약한 감독) 접근법을 설명함:
  • 약한 감독(Weak Supervision):
    • 머신러닝 모델이 성공적으로 학습하려면 대규모 라벨링된 데이터셋이 필요하지만, 이를 구축하는 데 시간과 비용이 많이 듬.
    • 그래서 이런 라벨링 비용을 줄이는 방법으로 약한 감독(crowdsourcing, distant supervision, 전문가의 규칙 기반 휴리스틱 등) 방식을 사용해 더 간단하고 저렴하게 라벨링 데이터를 얻는 방법을 말함.
    • 하지만 전통적으로는 이러한 방식이 단편적이고 임시적인 것으로 간주되어 왔음.
    • 약한 감독(Weak Supervision) 방법은 노이즈가 낄 수 밖에 없지만 Snorkel 같은 데이터 프로그래밍 프레임워크에서 잠재 변수 그래프 모델을 사용하여 다양한 라벨링 소스를 결합해 노이즈를 줄이는 과정을 적용할 수 있음.
  • 데이터 프로그래밍(Data Programming): :
    • 프로그램을 통해 라벨링을 자동화하는 데이터 프로그래밍 접근법이 개발되고 있음.
    • 그 대표적인 예가 Snorkel로, 여러 개의 라벨링 함수를 사용하여 라벨을 추정함. 각 라벨링 함수는 대략적인(즉, 노이즈가 포함된) 진짜 라벨의 추정치를 제공하는데, 이 함수들은 데이터의 부분 집합에서 정확도와 커버리지가 다르기 때문에 잠재 변수 그래프 모델을 통해 조정되고 결합된다.
    • 라벨 모델(Label Model): Snorkel의 라벨 모델은 여러 라벨링 함수의 정확도와 상관관계를 학습하고, 이를 통해 데이터의 진짜 라벨을 추정한다. 이를 통해 서로 다른 소스의 신호를 조합해 실제 라벨을 도출할 수 있고 라벨링 품질을 높일 수 있음.

 

Data Augmentation:

  • 머신러닝 모델을 훈련할 때는 현실 세계의 다양성을 반영하는 대규모, 다양한 데이터셋이 필요함. 하지만 이러한 데이터셋을 수집하고 라벨링하는 데 비용이 많이 들기 때문에, 데이터 증강이 비용 효율적인 대안으로 떠오르고 있음.
  • 데이터 증강은 기존 데이터셋의 예제에 변환을 가해 새로운 예제를 생성하는 방식임. 이러한 추가 예제들은 데이터셋의 다양성을 높여 모델이 다양한 경우를 학습할 수 있게 하고, 추가적인 감독 신호를 제공함.
  • 예를 들어, AlexNet은 이미지 분류에서 평행 이동, 회전 불변성을 유도하여 데이터 증강의 효용성을 입증함. 이후 데이터 증강은 이미지, 음성, 텍스트 분류, 기계 번역 등 다양한 작업에서 필수적인 기법이 되었음.
  • 데이터 증강에서 어떤 변환을 사용할지 선택하는 것이 중요한데, 이는 모델이 학습하는 불변성의 종류와, 테스트 시 다양한 예제를 다루는 모델의 성능에 영향을 이침. 단순한 휴리스틱 방식의 증강이 여전히 널리 쓰이고 있지만, 증강 파이프라인을 더 세밀하게 제어하고 프로그래밍하는 것이 중요.
  • 증강 파이프라인을 더 세밀하게 제어하는 프로그래밍 방법은 데이터 증강에 사용할 변환의 종류, 적용 빈도, 강도를 조정하여 모델 학습에 최적화된 데이터를 생성하는 방식임.
  • TANDA는 여러 데이터 변환을 조합하여 증강 파이프라인을 프로그래밍하는 방법을 연구했고, 이후 AutoAugment와 같은 실용적 구현이 등장함.
  • AutoAugment는 데이터 증강을 자동으로 최적화하는 기법으로, 강화 학습(Reinforcement Learning)을 사용하여 증강 전략을 탐색하고 최적화함. 여러 가지 변환 조합과 강도를 시도하여, 모델 성능이 가장 좋아지도록 최적의 증강 젗책을 학습함. 예를 들어, 이미지 데이터의 경우 회전, 자르기, 색상 변환 등의 다양한 변환을 조합해 보며, 각 변환의 강도와 순서를 최적화한다.

Self-Supervision(자기 감독):

  • 자기 감독 기법은 라벨이 없는 대규모 데이터를 사용해 잠재 표현(latent representation)을 학습한다.
  • 라벨링된 데이터 의존도를 줄이면서도 데이터 효율성을 높이는 핵심 방법임.
  • 지식 전이와 다양한 다운스트림 작업에도 유리함.

 

The End of Modelitis:

  • Modelitis라고 불리는, 머신러닝 모델 구조와 파라미터 튜닝에 지나치게 집중하는 접근 방식이 끝나가고 있다고 함.
  • 과거에 머신러닝 연구자들은 PyTorch, Jax 같은 도구를 사용하여 모델을 세밀하게 조정하는 데 열중했음. 다양한 모델 아키텍처와 파라미터 튜닝을 통해 최신 성능을 기록하는 것이 목표였다. 이를 Modelitis 라고 함.
  • Modelitis의 종말 이유로는 성능 향상이 더 이상 모델의 세밀한 조정보다 데이터에 대한 깊은 이해에서 온다고 함. 데이터 증강과 같은 다양한 데이터 중심법이 성과를 내고 있다고 함.
  • 이제 연구자들은 “어떻게 최고의 모델을 만들까?”라는 질문에서 “어떻게 모델에 데이터를 잘 제공할까?”로 관심을 옮기고 있음.

 

Evaluation:

  • 전통적으로 모델 평가에서는 정확도나 F1 점수와 같은 평균 성능 지표에 의존했음. 하지만 이러한 지표는 모델이 다양한 데이터 하위 집합에서 어떻게 작동하는지를 충분히 설명하지 못하는 한계가 오고 있다고 함.
  • 정교한 평가의 필요성: Data-Centric AI에서는 성능을 단순히 평균적으로 평가하기보다는, 특정 데이터 하위 집합에서의 성능을 측정하여 모델의 능력을 더 잘 이해하려는 방향으로 평가 방식을 바꾸고 있다고 함.
  • 정교한 평가 방법:
    • 특정 데이터 부분집합(slices)에서의 성능 측정: 특정 데이터 하위 집합에서의 성능 저하나 편향을 발견하기 위함.
    • 불변성(invariance): 모델이 특정 변환에 대해서도 일관된 예측을 유지하는지 확인하는 방법. 데이터 변환에 얼마나 강건한지 확인하는 데 사용됨.
    • 민감도(sensitivity): 민감도 평가는 모델이 특정 변환이나 입력 변화에 얼마나 민감하게 반응하는지 평가함.
    • 적대적 교란(adversarial perturbations): 모델의 예측을 잘못되게 만들기 위해 의도적으로 데이터에 추가하는 미세한 변형을 말함.

 

Robustness:

  • 강건성은 머신러닝 모델이 훈련 데이터와 다른 분포의 데이터를 만났을 때도 성능을 유지할 수 있는 능력을 말함.
  • 실제 배포 환경에서는 훈련 데이터와 테스트 데이터의 분포가 다를 가능성이 높기 때문에, 모델이 분포 변화에 적응할 수 있도록 만드는 것이 중요하다.
  • 강건성을 높이기 위한 방법들을 세 가지 유형의 분포 변화로 설명:
    • 하위 집단 변화(Subpopulation Shift): 훈련 데이터에서 특정 데이터 하위 집단(또는 데이터 그룹)이 과도하게 나타나는 경우, 모델이 훈련 과정에서 이러한 집단에 의존할 가능성이 있음. 이로 인해 실제 환경에서 다른 집단에 대해 성능이 저하될 수 있다.
    • 도메인 변화(Domain Shift): 훈련 데이터와 테스트 데이터가 완전히 다른 도메인일 때 발생하는 문제임. 예를 들어, 다른 카메라로 찍힌 이미지나 다른 지역에서 수집한 텍스트 데이터 등에서 도메인 변화가 발생할 수 있다.
    • 적대적 교란(Adversarial Perturbation): 모델이 훈련되지 않은 방식으로 데이터를 조금 변형했을 때, 예를 들어 미세한 노이즈나 왜곡을 추가했을 때 모델 성능이 크게 떨어질 수 있다.

 

Data Cleaning:

  • 머신러닝 모델의 성능과 데이터 품질을 향상시키는 다양한 접근 방법을 소개함.
  • 데이터 정제는 데이터셋에서 오류를 식별하고 수정하여 모델의 정확성과 신뢰성을 높이는 핵심 과정으로, 전통적인 방법부터 모델 인식 기반의 데이터 정제에 이르기까지 여러 방식이 논의되고 있음.
  • 전통적 및 ML 기반 데이터 정제:
    • 주로 데이터셋 내의 오류를 독립적으로 식별하는 데 중점을 둡니다. 즉, 모델이나 애플리케이션의 특성을 고려하지 않고 데이터 정제를 수행함.
    • HoloClean: 함수적 종속성, 정량적 통계, 외부 정보 등을 결합해 팩터 그래프 모델로 오류를 탐지.
    • Raha: 오류 탐지기를 사용하여 각 탐지기의 출력을 특성으로 모델화하고, 클러스터링과 활성 학습(active learning)을 통해 소량의 라벨로 정제 모델을 훈련
    • Picket: 자가 감독 (self-supervision) 을 활용해 오류 탐지 모델을 학습
  • ML 인식 데이터 정제(ML-Aware Data Cleaning):
    • 모델 학습에 최적화된 데이터 정제를 수행하는 방법. 이 접근 방식은 단순히 데이터셋 내 오류를 수정하는 데 그치지 않고, 모델이 학습 과정에서 맞닥뜨릴 수 있는 오류와 노이즈에 대비하여 데이터 정제를 조정하는 것.
  • 애플리케이션 인식 데이터 정제(Application-Aware Data Cleaning):
    • 모델이 애플리케이션에서 사용된 후에 나타나는 오류를 기반으로 데이터 정제를 수행하는 기법
    • 모델이 생성한 분석 쿼리나 시각화 결과에서 오류가 나타나면, 이를 통해 훈련 데이터의 문제를 파악하고 수정하는 방식.

 

MLOps:

  • 데이터의 중심적인 역할로 인해 ML/AI 애플리케이션 개발과 배포는 인간이 개입하는 복잡한 과정이 됨.
  • 엔지니어들은 실수를 할 수 있고, 지침이 필요하며, 예상치 못한 상황에 대한 경고가 필요하다.
  • MLOps의 목표는 이러한 과정에서 원칙적인 라이프사이클 관리, 모니터링, 검증 방법을 제공하는 것임.
  • 연구자들은 TFX, Ease.ML, Overton과 같은 시스템을 개발하여 머신러닝 모델의 전체 라이프사이클을 관리하고 있다.
  • 지속적 통합/배포/테스트(CI/CD/CT)가 중요함.
  • 모델 배포 및 관리(Deployment and Model Management) 할 수 있는 시스템도 중요함.
  • 모니터링과 적응(Monitoring and Adaptation) 할 수 있는 시스템도 필요함:
    • 생산 환경에서 모델의 정확도는 시간이 지남에 따라 감소하는 경향이 있음.
    • 이는 새로운 실시간 테스트 데이터와 기존 훈련 데이터 간의 분포 변화 때문임.
    • 드리프트 감지기를 사용해서 이러한 문제를 완화하는게 중요.
  • 디버깅(Debugging) 을 할 수 있어야 함:
    • 머신러닝 모델의 버그는 예외를 발생시키는 국소적인 실패로 나타나지 않고, 손실(loss)이나 기타 지표로 표현됨.
    • 따라서 개발자는 훈련을 중단하고 상태를 확인할 수 없으며, 대신 시간에 따른 확률 변수의 값 추적이 필요하다.

 

Data Selection:

  • 대규모 데이터의 문제점:
    • 대용량 데이터셋을 다루는 것은 복잡하고 비용이 많이 듬.
    • 컴퓨팅 자원의 부담과 데이터 라벨링에 드는 시간과 비용이 큼
  • 데이터 선택 방법의 중요성:
    • 활성 학습(Active Learning) 과 코어셋 선택(Core-set Selection) 같은 데이터 선택 방법은 가장 가치 있는 예제를 선택하여 라벨링하거나 학습함으로써 이러한 문제를 완화할 수 있음.
  • 현대 데이터셋에서의 데이터 선택 필요성:
    • 최근 연구(Sener & Savarese, Ghorbani et al.)에서는 모델의 불확실성에만 의존하지 않고, 다양성과 대표성에 초점을 맞춰 각 훈련 예제의 기여도를 정량화하는 데이터 중심 접근법을 취하고 있음.
  • 데이터 평가(Data Valuation):
    • 각 훈련 데이터 포인트가 최종 모델에 기여하는 정도를 정량화하는 것은 여러 측면에서 유용함.
      • 활성 학습에서 어떤 데이터를 추가로 수집할지 결정하는 데 도움을 줌.
      • 데이터 제공자에게 보상을 제공할 때 기여도를 측정할 수 있음.
    • Leave-one-out 방법은 전체 데이터셋으로 훈련한 모델과 특정 예제를 제외한 데이터셋으로 훈련한 모델의 성능 차이를 계산하는 것으로 측정 가능.
    • 최근 연구: Ghorbani et al.과 Jia et al.은 게임 이론의 Shapley 값에 기반한 데이터 평가 방식을 제안함.
    • Shapley 값이나 Leave-one-out 기준에 따른 정확한 평가를 계산하려면 모델을 여러 번 재훈련해야 하므로, 대규모 모델에서는 비용이 매우 높다는 단점이 있음.
    • 이러한 측정을 위한 효율적인 근사 방법을 찾는 것이 나을 수 있음.

 

Data Privacy:

  • 데이터 소유권과 ‘잊혀질 권리’:
    • 개인이 데이터셋에 기여한 경우, 그들은 ‘잊혀질 권리’를 가질 수 있을까?
    • 유럽 연합(EU)은 이러한 권리를 보호하는 법률을 도입했고, 많은 공공 데이터 리소스에서 개인이 자신의 데이터를 삭제하도록 요청할 수 있는 조항을 포함하고 있음.
    • 예를 들어, UK Biobank에서는 참가자들이 언제든지 자신의 데이터 사용을 중지하도록 요청할 수 있다.
  • 머신러닝 모델에서 특정 개인의 데이터를 완전히 삭제하는 것은 기술적으로 어려운 문제임.
  • 모델을 처음부터 다시 훈련하는 것은 시간과 비용 면에서 비효율적이며, 삭제 요청이 언제든지 올 수 있기 때문에 현실적이지 않음.
  • 효율적으로 훈련된 모델에서 데이터 포인트를 제거할 수 있을까? Ginart et al 은 이 문제를 연구하기 위한 프레임워크를 제안함.
  • 데이터 삭제 방법 개발을 위한 네 가지 원칙(예: 모듈성)을 제시하고, 이를 기반으로 k-평균 클러스터링에 대한 몇 가지 방법을 제안함.
  • 복잡한 모델의 경우 정확한 데이터 삭제가 어려워, 근사적 데이터 삭제 방법이 제안됨:
    • 영향 함수(Influence Functions) 는 근사적 데이터 삭제를 위한 자연스러운 방법으로, 헤시안-그레이디언트 곱셈만 필요.
  • 프라이버시 공격(Privacy Attacks):
    • 머신러닝 시스템을 속이려는 적대적 공격 외에도, 프라이버시와 기밀성에 대한 공격이 최근 큰 주목을 받고 있음.
    • 공격자는 훈련 데이터에 대한 다양한 민감한 개인 정보를 복구하려고 함.

 

Data Flow:

  • 하드웨어 아키텍처의 발전과 중요성에 대해 설명. 특히, 딥러닝의 인기로 인해 등장한 도메인 특화 아키텍처와 재구성 가능한 데이터플로우 가속기(Reconfigurable Dataflow Accelerators, RDAs)에 조점을 맞추고 있음.
  • 딥러닝의 폭발적인 인기와 함께, 딥 뉴럴 네트워크를 가속화하기 위한 도메인 특화 아키텍처들이 등장함:
    • 훈련 시간 단축, 모델 크기 확장, 에너지 효율성 개선이 하드웨어 설계자의 우선 과제.
    • 초기에는 GPU가 범용 하드웨어로 대형 네트워크 훈련의 가능성을 보여주었지만, 메모리 용량 제한이나 인터커넥트 대역폭 등의 한계가 존재함.
  • 유연한 하드웨어의 중요성:
    • 미래의 데이터 분석 가속기는 유연성이 핵심 요구 사항임.
    • Data-Centric AI에서는 데이터 전처리, 정제, 증강 등 텐서 연산 이상의 작업을 지원해야 함.
    • 데이터 센터 운영자들은 고정 기능 하드웨어를 피하여 관리 복잡성을 줄이고, 과잉 프로비저닝을 방지하고자 함.
    • 하드웨어는 계속 변화하는 애플리케이션과 빠르게 발전하는 알고리즘 및 모델을 수용할 수 있어야 하며, 이는 다년간의 배치를 견디는 하드웨어의 수명과도 관련이 있음.
  • 데이터 분석 파이프라인의 변화:
    • 현재의 데이터 분석 파이프라인은 훈련의 핵심인 밀집 행렬 커널과 크게 다른 전처리 단계를 포함함.
    • 모델은 텍스트, 테이블 데이터, 비디오, 이미지, 오디오 등 다양한 데이터 타입을 처리한다.
    • 데이터셋이 커지고 새로운 하드웨어로 훈련 시간이 단축됨에 따라, ETL(추출, 변환, 적재) 전처리 시간이 전체 런타임을 지배할 수 있음.
    • 희소 모델과 그래프 처리도 희소 행렬 연산에 대한 아키텍처 지원이 필요함.
    • 행렬 연산에만 특화된 아키텍처는 이러한 파이프라인을 엔드 투 엔드로 실행할 수 있는 유연성이 부족하며, 호스트로 작업을 오프로드해야함.
  • 데이터플로우 아키텍처:
    • 하드웨어 아키텍처에서 범용성과 성능 간에는 항상 긴장이 존재함.
    • CPU는 불규칙한 애플리케이션에서 암시적 병렬성을 추출하고 단일 스레드 성능이 좋지만, 데이터 분석 작업에 필요한 부동 소수점 계산 밀도와 처리량이 부족함.
    • FPGA는 유연하지만, 소프트 로직으로 구조를 합성할 때 자원 제한에 빠르게 도달함.
    • 재구성 가능한 데이터플로우 아키텍처(RDA)는 ASIC의 에너지 효율성과 성능에 접근하면서도 FPGA의 재구성 가능성을 유지함.
    • 이러한 아키텍처는 재구성 가능한 아키텍처를 위한 도메인 특화 언어를 통해 추상화 수준을 높이고 개발자 생산성을 향상시킬 수 있다.
  • 재구성 가능한 데이터플로우 가속기(RDA)의 특징:
    • RDA는 애플리케이션을 칩 전체에 공간적으로 매핑하여, 작업의 풍부한 파이프라인 병렬성을 자연스럽게 활용
    • 데이터가 RDA의 깊은 파이프라인을 통해 흐르면서, 고대역폭의 분산된 온칩 메모리에 데이터를 저장하여 글로벌 메모리의 대역폭 제한 없이 동작함.
    • 결과적으로, 대규모 부동 소수점 유닛 배열에 수 테라바이트/초의 온칩 메모리 대역폭을 제공하여 매우 높은 계산 활용도를 달성

+ Recent posts