১. ভূমিকা
লার্জ ল্যাঙ্গুয়েজ মডেল (এলএলএম) স্মার্ট অ্যাপ্লিকেশন তৈরির পদ্ধতি বদলে দিচ্ছে। কিন্তু এই শক্তিশালী মডেলগুলোকে বাস্তব ব্যবহারের জন্য প্রস্তুত করা বেশ কঠিন হতে পারে। এগুলোর জন্য প্রচুর কম্পিউটিং পাওয়ার, বিশেষ করে গ্রাফিক্স কার্ড (জিপিইউ), এবং একই সাথে অনেকগুলো অনুরোধ সামলানোর জন্য স্মার্ট পদ্ধতির প্রয়োজন হয়। এছাড়াও, খরচ কম রাখতে হয় এবং অ্যাপ্লিকেশনটি কোনো বিলম্ব ছাড়াই মসৃণভাবে চলতে হয়।
এই কোডল্যাবটি আপনাকে দেখাবে কীভাবে এই চ্যালেঞ্জগুলো মোকাবেলা করতে হয়! আমরা দুটি প্রধান টুল ব্যবহার করব:
- vLLM : এটিকে LLM-এর জন্য একটি অতি দ্রুতগতির ইঞ্জিন হিসেবে ভাবুন। এটি আপনার মডেলগুলোকে অনেক বেশি দক্ষতার সাথে চালাতে সাহায্য করে, একই সাথে আরও বেশি অনুরোধ সামলাতে পারে এবং মেমোরির ব্যবহার কমিয়ে দেয়।
- গুগল ক্লাউড রান : এটি গুগলের সার্ভারবিহীন প্ল্যাটফর্ম। অ্যাপ্লিকেশন ডেপ্লয় করার জন্য এটি চমৎকার, কারণ এটি আপনার হয়ে স্কেলিংয়ের সমস্ত কাজ সামলে নেয় – শূন্য ব্যবহারকারী থেকে হাজার হাজার ব্যবহারকারী পর্যন্ত এবং আবার আগের অবস্থায় ফিরে আসা পর্যন্ত। সবচেয়ে ভালো ব্যাপার হলো, ক্লাউড রান এখন জিপিইউ (GPU) সাপোর্ট করে , যা এলএলএম (LLM) হোস্ট করার জন্য অপরিহার্য!
একসাথে, vLLM এবং Cloud Run আপনার এলএলএম (LLM) কোর্সগুলো পরিবেশন করার জন্য একটি শক্তিশালী, নমনীয় এবং সাশ্রয়ী উপায় প্রদান করে। এই নির্দেশিকায়, আপনি একটি ওপেন মডেল স্থাপন করবেন এবং এটিকে একটি স্ট্যান্ডার্ড ওয়েব এপিআই (API) হিসেবে উপলব্ধ করবেন।
আপনি যা শিখবেন
- পরিবেশনের জন্য সঠিক মডেল সাইজ ও ভ্যারিয়েন্ট কীভাবে বেছে নেবেন
- OpenAI-উপযোগী API এন্ডপয়েন্টগুলি পরিবেশন করার জন্য vLLM কীভাবে সেট আপ করবেন
- ডকার ব্যবহার করে কীভাবে vLLM সার্ভারকে কন্টেইনারাইজ করা যায়।
- আপনার কন্টেইনার ইমেজকে গুগল আর্টিফ্যাক্ট রেজিস্ট্রি-তে কীভাবে পুশ করবেন
- GPU অ্যাক্সিলারেশন ব্যবহার করে ক্লাউড রান-এ কন্টেইনার কীভাবে ডেপ্লয় করবেন
- আপনার ডেপ্লয় করা মডেলটি কীভাবে পরীক্ষা করবেন।
আপনার যা যা লাগবে
- গুগল ক্লাউড কনসোল অ্যাক্সেস করার জন্য ক্রোম-এর মতো একটি ব্রাউজার।
- একটি নির্ভরযোগ্য ইন্টারনেট সংযোগ
- বিলিং সক্ষম একটি গুগল ক্লাউড প্রজেক্ট
- একটি হাগিং ফেস অ্যাক্সেস টোকেন (আপনার কাছে না থাকলে এখানে একটি তৈরি করে নিন)
- পাইথন, ডকার এবং কমান্ড লাইন ইন্টারফেস সম্পর্কে প্রাথমিক ধারণা।
- কৌতূহলী মন এবং শেখার আগ্রহ
২. শুরু করার আগে
গুগল ক্লাউড প্রজেক্ট সেটআপ করুন
এই কোডল্যাবটির জন্য একটি সক্রিয় বিলিং অ্যাকাউন্টসহ গুগল ক্লাউড প্রজেক্ট প্রয়োজন।
- প্রশিক্ষক-পরিচালিত সেশনের জন্য: আপনি যদি শ্রেণীকক্ষে থাকেন, তবে আপনার প্রশিক্ষক আপনাকে প্রয়োজনীয় প্রজেক্ট এবং বিলিং সংক্রান্ত তথ্য সরবরাহ করবেন। সেট আপ সম্পন্ন করতে আপনার প্রশিক্ষকের নির্দেশাবলী অনুসরণ করুন।
- স্বাধীনভাবে কাজ করা শিক্ষার্থীদের জন্য: আপনি যদি নিজে থেকে এই কাজটি করেন এবং আপনার কোনো সক্রিয় বিলিং অ্যাকাউন্ট না থাকে, তাহলে আপনাকে নিজের পেমেন্টের তথ্য ব্যবহার করে একটি বিলিং অ্যাকাউন্ট তৈরি করতে হবে। একটি নতুন বিলিং অ্যাকাউন্ট তৈরি করতে এবং আপনার প্রোজেক্টের জন্য সেটি চালু করতে Google Cloud Billing ডকুমেন্টেশন দেখুন।
একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন
এই কোডল্যাবের সমস্ত কাজ সুসংগঠিত রাখতে এবং অন্যান্য প্রজেক্ট থেকে আলাদা করার জন্য, আপনি প্রথমে একটি নতুন গুগল ক্লাউড প্রজেক্ট তৈরি করবেন।
প্রজেক্ট তৈরির পেজটি খুলতে, এ ক্লিক করুন।
প্রজেক্ট তৈরির পেজে প্রয়োজনীয় তথ্য প্রবেশ করান:
- প্রকল্পের নাম - আপনি আপনার পছন্দমতো যেকোনো নাম দিতে পারেন (যেমন genai-workshop)
- অবস্থান - এটিকে কোনো সংস্থা নেই হিসাবে রাখুন
- বিলিং অ্যাকাউন্ট - এই অপশনটি দেখা গেলে, 'Google Cloud Platform Trial Billing Account' অথবা আপনার পছন্দ অনুযায়ী আপনার নিজের বিলিং অ্যাকাউন্ট নির্বাচন করুন। এই অপশনটি না দেখলে, আপনি পরবর্তী ধাপে যেতে পারেন।
তৈরি হওয়া প্রজেক্ট আইডিটি লিখে নিন, পরে আপনার এটি প্রয়োজন হবে। 
সবকিছু ঠিক থাকলে, Create বাটনে ক্লিক করুন।
ক্লাউড শেল কনফিগার করুন
ক্লাউড শেল হলো একটি পূর্ব-কনফিগার করা পরিবেশ, যেখানে এই কোডল্যাবের জন্য আপনার প্রয়োজনীয় সমস্ত টুল রয়েছে। আপনার প্রজেক্টটি সফলভাবে তৈরি হয়ে গেলে, ক্লাউড শেল সেট আপ করার জন্য নিম্নলিখিত ধাপগুলো অনুসরণ করুন।
ক্লাউড শেল চালু করুন
ক্লাউড শেল চালু করতে, -এ ক্লিক করুন।
যদি অনুমোদনের জন্য কোনো পপ-আপ আসে, তাহলে Authorize- এ ক্লিক করুন।

প্রজেক্ট আইডি সেট করুন
উপরের প্রজেক্ট তৈরির ধাপ থেকে পাওয়া আপনার আসল প্রজেক্ট আইডি দিয়ে replace-with-your-project-id প্রতিস্থাপন করুন। সঠিক প্রজেক্ট আইডি সেট করতে ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডটি চালান।
gcloud config set project replace-with-your-project-id
এখন আপনি দেখতে পাবেন যে ক্লাউড শেল টার্মিনালে সঠিক প্রজেক্টটি নির্বাচিত হয়েছে। নির্বাচিত প্রজেক্ট আইডিটি হলুদ রঙে হাইলাইট করা থাকবে।

প্রয়োজনীয় এপিআইগুলি সক্রিয় করুন
ক্লাউড রান-এর মতো গুগল ক্লাউড পরিষেবাগুলি ব্যবহার করার জন্য, আপনাকে প্রথমে আপনার প্রোজেক্টের জন্য সেগুলির নিজ নিজ এপিআই (API) সক্রিয় করতে হবে। এই কোডল্যাবের জন্য প্রয়োজনীয় পরিষেবাগুলি চালু করতে ক্লাউড শেল-এ নিম্নলিখিত কমান্ডগুলি চালান:
gcloud services enable run.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable secretmanager.googleapis.com
gcloud services enable artifactregistry.googleapis.com
৩. সঠিক মডেল নির্বাচন করা
আপনি হাগিং ফেস হাব এবং ক্যাগল-এর মতো ওয়েবসাইটে অনেক ওপেন সোর্স মডেল খুঁজে পেতে পারেন। যখন আপনি গুগল ক্লাউড রান-এর মতো কোনো সার্ভিসে এই মডেলগুলোর একটি ব্যবহার করতে চান, তখন আপনাকে এমন একটি বেছে নিতে হবে যা আপনার কাছে থাকা রিসোর্সের সাথে মানানসই (যেমন এনভিডিয়া এল৪ জিপিইউ)।
শুধু আকারের বাইরেও, মডেলটি আসলে কী করতে পারে, তা বিবেচনা করতে ভুলবেন না। সব মডেল একরকম হয় না; প্রত্যেকটির নিজস্ব সুবিধা ও অসুবিধা রয়েছে। উদাহরণস্বরূপ, কিছু মডেল বিভিন্ন ধরনের ইনপুট (যেমন ছবি এবং টেক্সট – যা মাল্টিমোডাল সক্ষমতা নামে পরিচিত) পরিচালনা করতে পারে, আবার অন্যগুলো একবারে আরও বেশি তথ্য মনে রাখতে ও প্রক্রিয়া করতে পারে (অর্থাৎ তাদের কনটেক্সট উইন্ডো বড় হয়)। প্রায়শই, বড় মডেলগুলোতে ফাংশন কলিং এবং চিন্তাভাবনার মতো আরও উন্নত সক্ষমতা থাকে।
আপনার কাঙ্ক্ষিত মডেলটি সার্ভিং টুল (এই ক্ষেত্রে vLLM) দ্বারা সমর্থিত কিনা, তা যাচাই করাও জরুরি। vLLM দ্বারা সমর্থিত সমস্ত মডেল আপনি এখানে দেখতে পারেন।
এখন, চলুন জেমা ৩ (Gemma 3) নিয়ে আলোচনা করা যাক, যা হলো গুগলের সর্বাধুনিক উন্মুক্তভাবে উপলব্ধ লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) পরিবার। এর জটিলতার উপর ভিত্তি করে জেমা ৩ চারটি ভিন্ন স্কেলে পাওয়া যায়, যা প্যারামিটারের মাধ্যমে পরিমাপ করা হয়: ১ বিলিয়ন, ৪ বিলিয়ন, ১২ বিলিয়ন এবং বিশাল ২৭ বিলিয়ন।
এই প্রতিটি আকারের জন্য, আপনি দুটি প্রধান প্রকার পাবেন:
- বেস (প্রি-ট্রেইনড) ভার্সন: এটি হলো ভিত্তিগত মডেল যা বিপুল পরিমাণ ডেটা থেকে শিখেছে।
- নির্দেশনা-সমন্বিত সংস্করণ: নির্দিষ্ট নির্দেশনা বা কমান্ড আরও ভালোভাবে বোঝা ও অনুসরণ করার জন্য এই সংস্করণটিকে আরও পরিমার্জন করা হয়েছে।
বৃহত্তর মডেলগুলো (৪ বিলিয়ন, ১২ বিলিয়ন এবং ২৭ বিলিয়ন প্যারামিটার) মাল্টিমোডাল , যার অর্থ হলো এগুলো ছবি এবং টেক্সট উভয়ই বুঝতে ও সেগুলোর সাথে কাজ করতে পারে। তবে, সবচেয়ে ছোট ১ বিলিয়ন প্যারামিটারের সংস্করণটি শুধুমাত্র টেক্সটের উপরই মনোযোগ দেয়।
এই কোডল্যাবের জন্য, আমরা জেমা ৩-এর ১ বিলিয়ন ভ্যারিয়েন্ট ব্যবহার করব: gemma-3-1b-it । একটি ছোট মডেল ব্যবহার করলে সীমিত রিসোর্স নিয়ে কীভাবে কাজ করতে হয়, তাও শিখতে সাহায্য করে, যা খরচ কম রাখতে এবং ক্লাউডে আপনার অ্যাপটি যেন নির্বিঘ্নে চলে তা নিশ্চিত করার জন্য গুরুত্বপূর্ণ।
৪. পরিবেশগত ভেরিয়েবল এবং গোপনীয় তথ্য
একটি পরিবেশ ফাইল তৈরি করুন
এগিয়ে যাওয়ার আগে, এই কোডল্যাব জুড়ে আপনি যে সমস্ত কনফিগারেশন ব্যবহার করবেন তা এক জায়গায় গুছিয়ে রাখা একটি ভালো অভ্যাস। শুরু করার জন্য, আপনার টার্মিনাল খুলুন এবং এই ধাপগুলো অনুসরণ করুন:
- এই প্রজেক্টটির জন্য একটি নতুন ফোল্ডার তৈরি করুন ।
- নতুন তৈরি করা ফোল্ডারটিতে প্রবেশ করুন।
- এই ফোল্ডারের মধ্যে একটি খালি .env ফাইল তৈরি করুন (এই ফাইলটিতে পরবর্তীতে আপনার এনভায়রনমেন্ট ভেরিয়েবলগুলো থাকবে)।
এই ধাপগুলো সম্পন্ন করার কমান্ডটি হলো:
mkdir vllm-gemma3 && cd vllm-gemma3 && cloudshell edit .env
এরপর, নিচে তালিকাভুক্ত ভেরিয়েবলগুলো কপি করে আপনার তৈরি করা .env ফাইলটিতে পেস্ট করুন।
PROJECT_ID=your_project_id
REGION=your_region
MODEL_PROVIDER=google
MODEL_VARIANT=gemma-3-1b-it
MODEL_NAME=${MODEL_PROVIDER}/${MODEL_VARIANT}
AR_REPO_NAME=vllm-gemma3-repo
SERVICE_NAME=${MODEL_VARIANT}-service
IMAGE_NAME=${REGION}-docker.pkg.dev/${PROJECT_ID}/${AR_REPO_NAME}/${SERVICE_NAME}
SERVICE_ACC_NAME=${SERVICE_NAME}-sa
SERVICE_ACC_EMAIL=${SERVICE_ACC_NAME}@${PROJECT_ID}.iam.gserviceaccount.com
প্লেসহোল্ডার ভ্যালুগুলো ( your_project_id এবং your_region ) আপনার নির্দিষ্ট প্রজেক্টের তথ্য দিয়ে প্রতিস্থাপন করতে মনে রাখবেন। উদাহরণস্বরূপ ( PROJECT_ID=unique-ai-project এবং REGION=europe-west4 )। ক্লাউড রানে জিপিইউ সমর্থন করে এমন অঞ্চলগুলোর তালিকা এখানে দেখুন।
.env ফাইলটি সম্পাদনা করে সংরক্ষণ করার পর, টার্মিনাল সেশনে ঐ এনভায়রনমেন্ট ভেরিয়েবলগুলো লোড করতে এই কমান্ডটি টাইপ করুন:
source .env
ভেরিয়েবলগুলো সফলভাবে লোড হয়েছে কি না, তা পরীক্ষা করার জন্য আপনি যেকোনো একটি ভেরিয়েবল ইকো করতে পারেন। উদাহরণস্বরূপ:
echo $SERVICE_NAME
আপনি যদি .env ফাইলে নির্ধারিত মানটিই পান, তাহলে ভেরিয়েবলগুলো সফলভাবে লোড হয়েছে।
সিক্রেট ম্যানেজারে একটি গোপনীয় তথ্য সংরক্ষণ করুন
অ্যাক্সেস কোড, ক্রেডেনশিয়াল এবং পাসওয়ার্ডসহ যেকোনো সংবেদনশীল তথ্যের জন্য সিক্রেট ম্যানেজার ব্যবহার করাই হলো প্রস্তাবিত পদ্ধতি।
জেমা ৩ মডেল ব্যবহার করার আগে, আপনাকে অবশ্যই প্রথমে শর্তাবলী স্বীকার করে নিতে হবে, কারণ সেগুলি সুরক্ষিত। আপনি হাগিং ফেস হাব-এ থাকা গামা ৩ মডেল কার্ডের মাধ্যমে শর্তাবলী স্বীকার করতে পারেন।
একবার আপনি হাগিং ফেস অ্যাক্সেস টোকেনটি পেয়ে গেলে, সিক্রেট ম্যানেজার পৃষ্ঠায় যান এবং এই নির্দেশাবলী অনুসরণ করে একটি সিক্রেট তৈরি করুন।
- গুগল ক্লাউড কনসোলে যান
- উপরের বাম দিকের ড্রপডাউন বার থেকে প্রজেক্টটি নির্বাচন করুন।
- সার্চ বারে Secret Manager লিখে সার্চ করুন এবং অপশনটি দেখা গেলে সেটিতে ক্লিক করুন।
যখন আপনি সিক্রেট ম্যানেজার পৃষ্ঠায় থাকবেন:
- +Create Secret বাটনে ক্লিক করুন,
- এই তথ্যগুলো পূরণ করুন:
- নাম : HF_TOKEN
- গোপন মান : <আপনার_hf_access_token>
- আপনার কাজ শেষ হলে Create Secret বাটনটিতে ক্লিক করুন।
আপনার হাগিং ফেস অ্যাক্সেস টোকেনটি এখন গুগল ক্লাউড সিক্রেট ম্যানেজারে একটি সিক্রেট হিসেবে থাকার কথা।
টার্মিনালে নিচের কমান্ডটি চালিয়ে আপনি সিক্রেটটিতে আপনার অ্যাক্সেস পরীক্ষা করতে পারেন, এই কমান্ডটি সিক্রেট ম্যানেজার থেকে এটি পুনরুদ্ধার করবে:
gcloud secrets versions access latest --secret=HF_TOKEN
টার্মিনাল উইন্ডোতে আপনার অ্যাক্সেস টোকেনটি পুনরুদ্ধার হতে এবং প্রদর্শিত হতে দেখবেন।
ক্লাউড বিল্ড পরিষেবা অ্যাকাউন্টে গোপনীয় অ্যাক্সেস মঞ্জুর করুন
যেহেতু গোপনীয় তথ্যটি এখন সিক্রেট ম্যানেজারে নিরাপদে সংরক্ষিত আছে,
তা করার জন্য টার্মিনালে এই কমান্ডগুলো চালান:
# Get the project number
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
# Grant Cloud Build access to the Hugging Face Token secret
gcloud secrets add-iam-policy-binding HF_TOKEN \
--member="serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com" \
--role="roles/secretmanager.secretAccessor"
৫. একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন
প্রোডাকশন সেটিং-এ নিরাপত্তা বাড়াতে এবং অ্যাক্সেস কার্যকরভাবে পরিচালনা করতে, সার্ভিসগুলোকে ডেডিকেটেড সার্ভিস অ্যাকাউন্টের অধীনে পরিচালনা করা উচিত, যেগুলোর অনুমতি শুধুমাত্র তাদের নির্দিষ্ট কাজের জন্য প্রয়োজনীয় অনুমতির মধ্যেই কঠোরভাবে সীমাবদ্ধ থাকবে।
একটি সার্ভিস অ্যাকাউন্ট তৈরি করতে এই কমান্ডটি চালান।
gcloud iam service-accounts create $SERVICE_ACC_NAME --display-name='Cloud Run vLLM Model Serving SA'
নিম্নলিখিত কমান্ডটি প্রয়োজনীয় অনুমতি সংযুক্ত করে।
gcloud secrets add-iam-policy-binding HF_TOKEN \
--member="serviceAccount:${SERVICE_ACC_EMAIL}" \
--role="roles/secretmanager.secretAccessor"
৬. আর্টিফ্যাক্ট রেজিস্ট্রি-তে একটি ইমেজ তৈরি করুন
এই ধাপে একটি ডকার ইমেজ তৈরি করতে হয়, যাতে মডেলের ওয়েট এবং আগে থেকে ইনস্টল করা vLLM অন্তর্ভুক্ত থাকে।
১. আর্টিফ্যাক্ট রেজিস্ট্রি-তে একটি ডকার রিপোজিটরি তৈরি করুন।
আপনার বিল্ড করা ইমেজগুলো পুশ করার জন্য আর্টিফ্যাক্ট রেজিস্ট্রি-তে একটি ডকার রিপোজিটরি তৈরি করুন। টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
gcloud artifacts repositories create ${AR_REPO_NAME} \
--repository-format docker \
--location ${REGION}
২. মডেলটি সংরক্ষণ করা
জিপিইউ-এর সর্বোত্তম অনুশীলন সংক্রান্ত ডকুমেন্টেশন অনুসারে, আপনি এমএল মডেলগুলোকে কন্টেইনার ইমেজের ভেতরে সংরক্ষণ করতে পারেন অথবা ক্লাউড স্টোরেজ থেকে সেগুলো লোড করার জন্য অপটিমাইজ করতে পারেন ।
অবশ্যই, প্রতিটি পদ্ধতিরই নিজস্ব সুবিধা ও অসুবিধা রয়েছে। এ সম্পর্কে আরও জানতে আপনি ডকুমেন্টেশন পড়তে পারেন। সরলতার জন্য, আমরা মডেলটিকে কন্টেইনার ইমেজে সংরক্ষণ করব। আপনি পরবর্তী সেশনে তা করবেন।
৩. একটি ডকার ফাইল তৈরি করুন
Dockerfile নামে একটি ফাইল তৈরি করুন এবং নিচের বিষয়বস্তুগুলো এর মধ্যে কপি করুন:
FROM vllm/vllm-openai:v0.16.0
ARG MODEL_NAME
ARG HF_TOKEN
ENV HF_HOME=/model-cache
ENV MODEL_NAME=${MODEL_NAME}
# Use the HF_TOKEN argument to log in and download the model
RUN huggingface-cli login --token ${HF_TOKEN} && \
huggingface-cli download ${MODEL_NAME}
# Prevent vLLM from trying to download the model again at runtime
ENV HF_HUB_OFFLINE=1
EXPOSE 8080
ENTRYPOINT python3 -m vllm.entrypoints.openai.api_server \
--port ${PORT:-8080} \
--model ${MODEL_NAME} \
--gpu-memory-utilization 0.90 \
${MAX_MODEL_LEN:+--max-model-len "$MAX_MODEL_LEN"}
৪. ডেপ্লয়মেন্টের জন্য একটি yaml ফাইল তৈরি করুন।
এরপর, একই ডিরেক্টরিতে cloudbuild.yaml নামে একটি ফাইল তৈরি করুন। এই ফাইলটি ক্লাউড বিল্ডের অনুসরণীয় ধাপগুলো নির্ধারণ করে। নিচের বিষয়বস্তুটি কপি করে cloudbuild.yaml ফাইলে পেস্ট করুন:
steps:
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args:
- '-c'
- |
docker build \
--build-arg MODEL_NAME=${_MODEL_NAME} \
--build-arg HF_TOKEN=$$HF_TOKEN_SECRET \
-t ${_IMAGE_NAME} .
secretEnv: ['HF_TOKEN_SECRET']
images:
- '${_IMAGE_NAME}'
availableSecrets:
secretManager:
- versionName: projects/${PROJECT_ID}/secrets/HF_TOKEN/versions/latest
env: 'HF_TOKEN_SECRET'
৫. ক্লাউড বিল্ড-এ বিল্ডটি জমা দিন।
নিচের কোডটি কপি করে টার্মিনালে পেস্ট করুন এবং রান করুন:
gcloud builds submit . \
--config=cloudbuild.yaml \
--region=${REGION} \
--substitutions=_MODEL_NAME=${MODEL_NAME},_IMAGE_NAME=${IMAGE_NAME}
এই কমান্ডটি আপনার কোড ( Dockerfile এবং cloudbuild.yaml ) আপলোড করে, আপনার শেল ভেরিয়েবলগুলোকে ( _MODEL_NAME এবং _IMAGE_NAME ) প্রতিস্থাপন হিসেবে পাস করে এবং বিল্ড শুরু করে।
ক্লাউড বিল্ড এখন cloudbuild.yaml এ সংজ্ঞায়িত ধাপগুলো সম্পাদন করবে। আপনি আপনার টার্মিনালে লগগুলো অনুসরণ করতে পারেন অথবা ক্লাউড কনসোলে বিল্ডের বিস্তারিত তথ্যের লিঙ্কে ক্লিক করে তা দেখতে পারেন। এটি সম্পন্ন হয়ে গেলে, কন্টেইনার ইমেজটি আপনার আর্টিফ্যাক্ট রেজিস্ট্রি রিপোজিটরিতে ডেপ্লয়মেন্টের জন্য প্রস্তুত হয়ে উপলব্ধ হবে।
৬. ক্লাউড রানে স্থাপন করুন
এখন আপনি ক্লাউড রান-এ সার্ভিসটি ডেপ্লয় করার জন্য প্রস্তুত। টার্মিনালে এই কমান্ডটি চালান:
gcloud run deploy ${SERVICE_NAME} \
--image ${IMAGE_NAME} \
--region ${REGION} \
--service-account ${SERVICE_ACC_EMAIL} \
--gpu 1 \
--gpu-type nvidia-l4 \
--cpu 4 \
--memory 16Gi \
--max-instances 3 \
--concurrency 80 \
--no-allow-unauthenticated
৭. পরিষেবাটি পরীক্ষা করুন
একটি প্রক্সি তৈরি করতে টার্মিনালে নিম্নলিখিত কমান্ডটি চালান, যাতে আপনি লোকালহোস্টে চলমান পরিষেবাটি অ্যাক্সেস করতে পারেন:
gcloud run services proxy ${SERVICE_NAME} --region ${REGION}
একটি নতুন টার্মিনাল উইন্ডোতে, সংযোগ পরীক্ষা করার জন্য এই curl কমান্ডটি চালান।
curl -X POST http://localhost:8080/v1/completions \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemma-3-1b-it",
"prompt": "Cloud Run is a ",
"max_tokens": 128,
"temperature": 0.90
}'
যদি আপনি নীচের মতো একটি আউটপুট দেখতে পান:
{"id":"cmpl-e96d05d2893d42939c1780d44233defa","object":"text_completion","created":1746870778,"model":"google/gemma-3-1b-it","choices":[{"index":0,"text":"100% managed Kubernetes service. It's a great option for many use cases.\n\nHere's a breakdown of key features and considerations:\n\n* **Managed Kubernetes:** This means Google handles the underlying infrastructure, including scaling, patching, and maintenance. You don't need to worry about managing Kubernetes clusters.\n* **Serverless:** You only pay for the compute time your application actually uses. No charges when your code isn't running.\n* **Scalability:** Cloud Run automatically scales your application based on demand. You can easily scale up or down to handle fluctuating traffic.\n*","logprobs":null,"finish_reason":"length","stop_reason":null,"prompt_logprobs":null}],"usage":{"prompt_tokens":6,"total_tokens":134,"completion_tokens":128,"prompt_tokens_details":null}}
৮. উপসংহার
অভিনন্দন! আপনি সফলভাবে এই কোডল্যাবটি সম্পন্ন করেছেন। আপনি শিখেছেন কীভাবে:
- নির্দিষ্ট স্থাপনার জন্য উপযুক্ত মডেলের আকার নির্বাচন করুন।
- একটি OpenAI-উপযোগী API পরিবেশন করার জন্য vLLM সেট আপ করুন।
- ডকারের সাহায্যে vLLM সার্ভার এবং মডেলের ওয়েটসমূহকে নিরাপদে কন্টেইনারাইজ করুন।
- গুগল আর্টিফ্যাক্ট রেজিস্ট্রি-তে একটি কন্টেইনার ইমেজ পুশ করুন।
- ক্লাউড রানে একটি জিপিইউ-ত্বরিত পরিষেবা স্থাপন করুন।
- একটি প্রমাণীকৃত ও স্থাপনকৃত মডেল পরীক্ষা করুন।
আপনার শেখার যাত্রা অব্যাহত রাখতে Llama, Mistral, বা Qwen-এর মতো অন্যান্য আকর্ষণীয় মডেলগুলো ব্যবহার করে দেখতে পারেন।
৯. পরিষ্কার করা
ভবিষ্যতে চার্জ এড়ানোর জন্য, আপনার তৈরি করা রিসোর্সগুলো মুছে ফেলা জরুরি। আপনার প্রজেক্টটি পরিষ্কার করতে নিম্নলিখিত কমান্ডগুলো চালান।
১. ক্লাউড রান পরিষেবাটি মুছে ফেলুন:
gcloud run services delete ${SERVICE_NAME} --region=${REGION} --quiet
২. আর্টিফ্যাক্ট রেজিস্ট্রি রিপোজিটরিটি মুছে ফেলুন:
gcloud artifacts repositories delete ${AR_REPO_NAME} --location=${REGION} --quiet
৩. সার্ভিস অ্যাকাউন্টটি মুছে ফেলুন:
gcloud iam service-accounts delete ${SERVICE_ACC_EMAIL} --quiet
৪. সিক্রেট ম্যানেজার থেকে সিক্রেটটি মুছে ফেলুন:
gcloud secrets delete HF_TOKEN --quiet