প্রোটোটাইপ থেকে উৎপাদন: কাস্টম প্রশিক্ষিত মডেল থেকে ভবিষ্যদ্বাণী পাওয়া

1। সংক্ষিপ্ত বিবরণ

এই ল্যাবে, আপনি একটি কাস্টম প্রশিক্ষিত মডেল থেকে অনলাইন এবং ব্যাচের পূর্বাভাস পেতে Vertex AI ব্যবহার করবেন।

এই ল্যাব প্রোটোটাইপ থেকে প্রোডাকশন ভিডিও সিরিজের অংশ। এটি চেষ্টা করার আগে পূর্ববর্তী ল্যাবটি সম্পূর্ণ করতে ভুলবেন না। আরও জানতে আপনি সহগামী ভিডিওটি দেখতে পারেন:

.

তুমি কি শিখেছ

আপনি কিভাবে শিখবেন:

  • Vertex AI মডেল রেজিস্ট্রিতে মডেল আপলোড করুন
  • একটি শেষ পয়েন্টে একটি মডেল স্থাপন করুন
  • UI এবং SDK এর মাধ্যমে অনলাইন এবং ব্যাচের পূর্বাভাস পান

Google ক্লাউডে এই ল্যাবটি চালানোর জন্য মোট খরচ প্রায় $1

2. ভার্টেক্স এআই-এর ভূমিকা

এই ল্যাবটি Google ক্লাউডে উপলব্ধ নতুন AI পণ্য অফার ব্যবহার করে। Vertex AI Google ক্লাউড জুড়ে ML অফারগুলিকে একটি নিরবচ্ছিন্ন বিকাশের অভিজ্ঞতায় সংহত করে৷ পূর্বে, অটোএমএল এবং কাস্টম মডেলগুলির সাথে প্রশিক্ষিত মডেলগুলি পৃথক পরিষেবার মাধ্যমে অ্যাক্সেসযোগ্য ছিল। নতুন অফারটি অন্যান্য নতুন পণ্যের সাথে একটি একক API-এ উভয়কে একত্রিত করে। আপনি বিদ্যমান প্রকল্পগুলিকে Vertex AI-তে স্থানান্তর করতে পারেন।

Vertex AI এন্ড-টু-এন্ড ML ওয়ার্কফ্লো সমর্থন করার জন্য বিভিন্ন পণ্য অন্তর্ভুক্ত করে। এই ল্যাবটি নীচে হাইলাইট করা পণ্যগুলিতে ফোকাস করবে: পূর্বাভাস এবং ওয়ার্কবেঞ্চ৷

ভার্টেক্স পণ্য ওভারভিউ

3. আপনার পরিবেশ সেট আপ করুন

আপনার পরিবেশ সেট আপ করতে Vertex AI ল্যাবের সাথে কাস্টম মডেল প্রশিক্ষণের ধাপগুলি সম্পূর্ণ করুন৷

4. রেজিস্ট্রিতে মডেল আপলোড করুন

ভবিষ্যদ্বাণী পেতে আমাদের মডেল ব্যবহার করার আগে, আমাদের এটিকে Vertex AI মডেল রেজিস্ট্রিতে আপলোড করতে হবে, যা একটি সংগ্রহস্থল যেখানে আপনি আপনার ML মডেলগুলির জীবনচক্র পরিচালনা করতে পারেন৷

আপনি যখন একটি কাস্টম প্রশিক্ষণ কাজ কনফিগার করেন তখন আপনি মডেল আপলোড করতে পারেন, যেমনটি নীচে দেখানো হয়েছে।

প্রশিক্ষণ_পূর্বাভাস

অথবা আপনি ক্লাউড স্টোরেজ বালতিতে সংরক্ষিত মডেল আর্টিফ্যাক্টগুলি সঞ্চয় করা পর্যন্ত প্রশিক্ষণের কাজ শেষ হওয়ার পরে মডেলগুলি আমদানি করতে পারেন৷ এই বিকল্পটি আমরা এই ল্যাবে ব্যবহার করব।

কনসোলের মধ্যে মডেল বিভাগে নেভিগেট করুন।

মডেল মেনু

IMPORT নির্বাচন করুন

আমদানি_মডেল

নতুন মডেল হিসাবে আমদানি নির্বাচন করুন এবং তারপর আপনার মডেলের জন্য একটি নাম প্রদান করুন

নতুন মডেল

মডেল সেটিংসের অধীনে একটি পূর্ব-নির্মিত ধারক সহ মডেল আমদানি করুন এবং TensorFlow 2.8 ব্যবহার করুন। আপনি এখানে পূর্ব-নির্মিত পূর্বাভাস পাত্রের সম্পূর্ণ তালিকা দেখতে পারেন।

তারপরে ক্লাউড স্টোরেজ বালতিতে যাওয়ার পথটি সরবরাহ করুন যেখানে আপনি কাস্টম প্রশিক্ষণের কাজে মডেল আর্টিফ্যাক্টগুলি সংরক্ষণ করেছেন। এটি gs://{PROJECT_ID}-bucket/model_output এর মত দেখতে হবে

আমরা ব্যাখ্যাযোগ্যতা বিভাগটি এড়িয়ে যাব, কিন্তু আপনি যদি Vertex ব্যাখ্যাযোগ্য AI সম্পর্কে আরও জানতে চান, তাহলে ডক্সটি দেখুন।

মডেলটি আমদানি করা হলে, আপনি এটি রেজিস্ট্রিতে দেখতে পাবেন।

ফুল_মডেল

মনে রাখবেন যে আপনি যদি UI এর পরিবর্তে SDK এর মাধ্যমে এটি করতে চান তবে আপনি মডেলটি আপলোড করতে আপনার ওয়ার্কবেঞ্চ নোটবুক থেকে নিম্নলিখিতগুলি চালাতে পারেন৷

from google.cloud import aiplatform

my_model = aiplatform.Model.upload(display_name='flower-model',
                                  artifact_uri='gs://{PROJECT_ID}-bucket/model_output',
                                  serving_container_image_uri='us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-8:latest')

5. শেষ পয়েন্টে মডেল স্থাপন করুন

Vertex AI-তে আমরা দুই ধরনের ভবিষ্যদ্বাণীমূলক কাজ চালাতে পারি: ব্যাচ এবং অনলাইন।

ব্যাচের পূর্বাভাস একটি অ্যাসিঙ্ক্রোনাস অনুরোধ। এটি একটি ভাল ফিট যখন আপনি একটি অবিলম্বে প্রতিক্রিয়া প্রয়োজন হয় না এবং একটি একক অনুরোধে জমা তথ্য প্রক্রিয়া করতে চান.

অন্যদিকে, আপনি যদি ফ্লাইতে আপনার মডেলে পাস করা ডেটা থেকে কম লেটেন্সি ভবিষ্যদ্বাণী পেতে চান, তাহলে আপনি অনলাইন ভবিষ্যদ্বাণী ব্যবহার করবেন।

এখন মডেলটি রেজিস্ট্রিতে রয়েছে, আমরা এটি ব্যাচের পূর্বাভাসের জন্য ব্যবহার করতে পারি।

কিন্তু আমরা যদি অনলাইন ভবিষ্যদ্বাণী পেতে চাই, তাহলে আমাদের মডেলটিকে একটি শেষ বিন্দুতে স্থাপন করতে হবে। এটি সংরক্ষিত মডেল আর্টিফ্যাক্টগুলিকে কম লেটেন্সি ভবিষ্যদ্বাণীগুলির জন্য ভৌত সংস্থানগুলির সাথে সংযুক্ত করে৷

একটি এন্ডপয়েন্টে স্থাপন করতে, মডেলের ডানদিকে তিনটি বিন্দু নির্বাচন করুন, তারপরে এন্ডপয়েন্টে স্থাপন করুন নির্বাচন করুন।

deploy_model

আপনার এন্ডপয়েন্টকে একটি নাম দিন এবং তারপরে বাকি সেটিংস যেমন আছে তেমনই রেখে যান এবং চালিয়ে যান-এ ক্লিক করুন

endpoint_name

এন্ডপয়েন্টগুলি স্বয়ংক্রিয় স্কেলিং সমর্থন করে, যার অর্থ হল আপনি একটি সর্বনিম্ন এবং সর্বাধিক সেট করতে পারেন এবং গণনা নোডগুলি সেই সীমানার মধ্যে ট্র্যাফিক চাহিদা মেটাতে স্কেল করবে।

যেহেতু এই ল্যাবটি শুধুমাত্র প্রদর্শনের জন্য এবং আমরা উচ্চ ট্র্যাফিকের জন্য এই শেষ পয়েন্টটি ব্যবহার করতে যাচ্ছি না, আপনি কম্পিউট নোটের সর্বাধিক সংখ্যা 1 সেট করতে পারেন এবং মেশিনের ধরন হিসাবে n1-স্ট্যান্ডার্ড-4 নির্বাচন করতে পারেন।

endpoint_compute

আমরা মডেল মনিটরিং এড়িয়ে যাব, কিন্তু আপনি যদি এই বৈশিষ্ট্যটি সম্পর্কে আরও জানতে চান, ডক্স দেখুন।

তারপর DEPLOY এ ক্লিক করুন

স্থাপনে কয়েক মিনিট সময় লাগবে, কিন্তু একবার এটি সম্পন্ন হলে, আপনি দেখতে পাবেন যে আপনার মডেলের স্থাপনার স্থিতি Vertex AI-তে Deployed-এ পরিবর্তিত হয়েছে।

আপনি যদি SDK এর মাধ্যমে একটি মডেল স্থাপন করতে চান তবে নীচের কমান্ডটি চালান।

my_model = aiplatform.Model("projects/{PROJECT_NUMBER}/locations/us-central1/models/{MODEL_ID}") 

endpoint = my_model.deploy(
     deployed_model_display_name='my-endpoint',
     traffic_split={"0": 100},
     machine_type="n1-standard-4",
     accelerator_count=0,
     min_replica_count=1,
     max_replica_count=1,
   )

6. ভবিষ্যদ্বাণী পান

অনলাইন ভবিষ্যদ্বাণী

যখন আপনার মডেলটি একটি এন্ডপয়েন্টে স্থাপন করা হয়, আপনি এটিকে অন্য যেকোন রেস্ট এন্ডপয়েন্টের মতো আঘাত করতে পারেন, এর মানে আপনি এটিকে একটি ক্লাউড ফাংশন, চ্যাটবট, একটি ওয়েব অ্যাপ ইত্যাদি থেকে কল করতে পারেন।

প্রদর্শনের উদ্দেশ্যে আমরা ওয়ার্কবেঞ্চ থেকে এই এন্ডপয়েন্টটিকে কল করব।

আগের ল্যাবে আপনার তৈরি করা নোটবুকে ফিরে যান। লঞ্চার থেকে, একটি নতুন TensorFlow 2 নোটবুক তৈরি করুন৷

tf_kernel

Vertex AI Python SDK, numpy, এবং PIL আমদানি করুন

from google.cloud import aiplatform

import numpy as np
from PIL import Image

নীচের ছবিটি ডাউনলোড করুন এবং এটি আপনার ওয়ার্কবেঞ্চ উদাহরণে আপলোড করুন। আমরা একটি ড্যান্ডেলিয়নের এই চিত্রের মডেলটি পরীক্ষা করব।

পরীক্ষা_চিত্র

প্রথমত, শেষ বিন্দু সংজ্ঞায়িত করুন। আপনাকে নীচের {PROJECT_NUMBER} এবং {ENDPOINT_ID} প্রতিস্থাপন করতে হবে৷

endpoint = aiplatform.Endpoint(
    endpoint_name="projects/{PROJECT_NUMBER}/locations/us-central1/endpoints/{ENDPOINT_ID}")

আপনি ক্লাউড কনসোলের এন্ডপয়েন্ট বিভাগে আপনার endpoint_id খুঁজে পেতে পারেন।

endpoint_id

এবং আপনি কনসোলের হোম পেজে আপনার প্রজেক্ট নম্বর খুঁজে পেতে পারেন। উল্লেখ্য যে এটি প্রজেক্ট আইডি থেকে আলাদা।

প্রকল্প সংখ্যা

নীচের কোডটি পিআইএল সহ চিত্রটি খোলে এবং পুনরায় আকার দেয়।

IMAGE_PATH = "test-image.jpg"
im = Image.open(IMAGE_PATH)

তারপর, float32 টাইপ করতে এবং একটি তালিকায় numpy ডেটা রূপান্তর করুন। আমরা একটি তালিকায় রূপান্তর করি কারণ numpy ডেটা JSON ক্রমিক নয় তাই আমরা আমাদের অনুরোধের অংশে এটি পাঠাতে পারি না।

x_test = np.asarray(im).astype(np.float32).tolist()

অবশেষে, endpoint.predict কল করুন।

endpoint.predict(instances=x_test).predictions

আপনি যে ফলাফলটি পান তা হল মডেলের আউটপুট, যা 5 ইউনিট সহ একটি সফটম্যাক্স স্তর। আপনি যদি সূচির পরিবর্তে স্ট্রিং লেবেল ফেরত দিতে কাস্টম লজিক লিখতে চান, আপনি কাস্টম ভবিষ্যদ্বাণী রুটিন ব্যবহার করতে পারেন।

ব্যাচের পূর্বাভাস

ব্যাচের পূর্বাভাসের জন্য আপনার ডেটা ফর্ম্যাট করার বিভিন্ন উপায় রয়েছে৷ সরলতার জন্য, আমরা একটি json ফাইলে নম্পি ডেটা ডাম্প করব এবং ফাইলটিকে ক্লাউড স্টোরেজে সংরক্ষণ করব।

with open('test-data.json', 'w') as fp:
    json.dump(x_test, fp)

!gsutil cp test-data.json gs://{YOUR_BUCKET}

এর পরে, মডেলটি সংজ্ঞায়িত করুন। এটি এন্ডপয়েন্ট সংজ্ঞায়িত করার মতই, ENDPOINT_ID এর পরিবর্তে আপনাকে MODEL_ID প্রদান করতে হবে।

my_model=aiplatform.Model("projects/{PROJECT_NUMBER}/locations/us-central1/models/{MODEL_ID}") 

আপনি কনসোলের মডেল বিভাগ থেকে মডেলের নাম এবং সংস্করণ নির্বাচন করে এবং তারপর সংস্করণের বিবরণ নির্বাচন করে মডেল আইডি খুঁজে পেতে পারেন

মডেল_আইডি

সবশেষে, SDK ব্যবহার করুন একটি ব্যাচের ভবিষ্যদ্বাণী কাজের কল করার জন্য, ক্লাউড স্টোরেজ পাথে আপনি যেখানে json ফাইলটি সংরক্ষণ করেছেন, এবং ভবিষ্যদ্বাণী ফলাফল সংরক্ষণ করার জন্য একটি ক্লাউড স্টোরেজ অবস্থান প্রদান করুন৷

batch_prediction_job = my_model.batch_predict(
    job_display_name='flower_batch_predict',
    gcs_source='gs://{YOUR_BUCKET}/test-data.json',
    gcs_destination_prefix='gs://{YOUR_BUCKET}/prediction-results',
    machine_type='n1-standard-4',)

আপনি কনসোলের ব্যাচ পূর্বাভাস বিভাগে কাজের অগ্রগতি ট্র্যাক করতে পারেন। নোট করুন যে একটি একক চিত্রের জন্য একটি ব্যাচ পূর্বাভাস কাজ চালানো দক্ষ নয়৷

batch_pred

এরপর কি

এই উদাহরণে, আমরা ভবিষ্যদ্বাণী কল করার আগে পরীক্ষার চিত্রটিকে প্রথমে NumPy তে রূপান্তর করেছি। আরও বাস্তবসম্মত ব্যবহারের ক্ষেত্রে, আপনি সম্ভবত ছবিটি নিজেই পাঠাতে চাইবেন এবং প্রথমে এটি NumPy-এ লোড করতে হবে না। এটি করার জন্য, আপনাকে ইমেজ বাইট ডিকোড করতে আপনার TensorFlow পরিবেশন ফাংশন সামঞ্জস্য করতে হবে। এর জন্য একটু বেশি কাজ করতে হবে, কিন্তু বড় ইমেজ এবং অ্যাপ্লিকেশন বিল্ডিংয়ের জন্য অনেক বেশি দক্ষ হবে। আপনি এই নোটবুকে একটি উদাহরণ দেখতে পারেন।

🎉 অভিনন্দন! 🎉

আপনি শিখেছেন কিভাবে Vertex AI ব্যবহার করতে হয়:

  • Vertex AI মডেল রেজিস্ট্রিতে মডেলগুলি আপলোড করুন
  • ব্যাচ এবং অনলাইন ভবিষ্যদ্বাণী পান

ভার্টেক্সের বিভিন্ন অংশ সম্পর্কে আরও জানতে, ডকুমেন্টেশন দেখুন।

7. পরিষ্কার করা

আপনি যদি সেগুলি ব্যবহার করার পরিকল্পনা না করেন তবে আপনি শেষপয়েন্ট থেকে মডেলগুলি আনডিপ্লয় করতে চাইবেন৷ এছাড়াও আপনি শেষ পয়েন্ট সম্পূর্ণরূপে মুছে ফেলতে পারেন। আপনার প্রয়োজন হলে আপনি সর্বদা একটি মডেলকে শেষ পয়েন্টে পুনরায় স্থাপন করতে পারেন।

undeploy_model

ওয়ার্কবেঞ্চ 180 নিষ্ক্রিয় মিনিটের পরে স্বয়ংক্রিয়ভাবে নোটবুকের সময় শেষ হয়ে যায়, তাই আপনাকে দৃষ্টান্তটি বন্ধ করার বিষয়ে চিন্তা করতে হবে না। আপনি যদি দৃষ্টান্তটি ম্যানুয়ালি বন্ধ করতে চান, তাহলে কনসোলের Vertex AI Workbench বিভাগে স্টপ বোতামে ক্লিক করুন। আপনি যদি নোটবুকটি সম্পূর্ণরূপে মুছে ফেলতে চান তবে মুছুন বোতামটি ক্লিক করুন।

উদাহরণ বন্ধ করুন

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

স্টোরেজ মুছুন