AI Platform은 머신러닝(ML) 워크플로의 많은 부분을 지원합니다. 이 문서에서는 전체 ML 프로세스를 소개하고 각 AI Platform 서비스가 프로세스 어디에 적합한지 설명합니다.
서비스에 대한 소개는 AI Platform 기술 개요를 참조하세요.
머신러닝에 대한 간략한 설명
머신러닝(ML)은 인공지능(AI)의 하위 분야입니다. ML의 목표는 사용자가 제공한 데이터를 컴퓨터가 학습하는 것입니다. 컴퓨터가 수행해야 하는 작업을 설명하는 코드를 작성하는 대신 코드를 통해 의도한 동작의 예를 기반으로 적응하는 알고리즘을 제공합니다. 알고리즘과 관련 학습 매개변수로 구성된 결과 프로그램을 학습된 모델이라고 합니다.
ML 워크플로
아래 다이어그램에는 ML 워크플로의 단계가 간략하게 나와 있습니다. 파란색 상자는 AI Platform이 관리형 서비스 및 API를 제공하는 위치를 나타냅니다.
즉시 프로덕션이 가능한 모델을 개발하고 관리하려면 다음 단계를 거쳐야 합니다.
데이터를 찾아 준비합니다.
모델을 개발합니다.
데이터로 ML 모델을 학습시킵니다.
- 모델 학습
- 모델 정확도 평가
- 초매개변수 조정
학습된 모델을 배포합니다.
모델에 예측 요청을 보냅니다.
- 온라인 예측
- 일괄 예측
지속적으로 예측을 모니터링합니다.
모델 및 모델 버전을 관리합니다.
이 단계는 반복적입니다. 프로세스의 어떤 시점에서든 다시 평가하고 이전 단계로 돌아가야 하는 경우도 있습니다.
이 페이지의 나머지 부분에서는 이와 같은 단계에 대해 자세히 설명합니다.
시작하기 전 문제 평가
ML로 문제를 어떻게 해결할지 생각하기 전에 해결하려는 문제에 대해 생각해 보세요. 스스로에게 다음과 같은 질문을 해보세요.
해결할 문제가 잘 정의되어 있나요?
ML을 사용하여 데이터의 패턴을 파악할 때 사용할 수 있는 다양한 접근 방식이 있습니다. 모델에서 가져오려는 정보와 이 정보가 왜 필요한지를 정의하는 것이 중요합니다.
ML이 문제에 가장 좋은 해결책인가요?
지도 ML(이 문서에서 설명하는 ML 스타일)은 특정 문제 유형에 매우 적합합니다.
모델을 학습시킬 데이터의 상당 부분에 액세스할 수 있는 경우에만 문제해결에 ML을 사용할 것을 고려해야 합니다. 어느 정도의 데이터 양이 충분한 수준인지에 대한 절대적인 기준은 없습니다. 모델에 특성(데이터 속성)을 포함할 때마다 모델을 제대로 학습시키는 데 필요한 인스턴스(데이터 레코드)가 늘어납니다. 특성 추출에 대한 안내는 ML 권장사항을 참조하세요.
데이터세트를 학습용, 평가용(또는 검증용), 테스트용의 세 개 하위 집합으로 분할하는 것도 고려해야 합니다.
더 쉽고 더 구체적으로 문제를 해결할 수 있는 다른 방법도 조사해 보세요.
모델의 성공 여부를 어떻게 판단할 수 있나요?
ML 모델을 구축할 때 직면하는 가장 큰 난관 중 하나는 모델 개발 단계가 언제 완료될지를 파악하는 것입니다. 모델을 지속적으로 개선할 수 있다는 점에서 매력을 느낄 수 있지만 정확도의 개선 정도는 점차적으로 감소할 수 있습니다. 따라서 프로세스를 시작하기 전에 성공의 기준을 파악해 두어야 합니다. 요구사항을 충족하는 정확도의 수준과 이에 해당되는 수준의 오류로 인한 결과를 고려해 보세요.
데이터를 찾아 준비하기
다른 특성을 기반으로 추론(예측)할 수 있는 속성(ML에서는 특성이라고 함)이 포함된 대량의 학습 데이터에 액세스할 수 있어야 합니다.
예를 들어 모델을 통해 주택의 판매 가격을 예측하려는 경우, 각 주택의 판매 가격을 비롯하여 해당 지역 주택의 특징을 설명하는 대량 데이터 세트가 있어야 합니다.
데이터 분석
데이터를 준비했으면 데이터를 분석하고 이해한 다음 모델 학습에 적용해야 합니다. 예를 들어 다음 단계를 수행해야 할 수 있습니다.
- 여러 소스의 데이터를 결합하여 하나의 데이터세트로 합리화합니다.
- 데이터를 시각화하여 트렌드를 찾아냅니다.
- 데이터 중심 언어 및 도구를 사용하여 데이터의 패턴을 찾습니다.
- 데이터의 특성을 파악합니다. 특성은 모델에 사용하는 데이터 속성의 하위 집합으로 이루어집니다.
- 데이터를 정리하여 데이터 입력 또는 측정상의 오류로 인해 발생한 비정상적인 값을 찾습니다.
데이터 사전 처리
사전 처리 단계에서는 유효하고 정제된 데이터를 모델의 요구사항에 가장 적합한 형식으로 변환합니다. 데이터 사전 처리의 몇 가지 예는 다음과 같습니다.
- 숫자 데이터를 공통 척도로 정규화
- 데이터에 형식 지정 규칙 적용(예: 텍스트 특성에서 HTML 태그 삭제)
- 간소화를 통해 데이터 중복 감소(예: 텍스트 특성을 BOW(Bag of Words) 표현으로 변환)
- 텍스트를 숫자로 표현(예: 범주형 특성의 가능한 각 값에 값 할당)
- 데이터 인스턴스에 키 값 할당
데이터 탐색 및 준비를 위한 Google Cloud 지원
TensorFlow에는 AI Platform에서 사용할 수 있는 여러 사전 처리 라이브러리가 있습니다(예: tf.transform 등).
AI Platform에 scikit-learn 파이프라인을 배포 및 제공하여 학습 및 온라인 예측에 자체적인 변환을 적용할 수 있습니다. 커스텀 변환 적용은 베타 버전입니다.
커스텀 예측 루틴(베타)을 배포하면 AI Platform은 학습 중에 데이터를 사전 처리한 것과 동일한 방법으로 예측 시 입력을 사전 처리합니다.
또한 다음 Google Cloud 서비스를 고려해 보세요.
Vertex AI Workbench 사용자 관리 노트북은 JupyterLab 노트북과 함께 사전 패키지된 Deep Learning VM Image 인스턴스로, 데이터 준비와 탐색부터 빠른 프로토타입 개발까지 딥 러닝 데이터 과학 태스크에 최적화되어 있습니다.
BigQuery는 표준 SQL을 사용하여 실시간 데이터에 대한 임시 분석을 제공하는 완전 관리형 데이터 웨어하우스 서비스입니다.
Cloud Dataproc은 Apache Spark 및 Apache Hadoop 클러스터를 실행하는 완전 관리형 클라우드 서비스입니다.
Dataflow는 신뢰성과 표현 능력은 그대로 유지하면서 스트림(실시간) 및 일괄(기록) 모드에서 데이터를 변환하고 강화하는 완전 관리형 서비스입니다.
Dataprep은 구조화된 데이터 및 구조화되지 않은 데이터를 시각적으로 탐색하고 정리하여 분석을 준비하는 지능형 서버리스 데이터 서비스입니다.
모델 코드 작성
기존의 ML 기법을 사용하거나 새 작업 및 접근 방식을 정의하여 모델을 개발합니다.
TensorFlow 시작 가이드를 참조하여 학습을 시작합니다. scikit-learn 문서 또는 XGBoost 문서에 따라 모델을 만들 수도 있습니다. 그 다음 AI Platform과 함께 작동하도록 설계된 몇 가지 코드 샘플을 살펴봅니다.
모델 학습, 평가, 조정
AI Platform은 클라우드에서 모델을 학습시키고 평가하는 데 필요한 서비스를 제공합니다. 또한 AI Platform은 학습 프로세스를 최적화하는 초매개변수 조정 기능을 제공합니다.
모델을 학습시킬 때 대상 데이터 속성(특성) 값을 이미 알고 있는 데이터를 모델에 제공합니다. 모델을 실행하여 학습 데이터의 목표 값을 예측하면 모델이 데이터에 더 적합하도록 설정을 조정할 수 있으므로 목표 값을 더 정확히 예측할 수 있습니다.
마찬가지로, 학습된 모델을 평가할 때 목표 값이 포함된 데이터를 모델에 제공합니다. 모델의 예측 결과를 평가 데이터의 실제 값과 비교하고 모델에 적합한 통계 기법을 사용하여 성공 여부를 판별합니다.
실행할 학습 단계 수와 같이 학습 프로세스를 제어하는 데 사용하는 작업 또는 설정을 변경하여 모델을 조정할 수도 있습니다. 이 기법을 초매개변수 조정이라고 합니다.
모델 테스트
학습 중에 설정을 조정하여 결과를 개선하려면 모델을 알려진 데이터에 적용합니다. 결과가 애플리케이션의 요구사항을 충족하면 애플리케이션이 사용하는 시스템에 모델을 배포하여 테스트해야 합니다.
모델을 테스트하려면 최종 애플리케이션 및 프로덕션 인프라와 최대한 비슷하게 환경을 설정하여 데이터를 실행합니다.
학습 및 평가에 사용된 데이터세트와 다른 데이터세트를 사용합니다. 이전에 처리된 적이 없는 데이터로 모델을 테스트할 수 있도록 테스트할 때마다 다른 데이터세트를 사용하는 것이 가장 좋습니다.
모델의 특성에 따라 다양한 테스트 데이터세트를 만들 수도 있습니다. 예를 들어 특정 위치 또는 특정 시점에 다른 데이터세트를 사용하거나 다른 인구통계를 모방하도록 인스턴스를 나눌 수 있습니다.
테스트 프로세스 중에 테스트 결과를 기반으로 모델 매개변수 및 초매개변수를 조정합니다. 이를 통해 모델에서 문제를 발견하거나 애플리케이션 나머지 부분과의 상호작용에서 문제를 발견할 수 있습니다.
클라우드에 모델 호스팅
AI Platform은 모델에 예측 요청을 보낼 수 있도록 학습된 ML 모델을 클라우드에 업로드하는 도구를 제공합니다.
학습된 모델을 AI Platform에 배포하려면 머신러닝 프레임워크에서 제공한 도구를 사용하여 학습된 모델을 저장해야 합니다. 여기에는 학습된 모델을 나타내는 정보를 예측을 위해 클라우드에 배포할 수 있는 파일로 직렬화하는 작업이 포함됩니다.
그런 다음 저장된 모델을 Cloud Storage 버킷에 업로드하고 AI Platform에 모델 리소스를 만들면서 저장된 모델의 Cloud Storage 경로를 지정합니다.
모델을 배포할 때 커스텀 코드(베타)를 제공하면 예측 요청을 처리하는 방법을 맞춤설정할 수도 있습니다.
모델에 예측 요청 전송
AI Platform은 클라우드의 모델에 예측을 요청하는 데 필요한 서비스를 제공합니다.
학습된 모델에서 예측을 얻는 방법에는 온라인 예측(HTTP 예측이라고도 함)과 일괄 예측이 있습니다. 두 가지 방법 모두 클라우드에서 호스팅하는 머신러닝 모델에 입력 데이터를 전달하고 각 데이터 인스턴스를 기반으로 추론을 합니다.
예측 서비스 모니터링
지속적으로 예측을 모니터링합니다. AI Platform은 실행 중인 작업을 검사하는 API를 제공합니다. 또한 다양한 Google Cloud 도구를 통해 Cloud Logging 및 Cloud Monitoring과 같은 배포된 모델의 작업을 지원합니다.
모델 및 모델 버전 관리
AI Platform은 REST API, gcloud ai-platform
명령줄 도구, Google Cloud 콘솔 같이 모델과 버전을 관리할 수 있는 다양한 인터페이스를 제공합니다.
다음 단계
- Keras를 사용하여 AI Platform Training 및 AI Platform Prediction 시작
- 커스텀 컨테이너를 사용한 학습 방법 알아보기
- AI Platform 기본 제공 알고리즘을 사용하여 코드 작성 없이 TensorFlow 및 XGBoost 모델을 학습시키는 방법 알아보기
- 커스텀 예측 루틴을 사용하여 온라인 예측 요청의 전처리 및 후처리 추가
- 온라인 예측 파이프라인에 커스텀 코드 및 커스텀 scikit-learn 변환 추가
- AI Platform 학습 및 AI Platform 예측에 대해 자세히 알아보기