آموزش و سرویس AI Vertex با خطوط لوله TFX و Vertex

این آموزش مبتنی بر نوت‌بوک، خط لوله TFX را ایجاد و اجرا می‌کند که یک مدل ML را با استفاده از سرویس آموزشی Vertex AI آموزش می‌دهد و آن را برای ارائه در Vertex AI منتشر می‌کند.

این نوت بوک است در خط لوله TFX ما در ساخته شده بر اساس ساده TFX خط لوله برای ورتکس خط لوله آموزش . اگر هنوز آن آموزش را نخوانده اید، باید قبل از ادامه با این دفترچه آن را بخوانید.

می‌توانید با استفاده از AutoML مدل‌ها را روی Vertex AI آموزش دهید یا از آموزش سفارشی استفاده کنید. در آموزش سفارشی، می‌توانید انواع مختلفی از ماشین‌ها را انتخاب کنید تا کارهای آموزشی خود را تقویت کنید، آموزش توزیع‌شده را فعال کنید، از تنظیم هایپرپارامتر استفاده کنید و با پردازنده‌های گرافیکی شتاب دهید.

همچنین می توانید با استقرار مدل آموزش دیده در Vertex AI Models و ایجاد نقطه پایانی، درخواست های پیش بینی را ارائه دهید.

در این آموزش از Vertex AI Training با کارهای سفارشی برای آموزش مدل در خط لوله TFX استفاده خواهیم کرد. ما همچنین مدل را برای ارائه درخواست پیش بینی با استفاده از Vertex AI مستقر خواهیم کرد.

این نوت بوک در نظر گرفته شده در اجرا می شود گوگل COLAB و یا در AI بستر های نرم افزاری نوت بوک . اگر از یکی از این موارد استفاده نمی کنید، می توانید به سادگی روی دکمه "Run in Google Colab" در بالا کلیک کنید.

برپایی

اگر شما را به اتمام ساده TFX خط لوله برای ورتکس خط لوله آموزش ، شما یک پروژه GCP کار و یک سطل GCS دارند و آن این است که همه ما برای این آموزش نیاز دارند. لطفاً اگر آموزش اولیه را از دست دادید، ابتدا مطالعه کنید.

بسته های پایتون را نصب کنید

ما بسته‌های Python مورد نیاز از جمله TFX و KFP را برای نگارش خطوط لوله ML نصب می‌کنیم و کارها را به Vertex Pipelines ارسال می‌کنیم.

# Use the latest version of pip.
pip install --upgrade pip
pip install --upgrade "tfx[kfp]<2"

آیا زمان اجرا را مجدداً راه اندازی کردید؟

اگر از Google Colab استفاده می‌کنید، اولین باری که سلول بالا را اجرا می‌کنید، باید با کلیک کردن روی دکمه «راه‌اندازی مجدد زمان اجرا» یا با استفاده از منوی «زمان اجرا > زمان اجرا مجدد ...» زمان اجرا را مجدداً راه‌اندازی کنید. این به دلیل روشی است که Colab بسته ها را بارگذاری می کند.

اگر در Colab نیستید، می توانید زمان اجرا را با سلول زیر راه اندازی مجدد کنید.

# docs_infra: no_execute
import sys
if not 'google.colab' in sys.modules:
  # Automatically restart kernel after installs
  import IPython
  app = IPython.Application.instance()
  app.kernel.do_shutdown(True)

برای این نوت بوک وارد گوگل شوید

اگر این نوت بوک را در Colab اجرا می کنید، با حساب کاربری خود احراز هویت کنید:

import sys
if 'google.colab' in sys.modules:
  from google.colab import auth
  auth.authenticate_user()

اگر شما بر روی بستر های نرم افزاری هوش مصنوعی نوت بوک، اعتبار با Google Cloud هستند قبل از اجرای بخش بعدی، با اجرای

gcloud auth login

در پنجره ترمینال (که شما می توانید از طریق باز کردن فایل> جدید در منو). شما فقط باید این کار را یک بار در هر نوت بوک انجام دهید.

نسخه های بسته را بررسی کنید.

import tensorflow as tf
print('TensorFlow version: {}'.format(tf.__version__))
from tfx import v1 as tfx
print('TFX version: {}'.format(tfx.__version__))
import kfp
print('KFP version: {}'.format(kfp.__version__))
TensorFlow version: 2.6.2
TFX version: 1.4.0
KFP version: 1.8.1

متغیرها را تنظیم کنید

ما برخی از متغیرهای مورد استفاده برای سفارشی کردن خطوط لوله را در زیر تنظیم خواهیم کرد. اطلاعات زیر مورد نیاز است:

ارزش های مورد نیاز در سلول زیر قبل از اجرای آن را وارد کنید.

GOOGLE_CLOUD_PROJECT = ''     # <--- ENTER THIS
GOOGLE_CLOUD_REGION = ''      # <--- ENTER THIS
GCS_BUCKET_NAME = ''          # <--- ENTER THIS

if not (GOOGLE_CLOUD_PROJECT and GOOGLE_CLOUD_REGION and GCS_BUCKET_NAME):
    from absl import logging
    logging.error('Please set all required parameters.')
ERROR:absl:Please set all required parameters.

مجموعه gcloud به استفاده از پروژه خود را.

gcloud config set project {GOOGLE_CLOUD_PROJECT}
ERROR: (gcloud.config.set) argument VALUE: Must be specified.
Usage: gcloud config set SECTION/PROPERTY VALUE [optional flags]
  optional flags may be  --help | --installation

For detailed information on this command and its flags, run:
  gcloud config set --help
PIPELINE_NAME = 'penguin-vertex-training'

# Path to various pipeline artifact.
PIPELINE_ROOT = 'gs://{}/pipeline_root/{}'.format(GCS_BUCKET_NAME, PIPELINE_NAME)

# Paths for users' Python module.
MODULE_ROOT = 'gs://{}/pipeline_module/{}'.format(GCS_BUCKET_NAME, PIPELINE_NAME)

# Paths for users' data.
DATA_ROOT = 'gs://{}/data/{}'.format(GCS_BUCKET_NAME, PIPELINE_NAME)

# Name of Vertex AI Endpoint.
ENDPOINT_NAME = 'prediction-' + PIPELINE_NAME

print('PIPELINE_ROOT: {}'.format(PIPELINE_ROOT))
PIPELINE_ROOT: gs:///pipeline_root/penguin-vertex-training

داده های نمونه را آماده کنید

ما همان استفاده خواهد کرد پالمر پنگوئن مجموعه داده به عنوان ساده TFX خط لوله آموزش .

چهار ویژگی عددی در این مجموعه داده وجود دارد که قبلاً برای داشتن محدوده [0،1] نرمال شده بودند. ما یک مدل طبقه بندی که پیش بینی ساخت species از پنگوئن ها.

ما باید از مجموعه داده کپی خودمان را تهیه کنیم. از آنجایی که TFX ExampleGen ورودی ها را از یک دایرکتوری می خواند، ما باید یک دایرکتوری ایجاد کنیم و مجموعه داده را در GCS در آن کپی کنیم.

gsutil cp gs://download.tensorflow.org/data/palmer_penguins/penguins_processed.csv {DATA_ROOT}/
InvalidUrlError: Cloud URL scheme should be followed by colon and two slashes: "://". Found: "gs:///data/penguin-vertex-training/".

نگاهی گذرا به فایل CSV بیندازید.

gsutil cat {DATA_ROOT}/penguins_processed.csv | head
InvalidUrlError: Cloud URL scheme should be followed by colon and two slashes: "://". Found: "gs:///data/penguin-vertex-training/penguins_processed.csv".

یک خط لوله ایجاد کنید

خط لوله ما خواهد شد بسیار شبیه به خط لوله ما در ایجاد ساده TFX خط لوله برای ورتکس خط لوله آموزش . خط لوله از سه جزء CsvExampleGen، Trainer و Pusher تشکیل خواهد شد. اما ما از یک کامپوننت Trainer و Pusher ویژه استفاده خواهیم کرد. مؤلفه Trainer بارهای آموزشی را به Vertex AI منتقل می کند و مؤلفه Pusher مدل آموزش دیده ML را به جای فایل سیستم در Vertex AI منتشر می کند.

TFX ویژه فراهم می کند Trainer برای ارسال مشاغل آموزش به خدمات ورتکس AI آموزش. همه ما باید انجام دهیم استفاده است Trainer در ماژول پسوند به جای استاندارد Trainer جزء همراه با برخی از پارامترهای GCP مورد نیاز است.

در این آموزش، کارهای آموزشی Vertex AI را فقط با استفاده از CPU و سپس با GPU اجرا می کنیم.

TFX نیز خاص فراهم می کند Pusher برای آپلود مدل به مدل ورتکس AI. Pusher به منابع ورتکس AI نقطه پایانی برای خدمت به ایجاد perdictions آنلاین، TOO. مشاهده مستندات ورتکس AI برای کسب اطلاعات بیشتر در مورد پیش بینی های آنلاین ارائه شده توسط ورتکس AI.

کد مدل را بنویسید

مدل به خودی خود تقریبا شبیه به مدل در است ساده TFX خط لوله آموزش .

ما اضافه خواهد _get_distribution_strategy() تابعی که ایجاد استراتژی توزیع TensorFlow و آن را در استفاده run_fn به استفاده از MirroredStrategy اگر GPU در دسترس است.

_trainer_module_file = 'penguin_trainer.py'
%%writefile {_trainer_module_file}

# Copied from https://www.tensorflow.org/tfx/tutorials/tfx/penguin_simple and
# slightly modified run_fn() to add distribution_strategy.

from typing import List
from absl import logging
import tensorflow as tf
from tensorflow import keras
from tensorflow_metadata.proto.v0 import schema_pb2
from tensorflow_transform.tf_metadata import schema_utils

from tfx import v1 as tfx
from tfx_bsl.public import tfxio

_FEATURE_KEYS = [
    'culmen_length_mm', 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g'
]
_LABEL_KEY = 'species'

_TRAIN_BATCH_SIZE = 20
_EVAL_BATCH_SIZE = 10

# Since we're not generating or creating a schema, we will instead create
# a feature spec.  Since there are a fairly small number of features this is
# manageable for this dataset.
_FEATURE_SPEC = {
    **{
        feature: tf.io.FixedLenFeature(shape=[1], dtype=tf.float32)
        for feature in _FEATURE_KEYS
    }, _LABEL_KEY: tf.io.FixedLenFeature(shape=[1], dtype=tf.int64)
}


def _input_fn(file_pattern: List[str],
              data_accessor: tfx.components.DataAccessor,
              schema: schema_pb2.Schema,
              batch_size: int) -> tf.data.Dataset:
  """Generates features and label for training.

  Args:
    file_pattern: List of paths or patterns of input tfrecord files.
    data_accessor: DataAccessor for converting input to RecordBatch.
    schema: schema of the input data.
    batch_size: representing the number of consecutive elements of returned
      dataset to combine in a single batch

  Returns:
    A dataset that contains (features, indices) tuple where features is a
      dictionary of Tensors, and indices is a single Tensor of label indices.
  """
  return data_accessor.tf_dataset_factory(
      file_pattern,
      tfxio.TensorFlowDatasetOptions(
          batch_size=batch_size, label_key=_LABEL_KEY),
      schema=schema).repeat()


def _make_keras_model() -> tf.keras.Model:
  """Creates a DNN Keras model for classifying penguin data.

  Returns:
    A Keras Model.
  """
  # The model below is built with Functional API, please refer to
  # https://www.tensorflow.org/guide/keras/overview for all API options.
  inputs = [keras.layers.Input(shape=(1,), name=f) for f in _FEATURE_KEYS]
  d = keras.layers.concatenate(inputs)
  for _ in range(2):
    d = keras.layers.Dense(8, activation='relu')(d)
  outputs = keras.layers.Dense(3)(d)

  model = keras.Model(inputs=inputs, outputs=outputs)
  model.compile(
      optimizer=keras.optimizers.Adam(1e-2),
      loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
      metrics=[keras.metrics.SparseCategoricalAccuracy()])

  model.summary(print_fn=logging.info)
  return model


# NEW: Read `use_gpu` from the custom_config of the Trainer.
#      if it uses GPU, enable MirroredStrategy.
def _get_distribution_strategy(fn_args: tfx.components.FnArgs):
  if fn_args.custom_config.get('use_gpu', False):
    logging.info('Using MirroredStrategy with one GPU.')
    return tf.distribute.MirroredStrategy(devices=['device:GPU:0'])
  return None


