Vertex AI: آموزش چند کارگری و آموزش انتقال با TensorFlow

1. بررسی اجمالی

در این آزمایشگاه، از Vertex AI برای اجرای یک کار آموزشی چندکاره برای یک مدل TensorFlow استفاده خواهید کرد.

چیزی که یاد می گیرید

شما یاد خواهید گرفت که چگونه:

  • کد برنامه آموزشی را برای آموزش چند کارگری تغییر دهید
  • یک کار آموزشی چند کارگری را از Vertex AI UI پیکربندی و راه اندازی کنید
  • یک کار آموزشی چندکاره را با Vertex SDK پیکربندی و راه اندازی کنید

کل هزینه اجرای این آزمایشگاه در Google Cloud حدود 5 دلار است.

2. مقدمه ای بر Vertex AI

این آزمایشگاه از جدیدترین محصول هوش مصنوعی موجود در Google Cloud استفاده می کند. Vertex AI پیشنهادات ML را در سراسر Google Cloud در یک تجربه توسعه یکپارچه ادغام می کند. پیش از این، مدل‌های آموزش دیده با AutoML و مدل‌های سفارشی از طریق سرویس‌های جداگانه قابل دسترسی بودند. پیشنهاد جدید هر دو را به همراه سایر محصولات جدید در یک API واحد ترکیب می کند. همچنین می توانید پروژه های موجود را به Vertex AI منتقل کنید. اگر بازخوردی دارید، لطفاً صفحه پشتیبانی را ببینید.

Vertex AI شامل بسیاری از محصولات مختلف برای پشتیبانی از گردش کار ML سرتاسر است. این آزمایشگاه بر روی محصولاتی که در زیر برجسته شده اند تمرکز خواهد کرد: آموزش و میز کار

نمای کلی محصول Vertex

3. از Case Overview استفاده کنید

در این آزمایشگاه شما از آموزش انتقال برای آموزش یک مدل طبقه بندی تصویر بر روی مجموعه داده کاساوا از TensorFlow Datasets استفاده خواهید کرد. معماری مورد استفاده شما یک مدل ResNet50 از کتابخانه tf.keras.applications است که روی مجموعه داده Imagenet از قبل آموزش داده شده است.

چرا آموزش توزیع شده؟

اگر یک واحد پردازش گرافیکی دارید، TensorFlow از این شتاب دهنده برای سرعت بخشیدن به آموزش مدل ها بدون هیچ کار اضافی از جانب شما استفاده می کند. با این حال، اگر می‌خواهید با استفاده از چندین پردازنده گرافیکی در یک دستگاه یا چندین ماشین (هر کدام دارای چندین GPU بالقوه، تقویت بیشتری دریافت کنید)، باید از tf.distribute استفاده کنید، که کتابخانه TensorFlow برای اجرای یک محاسبات بین چندگانه است. دستگاه ها دستگاه به یک CPU یا شتاب دهنده، مانند GPU یا TPU، در برخی از دستگاه ها اشاره دارد که TensorFlow می تواند عملیات را روی آن اجرا کند.

ساده ترین راه برای شروع آموزش توزیع شده، یک دستگاه واحد با چندین دستگاه GPU است. یک استراتژی توزیع TensorFlow از ماژول tf.distribute هماهنگی توزیع داده ها و به روز رسانی گرادیان را در تمام GPU ها مدیریت می کند. اگر به آموزش تک هاست تسلط دارید و به دنبال افزایش مقیاس بیشتر هستید، اضافه کردن چندین ماشین به کلاستر می تواند به شما کمک کند تا عملکرد بیشتری را افزایش دهید. می‌توانید از مجموعه‌ای از ماشین‌ها استفاده کنید که فقط CPU هستند یا هر کدام یک یا چند GPU دارند. این آزمایشگاه مورد دوم را پوشش می‌دهد و نحوه استفاده از MultiWorkerMirroredStrategy را برای توزیع آموزش یک مدل TensorFlow در چندین ماشین در Vertex AI نشان می‌دهد.

MultiWorkerMirroredStrategy یک استراتژی موازی داده های همزمان است که می توانید تنها با چند تغییر کد از آن استفاده کنید. یک کپی از مدل در هر دستگاه در خوشه شما ایجاد می شود. به روز رسانی های گرادیان بعدی به صورت همزمان اتفاق می افتد. این به این معنی است که هر دستگاه کارگر، گذرهای رو به جلو و عقب را از طریق مدل در بخش متفاوتی از داده های ورودی محاسبه می کند. سپس گرادیان‌های محاسبه‌شده از هر یک از این برش‌ها در تمام دستگاه‌های یک ماشین و همه ماشین‌های خوشه جمع‌آوری می‌شوند و (معمولاً به طور متوسط) در فرآیندی به نام همه کاهش می‌یابند. سپس بهینه ساز به روز رسانی پارامترها را با این شیب های کاهش یافته انجام می دهد و در نتیجه دستگاه ها را همگام نگه می دارد. برای کسب اطلاعات بیشتر در مورد آموزش توزیع شده با TensorFlow، ویدیوی زیر را بررسی کنید:

4. محیط خود را تنظیم کنید

برای اجرای این کد لبه به یک پروژه Google Cloud Platform با فعال بودن صورتحساب نیاز دارید. برای ایجاد یک پروژه، دستورالعمل های اینجا را دنبال کنید.

مرحله 1: Compute Engine API را فعال کنید

به Compute Engine بروید و اگر قبلاً فعال نشده است Enable را انتخاب کنید. برای ایجاد نمونه نوت بوک خود به این نیاز دارید.

مرحله 2: Container Registry API را فعال کنید

به رجیستری کانتینر بروید و اگر قبلاً وجود ندارد، Enable را انتخاب کنید. شما از این برای ایجاد یک ظرف برای کار آموزشی سفارشی خود استفاده خواهید کرد.

مرحله 3: Vertex AI API را فعال کنید

به بخش Vertex AI در Cloud Console خود بروید و روی Enable Vertex AI API کلیک کنید.

داشبورد Vertex AI

مرحله 4: یک نمونه Vertex AI Workbench ایجاد کنید

از بخش Vertex AI در Cloud Console خود، روی Workbench کلیک کنید:

منوی Vertex AI

اگر قبلاً API Notebooks وجود ندارد، آن را فعال کنید.

Notebook_api

پس از فعال شدن، روی دفترچه یادداشت مدیریت شده کلیک کنید:

Notebooks_UI

سپس NEW NOTEBOOK را انتخاب کنید.

نوت بوک

نوت بوک خود را نامی بگذارید و سپس روی تنظیمات پیشرفته کلیک کنید.

create_notebook

در قسمت تنظیمات پیشرفته، خاموش شدن بی‌حرکت را فعال کنید و تعداد دقیقه‌ها را روی 60 دقیقه تنظیم کنید. این بدان معناست که نوت بوک شما در صورت عدم استفاده به طور خودکار خاموش می‌شود تا هزینه‌های غیرضروری متحمل نشوید.

idle_timeout

اگر قبلاً فعال نشده است، در قسمت Security ، "Enable terminal" را انتخاب کنید.

enable_terminal

شما می توانید تمام تنظیمات پیشرفته دیگر را به همین صورت رها کنید.

بعد، روی ایجاد کلیک کنید. ارائه نمونه چند دقیقه طول می کشد.

پس از ایجاد نمونه، Open JupyterLab را انتخاب کنید.

open_jupyterlab

اولین باری که از یک نمونه جدید استفاده می کنید، از شما خواسته می شود که احراز هویت کنید. برای انجام این کار مراحل موجود در UI را دنبال کنید.

تصدیق کردن

5. کانتینریزه کردن کد برنامه آموزشی

با قرار دادن کد برنامه آموزشی خود در یک ظرف Docker و فشار دادن این کانتینر به Google Container Registry، این کار آموزشی را به Vertex ارسال خواهید کرد. با استفاده از این رویکرد، می توانید مدلی را که با هر چارچوبی ساخته شده است، آموزش دهید.

برای شروع، از منوی Launcher، یک پنجره ترمینال را در نمونه نوت بوک خود باز کنید:

ترمینال را در نوت بوک باز کنید

یک دایرکتوری جدید به نام cassava و cd در آن ایجاد کنید:

mkdir cassava
cd cassava

مرحله 1: یک Dockerfile ایجاد کنید

اولین گام در کانتینر کردن کد شما ایجاد یک Dockerfile است. در Dockerfile شما تمام دستورات مورد نیاز برای اجرای تصویر را درج خواهید کرد. تمام کتابخانه‌های لازم را نصب می‌کند و نقطه ورودی کد آموزشی را تنظیم می‌کند.

از ترمینال خود، یک Dockerfile خالی ایجاد کنید:

