Cloud AI Platform 파이프라인의 TFX

소개

이 가이드는 TensorFlow Extended(TFX)AIPlatform Pipelines 를 소개하고 Google Cloud에서 자체 머신러닝 파이프라인을 만드는 방법을 배우는 데 도움이 되도록 설계되었습니다. TFX, AI Platform Pipelines, Kubeflow와의 통합과 Jupyter 노트북에서 TFX와의 상호 작용을 보여줍니다.

이 가이드가 끝나면 GCP에서 호스팅되는 ML 파이프라인을 만들고 실행하게 됩니다. 각 실행의 결과를 시각화하고 생성된 아티팩트의 계보를 볼 수 있습니다.

데이터 세트를 검사하여 시작하여 완전한 작업 파이프라인으로 끝나는 일반적인 ML 개발 프로세스를 따릅니다. 그 과정에서 파이프라인을 디버그 및 업데이트하고 성능을 측정하는 방법을 탐색하게 됩니다.

시카고 택시 데이터 세트

택시시카고 택시

시카고 시에서 발표한 Taxi Trips 데이터 세트 를 사용하고 있습니다.

Google BigQuery 에서 데이터세트에 대해 자세히 알아볼 수 있습니다. BigQuery UI 에서 전체 데이터세트를 살펴보세요.

모델 목표 - 이진 분류

고객이 팁을 20% 이상 또는 더 적게 제공합니까?

1. Google Cloud 프로젝트 설정

1.a Google Cloud에서 환경 설정

시작하려면 Google Cloud 계정이 필요합니다. 이미 있는 경우 새 프로젝트 만들기 로 건너뜁니다.

  1. Google Cloud Console 로 이동합니다.

  2. Google Cloud 이용약관에 동의

  3. 무료 평가판 계정으로 시작 하려면 무료 체험 (또는 무료 로 시작하기 )을 클릭하십시오.

    1. 당신의 나라를 선택하세요.

    2. 서비스 약관에 동의합니다.

    3. 결제 세부정보를 입력합니다.

      이 시점에서 비용이 청구되지 않습니다. 다른 GCP 프로젝트가 없는 경우 동시에 실행되는 최대 8개의 코어를 포함하는 GCP 프리 티어 제한을 초과하지 않고 이 가이드를 완료할 수 있습니다.

1.b 새 프로젝트를 만듭니다.

  1. 기본 Google Cloud 대시보드 에서 Google Cloud Platform 헤더 옆에 있는 프로젝트 드롭다운을 클릭하고 새 프로젝트 를 선택합니다.
  2. 프로젝트 이름을 지정하고 다른 프로젝트 세부 정보를 입력하십시오.
  3. 프로젝트를 생성했으면 프로젝트 드롭다운에서 선택해야 합니다.

2. 새 Kubernetes 클러스터에서 AI Platform 파이프라인 설정 및 배포

  1. AI Platform 파이프라인 클러스터 페이지로 이동합니다.

    기본 탐색 메뉴 아래: ≡ > AI Platform > 파이프라인

  2. + 새 인스턴스 를 클릭하여 새 클러스터를 만듭니다.

  3. Kubeflow Pipelines 개요 페이지에서 구성 을 클릭합니다.

  4. Kubernetes Engine API를 활성화하려면 "활성화"를 클릭하세요.

  5. Kubeflow Pipelines 배포 페이지에서:

    1. 클러스터의 영역 (또는 "리전")을 선택합니다. 네트워크 및 하위 네트워크를 설정할 수 있지만 이 자습서의 목적을 위해 기본값으로 두겠습니다.

    2. 중요 다음 클라우드 API에 대한 액세스 허용 레이블이 지정된 상자를 선택하십시오. (이 클러스터가 프로젝트의 다른 부분에 액세스하는 데 필요합니다. 이 단계를 놓치면 나중에 수정하기가 약간 까다롭습니다.)

    3. Create New Cluster 를 클릭하고 클러스터가 생성될 때까지 몇 분 정도 기다립니다. 몇 분 정도 걸립니다. 완료되면 다음과 같은 메시지가 표시됩니다.

      클러스터 "cluster-1"이 영역 "us-central1-a"에 생성되었습니다.

    4. 네임스페이스와 인스턴스 이름을 선택합니다(기본값을 사용하는 것이 좋습니다). 이 튜토리얼의 목적을 위해 executor.emissary 또는 managedstorage.enabled 를 확인하지 마십시오.

    5. 배포 를 클릭하고 파이프라인이 배포될 때까지 잠시 기다립니다. Kubeflow Pipelines를 배포하면 서비스 약관에 동의하는 것입니다.

