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 특강 - 최성철 교수님