1. সংক্ষিপ্ত বিবরণ
এই ল্যাবে, আপনি অনলাইন ভবিষ্যদ্বাণীর জন্য একই VM-এ একাধিক মডেল হোস্ট করতে Vertex AI- তে সহ-হোস্টিং মডেল বৈশিষ্ট্যটি ব্যবহার করবেন।
তুমি যা শিখো
তুমি শিখবে কিভাবে:
- একটি
DeploymentResourcePoolতৈরি করুন - একটি
DeploymentResourcePoolমধ্যে মডেল স্থাপন করুন
গুগল ক্লাউডে এই ল্যাবটি পরিচালনা করতে মোট খরচ প্রায় $2 ।
2. ভার্টেক্স এআই-এর ভূমিকা
এই ল্যাবটি গুগল ক্লাউডে উপলব্ধ নতুন এআই পণ্য অফার ব্যবহার করে। ভার্টেক্স এআই গুগল ক্লাউড জুড়ে এমএল অফারগুলিকে একটি নিরবচ্ছিন্ন উন্নয়ন অভিজ্ঞতার জন্য একীভূত করে। পূর্বে, অটোএমএল এবং কাস্টম মডেলের সাথে প্রশিক্ষিত মডেলগুলি পৃথক পরিষেবার মাধ্যমে অ্যাক্সেসযোগ্য ছিল। নতুন অফারটি অন্যান্য নতুন পণ্যের সাথে উভয়কেই একটি একক API-তে একত্রিত করে। আপনি বিদ্যমান প্রকল্পগুলিকে ভার্টেক্স এআই-তে স্থানান্তর করতে পারেন। আপনার যদি কোনও প্রতিক্রিয়া থাকে, তাহলে অনুগ্রহ করে সহায়তা পৃষ্ঠাটি দেখুন।
ভার্টেক্স এআই-তে এন্ড-টু-এন্ড এমএল ওয়ার্কফ্লো সমর্থন করার জন্য অনেকগুলি বিভিন্ন পণ্য রয়েছে। এই ল্যাবটি নীচে হাইলাইট করা পণ্যগুলির উপর ফোকাস করবে: ভবিষ্যদ্বাণী এবং ওয়ার্কবেঞ্চ

৩. কেস ওভারভিউ ব্যবহার করুন
Vertex AI পূর্বাভাস পরিষেবাতে মডেল স্থাপন করার সময়, প্রতিটি মডেল ডিফল্টভাবে তার নিজস্ব VM-তে স্থাপন করা হয়। হোস্টিংকে আরও সাশ্রয়ী করার জন্য আপনি একই VM-তে একাধিক মডেল হোস্ট করতে পারেন, যার ফলে মেমরি এবং কম্পিউটেশনাল রিসোর্সের আরও ভাল ব্যবহার সম্ভব হয়। একই VM-তে আপনি কতগুলি মডেল স্থাপন করতে চান তা মডেলের আকার এবং ট্র্যাফিক প্যাটার্নের উপর নির্ভর করবে, তবে এই বৈশিষ্ট্যটি বিশেষভাবে সেই পরিস্থিতিতে কার্যকর যেখানে আপনার কাছে স্পার্স ট্র্যাফিক সহ অনেকগুলি স্থাপন করা মডেল রয়েছে।
কো-হোস্টিং মডেল সাপোর্ট ডিপ্লয়মেন্ট রিসোর্স পুলের ধারণাটি প্রবর্তন করে, যা একটি VM-এর মধ্যে রিসোর্স শেয়ার করার জন্য মডেলগুলিকে একত্রিত করে। মডেলগুলি একটি এন্ডপয়েন্ট শেয়ার করলে এবং যদি সেগুলি বিভিন্ন এন্ডপয়েন্টে স্থাপন করা হয় তবে VM শেয়ার করতে পারে। বর্তমানে, একই রিসোর্স পুলের মডেলগুলিতে একই কন্টেইনার ইমেজ থাকতে হবে যার মধ্যে Vertex Prediction প্রি-বিল্ট কন্টেইনারের ফ্রেমওয়ার্ক সংস্করণ অন্তর্ভুক্ত রয়েছে। অতিরিক্তভাবে, এই রিলিজে শুধুমাত্র Tensorflow মডেল ফ্রেমওয়ার্ক সহ Vertex Prediction প্রি-বিল্ট কন্টেইনারগুলি সমর্থিত, অন্যান্য মডেল ফ্রেমওয়ার্ক এবং কাস্টম কন্টেইনারগুলি এখনও সমর্থিত নয়।

৪. আপনার পরিবেশ ঠিক করুন
এই কোডল্যাবটি চালানোর জন্য আপনার বিলিং সক্ষম একটি Google ক্লাউড প্ল্যাটফর্ম প্রকল্পের প্রয়োজন হবে। একটি প্রকল্প তৈরি করতে, এখানে নির্দেশাবলী অনুসরণ করুন।
ধাপ ১: কম্পিউট ইঞ্জিন API সক্ষম করুন
কম্পিউট ইঞ্জিনে নেভিগেট করুন এবং যদি এটি ইতিমধ্যেই সক্রিয় না থাকে তবে সক্ষম করুন নির্বাচন করুন।
ধাপ ২: ভার্টেক্স এআই এপিআই সক্ষম করুন
আপনার ক্লাউড কনসোলের Vertex AI বিভাগে যান এবং Enable Vertex AI API এ ক্লিক করুন।

ধাপ ৩: একটি ভার্টেক্স এআই ওয়ার্কবেঞ্চ ইনস্ট্যান্স তৈরি করুন
আপনার ক্লাউড কনসোলের ভার্টেক্স এআই বিভাগ থেকে, ওয়ার্কবেঞ্চে ক্লিক করুন:

যদি Notebooks API ইতিমধ্যেই না থাকে, তাহলে তা সক্রিয় করুন।

একবার সক্রিয় হয়ে গেলে, MANAGED NOTEBOOKS এ ক্লিক করুন:

তারপর NEW NOTEBOOK নির্বাচন করুন।

আপনার নোটবুকের একটি নাম দিন এবং অনুমতির অধীনে পরিষেবা অ্যাকাউন্ট নির্বাচন করুন।

উন্নত সেটিংস নির্বাচন করুন।
যদি এটি ইতিমধ্যেই সক্রিয় না থাকে, তাহলে নিরাপত্তার অধীনে "টার্মিনাল সক্ষম করুন" নির্বাচন করুন।

আপনি অন্যান্য সমস্ত উন্নত সেটিংস যেমন আছে তেমন রেখে যেতে পারেন।
এরপর, Create এ ক্লিক করুন। ইনস্ট্যান্সটি প্রভিশন হতে কয়েক মিনিট সময় লাগবে।
একবার ইনস্ট্যান্স তৈরি হয়ে গেলে, OPEN JUPYTERLAB নির্বাচন করুন।

৫. ট্রেনের মডেল
কো-হোস্টিং বৈশিষ্ট্যটি ব্যবহার করে দেখার আগে, আমাদের প্রথমে একটি মডেলকে প্রশিক্ষণ দিতে হবে এবং সংরক্ষিত মডেলের শিল্পকর্মগুলি একটি ক্লাউড স্টোরেজ বাকেটে সংরক্ষণ করতে হবে। প্রশিক্ষণের কাজটি শুরু করতে আমরা ওয়ার্কবেঞ্চ নোটবুক এক্সিকিউটর ব্যবহার করব।
ধাপ ১: একটি ক্লাউড স্টোরেজ বাকেট তৈরি করুন
যদি আপনার প্রোজেক্টে এমন কোনও বাকেট থাকে যা আপনি ব্যবহার করতে চান, তাহলে আপনি এই ধাপটি এড়িয়ে যেতে পারেন। অন্যথায়, লঞ্চার থেকে একটি নতুন টার্মিনাল সেশন খুলুন।

টার্মিনাল থেকে, আপনার প্রোজেক্টের জন্য একটি env ভেরিয়েবল সংজ্ঞায়িত করতে নিম্নলিখিতটি চালান, আপনার প্রোজেক্টের ID দিয়ে your-cloud-project প্রতিস্থাপন করতে ভুলবেন না:
PROJECT_ID='your-cloud-project'
এরপর, আপনার প্রকল্পে একটি নতুন বাকেট তৈরি করতে নিম্নলিখিত কমান্ডটি চালান।
BUCKET="gs://${PROJECT_ID}-bucket"
gsutil mb -l us-central1 $BUCKET
ধাপ ২: নোটবুক এক্সিকিউশন চালু করুন
আপনার ওয়ার্কবেঞ্চ ইনস্ট্যান্সের লঞ্চার থেকে, একটি নতুন টেনসরফ্লো 2 নোটবুক খুলুন।