3. Cloud AI Platform Notebook 인스턴스를 설정합니다.

  1. Vertex AI Workbench 페이지로 이동합니다. Workbench를 처음 실행할 때 Notebooks API를 활성화해야 합니다.

    기본 탐색 메뉴 아래: ≡ -> Vertex AI -> Workbench

  2. 메시지가 표시되면 Compute Engine API를 사용 설정합니다.

  3. TensorFlow Enterprise 2.7(또는 그 이상)이 설치된 새 노트북 을 만듭니다.

    새 노트북 -> TensorFlow Enterprise 2.7 -> GPU 없음

    지역과 영역을 선택하고 노트북 인스턴스에 이름을 지정합니다.

    프리 티어 제한 내에서 유지하려면 여기에서 기본 설정을 변경하여 이 인스턴스에 사용 가능한 vCPU 수를 4에서 2로 줄여야 할 수 있습니다.

    1. 새 노트북 양식 하단에서 고급 옵션 을 선택합니다.
    2. 머신 구성 에서 프리 티어를 유지해야 하는 경우 vCPU가 1개 또는 2개인 구성을 선택할 수 있습니다.

    3. 새 노트북이 생성될 때까지 기다린 다음 노트북 API 활성화 를 클릭합니다.

4. 시작하기 노트북 실행

  1. AI Platform 파이프라인 클러스터 페이지로 이동합니다.

    기본 탐색 메뉴 아래: ≡ -> AI Platform -> 파이프라인

  2. 이 튜토리얼에서 사용 중인 클러스터의 라인에서 Open Pipelines Dashboard 를 클릭하십시오.

  3. 시작하기 페이지 에서 Google Cloud에서 Cloud AI Platform Notebook 열기 를 클릭합니다.

  4. 이 자습서에 사용 중인 노트북 인스턴스를 선택하고 계속 을 클릭한 다음 확인 을 클릭합니다.

    셀렉트 노트북

5. 노트북에서 계속 작업

설치

시작하기 노트북은 Jupyter Lab이 실행 중인 VM에 TFXKubeflow Pipelines(KFP) 를 설치하여 시작합니다.

그런 다음 설치된 TFX 버전을 확인하고 가져오기를 수행하고 프로젝트 ID를 설정 및 인쇄합니다.

파이썬 버전 확인 및 가져오기

Google Cloud 서비스에 연결

파이프라인 구성에는 노트북을 통해 가져와 환경 변수로 설정할 수 있는 프로젝트 ID가 필요합니다.

# Read GCP project id from env.
shell_output=!gcloud config list --format 'value(core.project)' 2>/dev/null
GCP_PROJECT_ID=shell_output[0]
print("GCP project ID:" + GCP_PROJECT_ID)

이제 KFP 클러스터 엔드포인트를 설정합니다.

파이프라인 대시보드의 URL에서 찾을 수 있습니다. Kubeflow Pipeline 대시보드로 이동하여 URL을 확인합니다. 엔드포인트는 https://시작하여 googleusercontent.com 을 포함한 URL의 모든 것입니다.

ENDPOINT='' # Enter YOUR ENDPOINT here.

그런 다음 노트북은 사용자 지정 Docker 이미지에 대해 고유한 이름을 설정합니다.

# Docker image name for the pipeline image
CUSTOM_TFX_IMAGE='gcr.io/' + GCP_PROJECT_ID + '/tfx-pipeline'

6. 템플릿을 프로젝트 디렉토리에 복사

다음 노트북 셀을 편집하여 파이프라인의 이름을 설정하십시오. 이 튜토리얼에서는 my_pipeline 을 사용할 것입니다.

PIPELINE_NAME="my_pipeline"
PROJECT_DIR=os.path.join(os.path.expanduser("~"),"imported",PIPELINE_NAME)