# TFX Trainer will call this function.
def run_fn(fn_args: tfx.components.FnArgs):
  """Train the model based on given args.

  Args:
    fn_args: Holds args used to train the model as name/value pairs.
  """

  # This schema is usually either an output of SchemaGen or a manually-curated
  # version provided by pipeline author. A schema can also derived from TFT
  # graph if a Transform component is used. In the case when either is missing,
  # `schema_from_feature_spec` could be used to generate schema from very simple
  # feature_spec, but the schema returned would be very primitive.
  schema = schema_utils.schema_from_feature_spec(_FEATURE_SPEC)

  train_dataset = _input_fn(
      fn_args.train_files,
      fn_args.data_accessor,
      schema,
      batch_size=_TRAIN_BATCH_SIZE)
  eval_dataset = _input_fn(
      fn_args.eval_files,
      fn_args.data_accessor,
      schema,
      batch_size=_EVAL_BATCH_SIZE)

  # NEW: If we have a distribution strategy, build a model in a strategy scope.
  strategy = _get_distribution_strategy(fn_args)
  if strategy is None:
    model = _make_keras_model()
  else:
    with strategy.scope():
      model = _make_keras_model()

  model.fit(
      train_dataset,
      steps_per_epoch=fn_args.train_steps,
      validation_data=eval_dataset,
      validation_steps=fn_args.eval_steps)

  # The result of the training should be saved in `fn_args.serving_model_dir`
  # directory.
  model.save(fn_args.serving_model_dir, save_format='tf')
Writing penguin_trainer.py

فایل ماژول را در GCS کپی کنید که از اجزای خط لوله قابل دسترسی است.

در غیر این صورت، ممکن است بخواهید یک تصویر ظرف شامل فایل ماژول بسازید و از تصویر برای اجرای خط لوله و کارهای آموزش پلتفرم هوش مصنوعی استفاده کنید.

gsutil cp {_trainer_module_file} {MODULE_ROOT}/
InvalidUrlError: Cloud URL scheme should be followed by colon and two slashes: "://". Found: "gs:///pipeline_module/penguin-vertex-training/".

یک تعریف خط لوله بنویسید

ما تابعی را برای ایجاد خط لوله TFX تعریف می کنیم. این همان سه جزء در ساده TFX خط لوله آموزش ، اما ما با استفاده از Trainer و Pusher جزء در ماژول فرمت GCP.

tfx.extensions.google_cloud_ai_platform.Trainer عمل می کنند مانند به طور منظم Trainer ، اما آن را فقط حرکت می کند محاسبات برای آموزش مدل به ابر. این یک کار سفارشی را در سرویس Vertex AI Training راه‌اندازی می‌کند و جزء مربی در سیستم ارکستراسیون فقط منتظر می‌ماند تا کار آموزش هوش مصنوعی Vertex کامل شود.

tfx.extensions.google_cloud_ai_platform.Pusher ایجاد یک مدل AI ورتکس ورتکس و یک AI نقطه پایانی با استفاده از مدل آموزش داده است.

def _create_pipeline(pipeline_name: str, pipeline_root: str, data_root: str,
                     module_file: str, endpoint_name: str, project_id: str,
                     region: str, use_gpu: bool) -> tfx.dsl.Pipeline:
  """Implements the penguin pipeline with TFX."""
  # Brings data into the pipeline or otherwise joins/converts training data.
  example_gen = tfx.components.CsvExampleGen(input_base=data_root)

  # NEW: Configuration for Vertex AI Training.
  # This dictionary will be passed as `CustomJobSpec`.
  vertex_job_spec = {
      'project': project_id,
      'worker_pool_specs': [{
          'machine_spec': {
              'machine_type': 'n1-standard-4',
          },
          'replica_count': 1,
          'container_spec': {
              'image_uri': 'gcr.io/tfx-oss-public/tfx:{}'.format(tfx.__version__),
          },
      }],
  }
  if use_gpu:
    # See https://cloud.google.com/vertex-ai/docs/reference/rest/v1/MachineSpec#acceleratortype
    # for available machine types.
    vertex_job_spec['worker_pool_specs'][0]['machine_spec'].update({
        'accelerator_type': 'NVIDIA_TESLA_K80',
        'accelerator_count': 1
    })

  # Trains a model using Vertex AI Training.
  # NEW: We need to specify a Trainer for GCP with related configs.
  trainer = tfx.extensions.google_cloud_ai_platform.Trainer(
      module_file=module_file,
      examples=example_gen.outputs['examples'],
      train_args=tfx.proto.TrainArgs(num_steps=100),
      eval_args=tfx.proto.EvalArgs(num_steps=5),
      custom_config={
          tfx.extensions.google_cloud_ai_platform.ENABLE_UCAIP_KEY:
              True,
          tfx.extensions.google_cloud_ai_platform.UCAIP_REGION_KEY:
              region,
          tfx.extensions.google_cloud_ai_platform.TRAINING_ARGS_KEY:
              vertex_job_spec,
          'use_gpu':
              use_gpu,
      })

  # NEW: Configuration for pusher.
  vertex_serving_spec = {
      'project_id': project_id,
      'endpoint_name': endpoint_name,
      # Remaining argument is passed to aiplatform.Model.deploy()
      # See https://cloud.google.com/vertex-ai/docs/predictions/deploy-model-api#deploy_the_model
      # for the detail.
      #
      # Machine type is the compute resource to serve prediction requests.
      # See https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types
      # for available machine types and acccerators.
      'machine_type': 'n1-standard-4',
  }

  # Vertex AI provides pre-built containers with various configurations for
  # serving.
  # See https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers
  # for available container images.
  serving_image = 'us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-6:latest'
  if use_gpu:
    vertex_serving_spec.update({
        'accelerator_type': 'NVIDIA_TESLA_K80',
        'accelerator_count': 1
    })
    serving_image = 'us-docker.pkg.dev/vertex-ai/prediction/tf2-gpu.2-6:latest'

  # NEW: Pushes the model to Vertex AI.
  pusher = tfx.extensions.google_cloud_ai_platform.Pusher(
      model=trainer.outputs['model'],
      custom_config={
          tfx.extensions.google_cloud_ai_platform.ENABLE_VERTEX_KEY:
              True,
          tfx.extensions.google_cloud_ai_platform.VERTEX_REGION_KEY:
              region,
          tfx.extensions.google_cloud_ai_platform.VERTEX_CONTAINER_IMAGE_URI_KEY:
              serving_image,
          tfx.extensions.google_cloud_ai_platform.SERVING_ARGS_KEY:
            vertex_serving_spec,
      })

  components = [
      example_gen,
      trainer,
      pusher,
  ]

  return tfx.dsl.Pipeline(
      pipeline_name=pipeline_name,
      pipeline_root=pipeline_root,
      components=components)

خط لوله را روی خطوط لوله Vertex اجرا کنید.

ما ورتکس خط لوله استفاده خواهد کرد برای اجرای خط لوله به عنوان ما در انجام ساده TFX خط لوله برای ورتکس خط لوله آموزش .

import os

PIPELINE_DEFINITION_FILE = PIPELINE_NAME + '_pipeline.json'

runner = tfx.orchestration.experimental.KubeflowV2DagRunner(
    config=tfx.orchestration.experimental.KubeflowV2DagRunnerConfig(),
    output_filename=PIPELINE_DEFINITION_FILE)
_ = runner.run(
    _create_pipeline(
        pipeline_name=PIPELINE_NAME,
        pipeline_root=PIPELINE_ROOT,
        data_root=DATA_ROOT,
        module_file=os.path.join(MODULE_ROOT, _trainer_module_file),
        endpoint_name=ENDPOINT_NAME,
        project_id=GOOGLE_CLOUD_PROJECT,
        region=GOOGLE_CLOUD_REGION,
        # We will use CPUs only for now.
        use_gpu=False))

فایل تعریف تولید می شود استفاده از Google Cloud مشتری aiplatform در ارسال google-cloud-aiplatform بسته.

# docs_infra: no_execute
from google.cloud import aiplatform
from google.cloud.aiplatform import pipeline_jobs

aiplatform.init(project=GOOGLE_CLOUD_PROJECT, location=GOOGLE_CLOUD_REGION)

job = pipeline_jobs.PipelineJob(template_path=PIPELINE_DEFINITION_FILE,
                                display_name=PIPELINE_NAME)
job.run(sync=False)

در حال حاضر شما می توانید ببینید ، ورتکس AI> خط لوله، در Google Cloud Console به دیدن پیشرفت.

تست با درخواست پیش بینی

هنگامی که کامل خط لوله، شما یک مدل مستقر در یکی از نقاط پایانی در ورتکس AI> نقطه انتهایی 'پیدا کنید. برای ارسال یک درخواست پیش بینی به نقطه پایانی جدید باید شناسه نقطه پایانی را بدانیم. این متفاوت است از نام نقطه پایانی که در بالا وارد شده است. شما می توانید شناسه در پیدا صفحه نقطه انتهایی در Google Cloud Console ، آن را مانند تعداد بسیار طولانی به نظر می رسد.

قبل از اجرای آن، ENDPOINT_ID را در زیر تنظیم کنید.

ENDPOINT_ID=''     # <--- ENTER THIS
if not ENDPOINT_ID:
    from absl import logging
    logging.error('Please set the endpoint id.')
ERROR:absl:Please set the endpoint id.

ما از همان کلاینت aiplatform برای ارسال درخواست به نقطه پایانی استفاده می کنیم. ما یک درخواست پیش‌بینی برای طبقه‌بندی گونه‌های پنگوئن ارسال خواهیم کرد. ورودی چهار ویژگی است که ما استفاده کردیم، و مدل سه مقدار را برمی گرداند، زیرا مدل ما یک مقدار برای هر گونه خروجی می دهد.

به عنوان مثال، مثال خاص زیر بیشترین مقدار را در نمایه '2' دارد و '2' را چاپ خواهد کرد.

# docs_infra: no_execute
import numpy as np

# The AI Platform services require regional API endpoints.
client_options = {
    'api_endpoint': GOOGLE_CLOUD_REGION + '-aiplatform.googleapis.com'
    }
# Initialize client that will be used to create and send requests.
client = aiplatform.gapic.PredictionServiceClient(client_options=client_options)

# Set data values for the prediction request.
# Our model expects 4 feature inputs and produces 3 output values for each
# species. Note that the output is logit value rather than probabilities.
# See the model code to understand input / output structure.
instances = [{
    'culmen_length_mm':[0.71],
    'culmen_depth_mm':[0.38],
    'flipper_length_mm':[0.98],
    'body_mass_g': [0.78],
}]

endpoint = client.endpoint_path(
    project=GOOGLE_CLOUD_PROJECT,
    location=GOOGLE_CLOUD_REGION,
    endpoint=ENDPOINT_ID,
)
# Send a prediction request and get response.
response = client.predict(endpoint=endpoint, instances=instances)

# Uses argmax to find the index of the maximum value.
print('species:', np.argmax(response.predictions[0]))

برای کسب اطلاعات دقیق در مورد پیش بینی آنلاین، لطفا از بازدید صفحه نقطه انتهایی در Google Cloud Console . می توانید راهنمای ارسال نمونه درخواست ها و پیوندها به منابع بیشتر را بیابید.

خط لوله را با استفاده از یک GPU اجرا کنید

Vertex AI از آموزش با استفاده از انواع مختلف ماشین از جمله پشتیبانی از GPU پشتیبانی می کند. مشاهده مرجع ماشین تنظیمات برای گزینه های در دسترس.

ما قبلاً خط لوله خود را برای پشتیبانی از آموزش GPU تعریف کرده ایم. همه ما نیاز به انجام است تنظیم use_gpu پرچم را به درست. سپس یک خط لوله خواهد شد با تنظیمات دستگاه از جمله یکی NVIDIA_TESLA_K80 و کد آموزش مدل ما استفاده خواهد کرد ایجاد tf.distribute.MirroredStrategy .

توجه داشته باشید که use_gpu پرچم است بخشی از ورتکس یا TFX API است. فقط برای کنترل کد آموزشی در این آموزش استفاده می شود.

# docs_infra: no_execute
runner.run(
    _create_pipeline(
        pipeline_name=PIPELINE_NAME,
        pipeline_root=PIPELINE_ROOT,
        data_root=DATA_ROOT,
        module_file=os.path.join(MODULE_ROOT, _trainer_module_file),
        endpoint_name=ENDPOINT_NAME,
        project_id=GOOGLE_CLOUD_PROJECT,
        region=GOOGLE_CLOUD_REGION,
        # Updated: Use GPUs. We will use a NVIDIA_TESLA_K80 and 
        # the model code will use tf.distribute.MirroredStrategy.
        use_gpu=True))

job = pipeline_jobs.PipelineJob(template_path=PIPELINE_DEFINITION_FILE,
                                display_name=PIPELINE_NAME)
job.run(sync=False)

در حال حاضر شما می توانید ببینید ، ورتکس AI> خط لوله، در Google Cloud Console به دیدن پیشرفت.

تمیز کردن

شما در این آموزش یک Vertex AI Model و Endpoint ایجاد کرده اید. لطفا از این منابع را حذف کنید به جلوگیری از هر گونه اتهام ناخواسته با رفتن به نقطه انتهایی و undeploying مدل از نقطه پایانی برای اولین بار. سپس می توانید نقطه پایانی و مدل را به طور جداگانه حذف کنید.