글 작성자: 만렙개발자

CMLE (Cloud ML Engine)

  • 구글 클라우드에서 제공하는 머신러닝 엔진
  • CMLE는 다양한 레벨(아래 참조)의 텐서플로우 모델을 학습과 배포하는 서비스를 매니징합니다.
    1. tf.estimator
      • High-level API for distributed training
      • 머신러닝 모델을 커스텀할 필요가 없음
        • 검증, 체크포인트 생성, 저장 등을 하는 방법을 몰라도 할 수 있음
    2. tf.layers, tf.losses, tf.metrics & Core TensorFlow (Python)
    3. Core TensorFlow (C++) & CPU, GPU, TPU, and Android
    • ※ 이 글에서는 위의 1에 해당하는 레벨에서 tensorflow를 사용할 것입니다.
  • 특징
    • Repeatable
    • Scalable
      • distribute pre-processing
    • Tuned

구글 클라우드 플랫폼(GCP)에서 머신러닝(Machine Learning) 활용하는 과정

  1. Explore, visualize a dataset (Cloud Datalab)
  2. Create sampled dataset (BigQuery)
  3. Develop a TensorFlow Model
  4. Create Training and evaluation datasets (Data Pipeline, Cloud Dataflow)
  5. Execute Training (Cloud ML Engine, Cloud Storage)
  6. Deploy Prediction Service (Cloud ML Engine)
  7. Invoke ML predictions (Web Application, App Engine)

효과적인 ML을 위해 필요한 것

  • 빅 데이터(Big Data)
    • Data Size가 커질 수록 Batch를 다루는 것이 매우 중요해집니다.
    • 데이터 사이즈가 어마어마하게 클 경우, 하나의 컴퓨터(머신, 장비)로는 학습이 어렵습니다. 예를들어, 여러 서버가 공유하는 메모리를 이용해야할 수 도 있습니다.
    • 여기서 Scale Up이 아니라, Scale Out이 해답이 됩니다.
  • 특징 공학(Feature Engineering)
    • 전처리 과정, 특징 생성/추출
  • 모델 구조(Model Architecture)
    • CNN, RNN, GAN, ...

ML 프레임워크는 뭘 더 제공?

  • 하이퍼파라미터 튜닝
  • 오토스케일링(autoscale)
    • 초당 몇개의 쿼리를 처리할지?
    • 모델이나 하이퍼파라미터가 바뀐다면?