নিচের কোডটি IMDB মুভিজ রিভিউ ডেটাসেটে একটি বাইনারি সেন্টিমেন্ট ক্লাসিফায়ার (ধনাত্মক বা ঋণাত্মক) প্রশিক্ষণ দেয়। কোডটি আপনার নোটবুকে পেস্ট করুন।
নিশ্চিত করুন যে আপনি {YOUR_BUCKET} পূর্ববর্তী ধাপে তৈরি করা বাকেট (অথবা আপনার প্রকল্পের অন্য বাকেট) দিয়ে প্রতিস্থাপন করেছেন। এখানে আমরা সংরক্ষিত মডেল আর্টিফ্যাক্টগুলি সংরক্ষণ করব, যা পরে যখন আমরা মডেলটি Vertex AI Model Registry এ আপলোড করব তখন আমাদের প্রয়োজন হবে।
import numpy as np
import tensorflow_datasets as tfds
import tensorflow as tf
# REPLACE WITH YOUR BUCKET!
OUTPUT_PATH='gs://{YOUR_BUCKET}/model_output'
BUFFER_SIZE = 10000
BATCH_SIZE = 64
VOCAB_SIZE = 1000
# Load data
dataset, info = tfds.load('imdb_reviews', with_info=True,
as_supervised=True)
train_dataset, test_dataset = dataset['train'], dataset['test']
train_dataset = train_dataset.shuffle(BUFFER_SIZE).batch(BATCH_SIZE).prefetch(tf.data.AUTOTUNE)
test_dataset = test_dataset.batch(BATCH_SIZE).prefetch(tf.data.AUTOTUNE)
# Create text encoder
encoder = tf.keras.layers.TextVectorization(
max_tokens=VOCAB_SIZE)
encoder.adapt(train_dataset.map(lambda text, label: text))
# Create model
model = tf.keras.Sequential([
encoder,
tf.keras.layers.Embedding(
input_dim=len(encoder.get_vocabulary()),
output_dim=64,
# Use masking to handle the variable sequence lengths
mask_zero=True),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64)),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(1)
])
# Compile model
model.compile(loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),
optimizer=tf.keras.optimizers.Adam(1e-4),
metrics=['accuracy'])
# Fit model
history = model.fit(train_dataset, epochs=10,
validation_data=test_dataset,
validation_steps=30)
# Save model
model.save(OUTPUT_PATH)
এরপর, এক্সিকিউট বোতামটি নির্বাচন করুন।

তারপর আপনার এক্সিকিউশনটি নিম্নরূপে কনফিগার করুন এবং SUBMIT এ ক্লিক করুন

কনসোলের এক্সিকিউশন ট্যাব থেকে, আপনি আপনার প্রশিক্ষণ কাজের অবস্থা ট্র্যাক করতে পারেন।

6. মডেল স্থাপন করুন
ধাপ ১: মডেল আপলোড করুন
এক্সিকিউশন সম্পন্ন হলে, মডেলটি আপলোড করতে ওয়ার্কবেঞ্চ নোটবুকে ফিরে যান। একটি নতুন টেনসরফ্লো নোটবুক তৈরি করুন।

