소개
이 가이드는 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 계정이 필요합니다. 이미 있는 경우 새 프로젝트 만들기 로 건너뜁니다.
Google Cloud Console 로 이동합니다.
Google Cloud 이용약관에 동의
무료 평가판 계정으로 시작 하려면 무료 체험 (또는 무료 로 시작하기 )을 클릭하십시오.
당신의 나라를 선택하세요.
서비스 약관에 동의합니다.
결제 세부정보를 입력합니다.
이 시점에서 비용이 청구되지 않습니다. 다른 GCP 프로젝트가 없는 경우 동시에 실행되는 최대 8개의 코어를 포함하는 GCP 프리 티어 제한을 초과하지 않고 이 가이드를 완료할 수 있습니다.
1.b 새 프로젝트를 만듭니다.
- 기본 Google Cloud 대시보드 에서 Google Cloud Platform 헤더 옆에 있는 프로젝트 드롭다운을 클릭하고 새 프로젝트 를 선택합니다.
- 프로젝트 이름을 지정하고 다른 프로젝트 세부 정보를 입력하십시오.
- 프로젝트를 생성했으면 프로젝트 드롭다운에서 선택해야 합니다.
2. 새 Kubernetes 클러스터에서 AI Platform 파이프라인 설정 및 배포
AI Platform 파이프라인 클러스터 페이지로 이동합니다.
기본 탐색 메뉴 아래: ≡ > AI Platform > 파이프라인
+ 새 인스턴스 를 클릭하여 새 클러스터를 만듭니다.
Kubeflow Pipelines 개요 페이지에서 구성 을 클릭합니다.
Kubernetes Engine API를 활성화하려면 "활성화"를 클릭하세요.
Kubeflow Pipelines 배포 페이지에서:
클러스터의 영역 (또는 "리전")을 선택합니다. 네트워크 및 하위 네트워크를 설정할 수 있지만 이 자습서의 목적을 위해 기본값으로 두겠습니다.
중요 다음 클라우드 API에 대한 액세스 허용 레이블이 지정된 상자를 선택하십시오. (이 클러스터가 프로젝트의 다른 부분에 액세스하는 데 필요합니다. 이 단계를 놓치면 나중에 수정하기가 약간 까다롭습니다.)
Create New Cluster 를 클릭하고 클러스터가 생성될 때까지 몇 분 정도 기다립니다. 몇 분 정도 걸립니다. 완료되면 다음과 같은 메시지가 표시됩니다.
클러스터 "cluster-1"이 영역 "us-central1-a"에 생성되었습니다.
네임스페이스와 인스턴스 이름을 선택합니다(기본값을 사용하는 것이 좋습니다). 이 튜토리얼의 목적을 위해 executor.emissary 또는 managedstorage.enabled 를 확인하지 마십시오.
배포 를 클릭하고 파이프라인이 배포될 때까지 잠시 기다립니다. Kubeflow Pipelines를 배포하면 서비스 약관에 동의하는 것입니다.
3. Cloud AI Platform Notebook 인스턴스를 설정합니다.
Vertex AI Workbench 페이지로 이동합니다. Workbench를 처음 실행할 때 Notebooks API를 활성화해야 합니다.
기본 탐색 메뉴 아래: ≡ -> Vertex AI -> Workbench
메시지가 표시되면 Compute Engine API를 사용 설정합니다.
TensorFlow Enterprise 2.7(또는 그 이상)이 설치된 새 노트북 을 만듭니다.
새 노트북 -> TensorFlow Enterprise 2.7 -> GPU 없음
지역과 영역을 선택하고 노트북 인스턴스에 이름을 지정합니다.
프리 티어 제한 내에서 유지하려면 여기에서 기본 설정을 변경하여 이 인스턴스에 사용 가능한 vCPU 수를 4에서 2로 줄여야 할 수 있습니다.
- 새 노트북 양식 하단에서 고급 옵션 을 선택합니다.
머신 구성 에서 프리 티어를 유지해야 하는 경우 vCPU가 1개 또는 2개인 구성을 선택할 수 있습니다.
새 노트북이 생성될 때까지 기다린 다음 노트북 API 활성화 를 클릭합니다.
4. 시작하기 노트북 실행
AI Platform 파이프라인 클러스터 페이지로 이동합니다.
기본 탐색 메뉴 아래: ≡ -> AI Platform -> 파이프라인
이 튜토리얼에서 사용 중인 클러스터의 라인에서 Open Pipelines Dashboard 를 클릭하십시오.
시작하기 페이지 에서 Google Cloud에서 Cloud AI Platform Notebook 열기 를 클릭합니다.
이 자습서에 사용 중인 노트북 인스턴스를 선택하고 계속 을 클릭한 다음 확인 을 클릭합니다.
5. 노트북에서 계속 작업
설치
시작하기 노트북은 Jupyter Lab이 실행 중인 VM에 TFX 및 Kubeflow 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.py
—tf::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_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_ARGS
및 BIG_QUERY_QUERY
정의의 주석 처리를 제거합니다. 이 파일의 프로젝트 ID와 지역 값을 GCP 프로젝트의 올바른 값으로 바꿔야 합니다.
디렉토리를 한 단계 위로 변경하십시오. 파일 목록 위의 디렉터리 이름을 클릭합니다. 디렉토리 이름은 파이프라인 이름을 변경하지 않은 경우 my_pipeline
인 파이프라인 이름입니다.
두 번 클릭하여 kubeflow_runner.py
를 엽니다 . create_pipeline
함수에 대한 두 개의 인수 query
및 beam_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_REGION
및 DATAFLOW_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으로 푸시 할 수 있습니다. 이 단계에서는 Trainer
및 Pusher
구성요소가 Cloud AI Platform 서비스를 사용하도록 설정합니다.
파일을 수정하기 전에 먼저 AI Platform Training & Prediction API 를 사용 설정해야 할 수 있습니다.
pipeline
을 두 번 클릭하여 디렉터리를 변경하고 두 번 클릭하여 configs.py
를 엽니다 . GOOGLE_CLOUD_REGION
, GCP_AI_PLATFORM_TRAINING_ARGS
및 GCP_AI_PLATFORM_SERVING_ARGS
의 정의를 주석 해제합니다. 커스텀 빌드 컨테이너 이미지를 사용하여 Cloud AI Platform Training에서 모델을 masterConfig.imageUri
의 GCP_AI_PLATFORM_TRAINING_ARGS
를 위의 CUSTOM_TFX_IMAGE
와 동일한 값으로 설정해야 합니다.
디렉토리를 한 단계 위로 변경하고 두 번 클릭하여 kubeflow_runner.py
를 엽니다 . ai_platform_training_args
및 ai_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 파일을 포함하여 파이프라인이 액세스할 수 있는 모든 위치에 데이터를 저장할 수 있습니다.
데이터를 수용하려면 파이프라인 정의를 수정해야 합니다.
데이터가 파일에 저장된 경우
- 위치를 나타내는
kubeflow_runner.py
에서DATA_PATH
를 수정합니다.
데이터가 BigQuery에 저장된 경우
-
BIG_QUERY_QUERY
의 BIG_QUERY_QUERY를 쿼리 문으로 수정합니다. -
models
/features.py
에 기능을 추가하세요. -
models
preprocessing.py
를 수정 하여 교육용 입력 데이터를 변환합니다 . - ML 모델을 설명하기 위해
models
/keras
/model.py
및models
/keras
/constants.py
를 수정합니다.
트레이너에 대해 자세히 알아보기
교육 파이프라인에 대한 자세한 내용은 Trainer 구성 요소 가이드 를 참조하세요.
청소
이 프로젝트에 사용된 모든 GCP 리소스를 정리하기 위해 가이드에 사용한 GCP 프로젝트를 삭제할 수 있습니다.
또는 각 콘솔을 방문하여 개별 리소스를 정리할 수 있습니다. - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine