Join us at DevFest for Ukraine June 14-15 Online Register now

Canalizaciones de TFX en Cloud AI Platform

Introducción

Este instructivo está diseñado para presentar TensorFlow Extended (TFX) y AIPlatform Pipelines , y ayudarlo a aprender a crear sus propias canalizaciones de aprendizaje automático en Google Cloud. Muestra la integración con TFX, AI Platform Pipelines y Kubeflow, así como la interacción con TFX en portátiles Jupyter.

Al final de este instructivo, habrá creado y ejecutado una canalización de aprendizaje automático alojada en Google Cloud. Podrá visualizar los resultados de cada ejecución y ver el linaje de los artefactos creados.

Seguirá un proceso típico de desarrollo de ML, comenzando por examinar el conjunto de datos y terminando con una tubería de trabajo completa. A lo largo del camino, explorará formas de depurar y actualizar su canalización y medir el rendimiento.

Conjunto de datos de taxis de Chicago

Taxitaxi chicago

Está utilizando el conjunto de datos Taxi Trips publicado por la ciudad de Chicago.

Puede leer más sobre el conjunto de datos en Google BigQuery . Explore el conjunto de datos completo en la interfaz de usuario de BigQuery .

Modelo Objetivo - Clasificación binaria

¿El cliente dará una propina de más o menos del 20%?

1. Configurar un proyecto de Google Cloud

1.a Configure su entorno en Google Cloud

Para comenzar, necesita una cuenta de Google Cloud. Si ya tiene uno, salte a Crear nuevo proyecto .

  1. Vaya a la Consola de la nube de Google .

  2. Acepto los términos y condiciones de Google Cloud

  3. Si desea comenzar con una cuenta de prueba gratuita, haga clic en Probar gratis (o Comenzar gratis ).

    1. Selecciona tu pais.

    2. Acepte los términos del servicio.

    3. Ingrese los detalles de facturación.

      No se le cobrará en este momento. Si no tiene otros proyectos de Google Cloud, puede completar este tutorial sin exceder los límites de la capa gratuita de Google Cloud , que incluye un máximo de 8 núcleos ejecutándose al mismo tiempo.

1.b Crear un nuevo proyecto.

  1. En el panel principal de Google Cloud , haz clic en el menú desplegable del proyecto junto al encabezado de Google Cloud Platform y selecciona Nuevo proyecto .
  2. Asigne un nombre a su proyecto e ingrese otros detalles del proyecto
  3. Una vez que haya creado un proyecto, asegúrese de seleccionarlo en el menú desplegable del proyecto.

2. Configure e implemente una canalización de AI Platform en un nuevo clúster de Kubernetes

  1. Vaya a la página de clústeres de AI Platform Pipelines .

    En el menú de navegación principal: ≡ > AI Platform > Pipelines

  2. Haga clic en + Nueva instancia para crear un nuevo clúster.

  3. En la página de descripción general de Kubeflow Pipelines , haga clic en Configurar .

  4. Haga clic en "Habilitar" para habilitar la API de Kubernetes Engine

  5. En la página Implementar canalizaciones de Kubeflow :

    1. Seleccione una zona (o "región") para su clúster. La red y la subred se pueden configurar, pero para los fines de este tutorial, las dejaremos como predeterminadas.

    2. IMPORTANTE Marque la casilla etiquetada como Permitir el acceso a las siguientes API en la nube . (Esto es necesario para que este clúster acceda a las otras partes de su proyecto. Si omite este paso, arreglarlo más tarde es un poco complicado).

    3. Haga clic en Crear nuevo clúster y espere varios minutos hasta que se haya creado el clúster. Esto tomará unos pocos minutos. Cuando se complete, verá un mensaje como:

      El clúster "cluster-1" se creó con éxito en la zona "us-central1-a".

    4. Seleccione un espacio de nombres y un nombre de instancia (usar los valores predeterminados está bien). A los efectos de este tutorial, no marque executor.emissary ni managedstorage.enabled .

    5. Haga clic en Implementar y espere unos momentos hasta que se haya implementado la canalización. Al implementar Kubeflow Pipelines, acepta los Términos de servicio.

3. Configure la instancia de Cloud AI Platform Notebook.

  1. Vaya a la página Vertex AI Workbench . La primera vez que ejecute Workbench, deberá habilitar la API de Notebooks.

    En el menú de navegación principal: ≡ -> Vertex AI -> Workbench

  2. Si se le solicita, habilite la API de Compute Engine.

  3. Cree un nuevo cuaderno con TensorFlow Enterprise 2.7 (o superior) instalado.

    Nuevo portátil -> TensorFlow Enterprise 2.7 -> Sin GPU

    Seleccione una región y una zona, y asigne un nombre a la instancia del cuaderno.

    Para mantenerse dentro de los límites de la capa gratuita, es posible que deba cambiar la configuración predeterminada aquí para reducir la cantidad de vCPU disponibles para esta instancia de 4 a 2:

    1. Seleccione Opciones avanzadas en la parte inferior del formulario Nueva libreta .
    2. En Configuración de la máquina, es posible que desee seleccionar una configuración con 1 o 2 vCPU si necesita permanecer en el nivel gratuito.

    3. Espere a que se cree el nuevo cuaderno y luego haga clic en Habilitar API de cuadernos

4. Inicie el Cuaderno de inicio

  1. Vaya a la página de clústeres de AI Platform Pipelines .

    En el menú de navegación principal: ≡ -> AI Platform -> Pipelines

  2. En la línea del clúster que está utilizando en este tutorial, haga clic en Abrir panel de canalizaciones .

  3. En la página Introducción , haga clic en Abrir un cuaderno de Cloud AI Platform en Google Cloud .

  4. Seleccione la instancia de Notebook que está utilizando para este tutorial y Continuar , y luego Confirmar .

    select-notebook

5. Continuar trabajando en el Cuaderno

Instalar en pc

El cuaderno de introducción comienza con la instalación de TFX y Kubeflow Pipelines (KFP) en la máquina virtual en la que se ejecuta Jupyter Lab.

Luego verifica qué versión de TFX está instalada, realiza una importación y establece e imprime la ID del proyecto:

verifique la versión de python e importe

Conéctate con tus servicios de Google Cloud

La configuración de canalización necesita su ID de proyecto, que puede obtener a través del cuaderno y establecer como una variable ambiental.

# 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)

Ahora configure su punto final de clúster de KFP.

Esto se puede encontrar en la URL del panel Pipelines. Vaya al panel de Kubeflow Pipeline y mire la URL. El punto final es todo lo que se encuentra en la URL, desde https:// hasta googleusercontent.com .

ENDPOINT='' # Enter YOUR ENDPOINT here.

Luego, el cuaderno establece un nombre único para la imagen de Docker personalizada:

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

6. Copie una plantilla en el directorio de su proyecto

Edite la siguiente celda del cuaderno para establecer un nombre para su canalización. En este tutorial usaremos my_pipeline .

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

Luego, el cuaderno usa la CLI de tfx para copiar la plantilla de canalización. Este tutorial utiliza el conjunto de datos Chicago Taxi para realizar una clasificación binaria, por lo que la plantilla establece el modelo en taxi :

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

Luego, el cuaderno cambia su contexto CWD al directorio del proyecto:

%cd {PROJECT_DIR}

Examinar los archivos de canalización

En el lado izquierdo de Cloud AI Platform Notebook, debería ver un explorador de archivos. Debe haber un directorio con el nombre de su canalización ( my_pipeline ). Ábralo y vea los archivos. (También podrá abrirlos y editarlos desde el entorno del cuaderno).

# You can also list the files from the shell
 ls

El comando tfx template copy anterior creó un andamio básico de archivos que construyen una canalización. Estos incluyen códigos fuente de Python, datos de muestra y cuadernos de Jupyter. Estos están destinados a este ejemplo en particular. Para sus propias canalizaciones, estos serían los archivos de soporte que requiere su canalización.