touch Dockerfile

Dockerfile را باز کنید و موارد زیر را در آن کپی کنید:

FROM gcr.io/deeplearning-platform-release/tf2-gpu.2-7

WORKDIR /

# Copies the trainer code to the docker image.
COPY trainer /trainer

# Sets up the entry point to invoke the trainer.
ENTRYPOINT ["python", "-m", "trainer.task"]

این Dockerfile از تصویر Deep Learning Container TensorFlow Enterprise 2.7 GPU Docker استفاده می کند. Deep Learning Containers در Google Cloud با بسیاری از چارچوب‌های رایج ML و علم داده از پیش نصب شده عرضه می‌شود. پس از دانلود آن تصویر، این Dockerfile نقطه ورودی کد آموزشی را تنظیم می کند. شما هنوز این فایل ها را ایجاد نکرده اید – در مرحله بعد کد آموزش و تنظیم مدل را اضافه می کنید.

مرحله 2: یک سطل ذخیره سازی ابری ایجاد کنید

در این کار آموزشی، مدل TensorFlow آموزش دیده را به یک سطل ذخیره سازی ابری صادر می کنید. از ترمینال خود، موارد زیر را اجرا کنید تا یک متغیر env برای پروژه خود تعریف کنید و مطمئن شوید که your-cloud-project با ID پروژه خود جایگزین کنید:

PROJECT_ID='your-cloud-project'

در مرحله بعد، موارد زیر را در ترمینال خود اجرا کنید تا یک سطل جدید در پروژه خود ایجاد کنید.

BUCKET="gs://${PROJECT_ID}-bucket"
gsutil mb -l us-central1 $BUCKET

مرحله 3: کد آموزشی مدل را اضافه کنید

از ترمینال خود، موارد زیر را اجرا کنید تا یک دایرکتوری برای کد آموزشی و یک فایل پایتون ایجاد کنید که در آن کد را اضافه کنید:

mkdir trainer
touch trainer/task.py

اکنون باید موارد زیر را در فهرست cassava/ خود داشته باشید:

+ Dockerfile
+ trainer/
    + task.py

سپس فایل task.py را که ایجاد کرده اید باز کنید و کد زیر را کپی کنید. باید {your-gcs-bucket} را با نام سطل Cloud Storage که ایجاد کردید جایگزین کنید.

import tensorflow as tf
import tensorflow_datasets as tfds
import os


PER_REPLICA_BATCH_SIZE = 64
EPOCHS = 2

# TODO: replace {your-gcs-bucket} with the name of the Storage bucket you created earlier
BUCKET = 'gs://{your-gcs-bucket}/mwms'

def preprocess_data(image, label):
  '''Resizes and scales images.'''

  image = tf.image.resize(image, (300,300))
  return tf.cast(image, tf.float32) / 255., label


def create_dataset(batch_size):
  '''Loads Cassava dataset and preprocesses data.'''

  data, info = tfds.load(name='cassava', as_supervised=True, with_info=True)
  number_of_classes = info.features['label'].num_classes
  train_data = data['train'].map(preprocess_data,
                                 num_parallel_calls=tf.data.experimental.AUTOTUNE)
  train_data  = train_data.shuffle(1000)
  train_data  = train_data.batch(batch_size)
  train_data  = train_data.prefetch(tf.data.experimental.AUTOTUNE)

  # Set AutoShardPolicy
  options = tf.data.Options()
  options.experimental_distribute.auto_shard_policy = tf.data.experimental.AutoShardPolicy.DATA
  train_data = train_data.with_options(options)

  return train_data, number_of_classes


def create_model(number_of_classes):
  '''Creates and compiles pretrained ResNet50 model.'''

  base_model = tf.keras.applications.ResNet50(weights='imagenet', include_top=False)
  x = base_model.output
  x = tf.keras.layers.GlobalAveragePooling2D()(x)
  x = tf.keras.layers.Dense(1016, activation='relu')(x)
  predictions = tf.keras.layers.Dense(number_of_classes, activation='softmax')(x)
  model = tf.keras.Model(inputs=base_model.input, outputs=predictions)

  model.compile(
      loss='sparse_categorical_crossentropy',
      optimizer=tf.keras.optimizers.Adam(0.0001),
      metrics=['accuracy'])

  return model


def _is_chief(task_type, task_id):
  '''Helper function. Determines if machine is chief.'''

  return task_type == 'chief'


def _get_temp_dir(dirpath, task_id):
  '''Helper function. Gets temporary directory for saving model.'''

  base_dirpath = 'workertemp_' + str(task_id)
  temp_dir = os.path.join(dirpath, base_dirpath)
  tf.io.gfile.makedirs(temp_dir)
  return temp_dir


def write_filepath(filepath, task_type, task_id):
  '''Helper function. Gets filepath to save model.'''

  dirpath = os.path.dirname(filepath)
  base = os.path.basename(filepath)
  if not _is_chief(task_type, task_id):
    dirpath = _get_temp_dir(dirpath, task_id)
  return os.path.join(dirpath, base)


def main():
  # Create strategy
  strategy = tf.distribute.MultiWorkerMirroredStrategy()

  # Get data
  global_batch_size = PER_REPLICA_BATCH_SIZE * strategy.num_replicas_in_sync
  train_data, number_of_classes = create_dataset(global_batch_size)

  # Wrap variable creation within strategy scope
  with strategy.scope():
    model = create_model(number_of_classes)

  model.fit(train_data, epochs=EPOCHS)

  # Determine type and task of the machine from
  # the strategy cluster resolver
  task_type, task_id = (strategy.cluster_resolver.task_type,
                        strategy.cluster_resolver.task_id)

  # Based on the type and task, write to the desired model path
  write_model_path = write_filepath(BUCKET, task_type, task_id)
  model.save(write_model_path)

if __name__ == "__main__":
    main()

قبل از ساختن کانتینر، اجازه دهید نگاهی عمیق‌تر به کد بیندازیم که از MultiWorkerMirroredStrategy از tf.distribute.Strategy API استفاده می‌کند.

چند مؤلفه در کد وجود دارد که برای کار کد شما با MultiWorkerMirroredStrategy ضروری است.

  1. داده ها باید به اشتراک گذاشته شوند، به این معنی که به هر کارگر زیر مجموعه ای از کل مجموعه داده اختصاص داده می شود. بنابراین، در هر مرحله یک اندازه دسته کلی از عناصر داده غیر همپوشانی توسط هر کارگر پردازش می‌شود. این اشتراک‌گذاری به‌طور خودکار با tf.data.experimental.AutoShardPolicy ، که می‌تواند روی FILE یا DATA تنظیم شود، انجام می‌شود. در این مثال، تابع create_dataset() AutoShardPolicy را روی DATA تنظیم می کند زیرا مجموعه داده Cassava به صورت فایل های متعدد دانلود نمی شود. با این حال، اگر خط‌مشی را روی DATA تنظیم نکرده باشید، خط‌مشی پیش‌فرض AUTO فعال می‌شود و نتیجه نهایی یکسان خواهد بود. در اینجا می‌توانید درباره اشتراک‌گذاری مجموعه داده با MultiWorkerMirroredStrategy اطلاعات بیشتری کسب کنید.
  2. در تابع main() شی MultiWorkerMirroredStrategy ایجاد می شود. سپس، ایجاد متغیرهای مدل خود را در محدوده استراتژی قرار می دهید. این مرحله حیاتی به TensorFlow می گوید که کدام متغیرها باید در سراسر کپی ها منعکس شوند.
  3. اندازه دسته با num_replicas_in_sync بزرگ شده است. این تضمین می کند که هر ماکت به همان تعداد نمونه در هر مرحله پردازش می کند. مقیاس بندی اندازه دسته بهترین روش هنگام استفاده از استراتژی های موازی داده های همزمان در TensorFlow است.
  4. ذخیره مدل شما در مورد چند کارگری کمی پیچیده تر است زیرا مقصد باید برای هر یک از کارگران متفاوت باشد. کارگر اصلی در دایرکتوری مدل مورد نظر ذخیره می کند، در حالی که سایر کارگران مدل را در دایرکتوری های موقت ذخیره می کنند. مهم است که این دایرکتوری های موقت منحصر به فرد باشند تا از نوشتن چندین کارگر در یک مکان جلوگیری شود. پس انداز می تواند شامل عملیات جمعی باشد، به این معنی که همه کارگران باید پس انداز کنند و نه فقط رئیس. توابع _is_chief() , _get_temp_dir() , write_filepath() و همچنین تابع main() همگی شامل کد boilerplate هستند که به ذخیره مدل کمک می کند.

توجه داشته باشید که اگر از MultiWorkerMirroredStrategy در محیط دیگری استفاده کرده اید، ممکن است متغیر محیطی TF_CONFIG را تنظیم کرده باشید. Vertex AI TF_CONFIG را به صورت خودکار برای شما تنظیم می کند، بنابراین نیازی به تعریف این متغیر در هر ماشین در خوشه خود ندارید.

مرحله 4: ظرف را بسازید

از ترمینال خود، موارد زیر را اجرا کنید تا یک متغیر env برای پروژه خود تعریف کنید و مطمئن شوید که your-cloud-project با ID پروژه خود جایگزین کنید:

PROJECT_ID='your-cloud-project'

یک متغیر با URI تصویر کانتینر خود در Google Container Registry تعریف کنید:

IMAGE_URI="gcr.io/$PROJECT_ID/multiworker:cassava"

داکر را پیکربندی کنید

gcloud auth configure-docker

سپس، با اجرای موارد زیر از ریشه دایرکتوری cassava خود، کانتینر را بسازید:

docker build ./ -t $IMAGE_URI

در نهایت، آن را به Google Container Registry فشار دهید:

docker push $IMAGE_URI

با فشار دادن کانتینر به Container Registry، اکنون آماده شروع یک کار آموزشی هستید.

6. یک کار آموزشی چند کارگری را روی Vertex AI اجرا کنید

این آزمایشگاه از آموزش سفارشی از طریق یک کانتینر سفارشی در Google Container Registry استفاده می‌کند، اما می‌توانید یک کار آموزشی را با کانتینرهای از پیش ساخته شده نیز اجرا کنید.

برای شروع، به بخش Training در بخش Vertex کنسول Cloud خود بروید:

منوی uCAIP

مرحله 1: کار آموزشی را پیکربندی کنید

روی Create کلیک کنید تا پارامترهای مربوط به کار آموزشی خود را وارد کنید.

  • در زیر مجموعه داده ، بدون مجموعه داده مدیریت شده را انتخاب کنید
  • سپس آموزش سفارشی (پیشرفته) را به عنوان روش آموزشی خود انتخاب کرده و روی Continue کلیک کنید.
  • برای نام مدل، multiworker-cassava (یا هر چیزی که می‌خواهید مدل خود را نام ببرید) وارد کنید
  • روی Continue کلیک کنید

در مرحله تنظیمات Container، Custom Container را انتخاب کنید:

گزینه کانتینر سفارشی

در کادر اول ( تصویر Container )، مقدار متغیر IMAGE_URI خود را از قسمت قبل وارد کنید. باید این باشد: gcr.io/your-cloud-project/multiworker:cassava ، با شناسه پروژه خودتان. بقیه فیلدها را خالی بگذارید و روی Continue کلیک کنید.

با کلیک روی Continue دوباره از مرحله Hhyperparameters رد شوید.

مرحله 2: خوشه محاسباتی را پیکربندی کنید

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

Worker pool 0 Primary، chief، timer و یا "master" را پیکربندی می کند. در MultiWorkerMirroredStrategy ، همه ماشین‌ها به‌عنوان کارگر تعیین می‌شوند، که ماشین‌های فیزیکی هستند که محاسبات تکرار شده روی آن‌ها اجرا می‌شود. علاوه بر اینکه هر دستگاه یک کارگر است، باید یک کارگر وجود داشته باشد که کارهای اضافی مانند ذخیره نقاط بازرسی و نوشتن فایل‌های خلاصه در TensorBoard را انجام دهد. این دستگاه به عنوان رئیس شناخته می شود. تنها یک کارگر اصلی وجود دارد، بنابراین تعداد کارگران شما برای استخر کارگر 0 همیشه 1 خواهد بود.

در محاسبه و قیمت گذاری ، منطقه انتخاب شده را همانطور که هست رها کنید و Worker pool 0 را به صورت زیر پیکربندی کنید:

کارگر_استخر_0

Worker Pool 1 جایی است که کارگران را برای خوشه خود پیکربندی می کنید.

Worker Pool 1 را به صورت زیر پیکربندی کنید:

کارگر_استخر_1

این خوشه اکنون به گونه ای پیکربندی شده است که دارای دو دستگاه فقط CPU باشد. هنگامی که کد برنامه آموزشی اجرا می شود، MultiWorkerMirroredStrategy آموزش را در هر دو ماشین توزیع می کند.

MultiWorkerMirroredStrategy فقط دارای انواع وظایف chief و worker است، بنابراین نیازی به پیکربندی Worker Pools اضافی نیست. با این حال، اگر از ParameterServerStrategy TensorFlow استفاده کنید، سرورهای پارامتری خود را در Worker Pool 2 پیکربندی می‌کنید. و اگر می‌خواهید یک ارزیاب به خوشه خود اضافه کنید، آن ماشین را در استخر کارگر 3 پیکربندی می‌کنید.

برای شروع کار تنظیم هایپرپارامتر، روی Start training کلیک کنید. در بخش Training کنسول خود در زبانه TRAINING PIPELINES ، کار تازه راه اندازی شده خود را خواهید دید:

مشاغل آموزشی

🎉 تبریک می گویم! 🎉

شما یاد گرفته اید که چگونه از Vertex AI برای موارد زیر استفاده کنید:

  • یک کار آموزشی چند کارگری برای کد آموزشی ارائه شده در یک ظرف سفارشی راه اندازی کنید. شما در این مثال از یک مدل TensorFlow استفاده کردید، اما می توانید مدلی را که با هر فریم ورکی با استفاده از کانتینرهای سفارشی یا داخلی ساخته شده است، آموزش دهید.

برای کسب اطلاعات بیشتر در مورد بخش های مختلف Vertex، مستندات را بررسی کنید.

7. [اختیاری] از Vertex SDK استفاده کنید

بخش قبلی نحوه راه اندازی کار آموزشی از طریق UI را نشان داد. در این بخش، یک راه جایگزین برای ارسال شغل آموزشی با استفاده از Vertex Python API مشاهده خواهید کرد.

به نمونه نوت بوک خود برگردید و یک نوت بوک TensorFlow 2 از Launcher ایجاد کنید:

نوت بوک

Vertex AI SDK را وارد کنید.

from google.cloud import aiplatform

برای راه اندازی کار آموزش چند کارگری، ابتدا باید مشخصات استخر کارگر را تعریف کنید. توجه داشته باشید که استفاده از پردازنده‌های گرافیکی در مشخصات کاملاً اختیاری است و می‌توانید accelerator_type و accelerator_count حذف کنید.

# The spec of the worker pools including machine type and Docker image
# Be sure to replace {YOUR-PROJECT-ID} with your project ID.
worker_pool_specs=[
     {
        "replica_count": 1,
        "machine_spec": {
          "machine_type": "n1-standard-8", "accelerator_type": "NVIDIA_TESLA_V100", "accelerator_count": 1
        },
        "container_spec": {"image_uri": "gcr.io/{YOUR-PROJECT-ID}/multiworker:cassava"}
      },
      {
        "replica_count": 1,
        "machine_spec": {
          "machine_type": "n1-standard-8", "accelerator_type": "NVIDIA_TESLA_V100", "accelerator_count": 1
        },
        "container_spec": {"image_uri": "gcr.io/{YOUR-PROJECT-ID}/multiworker:cassava"}
      }
]

سپس یک CustomJob ایجاد و اجرا کنید. برای مرحله بندی باید {YOUR_BUCKET} با یک سطل در پروژه خود جایگزین کنید. می توانید از همان سطلی که قبلا ایجاد کرده اید استفاده کنید.

# Replace YOUR_BUCKET
my_multiworker_job = aiplatform.CustomJob(display_name='multiworker-cassava-sdk',
                              worker_pool_specs=worker_pool_specs,
                              staging_bucket='gs://{YOUR_BUCKET}')

my_multiworker_job.run()

در بخش Training کنسول خود در زیر برگه CUSTOM JOBS ، شغل آموزشی خود را خواهید دید:

مشاغل سفارشی

8. پاکسازی

از آنجایی که ما نوت بوک را طوری پیکربندی کرده‌ایم که پس از 60 دقیقه بی‌حرکت، زمان آن تمام شود، نیازی نیست نگران خاموش کردن نمونه باشیم. اگر می خواهید نمونه را به صورت دستی خاموش کنید، روی دکمه Stop در بخش Vertex AI Workbench کنسول کلیک کنید. اگر می خواهید نوت بوک را به طور کامل حذف کنید، روی دکمه Delete کلیک کنید.

توقف نمونه

برای حذف Storage Bucket، با استفاده از منوی Navigation در Cloud Console خود، به Storage بروید، سطل خود را انتخاب کنید و روی Delete کلیک کنید:

ذخیره سازی را حذف کنید