그런 다음 노트북은 tfx CLI를 사용하여 파이프라인 템플릿을 복사합니다. 이 자습서에서는 Chicago Taxi 데이터 세트를 사용하여 이진 분류를 수행하므로 템플릿은 모델을 taxi 로 설정합니다.

!tfx template copy \
  --pipeline-name={PIPELINE_NAME} \
  --destination-path={PROJECT_DIR} \
  --model=taxi

그런 다음 노트북은 CWD 컨텍스트를 프로젝트 디렉토리로 변경합니다.

%cd {PROJECT_DIR}

파이프라인 파일 찾아보기

Cloud AI Platform Notebook의 왼쪽에 파일 브라우저가 표시되어야 합니다. 파이프라인 이름( my_pipeline )이 있는 디렉토리가 있어야 합니다. 그것을 열고 파일을 봅니다. (노트북 환경에서도 열어서 편집할 수 있습니다.)

# You can also list the files from the shell
 ls

위의 tfx template copy 명령은 파이프라인을 구축하는 기본 파일 스캐폴드를 생성했습니다. 여기에는 Python 소스 코드, 샘플 데이터 및 Jupyter 노트북이 포함됩니다. 이것은 이 특정 예를 위한 것입니다. 자체 파이프라인의 경우 파이프라인에 필요한 지원 파일입니다.

다음은 Python 파일에 대한 간략한 설명입니다.

  • pipeline - 이 디렉토리에는 파이프라인의 정의가 포함되어 있습니다.
    • configs.py — 파이프라인 러너에 대한 공통 상수를 정의합니다.
    • pipeline.py .py — TFX 구성 요소 및 파이프라인을 정의합니다.
  • models - 이 디렉터리에는 ML 모델 정의가 포함되어 있습니다.
    • features.py features_test.py — 모델의 기능을 정의합니다.
    • preprocessing.py / preprocessing_test.pytf::Transform 을 사용하여 전처리 작업을 정의합니다.
    • estimator - 이 디렉토리에는 Estimator 기반 모델이 포함되어 있습니다.
      • constants.py — 모델의 상수를 정의합니다.
      • model.py / model_test.py — TF 추정기를 사용하여 DNN 모델을 정의합니다.
    • keras - 이 디렉토리에는 Keras 기반 모델이 포함되어 있습니다.
      • constants.py — 모델의 상수를 정의합니다.
      • model.py / model_test.py — Keras를 사용하여 DNN 모델을 정의합니다.
  • beam_runner.py / kubeflow_runner.py — 각 오케스트레이션 엔진에 대한 러너 정의

7. Kubeflow에서 첫 번째 TFX 파이프라인 실행

노트북은 tfx run CLI 명령을 사용하여 파이프라인을 실행합니다.

스토리지에 연결

파이프라인을 실행하면 ML-Metadata 에 저장해야 하는 아티팩트가 생성됩니다. 아티팩트는 파일 시스템이나 블록 스토리지에 저장해야 하는 파일인 페이로드를 나타냅니다. 이 자습서에서는 GCS를 사용하여 설정 중에 자동으로 생성된 버킷을 사용하여 메타데이터 페이로드를 저장합니다. 이름은 <your-project-id>-kubeflowpipelines-default 입니다.

파이프라인 생성

노트북은 샘플 데이터를 GCS 버킷에 업로드하여 나중에 파이프라인에서 사용할 수 있습니다.

gsutil cp data/data.csv gs://{GOOGLE_CLOUD_PROJECT}-kubeflowpipelines-default/tfx-template/data/taxi/data.csv

그런 다음 노트북은 tfx pipeline create 명령을 사용하여 파이프라인을 생성합니다.

!tfx pipeline create  \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT} \
--build-image

파이프라인을 생성하는 동안 Docker 이미지를 빌드하기 위해 Dockerfile 이 생성됩니다. 이러한 파일을 다른 소스 파일과 함께 소스 제어 시스템(예: git)에 추가하는 것을 잊지 마십시오.

파이프라인 실행

그런 다음 노트북은 tfx run create 명령을 사용하여 파이프라인의 실행 실행을 시작합니다. Kubeflow Pipelines 대시보드의 실험 아래에도 이 실행이 나열됩니다.

tfx run create --pipeline-name={PIPELINE_NAME} --endpoint={ENDPOINT}

Kubeflow Pipelines 대시보드에서 파이프라인을 볼 수 있습니다.

8. 데이터 검증

모든 데이터 과학 또는 ML 프로젝트의 첫 번째 작업은 데이터를 이해하고 정리하는 것입니다.

  • 각 기능의 데이터 유형 이해
  • 이상 및 누락된 값 찾기
  • 각 기능에 대한 분포 이해

구성품

데이터 구성 요소데이터 구성 요소

  • ExampleGen 은 입력 데이터 세트를 수집하고 분할합니다.
  • StatisticsGen 은 데이터 세트에 대한 통계를 계산합니다.
  • SchemaGen SchemaGen은 통계를 검사하고 데이터 스키마를 생성합니다.
  • ExampleValidator 는 데이터세트에서 이상 및 누락된 값을 찾습니다.

Jupyter 랩 파일 편집기에서:

pipeline / pipeline.py .py 에서 다음 구성요소를 파이프라인에 추가하는 행의 주석 처리를 제거합니다.

# components.append(statistics_gen)
# components.append(schema_gen)
# components.append(example_validator)

( 템플릿 파일을 복사할 때 ExampleGen 이 이미 활성화되어 있었습니다.)

파이프라인 업데이트 및 다시 실행

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

파이프라인 확인

Kubeflow Orchestrator의 경우 KFP 대시보드를 방문하여 파이프라인 실행 페이지에서 파이프라인 출력을 찾으십시오. 왼쪽에서 "실험" 탭을 클릭하고 실험 페이지에서 "모든 실행"을 클릭합니다. 파이프라인 이름으로 실행을 찾을 수 있어야 합니다.

고급 예제

여기에 제시된 예는 실제로 시작하기 위한 것입니다. 고급 예제는 TensorFlow Data Validation Colab 을 참조하세요.

TFDV를 사용하여 데이터세트를 탐색하고 검증하는 방법에 대한 자세한 내용은 tensorflow.org 의 예제를 참조하세요 .

9. 피처 엔지니어링

기능 엔지니어링을 통해 데이터의 예측 품질을 높이거나 차원을 줄일 수 있습니다.

  • 특징 교차
  • 어휘
  • 임베딩
  • PCA
  • 범주형 인코딩

TFX를 사용할 때의 이점 중 하나는 변환 코드를 한 번만 작성하면 결과 변환이 훈련과 제공 간에 일관된다는 것입니다.

구성품

변환

  • Transform 은 데이터 세트에서 기능 엔지니어링을 수행합니다.

Jupyter 랩 파일 편집기에서:

pipeline / pipeline.py .py 에서 파이프라인에 Transform 을 추가하는 줄을 찾아 주석 처리를 제거합니다.

# components.append(transform)

파이프라인 업데이트 및 다시 실행

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

파이프라인 출력 확인

Kubeflow Orchestrator의 경우 KFP 대시보드를 방문하여 파이프라인 실행 페이지에서 파이프라인 출력을 찾으십시오. 왼쪽에서 "실험" 탭을 클릭하고 실험 페이지에서 "모든 실행"을 클릭합니다. 파이프라인 이름으로 실행을 찾을 수 있어야 합니다.

고급 예제

여기에 제시된 예는 실제로 시작하기 위한 것입니다. 고급 예제는 TensorFlow Transform Colab 을 참조하세요.

10. 훈련

멋지고 깨끗하며 변환된 데이터로 TensorFlow 모델을 훈련시키세요.

  • 일관되게 적용되도록 이전 단계의 변환을 포함합니다.
  • 생산을 위해 저장된 모델로 결과 저장
  • TensorBoard를 사용하여 교육 과정 시각화 및 탐색
  • 또한 모델 성능 분석을 위해 EvalSavedModel을 저장합니다.

구성품

  • Trainer 는 TensorFlow 모델을 훈련합니다.

Jupyter 랩 파일 편집기에서:

pipeline / pipeline.py .py 에서 파이프라인에 Trainer를 추가하는 항목을 찾아 주석 처리를 제거합니다.

# components.append(trainer)

파이프라인 업데이트 및 다시 실행

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

파이프라인 출력 확인