Aquí hay una breve descripción de los archivos de Python.

  • pipeline : este directorio contiene la definición de la tubería
    • configs.py : define constantes comunes para ejecutores de canalización
    • pipeline.py — define los componentes TFX y una canalización
  • models : este directorio contiene definiciones de modelos de ML.
    • features.py features_test.py — define características para el modelo
    • preprocessing.py / preprocessing_test.py — define trabajos de preprocesamiento usando tf::Transform
    • estimator : este directorio contiene un modelo basado en Estimator.
      • constants.py — define las constantes del modelo
      • model.py / model_test.py — define el modelo DNN usando el estimador TF
    • keras : este directorio contiene un modelo basado en Keras.
      • constants.py — define las constantes del modelo
      • model.py / model_test.py — define el modelo DNN usando Keras
  • beam_runner.py / kubeflow_runner.py — definir ejecutores para cada motor de orquestación

7. Ejecute su primera tubería TFX en Kubeflow

El portátil ejecutará la canalización mediante el comando tfx run CLI.

Conectarse al almacenamiento

Las canalizaciones en ejecución crean artefactos que deben almacenarse en ML-Metadata . Los artefactos se refieren a cargas útiles, que son archivos que deben almacenarse en un sistema de archivos o almacenamiento en bloque. Para este tutorial, usaremos GCS para almacenar nuestras cargas útiles de metadatos, usando el depósito que se creó automáticamente durante la configuración. Su nombre será <your-project-id>-kubeflowpipelines-default .

Crear la canalización

El cuaderno cargará nuestros datos de muestra en el depósito de GCS para que podamos usarlos en nuestra canalización más adelante.

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

Luego, el cuaderno usa el comando de creación de tfx pipeline create para crear la canalización.

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

Al crear una canalización, se generará Dockerfile para crear una imagen de Docker. No olvide agregar estos archivos a su sistema de control de código fuente (por ejemplo, git) junto con otros archivos fuente.

Ejecutar la canalización

Luego, el cuaderno usa el tfx run create para iniciar una ejecución de su canalización. También verá esta ejecución en la lista de Experimentos en el panel de Kubeflow Pipelines.

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

Puede ver su canalización desde Kubeflow Pipelines Dashboard.

8. Valida tus datos

La primera tarea en cualquier proyecto de ciencia de datos o ML es comprender y limpiar los datos.

  • Comprender los tipos de datos para cada característica
  • Busque anomalías y valores faltantes
  • Comprender las distribuciones de cada función.

Componentes

Componentes de datosComponentes de datos

  • ExampleGen ingiere y divide el conjunto de datos de entrada.
  • StatisticsGen calcula estadísticas para el conjunto de datos.
  • SchemaGen SchemaGen examina las estadísticas y crea un esquema de datos.
  • ExampleValidator busca anomalías y valores faltantes en el conjunto de datos.

En el editor de archivos de laboratorio de Jupyter:

En pipeline / pipeline.py , elimine los comentarios de las líneas que agregan estos componentes a su canalización:

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

( ExampleGen ya estaba habilitado cuando se copiaron los archivos de plantilla).

Actualice la canalización y vuelva a ejecutarla

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

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

Verifique la tubería

Para Kubeflow Orchestrator, visite el panel de control de KFP y busque salidas de canalización en la página para la ejecución de su canalización. Haga clic en la pestaña "Experimentos" a la izquierda y "Todas las ejecuciones" en la página Experimentos. Debería poder encontrar la ejecución con el nombre de su canalización.

Ejemplo más avanzado

El ejemplo que se presenta aquí solo tiene la intención de ayudarlo a comenzar. Para ver un ejemplo más avanzado, consulte TensorFlow Data Validation Colab .

Para obtener más información sobre el uso de TFDV para explorar y validar un conjunto de datos, consulte los ejemplos en tensorflow.org .

9. Ingeniería de características

