본문 바로가기
  • 데이터에 가치를 더하다, 서영석입니다.
가치를 창출하는 데이터 분석/개인 프로젝트

#1. [Coursera] 2-1 / Machine Learning Data Lifecycle in Production (GDSC)

by 꿀먹은데이터 2022. 11. 30.

https://www.coursera.org/learn/machine-learning-data-lifecycle-in-production/home/welcome

 

Coursera | Online Courses & Credentials From Top Educators. Join for Free | Coursera

Learn online and earn valuable credentials from top universities like Yale, Michigan, Stanford, and leading companies like Google and IBM. Join Coursera for free and transform your career with degrees, certificates, Specializations, & MOOCs in data science

www.coursera.org

Machine Learning Data Lifecycle in Production 1주차 _ 1

첫 번째 과정

범위 지정에서 데이터 가져오기, 모델링, 배포에 이르기까지 프로덕션 기계 학습 프로젝트의 전체 수명 주기에 대한 개요

 

두 번째 과정

데이터와 시간이 지남에 따라 데이터가 어떻게 진화하는지에 대한 과정

TensorFlow 확장 또는 TFX 및 TFX 라이브러리 제품군을 사용하여 데이터 세트를 수집, 정리 및 검증하여 데이터 파이프라인을 구축.

 

세 번째 과정

프로덕션의 기계 학습 모델링 파이프라인

추론 요청을 가장 잘 처리하고 비용을 최소화하기 위해 모델링 리소스를 관리하는 방법 또한 분석을 사용하여 모델 공정성, 설명 가능성 문제를 해결

 

네 번째 과정

배포

사용자 요청을 처리할 준비

Introduction to Machine Learning Engineering in Production

데이터, 데이터 수집, 레이블 지정 및 유효성 검사에 관한 내용

첫째, Uber에서 데이터는 ML에서 가장 어려운 부분이자 제대로 해야 하는 가장 중요한 부분이다.

손상된 데이터는 프로덕션 ML 시스템에서 문제의 가장 일반적인 원인이며 머신 러닝 수명 주기에서 모델이 액세스할 수 있는 데이터를 개선하는 것보다 투자 수익이 더 중요한 활동이다. 그렇기 때문에 우리가 데이터에 대해 이야기하는 이유는 데이터가 성공에 매우 중요하고 프로덕션 환경의 데이터에 대한 문제는 익숙한 학술과 연구 환경과 매우 다르기 때문이다.

이 다이어그램에 있는 다른 모든 상자를 살펴보면 우리가 이야기할 내용에 대한 아이디어를 얻을 수 있다.

프로덕션 ML 애플리케이션에 대해 이야기하고 있으며 이를 생성, 배포, 유지 관리 및 개선하여 사용자와 비즈니스 또는 조직이 아닌 다른 작업을 수행하는 경우 이를 사용할 수 있도록 하는 데 필요한 사항에 대해 이야기하고 있다.

이익. 연구자, 학술 환경 및 실제 생산 ML의 모델링 간의 몇 가지 차이점을 비교해 보면

우선, 학술 또는 연구 환경에서는 일반적으로 동적이며 일반적으로 변화하는 실제 데이터가 사용되는 Production ML용 정적 데이터 세트를 사용한다.

학술 또는 연구 ML의 설계 우선 순위는 일반적으로 전체 교육 세트에서 가장 높은 정확도이지만 프로덕션 ML의 설계 우선 순위는 빠른 추론과 우수한 해석 가능성, 정확성과 비용이다.

연구 ML을 위한 모델 교육은 단일 최적 결과와 이를 달성하는 데 필요한 조정 및 교육을 기반으로 한다. 프로덕션 ML에는 지속적인 모니터링, 평가 및 재교육이 필요하다.

해석 가능성과 공정성은 모든 ML 모델링에서 매우 중요하지만 프로덕션 ML에서는 절대적으로 중요하다.

마지막으로 학술 및 연구 ML의 주요 과제는 정확도가 높은 모델인 직관을 찾는 것이다. 프로덕션 ML의 경우 문제는 전체 시스템이다.

Managing the entire life cylce of data

Labeling

  • 지도 학습을 수행한다고 가정하면 레이블이 정확한지 확인해야 한다.

Feature space coverage

  • 학습 데이터 세트에 모델이 수행할 요청과 동일한 기능 공간을 포함하는 예제가 있는지도 확인해야 한다.

Minimal dimensionality

  • 데이터에 대한 예측 정보를 유지하거나 향상시키면서 기능 벡터의 차원을 줄여 시스템 성능을 최적화한다.

Maximum predictive data

  • minimal dimensionality와 같은 내용

Fairness

  • 데이터와 모델의 공정성을 고려하고 측정해야한다.

Rare conditions

  • 시스템 설계가 필요한 프로덕션에 소프트웨어를 투입하고 있으며 여기에는 모든 프로덕션 소프트웨어 배포에 필요한 모든 것이 포함된다.

Modern software development

Accounts for

  • Scalability (시스템 확장성)
  • Extensibility (너비의 확장성)
  • Configuration (잘 정의된 구성)
  • Consistency & reproducibility (일관성)
  • Safety & security (결과의 안정성과 재현)
  • Modularity (모듈성)
  • Testability (테스트 가능성)
  • Monitoring (모니터링)
  • Best practices (모범 사례)

첫 번째 단계는 프로젝트 요구 사항과 목표 및 이를 달성하는 데 필요한 리소스를 정의하는 데 중점을 둔 범위 지정이다.
다음으로, 사용할 기능을 정의하고 데이터를 구성하고 레이블을 지정하는 데이터 작업을 시작한다. 때로는 비교를 위한 기준선을 설정하기 위해 사람 수준의 성능을 측정하는 것이 포함될 수 있다.
그런 다음 모델을 설계하고 학습시킨다. 이 단계에서 오류 분석은 프로젝트의 요구 사항에 맞게 모델을 구체화하는 데 도움이 된다.
모델을 교육한 후 예측 요청을 제공하는 데 사용할 수 있도록 모델을 배포한다. 모바일 장치, 클라우드, IoT 장치 또는 웹 브라우저에 모델을 배포할 수 있다. 시간이 지남에 따라 실제 데이터는 지속적으로 변경되어 모델 성능이 저하될 수 있다.모델의 성능을 지속적으로 모니터링해야 하며 성능 저하가 측정되면 모델 재훈련 및 튜닝으로 돌아가거나 데이터를 수정해야 한다.

배포하는 동안 새 데이터는 프로젝트 설계에 긍정적 또는 부정적으로 영향을 미칠 수 있으며 위험 대처가 필요할 수 있다.
궁극적으로 이러한 모든 단계는 모델 성능을 지속적으로 모니터링하고, 새 데이터를 수집하고, 필요에 따라 재훈련한 다음, 성능을 유지하거나 개선하기 위해 재배포하도록 자동으로 실행되어야 하는 프로덕션 ML 시스템을 생성한다.

 

Challenges in production grade ML

- Build integrated ML systems

특히 ML 사용 사례에 중점을 둔 통합 시스템을 구축하게 된다

- Continuously operate it in production

프로덕션에서 지속적으로 운영하는 것에 대해 생각해야 하며 온라인 사용 사례의 경우 24시간 사용할 수 있어야 한다. 

- Handle continuously changing data

변화하는 세계와 변화하는 데이터를 처리하기 위해 시스템에 대해 생각하고 배치해야 한다.

- Optimize compute resource costs

모든 프로덕션 시스템과 마찬가지로 최대 성능을 생성하면서 최소 비용으로 이 모든 작업을 수행해야 한다.

 

산업 그룹인 CD Foundation에서 구성한 ML 파이프라인의 한 버전이다.

ML 파이프라인은 거의 항상 방향성 순환 그래프다.

해당 프로세스를 캡슐화하고 공식화해야 하기 때문에 설계된 것이다. ML 파이프라인은 대부분 방향성 순환 그래프 또는 DAG이다. 일부 고급 사례에서는 주기를 포함할 수 있다. DAG는 관계 및 종속성을 반영하는 방식으로 순서대로 실행한다. 이 그래프에서는 방향이 지정되고 주기가 없다. 그러면 이 그래프가 DAG가 된다.

TFX 파이프라인은 대량의 데이터를 처리할 수 있는 확장 가능한 구성 요소의 시퀀스이다.

왼쪽부터 시작하여 데이터를 수집한 다음 데이터 유효성 검사로 이동하고 일부 기능 엔지니어링을 수행한다. 이 후 모델을 훈련하고 검증한다. 이미 프로덕션에 있는 것보다 낫다면 프로덕션으로 할 것이다.
마지막으로 예측한다. 구성 요소 시퀀스는  scalable high performance Machine Learning tasks를 위해 설계되었다.

실제로 이들은 PIP 설치를 수행할 때 TFX와 함께 제공되는 구성 요소다. 다음으로 데이터에 대한 통계를 생성한다.
기능의 유형으로 예제 유효성 검사기는 데이터의 문제를 찾는 데 사용된다. SchemaGen은 기능 벡터 전체에서 데이터의 스키마를 생성하는 데 사용된다. Transform은 기능 엔지니어링을 수행한다. Tuner and Trainer는 모델을 훈련하고 해당 모델의 하이퍼 매개변수를 조정하는 데 사용된다. Evaluator는 모델의 성능을 심층 분석하는 데 사용된다. Infra Validator는 우리가 보유한 인프라에서 모델을 사용하여 실제로 예측을 실행할 수 있는지 확인하는 데 사용된다.

 이 모든 것이 통과되고 모델이 실제로 이미 생산하고 있는 것보다 더 나은 성능을 발휘한다면. 그런 다음 Pusher는 모델을 프로덕션으로 푸시한다. 임베딩을 생성하고 있다.
웹 브라우저 또는 Node.js 애플리케이션에서 모델을 사용하려는 경우. TensorFlow Lite로 푸시하고 모바일 애플리케이션이나 IOT 장치에서 모델을 사용할 수 있다. 또는 서버 또는 서비스 클러스터에서 TensorFlow Serving 및 UserModel로 푸시할 수 있다. 여기서 핵심 포인트는 우선 생산 ML 파이프라인은 단순한 ML 코드 그 이상이다.


ML 개발 및 소프트웨어 개발이며 유지 관리 및 확장 가능한 방식으로 작업 시퀀스를 엔드 투 엔드로 실행하기 위한 공식화된 프로세스다. TFX는 이 과정에서 사용할 오픈 소스 엔드 투 엔드 ML 플랫폼이다.