Kubeflow Orchestrator의 경우 KFP 대시보드를 방문하여 파이프라인 실행 페이지에서 파이프라인 출력을 찾으십시오. 왼쪽에서 "실험" 탭을 클릭하고 실험 페이지에서 "모든 실행"을 클릭합니다. 파이프라인 이름으로 실행을 찾을 수 있어야 합니다.

고급 예제

여기에 제시된 예는 실제로 시작하기 위한 것입니다. 고급 예제는 TensorBoard Tutorial 을 참조하십시오.

11. 모델 성능 분석

최상위 메트릭 그 이상을 이해합니다.

  • 사용자는 쿼리에 대해서만 모델 성능을 경험합니다.
  • 데이터 조각에 대한 열악한 성능은 최상위 메트릭에 의해 숨겨질 수 있습니다.
  • 모델의 공정성이 중요하다
  • 종종 사용자 또는 데이터의 주요 하위 집합이 매우 중요하고 작을 수 있습니다.
    • 중요하지만 비정상적인 조건에서의 성능
    • 인플루언서와 같은 주요 잠재고객을 위한 성능
  • 현재 생산 중인 모델을 교체하는 경우 먼저 새 모델이 더 나은지 확인하십시오.

구성품

  • 평가자 는 훈련 결과에 대한 심층 분석을 수행합니다.

Jupyter 랩 파일 편집기에서:

pipeline / pipeline.py .py 에서 Evaluator를 파이프라인에 추가하는 줄을 찾아 주석 처리를 제거합니다.

components.append(evaluator)

파이프라인 업데이트 및 다시 실행

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

파이프라인 출력 확인

Kubeflow Orchestrator의 경우 KFP 대시보드를 방문하여 파이프라인 실행 페이지에서 파이프라인 출력을 찾으십시오. 왼쪽에서 "실험" 탭을 클릭하고 실험 페이지에서 "모든 실행"을 클릭합니다. 파이프라인 이름으로 실행을 찾을 수 있어야 합니다.

12. 모델 서빙

새 모델이 준비되면 그렇게 하십시오.

  • Pusher는 잘 알려진 위치에 저장된 모델을 배포합니다.

배포 대상은 잘 알려진 위치에서 새 모델을 받습니다.

  • 텐서플로우 서빙
  • 텐서플로우 라이트
  • 텐서플로우 JS
  • 텐서플로우 허브

구성품

  • 푸셔 는 서비스 인프라에 모델을 배포합니다.

Jupyter 랩 파일 편집기에서:

pipeline / pipeline.py .py 에서 파이프라인에 푸셔를 추가하는 줄을 찾아 주석 처리를 제거합니다.

# components.append(pusher)

파이프라인 출력 확인

Kubeflow Orchestrator의 경우 KFP 대시보드를 방문하여 파이프라인 실행 페이지에서 파이프라인 출력을 찾으십시오. 왼쪽에서 "실험" 탭을 클릭하고 실험 페이지에서 "모든 실행"을 클릭합니다. 파이프라인 이름으로 실행을 찾을 수 있어야 합니다.

사용 가능한 배포 대상

이제 모델을 훈련하고 검증했으며 이제 모델을 생산할 준비가 되었습니다. 이제 다음을 포함한 모든 TensorFlow 배포 대상에 모델을 배포할 수 있습니다.

  • TensorFlow Serving , 서버 또는 서버 팜에서 모델을 제공하고 REST 및/또는 gRPC 추론 요청을 처리합니다.
  • TensorFlow Lite 는 Android 또는 iOS 기본 모바일 애플리케이션, Raspberry Pi, IoT 또는 마이크로컨트롤러 애플리케이션에 모델을 포함하기 위한 것입니다.
  • 웹 브라우저 또는 Node.JS 애플리케이션에서 모델을 실행하기 위한 TensorFlow.js .

고급 예제

위에 제시된 예는 실제로 시작하기 위한 것입니다. 다음은 다른 클라우드 서비스와의 통합에 대한 몇 가지 예입니다.

Kubeflow Pipelines 리소스 고려 사항

워크로드의 요구 사항에 따라 Kubeflow Pipelines 배포의 기본 구성이 요구 사항을 충족하거나 충족하지 않을 수 있습니다. KubeflowDagRunnerConfig 호출에서 pipeline_operator_funcs 를 사용하여 리소스 구성을 사용자 지정할 수 있습니다.