প্রথমে, Vertex AI Python SDK আমদানি করুন
from google.cloud import aiplatform
তারপর মডেলটি আপলোড করুন, {YOUR_BUCKET} প্রশিক্ষণ কোডে আপনার উল্লেখিত বাকেট দিয়ে প্রতিস্থাপন করুন।
# replace {YOUR_BUCKET}
model_1 = aiplatform.Model.upload(display_name='text-model-1',
artifact_uri='gs://{YOUR_BUCKET}/model_output',
serving_container_image_uri='us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-8:latest')
প্রদর্শনের উদ্দেশ্যে, আমরা এই মডেলটি দুবার আপলোড করব, যার ফলে Vertex AI-তে দুটি ভিন্ন মডেল রিসোর্স তৈরি হবে। এটি এমন একটি পদ্ধতি যাতে আমরা একটি ডিপ্লয়মেন্ট রিসোর্স পুলের মধ্যে একটি একক এন্ডপয়েন্টে একাধিক মডেল স্থাপনের পরীক্ষা করতে পারি। বাস্তব পরিস্থিতিতে, একই সংরক্ষিত আর্টিফ্যাক্ট থেকে মডেল তৈরি করার পরিবর্তে আপনার দুটি ভিন্ন মডেল থাকবে, তবে এটি একটি শর্টকাট, তাই আমাদের আর একটি প্রশিক্ষণ বাস্তবায়ন শুরু করতে হবে না। অতিরিক্তভাবে, আপনি একই ডিপ্লয়মেন্ট রিসোর্স পুলের মধ্যে দুটি মডেলকে বিভিন্ন এন্ডপয়েন্টে স্থাপন করতেও বেছে নিতে পারেন।
# replace {YOUR_BUCKET}
model_2 = aiplatform.Model.upload(display_name='text-model-2',
artifact_uri='gs://{YOUR_BUCKET}/model_output',
serving_container_image_uri='us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-8:latest')
Vertex AI মডেল রেজিস্ট্রিতে, আপনি এখন উভয় মডেলই দেখতে পাবেন। আমরা এখনও মডেলগুলি স্থাপন না করায় স্থাপনের অবস্থা ফাঁকা।

ধাপ ২: একটি এন্ডপয়েন্ট তৈরি করুন
একটি এন্ডপয়েন্ট তৈরি করুন। মনে রাখবেন যে এটি একটি মডেলকে একটি এন্ডপয়েন্টে স্থাপন করার থেকে আলাদা।
endpoint = aiplatform.Endpoint.create('cohost-endpoint')
যখন এন্ডপয়েন্ট তৈরি করা হবে, তখন আপনি এটি কনসোলে দেখতে পাবেন।

ধাপ ৩: ডিপ্লয়মেন্টরিসোর্সপুল তৈরি করুন
আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে DeploymentResourcePool তৈরি করতে পারেন। আপনার প্রজেক্ট আইডি দিয়ে {YOUR_PROJECT} প্রতিস্থাপন করতে ভুলবেন না।
# replace {YOUR_PROJECT}
PROJECT_ID={YOUR_PROJECT}
REGION="us-central1"
VERTEX_API_URL=REGION + "-aiplatform.googleapis.com"
VERTEX_PREDICTION_API_URL=REGION + "-prediction-aiplatform.googleapis.com"
MULTI_MODEL_API_VERSION="v1beta1"
# Give the pool a name
DEPLOYMENT_RESOURCE_POOL_ID="my-resource-pool"
import json
import pprint
pp = pprint.PrettyPrinter(indent=4)
CREATE_RP_PAYLOAD = {
"deployment_resource_pool":{
"dedicated_resources":{
"machine_spec":{
"machine_type":"n1-standard-4"
},
"min_replica_count":1,
"max_replica_count":2
}
},
"deployment_resource_pool_id":DEPLOYMENT_RESOURCE_POOL_ID
}
CREATE_RP_REQUEST=json.dumps(CREATE_RP_PAYLOAD)
pp.pprint("CREATE_RP_REQUEST: " + CREATE_RP_REQUEST)
!curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://{VERTEX_API_URL}/{MULTI_MODEL_API_VERSION}/projects/{PROJECT_ID}/locations/{REGION}/deploymentResourcePools \
-d '{CREATE_RP_REQUEST}'
দৌড়ে পুলটি দেখতে পাওয়া যাবে।
!curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://{VERTEX_API_URL}/{MULTI_MODEL_API_VERSION}/projects/{PROJECT_ID}/locations/{REGION}/deploymentResourcePools/{DEPLOYMENT_RESOURCE_POOL_ID}
ধাপ ৪: মডেলগুলিকে শেষ বিন্দুতে স্থাপন করুন
এখন যেহেতু রিসোর্স পুল তৈরি হয়ে গেছে, আমরা রিসোর্স পুলের মধ্যে মডেলগুলি স্থাপন করতে পারি।
প্রথমে, আমরা model_1 স্থাপন করব। MODEL_1_ID এবং ENDPOINT_ID সংশ্লিষ্ট আইডি দিয়ে প্রতিস্থাপন করতে ভুলবেন না।
MODEL_1_ID="{MODEL_1_ID}"
ENDPOINT_ID="{ENDPOINT_ID}"
নিম্নলিখিত কমান্ডটি রিসোর্স পুলের মধ্যে শেষ বিন্দুতে model_1 স্থাপন করবে।
MODEL_NAME = "projects/{project_id}/locations/{region}/models/{model_id}".format(project_id=PROJECT_ID, region=REGION, model_id=MODEL_1_ID)
SHARED_RESOURCE = "projects/{project_id}/locations/{region}/deploymentResourcePools/{deployment_resource_pool_id}".format(project_id=PROJECT_ID, region=REGION, deployment_resource_pool_id=DEPLOYMENT_RESOURCE_POOL_ID)
DEPLOY_MODEL_PAYLOAD = {
"deployedModel": {
"model": MODEL_NAME,
"shared_resources": SHARED_RESOURCE
},
"trafficSplit": {
"0": 100
}
}
DEPLOY_MODEL_REQUEST=json.dumps(DEPLOY_MODEL_PAYLOAD)
pp.pprint("DEPLOY_MODEL_REQUEST: " + DEPLOY_MODEL_REQUEST)
!curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://{VERTEX_API_URL}/{MULTI_MODEL_API_VERSION}/projects/{PROJECT_ID}/locations/{REGION}/endpoints/{ENDPOINT_ID}:deployModel \
-d '{DEPLOY_MODEL_REQUEST}'
এতে কয়েক মিনিট সময় লাগবে, কিন্তু এটি সম্পন্ন হলে আপনি কনসোলের এন্ডপয়েন্টে মডেলটি স্থাপন করা দেখতে পাবেন।

এরপর, আমরা একই ডিপ্লয়মেন্ট পুলের মধ্যে model_2 স্থাপন করতে পারি। আমরা এটি model_1 এর মতো একই এন্ডপয়েন্টে স্থাপন করব। তবে, আপনি একই রিসোর্স পুলের মধ্যে অন্য একটি এন্ডপয়েন্টে model_2 স্থাপন করতেও পারেন।
model_2 এর জন্য ID দিয়ে MODEL_ID আপডেট করুন। আবার, আপনি model_2.name ব্যবহার করে এই ID পেতে পারেন।
MODEL_2_ID="{MODEL_2_ID}"
তারপর deploy model_2 । যেহেতু আমাদের ইতিমধ্যেই model_1 এন্ডপয়েন্টে স্থাপন করা হয়েছে, তাই আমাদের trafficSplit আপডেট করতে হবে যাতে ট্র্যাফিক দুটি মডেলের মধ্যে ভাগ করা যায়। যদি আমরা একই রিসোর্স পুলের মধ্যে model_2 ভিন্ন এন্ডপয়েন্টে স্থাপন করতে চাই, তাহলে আমাদের trafficSplit আপডেট করতে হবে না ।
ট্র্যাফিক স্প্লিট আপডেট করার জন্য, আপনাকে model_1 এর জন্য DeployedModel ID নির্ধারণ করতে হবে। মনে রাখবেন এটি মডেল ID থেকে আলাদা।
DEPLOYED_MODEL_1_ID = {DEPLOYED_MODEL_1_ID}
তারপর দ্বিতীয় মডেলটি স্থাপন করতে নিম্নলিখিতটি কার্যকর করুন।
MODEL_NAME = "projects/{project_id}/locations/{region}/models/{model_id}".format(project_id=PROJECT_ID, region=REGION, model_id=MODEL_2_ID)
SHARED_RESOURCE = "projects/{project_id}/locations/{region}/deploymentResourcePools/{deployment_resource_pool_id}".format(project_id=PROJECT_ID, region=REGION, deployment_resource_pool_id=DEPLOYMENT_RESOURCE_POOL_ID)
#`trafficSplit` is a map from a DeployedModel's ID to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel.
# The traffic percentage values for an endpoint must add up to 100.
# The key for the model being deployed is "0".
DEPLOY_MODEL_PAYLOAD = {
"deployedModel": {
"model": MODEL_NAME,
"shared_resources": SHARED_RESOURCE
},
"trafficSplit": {
"0": 50,
DEPLOYED_MODEL_1_ID: 50
}
}
DEPLOY_MODEL_REQUEST=json.dumps(DEPLOY_MODEL_PAYLOAD)
pp.pprint("DEPLOY_MODEL_REQUEST: " + DEPLOY_MODEL_REQUEST)
!curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://{VERTEX_API_URL}/{MULTI_MODEL_API_VERSION}/projects/{PROJECT_ID}/locations/{REGION}/endpoints/{ENDPOINT_ID}:deployModel \
-d '{DEPLOY_MODEL_REQUEST}'
আবার, এই উদাহরণে দুটি মডেল একই এন্ডপয়েন্টে স্থাপন করা হয়েছিল, তবে আপনি একই রিসোর্স পুলে মডেলগুলিকে সহ-হোস্ট করতে পারেন যা বিভিন্ন এন্ডপয়েন্টে স্থাপন করা হয়েছে। সেক্ষেত্রে আপনাকে ট্র্যাফিক বিভাজন সম্পর্কে চিন্তা করতে হবে না।
দ্বিতীয় মডেলটি স্থাপনের পরে, আপনি কনসোলে উভয়কেই দেখতে পাবেন।

