Data Centric 특강 - 최성철 교수님

Data Centric

더이상 성능을 미세하게 올리는 것에 집착하는 AI 엔지니어링은 요구되지 않는다. 과연 어떤 능력이 더 중요할 것인가?

  • 수학을 임성빈 교수님만큼 해야 AI를 할 수 있는가? Nope
  • 대신에 ML/AI Engineer들은 이제는, 코딩을 잘해야 한다. 네트워크에 대한 지식이나, CS에 대한 지식들이 더 많은 Area에서 기회를 줄 것임.

실전 AI에서는 매우 복잡한 단계를 거쳐서 프로젝트가 진행된다.

Issues

  • Data
    • 실제 ML 프로젝트에서는 양질의 데이터 확보가 관건임.
    • Production time 데이터(프로젝트가 끝난 후 Serving 단계에서의 데이터) 와 Experiment 데이터가 다를 때 발생하는 문제들
    • 데이터 생성에 관한 문제
      • User generated data: inputs, clicks for recommendation
      • System generated data: logs, metadata, prediction
      • Data Flywheel (데이터 선순환): 사용자들 참여로 데이터 개선
        • 구글 포토를 사용하면 가족들의 얼굴을 계속 같은 사람인지 물어보게 하여 사람들이 직접 태깅하게 하는 것. 데이터가 스스로 라벨링을 하게 하는 작업.
      • Data augmentation: 데이터를 임의로 추가 확보
    • Data drift: 시간이 지나면서 데이터는 계속 바뀔 것임. 어떻게 production 레벨과 experiment 레벨의 데이터 간극을 맞출지가 중요한 문제이다.
      • 2주나 4주 등 일정 간격을 정한 뒤 새로운 데이터로 새로운 모델을 뽑아냄. 이 때 새로운 모델을 뽑아낼 때는 hyper parameter tuning이 되어있을 것임. 이것을 가지고 Dynamic 하게 학습을 시키는 등 대책이 있으면 좋음.
    • Data Feedback Loop
      • 사용자로부터 오는 데이터를 자동화하여 모델에 피딩해주는 것이 중요함.
  • Model
  • Algorithms
  • Metrics
  • Hyper parameter tuning

앞으로 알아야 할 것들.

  • MLOps 도구들
  • 당연히 데이터베이스!! SQL
  • Cloud - AWS, GCP, Azure
  • Spark (+ Hadoop)
  • Linux + Docker + 쿠버네티스
  • Scheduling 도구 (KubeFlow, MLFlow, AirFlow)

위의 것들을 써보는 것을 추천하지만, 전문가가 되라는 것은 아님. 최근엔 이러한 역량들을 전부 요구하기 때문이다.

하나의 시스템으로서의 ML/DL 개발

  • 우리는 보통 주피터노트북을 키는 것부터 시작하는데, 모든 일이 주피터노트북에서 일어나지 않는다. 주피터노트북은 그저 실험을 위한 도구일 뿐.
  • 개발에는 Code - Test - Monitor - Deploy 단계가 반드시 포함된다. 그리고 해당 단계에서의 도구들을 사용할 줄 아는 역량이 필요하다.

정리

  • 앞으로는 알고리즘 연구자보다 ML/DL 엔지니어의 필요성이 더 증대
  • 단순히 ML/DL 코드 작성을 넘어서야 함
    • 자동화, 데이터연계, 실험결과에 기반한 설득, 시스템화
  • 좋은 기획자적인 요소들이 필요.

Data Centric 특강 - 최성철 교수님

https://l-yohai.github.io/Data-Centric/

Author

Yohan Lee

Posted on

2021-08-19

Updated on

2021-08-22

Licensed under

댓글