pipeline_operator_funcsKubeflowDagRunner 에서 컴파일된 KFP 파이프라인 사양에서 생성된 모든 ContainerOp 인스턴스를 변환하는 OpFunc 항목 목록입니다.

예를 들어, 메모리를 구성하기 위해 set_memory_request 를 사용하여 필요한 메모리 양을 선언할 수 있습니다. 이를 수행하는 일반적인 방법은 set_memory_request 에 대한 래퍼를 만들고 이를 사용하여 파이프라인 OpFunc 목록에 추가하는 것입니다.

def request_more_memory():
  def _set_memory_spec(container_op):
    container_op.set_memory_request('32G')
  return _set_memory_spec

# Then use this opfunc in KubeflowDagRunner
pipeline_op_funcs = kubeflow_dag_runner.get_default_pipeline_operator_funcs()
pipeline_op_funcs.append(request_more_memory())
config = KubeflowDagRunnerConfig(
    pipeline_operator_funcs=pipeline_op_funcs,
    ...
)
kubeflow_dag_runner.KubeflowDagRunner(config=config).run(pipeline)

유사한 리소스 구성 기능은 다음과 같습니다.

  • set_memory_limit
  • set_cpu_request
  • set_cpu_limit
  • set_gpu_limit

BigQueryExampleGen 사용해 보기

BigQuery 는 확장성이 뛰어나고 비용 효율적인 서버리스 클라우드 데이터 웨어하우스입니다. BigQuery는 TFX에서 학습 예제의 소스로 사용할 수 있습니다. 이 단계에서는 BigQueryExampleGen 을 파이프라인에 추가합니다.

Jupyter 랩 파일 편집기에서:

두 번 클릭하여 pipeline.py 를 엽니다 . CsvExampleGen 을 주석 처리하고 BigQueryExampleGen 인스턴스를 생성하는 행의 주석 처리를 제거합니다. 또한 create_pipeline 함수의 query 인수를 주석 해제해야 합니다.

BigQuery에 사용할 GCP 프로젝트를 지정해야 하며 파이프라인을 생성할 때 beam_pipeline_args--project 를 설정하면 됩니다.

두 번 클릭하여 configs.py 를 엽니다 . BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGSBIG_QUERY_QUERY 정의의 주석 처리를 제거합니다. 이 파일의 프로젝트 ID와 지역 값을 GCP 프로젝트의 올바른 값으로 바꿔야 합니다.

디렉토리를 한 단계 위로 변경하십시오. 파일 목록 위의 디렉터리 이름을 클릭합니다. 디렉토리 이름은 파이프라인 이름을 변경하지 않은 경우 my_pipeline 인 파이프라인 이름입니다.

두 번 클릭하여 kubeflow_runner.py 를 엽니다 . create_pipeline 함수에 대한 두 개의 인수 querybeam_pipeline_args 의 주석 처리를 제거합니다.

이제 파이프라인에서 BigQuery를 예시 소스로 사용할 준비가 되었습니다. 이전과 같이 파이프라인을 업데이트하고 5단계와 6단계에서 했던 것처럼 새 실행 실행을 만듭니다.

파이프라인 업데이트 및 다시 실행

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Dataflow 사용해 보기

여러 TFX 구성요소는 Apache Beam을 사용 하여 데이터 병렬 파이프라인을 구현하며, 이는 Google Cloud Dataflow 를 사용하여 데이터 처리 워크로드를 분산할 수 있음을 의미합니다. 이 단계에서는 Apache Beam의 데이터 처리 백엔드로 Dataflow를 사용하도록 Kubeflow 오케스트레이터를 설정합니다.

# Select your project:
gcloud config set project YOUR_PROJECT_ID

# Get a list of services that you can enable in your project:
gcloud services list --available | grep Dataflow

# If you don't see dataflow.googleapis.com listed, that means you haven't been
# granted access to enable the Dataflow API.  See your account adminstrator.

# Enable the Dataflow service:

gcloud services enable dataflow.googleapis.com