ধাপ ৫: ভবিষ্যদ্বাণী পান
শেষ ধাপ হল শেষবিন্দু পরীক্ষা করা এবং ভবিষ্যদ্বাণী পাওয়া।
প্রথমে, আমাদের পরীক্ষামূলক বাক্যটি সংজ্ঞায়িত করুন।
x_test=['The movie was cool. The animation and the graphics were out of this world. I would recommend this movie.']
তারপর, এন্ডপয়েন্টে predict কল করুন যা এন্ডপয়েন্টে স্থাপন করা মডেলগুলির একটি থেকে একটি ভবিষ্যদ্বাণী ফিরিয়ে দেবে।
endpoint.predict(instances=x_test)
🎉 অভিনন্দন! 🎉
আপনি Vertex AI ব্যবহার করে শিখেছেন:
- অনলাইন ভবিষ্যদ্বাণীর জন্য একই VM-এ সহ-হোস্ট মডেলগুলি
ভার্টেক্সের বিভিন্ন অংশ সম্পর্কে আরও জানতে, ডকুমেন্টেশনটি দেখুন।
৭. পরিষ্কার-পরিচ্ছন্নতা
যদি আপনি মডেলগুলি ব্যবহার করার পরিকল্পনা না করেন তবে আপনাকে এন্ডপয়েন্ট থেকে মডেলগুলি আনডিপ্লয় করতে হবে। আপনি এন্ডপয়েন্টটি সম্পূর্ণরূপে মুছে ফেলতে পারেন। প্রয়োজনে আপনি সর্বদা একটি মডেলকে একটি এন্ডপয়েন্টে পুনরায় স্থাপন করতে পারেন।

১৮০ মিনিট অলস থাকার পর ওয়ার্কবেঞ্চ নোটবুকগুলি স্বয়ংক্রিয়ভাবে টাইম আউট করে, তাই আপনাকে ইনস্ট্যান্স বন্ধ করার বিষয়ে চিন্তা করতে হবে না। আপনি যদি ইনস্ট্যান্সটি ম্যানুয়ালি বন্ধ করতে চান, তাহলে কনসোলের ভার্টেক্স এআই ওয়ার্কবেঞ্চ বিভাগে স্টপ বোতামে ক্লিক করুন। আপনি যদি নোটবুকটি সম্পূর্ণরূপে মুছে ফেলতে চান, তাহলে ডিলিট বোতামে ক্লিক করুন।

স্টোরেজ বাকেট মুছে ফেলার জন্য, আপনার ক্লাউড কনসোলের নেভিগেশন মেনু ব্যবহার করে, স্টোরেজ ব্রাউজ করুন, আপনার বাকেট নির্বাচন করুন এবং ডিলিট ক্লিক করুন:
