ดูบน TensorFlow.org | ทำงานใน Google Colab | ดูแหล่งที่มาบน GitHub | ดาวน์โหลดโน๊ตบุ๊ค | ทำงานใน Google Cloud Vertex AI Workbench |
บทช่วยสอนที่ใช้สมุดบันทึกนี้จะสร้างและเรียกใช้ไปป์ไลน์ TFX ซึ่งฝึกโมเดล ML โดยใช้บริการ Vertex AI Training และเผยแพร่ไปยัง Vertex AI เพื่อให้บริการ
โน๊ตบุ๊คนี้จะขึ้นอยู่กับท่อ TFX ที่เราสร้างขึ้นใน ง่าย TFX ท่อ Vertex ท่อกวดวิชา หากคุณยังไม่ได้อ่านบทช่วยสอนนั้น คุณควรอ่านก่อนดำเนินการกับสมุดบันทึกนี้
คุณสามารถฝึกโมเดลบน Vertex AI โดยใช้ AutoML หรือใช้การฝึกแบบกำหนดเอง ในการฝึกแบบกำหนดเอง คุณสามารถเลือกประเภทเครื่องที่แตกต่างกันมากมายเพื่อขับเคลื่อนงานการฝึกอบรมของคุณ เปิดใช้งานการฝึกอบรมแบบกระจาย ใช้การปรับแต่งไฮเปอร์พารามิเตอร์ และเร่งความเร็วด้วย GPU
คุณยังสามารถให้บริการคำขอการคาดคะเนโดยปรับใช้โมเดลที่ผ่านการฝึกอบรมกับ Vertex AI Models และสร้างปลายทาง
ในบทช่วยสอนนี้ เราจะใช้ Vertex AI Training กับงานที่กำหนดเองเพื่อฝึกโมเดลในไปป์ไลน์ TFX เราจะปรับใช้โมเดลเพื่อรองรับคำขอการคาดการณ์โดยใช้ Vertex AI
โน๊ตบุ๊คนี้มีวัตถุประสงค์ที่จะทำงานบน Google Colab หรือ AI โน้ตบุ๊คแพลตฟอร์ม หากคุณไม่ได้ใช้อย่างใดอย่างหนึ่งเหล่านี้ คุณสามารถคลิกปุ่ม "เรียกใช้ใน Google Colab" ด้านบน
ติดตั้ง
หากคุณได้เสร็จสิ้น ง่าย TFX ท่อ Vertex ท่อสอน คุณจะมีโครงการ 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 ในครั้งแรกที่คุณเรียกใช้เซลล์ด้านบน คุณต้องรีสตาร์ทรันไทม์โดยคลิกที่ปุ่ม "RESTART RUNTIME" ด้านบน หรือใช้เมนู "Runtime > Restart runtime ..." นี่เป็นเพราะวิธีที่ 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)
ลงชื่อเข้าใช้ Google สำหรับสมุดบันทึกนี้
หากคุณกำลังใช้งานสมุดบันทึกนี้บน Colab ให้ตรวจสอบสิทธิ์ด้วยบัญชีผู้ใช้ของคุณ:
import sys
if 'google.colab' in sys.modules:
from google.colab import auth
auth.authenticate_user()
ถ้าคุณอยู่ใน AI โน้ตบุ๊ค Platform, ตรวจสอบกับ 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
ตั้งค่าตัวแปร
เราจะตั้งค่าตัวแปรบางตัวที่ใช้ในการปรับแต่งไปป์ไลน์ด้านล่าง ต้องการข้อมูลต่อไปนี้:
- รหัสโปรเจ็กต์ GCP ดู การระบุรหัสโครงการของคุณ
- ภูมิภาค GCP เพื่อเรียกใช้ไปป์ไลน์ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับภูมิภาคที่ Vertex ท่อที่มีอยู่ในดูที่ สถานคู่มือ Vertex AI
- Google Cloud Storage Bucket เพื่อจัดเก็บเอาต์พุตไปป์ไลน์
ใส่ค่าที่ต้องการในเซลล์ที่อยู่ด้านล่างก่อนที่จะใช้มัน
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 ท่อ Vertex ท่อกวดวิชา ไปป์ไลน์จะประกอบด้วยสามองค์ประกอบ CsvExampleGen, Trainer และ Pusher แต่เราจะใช้ส่วนประกอบ Trainer และ Pusher พิเศษ คอมโพเนนต์ Trainer จะย้ายเวิร์กโหลดการฝึกไปที่ Vertex AI และคอมโพเนนต์ Pusher จะเผยแพร่โมเดล ML ที่ได้รับการฝึกอบรมไปยัง Vertex AI แทนระบบไฟล์
TFX ให้พิเศษ Trainer
ที่จะส่งงานการฝึกอบรมการให้บริการ Vertex AI การฝึกอบรม ทั้งหมดที่เราต้องทำคือการใช้ Trainer
ในโมดูลขยายแทนมาตรฐาน Trainer
องค์ประกอบพร้อมกับพารามิเตอร์ GCP บางอย่างที่จำเป็น
ในบทช่วยสอนนี้ เราจะเรียกใช้งาน Vertex AI Training โดยใช้ CPU ก่อนแล้วจึงตามด้วย GPU
TFX ยังมีพิเศษ Pusher
อัปโหลดแบบจำลองเพื่อ Vertex AI รุ่น Pusher
จะสร้างทรัพยากร Vertex AI ปลายทางที่จะให้บริการ perdictions ออนไลน์มากเกินไป ดู เอกสาร Vertex 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 ซึ่งสามารถเข้าถึงได้จากส่วนประกอบไปป์ไลน์
มิฉะนั้น คุณอาจต้องการสร้างอิมเมจคอนเทนเนอร์รวมถึงไฟล์โมดูล และใช้อิมเมจเพื่อรันไปป์ไลน์และงาน AI Platform Training
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 Pipeline สอน แต่เราใช้ Trainer
และ Pusher
องค์ประกอบในโมดูลส่วนขยายของ GCP
tfx.extensions.google_cloud_ai_platform.Trainer
พฤติกรรมเช่นปกติ Trainer
แต่ก็ย้ายการคำนวณสำหรับการฝึกอบรมรุ่นไปยังเมฆ เปิดตัวงานที่กำหนดเองในบริการ Vertex AI Training และองค์ประกอบผู้ฝึกสอนในระบบประสานจะรอจนกว่างาน Vertex AI Training จะเสร็จสิ้น
tfx.extensions.google_cloud_ai_platform.Pusher
สร้างเท็กซ์ AI รุ่นและ Vertex AI Endpoint ใช้รูปแบบการฝึกอบรม
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 Pipelines
เราจะใช้ Vertex ท่อที่จะเรียกใช้ท่อที่เราทำใน ง่าย TFX ท่อ Vertex ท่อกวดวิชา
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))
ไฟล์การกำหนดสร้างขึ้นสามารถส่งโดยใช้โปรแกรม aiplatform Google Cloud ใน 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)
ตอนนี้คุณสามารถเยี่ยมชม 'Vertex AI> ท่อ' ใน Google Cloud Console
เพื่อดูความคืบหน้า
ทดสอบด้วยคำทำนาย
เมื่อเสร็จสิ้นการท่อ, คุณจะได้พบกับรูปแบบการใช้งานที่หนึ่งของปลายทางใน 'การ Vertex AI> ปลายทาง' เราจำเป็นต้องทราบ ID ของปลายทางเพื่อส่งคำขอการคาดการณ์ไปยังปลายทางใหม่ ซึ่งแตกต่างจากชื่อปลายทางที่เราเข้ามาข้างต้น คุณสามารถค้นหารหัสที่ที่ หน้าปลายทาง ใน 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)
ตอนนี้คุณสามารถเยี่ยมชม 'Vertex AI> ท่อ' ใน Google Cloud Console
เพื่อดูความคืบหน้า
การทำความสะอาด
คุณได้สร้าง Vertex AI Model และ Endpoint ในบทช่วยสอนนี้ กรุณาลบทรัพยากรเหล่านี้เพื่อหลีกเลี่ยงค่าใช้จ่ายที่ไม่พึงประสงค์ได้โดยไปที่ ปลายทาง และ undeploying รุ่นจากปลายทางแรก จากนั้นคุณสามารถลบปลายทางและโมเดลแยกกันได้