pipeline 을 두 번 클릭하여 디렉터리를 변경하고 두 번 클릭하여 configs.py 를 엽니다 . GOOGLE_CLOUD_REGIONDATAFLOW_BEAM_PIPELINE_ARGS 정의의 주석 처리를 제거합니다.

디렉토리를 한 단계 위로 변경하십시오. 파일 목록 위의 디렉터리 이름을 클릭합니다. 디렉토리 이름은 변경하지 않은 경우 my_pipeline 인 파이프라인 이름입니다.

두 번 클릭하여 kubeflow_runner.py 를 엽니다 . beam_pipeline_args 의 주석 처리를 제거합니다. (또한 7단계에서 추가한 현재 beam_pipeline_args 를 주석 처리해야 합니다.)

파이프라인 업데이트 및 다시 실행

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Cloud Console의 Dataflow에서 Dataflow 작업을 찾을 수 있습니다.

KFP로 Cloud AI Platform 학습 및 예측 사용해 보기

TFX는 Cloud AI Platform for Training 및 Prediction과 같은 여러 관리형 GCP 서비스와 상호 운용됩니다. ML 모델 학습을 위한 관리형 서비스인 Cloud AI Platform Training을 사용하도록 Trainer 구성 요소를 설정할 수 있습니다. 또한 모델이 빌드되어 제공할 준비가 되면 제공을 위해 모델을 Cloud AI Platform Prediction으로 푸시 할 수 있습니다. 이 단계에서는 TrainerPusher 구성요소가 Cloud AI Platform 서비스를 사용하도록 설정합니다.

파일을 수정하기 전에 먼저 AI Platform Training & Prediction API 를 사용 설정해야 할 수 있습니다.

pipeline 을 두 번 클릭하여 디렉터리를 변경하고 두 번 클릭하여 configs.py 를 엽니다 . GOOGLE_CLOUD_REGION , GCP_AI_PLATFORM_TRAINING_ARGSGCP_AI_PLATFORM_SERVING_ARGS 의 정의를 주석 해제합니다. 커스텀 빌드 컨테이너 이미지를 사용하여 Cloud AI Platform Training에서 모델을 masterConfig.imageUriGCP_AI_PLATFORM_TRAINING_ARGS 를 위의 CUSTOM_TFX_IMAGE 와 동일한 값으로 설정해야 합니다.

디렉토리를 한 단계 위로 변경하고 두 번 클릭하여 kubeflow_runner.py 를 엽니다 . ai_platform_training_argsai_platform_serving_args 의 주석 처리를 제거합니다.

파이프라인 업데이트 및 다시 실행

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Cloud AI Platform 작업 에서 학습 작업을 찾을 수 있습니다. 파이프라인이 성공적으로 완료되면 Cloud AI Platform 모델 에서 모델을 찾을 수 있습니다.

14. 자신의 데이터 사용

이 자습서에서는 Chicago Taxi 데이터 세트를 사용하여 모델에 대한 파이프라인을 만들었습니다. 이제 자신의 데이터를 파이프라인에 넣어 보십시오. Google Cloud Storage, BigQuery 또는 CSV 파일을 포함하여 파이프라인이 액세스할 수 있는 모든 위치에 데이터를 저장할 수 있습니다.

데이터를 수용하려면 파이프라인 정의를 수정해야 합니다.

데이터가 파일에 저장된 경우

  1. 위치를 나타내는 kubeflow_runner.py 에서 DATA_PATH 를 수정합니다.

데이터가 BigQuery에 저장된 경우

  1. BIG_QUERY_QUERY 의 BIG_QUERY_QUERY를 쿼리 문으로 수정합니다.
  2. models / features.py 에 기능을 추가하세요.
  3. models preprocessing.py 를 수정 하여 교육용 입력 데이터를 변환합니다 .
  4. ML 모델을 설명하기 위해 models / keras / model.pymodels / keras / constants.py 를 수정합니다.

트레이너에 대해 자세히 알아보기

교육 파이프라인에 대한 자세한 내용은 Trainer 구성 요소 가이드 를 참조하세요.

청소

이 프로젝트에 사용된 모든 GCP 리소스를 정리하기 위해 가이드에 사용한 GCP 프로젝트를 삭제할 수 있습니다.

또는 각 콘솔을 방문하여 개별 리소스를 정리할 수 있습니다. - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine