Cloud AI Platform 파이프라인의 TFX

소개

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

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

데이터세트 검사부터 시작하여 완전한 작업 파이프라인으로 마무리되는 일반적인 ML 개발 프로세스를 따르게 됩니다. 그 과정에서 파이프라인을 디버그 및 업데이트하고 성능을 측정하는 방법을 살펴보겠습니다.

시카고 택시 데이터세트

택시시카고 택시

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

Google BigQuery 에서 데이터 세트에 대한 자세한 내용을 읽을 수 있습니다. BigQuery UI 에서 전체 데이터세트를 살펴보세요.

모델 목표 - 이진 분류

고객이 팁을 20% 이상 또는 이하로 지불합니까?

1. Google Cloud 프로젝트 설정

1.a Google Cloud에서 환경 설정

시작하려면 Google 클라우드 계정이 필요합니다. 이미 가지고 있다면 새 프로젝트 만들기 로 건너뛰세요.

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

  2. Google Cloud 이용약관에 동의합니다.

  3. 무료 평가판 계정으로 시작하려면 무료로 사용해 보기 (또는 무료로 시작하기 )를 클릭하세요.

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

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

    3. 청구 세부정보를 입력하세요.

      이 시점에서는 비용이 청구되지 않습니다. 다른 Google Cloud 프로젝트가 없는 경우 동시에 실행되는 최대 8개의 코어를 포함하는 Google Cloud 무료 등급 한도를 초과하지 않고 이 튜토리얼을 완료할 수 있습니다.

1.b 새 프로젝트를 생성합니다.

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

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

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

    기본 탐색 메뉴에서: pho > AI Platform > 파이프라인

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

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

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

  5. Kubeflow Pipelines 배포 페이지에서 다음을 수행합니다.

    1. 클러스터의 구역 (또는 "지역")을 선택하십시오. 네트워크와 하위 네트워크를 설정할 수 있지만 이 튜토리얼에서는 이를 기본값으로 두겠습니다.

    2. 중요 다음 클라우드 API에 대한 액세스 허용 확인란을 선택하세요. (이 클러스터가 프로젝트의 다른 부분에 액세스하려면 이 단계가 필요합니다. 이 단계를 놓치면 나중에 수정하는 것이 약간 까다롭습니다.)

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

      클러스터 "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. 시작하기 페이지에서 Open a Cloud AI Platform Notebook on Google Cloud 를 클릭합니다.

  4. 이 튜토리얼에 사용 중인 노트북 인스턴스를 선택하고 계속 , 확인 을 차례로 선택합니다.

    선택 노트북

5. 노트북에서 계속 작업

설치하다

시작하기 노트북은 Jupyter Lab이 실행 중인 VM에 TFXKFP(Kubeflow Pipelines)를 설치하는 것으로 시작됩니다.

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

Python 버전을 확인하고 가져오기

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:// 로 시작하는 URL에서 googleusercontent.com 까지의 모든 항목입니다.

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 — 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 에서 파이프라인에 이러한 구성 요소를 추가하는 줄의 주석 처리를 제거합니다.

# 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 에서 파이프라인에 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 모델을 훈련하세요.

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

구성요소

  • Trainer는 TensorFlow 모델을 학습시킵니다.

Jupyter 랩 파일 편집기에서:

pipeline / pipeline.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 에서 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는 잘 알려진 위치에 저장된 모델을 배포합니다.

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

  • TensorFlow 제공
  • 텐서플로우 라이트
  • 텐서플로우 JS
  • 텐서플로우 허브

구성요소

  • Pusher는 모델을 서비스 제공 인프라에 배포합니다.

Jupyter 랩 파일 편집기에서:

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

# components.append(pusher)

파이프라인 출력 확인

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

사용 가능한 배포 대상

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

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

고급 예

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

Kubeflow Pipelines 리소스 고려 사항

워크로드 요구 사항에 따라 Kubeflow Pipelines 배포의 기본 구성이 요구 사항을 충족할 수도 있고 그렇지 않을 수도 있습니다. KubeflowDagRunnerConfig 호출 시 pipeline_operator_funcs 사용하여 리소스 구성을 맞춤설정할 수 있습니다.

pipeline_operator_funcs KubeflowDagRunner 에서 컴파일된 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를 사용하여 데이터 처리 워크로드를 분산할 수 있음을 의미합니다. 이 단계에서는 Dataflow를 Apache Beam의 데이터 처리 백엔드로 사용하도록 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 과 같은 여러 관리형 GCP 서비스와 상호 운용됩니다. ML 모델 학습을 위한 관리형 서비스인 Cloud AI Platform Training을 사용하도록 Trainer 구성요소를 설정할 수 있습니다. 또한 모델이 구축되어 제공될 준비가 되면 제공을 위해 모델을 Cloud AI Platform Prediction으로 푸시 할 수 있습니다. 이 단계에서는 Cloud AI Platform 서비스를 사용하도록 TrainerPusher 구성요소를 설정합니다.

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

pipeline 두 번 클릭하여 디렉터리를 변경하고 두 번 클릭하여 configs.py 엽니다 . GOOGLE_CLOUD_REGION , GCP_AI_PLATFORM_TRAINING_ARGSGCP_AI_PLATFORM_SERVING_ARGS 정의의 주석 처리를 제거합니다. 커스텀 빌드된 컨테이너 이미지를 사용하여 Cloud AI Platform Training에서 모델을 학습시키므로 GCP_AI_PLATFORM_TRAINING_ARGSmasterConfig.imageUri 위의 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. configs.py의 BIG_QUERY_QUERY 쿼리 문으로 수정하세요.
  2. models / features.py 에 기능을 추가하세요.
  3. models preprocessing.py 를 수정하여 학습용 입력 데이터를 변환합니다 .
  4. ML 모델을 설명 하려면 models / keras / model.pymodels / keras / constants.py 를 수정하세요.

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

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

청소

이 프로젝트에 사용된 모든 Google Cloud 리소스를 정리하려면 가이드에 사용한 Google Cloud 프로젝트를 삭제 하면 됩니다.

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