Puede aumentar la calidad predictiva de sus datos y/o reducir la dimensionalidad con la ingeniería de características.

  • Cruces de características
  • Vocabularios
  • incrustaciones
  • PCA
  • Codificación categórica

Uno de los beneficios de usar TFX es que escribirá su código de transformación una vez y las transformaciones resultantes serán consistentes entre el entrenamiento y el servicio.

Componentes

Transformar

  • Transform realiza la ingeniería de características en el conjunto de datos.

En el editor de archivos de laboratorio de Jupyter:

En pipeline / pipeline.py , busque y descomente la línea que agrega Transform a la tubería.

# components.append(transform)

Actualice la canalización y vuelva a ejecutarla

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

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

Verifique las salidas de la canalización

Para Kubeflow Orchestrator, visite el panel de control de KFP y busque salidas de canalización en la página para la ejecución de su canalización. Haga clic en la pestaña "Experimentos" a la izquierda y "Todas las ejecuciones" en la página Experimentos. Debería poder encontrar la ejecución con el nombre de su canalización.

Ejemplo más avanzado

El ejemplo que se presenta aquí solo tiene la intención de ayudarlo a comenzar. Para ver un ejemplo más avanzado, consulte TensorFlow Transform Colab .

10. Entrenamiento

Entrene un modelo de TensorFlow con sus datos agradables, limpios y transformados.

  • Incluya las transformaciones del paso anterior para que se apliquen de manera consistente
  • Guarde los resultados como un modelo guardado para producción
  • Visualiza y explora el proceso de entrenamiento usando TensorBoard
  • Guarde también un EvalSavedModel para el análisis del rendimiento del modelo.

Componentes

  • Trainer entrena un modelo de TensorFlow.

En el editor de archivos de laboratorio de Jupyter:

En pipeline / pipeline.py , busque y elimine el comentario que agrega Trainer a la tubería:

# components.append(trainer)

Actualice la canalización y vuelva a ejecutarla

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

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

Verifique las salidas de la canalización

Para Kubeflow Orchestrator, visite el panel de control de KFP y busque salidas de canalización en la página para la ejecución de su canalización. Haga clic en la pestaña "Experimentos" a la izquierda y "Todas las ejecuciones" en la página Experimentos. Debería poder encontrar la ejecución con el nombre de su canalización.

Ejemplo más avanzado

El ejemplo que se presenta aquí solo tiene la intención de ayudarlo a comenzar. Para ver un ejemplo más avanzado, consulte el Tutorial de TensorBoard .

11. Análisis del rendimiento del modelo

Comprender más que solo las métricas de nivel superior.

  • Los usuarios experimentan el rendimiento del modelo solo para sus consultas
  • Las métricas de nivel superior pueden ocultar el rendimiento deficiente en segmentos de datos
  • La equidad del modelo es importante
  • A menudo, los subconjuntos clave de usuarios o datos son muy importantes y pueden ser pequeños
    • Rendimiento en condiciones críticas pero inusuales
    • Rendimiento para audiencias clave como personas influyentes
  • Si está reemplazando un modelo que está actualmente en producción, primero asegúrese de que el nuevo sea mejor

Componentes

  • El evaluador realiza un análisis profundo de los resultados del entrenamiento.

En el editor de archivos de laboratorio de Jupyter:

En pipeline / pipeline.py , busque y descomente la línea que agrega Evaluator a la tubería:

components.append(evaluator)

Actualice la canalización y vuelva a ejecutarla

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

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

Verifique las salidas de la canalización

Para Kubeflow Orchestrator, visite el panel de control de KFP y busque salidas de canalización en la página para la ejecución de su canalización. Haga clic en la pestaña "Experimentos" a la izquierda y "Todas las ejecuciones" en la página Experimentos. Debería poder encontrar la ejecución con el nombre de su canalización.

12. Sirviendo al modelo

Si el nuevo modelo está listo, que así sea.

  • Pusher implementa modelos guardados en ubicaciones conocidas

Los objetivos de implementación reciben nuevos modelos de ubicaciones conocidas

  • Servicio de TensorFlow
  • TensorFlow Lite
  • TensorFlow JS
  • Centro TensorFlow

Componentes

  • Pusher implementa el modelo en una infraestructura de servicio.

En el editor de archivos de laboratorio de Jupyter:

En pipeline / pipeline.py , busque y descomente la línea que agrega Pusher a la tubería:

# components.append(pusher)

Verifique las salidas de la canalización

Para Kubeflow Orchestrator, visite el panel de control de KFP y busque salidas de canalización en la página para la ejecución de su canalización. Haga clic en la pestaña "Experimentos" a la izquierda y "Todas las ejecuciones" en la página Experimentos. Debería poder encontrar la ejecución con el nombre de su canalización.

Destinos de implementación disponibles

Ahora ha entrenado y validado su modelo, y su modelo ahora está listo para la producción. Ahora puede implementar su modelo en cualquiera de los objetivos de implementación de TensorFlow, incluidos:

  • TensorFlow Serving , para servir su modelo en un servidor o granja de servidores y procesar solicitudes de inferencia REST o gRPC.
  • TensorFlow Lite , para incluir su modelo en una aplicación móvil nativa de Android o iOS, o en una aplicación de Raspberry Pi, IoT o microcontrolador.
  • TensorFlow.js , para ejecutar su modelo en un navegador web o aplicación Node.JS.

Ejemplos más avanzados

El ejemplo presentado anteriormente solo tiene la intención de ayudarlo a comenzar. A continuación se muestran algunos ejemplos de integración con otros servicios en la Nube.

Consideraciones sobre los recursos de Kubeflow Pipelines

Según los requisitos de su carga de trabajo, la configuración predeterminada para su implementación de Kubeflow Pipelines puede o no satisfacer sus necesidades. Puede personalizar sus configuraciones de recursos usando pipeline_operator_funcs en su llamada a KubeflowDagRunnerConfig .

pipeline_operator_funcs es una lista de elementos de OpFunc , que transforma todas las instancias de ContainerOp generadas en la especificación de canalización de KFP que se compila a partir de KubeflowDagRunner .

Por ejemplo, para configurar la memoria podemos usar set_memory_request para declarar la cantidad de memoria necesaria. Una forma típica de hacerlo es crear un envoltorio para set_memory_request y usarlo para agregar a la lista de canalización OpFunc s:

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)

Las funciones de configuración de recursos similares incluyen:

  • set_memory_limit
  • set_cpu_request
  • set_cpu_limit
  • set_gpu_limit

Pruebe BigQueryExampleGen

BigQuery es un almacén de datos en la nube sin servidor, altamente escalable y rentable. BigQuery se puede usar como fuente para ejemplos de capacitación en TFX. En este paso, agregaremos BigQueryExampleGen a la canalización.

En el editor de archivos de laboratorio de Jupyter:

Haz doble clic para abrir pipeline.py . Comente CsvExampleGen y descomente la línea que crea una instancia de BigQueryExampleGen . También debe descomentar el argumento de query de la función create_pipeline .

Necesitamos especificar qué proyecto de GCP usar para BigQuery, y esto se hace configurando --project en beam_pipeline_args al crear una canalización.

Haga doble clic para abrir configs.py . Quite el comentario de la definición de BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS y BIG_QUERY_QUERY . Debe reemplazar la identificación del proyecto y el valor de la región en este archivo con los valores correctos para su proyecto de GCP.

Cambia de directorio un nivel más arriba. Haga clic en el nombre del directorio encima de la lista de archivos. El nombre del directorio es el nombre de la tubería, que es my_pipeline si no cambió el nombre de la tubería.

Haga doble clic para abrir kubeflow_runner.py . Quite el comentario de dos argumentos, query y beam_pipeline_args , para la función create_pipeline .

Ahora, la canalización está lista para usar BigQuery como fuente de ejemplo. Actualice la canalización como antes y cree una nueva ejecución como lo hicimos en los pasos 5 y 6.

Actualice la canalización y vuelva a ejecutarla

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

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

Pruebe el flujo de datos

Varios componentes de TFX usan Apache Beam para implementar canalizaciones paralelas de datos, lo que significa que puede distribuir cargas de trabajo de procesamiento de datos mediante Google Cloud Dataflow . En este paso, configuraremos el orquestador de Kubeflow para usar Dataflow como back-end de procesamiento de datos para Apache Beam.

# 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

Haga doble clic en la pipeline para cambiar el directorio y haga doble clic para abrir configs.py . Quite los comentarios de la definición de GOOGLE_CLOUD_REGION y DATAFLOW_BEAM_PIPELINE_ARGS .

Cambia de directorio un nivel más arriba. Haga clic en el nombre del directorio encima de la lista de archivos. El nombre del directorio es el nombre de la tubería, que es my_pipeline si no cambió.

Haga doble clic para abrir kubeflow_runner.py . beam_pipeline_args . (También asegúrese de comentar los beam_pipeline_args actuales que agregó en el Paso 7).

Actualice la canalización y vuelva a ejecutarla

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

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

Puede encontrar sus trabajos de Dataflow en Dataflow en Cloud Console .

Pruebe Cloud AI Platform Training and Prediction con KFP

TFX interactúa con varios servicios de GCP administrados, como Cloud AI Platform for Training and Prediction . Puede configurar su componente Trainer para usar Cloud AI Platform Training, un servicio administrado para entrenar modelos ML. Además, cuando su modelo esté construido y listo para servir, puede enviar su modelo a Cloud AI Platform Prediction para servir. En este paso, configuraremos nuestro componente Trainer and Pusher para usar los servicios de Cloud AI Platform.

Antes de editar archivos, es posible que primero tengas que habilitar la API de entrenamiento y predicción de AI Platform .

Haga doble clic en la pipeline para cambiar el directorio y haga doble clic para abrir configs.py . Quite los comentarios de la definición de GOOGLE_CLOUD_REGION , GCP_AI_PLATFORM_TRAINING_ARGS y GCP_AI_PLATFORM_SERVING_ARGS . Usaremos nuestra imagen de contenedor personalizada para entrenar un modelo en Cloud AI Platform Training, por lo que debemos configurar masterConfig.imageUri en GCP_AI_PLATFORM_TRAINING_ARGS con el mismo valor que CUSTOM_TFX_IMAGE anterior.

Cambie el directorio un nivel hacia arriba y haga doble clic para abrir kubeflow_runner.py . ai_platform_training_args y ai_platform_serving_args .

Actualice la canalización y vuelva a ejecutarla

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

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

Puede encontrar sus trabajos de capacitación en Cloud AI Platform Jobs . Si su canalización se completó correctamente, puede encontrar su modelo en Modelos de Cloud AI Platform .

14. Usa tus propios datos

En este tutorial, creó una canalización para un modelo utilizando el conjunto de datos Chicago Taxi. Ahora intente poner sus propios datos en la canalización. Sus datos se pueden almacenar en cualquier lugar al que la canalización pueda acceder, incluidos Google Cloud Storage, BigQuery o archivos CSV.

Debe modificar la definición de canalización para acomodar sus datos.

Si sus datos se almacenan en archivos

  1. Modifique DATA_PATH en kubeflow_runner.py , indicando la ubicación.

Si tus datos están almacenados en BigQuery

  1. Modifique BIG_QUERY_QUERY en configs.py a su declaración de consulta.
  2. Agrega funciones en models / features.py .
  3. Modifique models / preprocessing.py para transformar los datos de entrada para el entrenamiento .
  4. Modifique models / keras / model.py y models / keras / constants.py para describir su modelo ML .

Más información sobre Entrenador

Consulte la guía del componente Entrenador para obtener más detalles sobre las canalizaciones de capacitación.

Limpiar

Para limpiar todos los recursos de Google Cloud usados ​​en este proyecto, puedes eliminar el proyecto de Google Cloud que usaste para el instructivo.

Alternativamente, puede limpiar recursos individuales visitando cada consola: - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine