Course-এর সূচি

18.2

SageMaker AI, Bedrock, Kendra, Personalize আর Textract

নিজের model বানানো, generative AI, ডকুমেন্টে খোঁজা, recommendation, ডকুমেন্ট থেকে তথ্য বের করা, আর একটা cheat sheet।

24 মিনিট পড়া + Animation

টিপস: ডটেড-আন্ডারলাইন করা যেকোনো শব্দে ট্যাপ বা Hover করলে তার অর্থ দেখবে।

এই লেসন শেষে তুমি পারবে

  • এই অধ্যায়ের সোনালি নিয়মটা খাটাতে: আগে বানানো-তৈরি (pre-trained) managed AI service খোঁজো, আর SageMaker AI বাছো শুধু তখনই, যখন কোনো তৈরি service কাজটা পারে না আর নিজের data দিয়ে model শেখাতেই হবে।
  • SageMaker AI-তে machine learning-এর পুরো জীবনচক্রটা ধাপে ধাপে বলতে (data, label দেওয়া, build, train আর tune, deploy, monitor), আর প্রতিটা ধাপের tool-এর নাম বলতে।
  • Payload-এর মাপ, processing-এর সময় আর traffic-এর ধরন দেখে real-time, serverless, asynchronous আর batch inference-এর মধ্যে বাছতে।
  • Amazon Bedrock foundation model, retrieval-augmented generation (RAG), Guardrails আর agent দিয়ে কী করে, Amazon Q-এর কী হলো, আর SAA-C03 পরীক্ষা generative AI-কে কীভাবে দেখে, তা বোঝাতে।
  • Amazon Kendra (স্বাভাবিক ভাষায় প্রতিষ্ঠানের ভেতরের খোঁজ), Amazon Personalize (real-time recommendation) আর Amazon Textract (document থেকে form, table আর হাতের লেখা)-এর পরীক্ষার scenario চিনতে, আর প্রত্যেকটার এখনকার অবস্থা জানতে।
  • অধ্যায় ১৮-এর সব AI service একটা cheat sheet-এ রাখতে, আর upload → S3 → Lambda → AI service, এই event-driven pattern-টা নকশা করতে, asynchronous job, Lambda-র সময়সীমা আর একই event দুবার আসার ব্যাপারসহ।

#নিজের model বানাবে, নাকি তৈরিটা নেবে?

লেসন ১৮.১-এ আমরা দেখেছি pre-trained AI service-গুলো: Rekognition, Transcribe, Polly, Translate, Lex, Comprehend। AWS-এর কেউ আগেই লাখ লাখ উদাহরণ জোগাড় করেছে, model শিখিয়েছে, আর সেটা চালাচ্ছে; তুমি শুধু request পাঠাও, উত্তর পাও। এই লেসনে আসছে অন্য দিকটা, SageMaker AI দিয়ে নিজের model বানানো, তারপর Bedrock দিয়ে generative AI, আর আরও তিনটা তৈরি service: Kendra, Personalize আর Textract।

পুরো অধ্যায়ের পরীক্ষার মূল কথা একটাই সিদ্ধান্ত। Scenario পড়ো, keyword ধরো, আর নিজেকে জিজ্ঞেস করো: কোনো managed, pre-trained service কি কাজটা আগে থেকেই করে? করলে সেটাই উত্তর, কারণ তাতে data scientist লাগে না, training data লাগে না, server লাগে না, আর কোনো model-এর দেখাশোনাও করতে হয় না। প্রশ্ন যখন বলে তৈরি service-গুলো কাজটা পারে না (শুধু তোমার কারখানাতেই হয় এমন ত্রুটি, তোমার নিজের ব্যবসার data থেকে কোনো আন্দাজ) আর নিজের data দিয়ে custom model train করতেই হবে, শুধু তখনই SageMaker AI ঠিক উত্তর।

#Amazon SageMaker AI

Amazon SageMaker AI হলো developer আর data scientist-দের জন্য AWS-এর পুরোপুরি managed, শুরু থেকে শেষ পর্যন্ত machine learning platform। এটা ছাড়া একটা team-কে data জোগাড় করে label দিতে হয়, GPU server ভাড়া নিয়ে সাজাতে হয়, framework install করতে হয়, training চালাতে হয়, কোন পরীক্ষায় কী হলো তার হিসাব রাখতে হয়, তারপর model চালানোর জন্য একটা API বানিয়ে scale করতে হয়, সব আলাদা আলাদা জায়গায়। SageMaker AI প্রতিটা ধাপ একটা service-এ এনে দেয়, প্রতিটা job-এর জন্য server চালু করে আর job শেষ হলে বন্ধ করে।

#Machine learning-এর জীবনচক্র

Machine learning-এ programmer নিয়ম লিখে দেয় না, model উদাহরণ দেখে নিজেই নিয়মটা শেখে। Slide-এর উদাহরণটা ধরো: একজন ছাত্রের পরীক্ষার নম্বর আন্দাজ করা।

  1. পুরোনো data

    অতীতের উদাহরণ জোগাড় করো, যেসব তথ্য জরুরি মনে হয় সেগুলোসহ: IT-তে কত বছরের অভিজ্ঞতা, AWS নিয়ে কত বছর, course-এ কত ঘণ্টা, practice test-এ কত। হাজারো আগের ছাত্রছাত্রীর তথ্য, S3-এ।

  2. Label দেওয়া

    প্রতিটা উদাহরণের সাথে বসাও সেই উত্তর, যেটা model-কে শেখাতে চাও: এই ছাত্র পেয়েছে ৬৭০, ওই জন ৮৯০, আরেকজন ৯৩৪। Label দেওয়া উদাহরণ মানে “input আর তার সঠিক উত্তর”। ছবি বা document-এর বেলায় প্রায়ই মানুষকে label বসাতে হয়; সেই কাজটা গুছিয়ে দেয় SageMaker Ground Truth।

  3. Build

    একটা algorithm বাছো (built-in কোনোটা, অথবা PyTorch, TensorFlow বা scikit-learn-এ নিজের code), আর training script লেখো, SageMaker Studio-র একটা notebook-এ।

  4. Train আর tune

    একটা training job তোমার চাওয়া instance (GPU বা CPU) চালু করে, S3 থেকে data পড়ে, শেখে, model artifact আবার S3-এ লেখে, আর বন্ধ হয়ে যায়; টাকা দাও যতটুকু মিনিট চলল। Automatic model tuning আলাদা আলাদা setting-এ (learning rate, tree-এর গভীরতা) অনেকগুলো training job চালিয়ে সবচেয়ে ভালোটা রাখে।

  5. Deploy আর আন্দাজ

    Model-কে একটা endpoint-এর পেছনে বসাও আর তাকে নতুন data পাঠাও: নতুন এক ছাত্রের অভিজ্ঞতা আর পড়ার ঘণ্টা। Model উত্তর দেয় “আন্দাজ ৯০৬: pass”। শেখা model দিয়ে উত্তর বের করাকে বলে inference।

  6. নজর রাখা আর আবার train

    দুনিয়া বদলায়, তাই গত বছর যে model ঠিক ছিল, সে ধীরে ধীরে ভুল হতে থাকে (drift)। চলতি input আর prediction-কে training-এর baseline-এর সাথে মেলাও, আর মান পড়ে গেলে নতুন label দেওয়া data দিয়ে আবার train করো।

SageMaker AI-তে machine learning-এর জীবনচক্র

পুরোনো data থেকে একটা prediction পর্যন্ত, তারপর দুনিয়া বদলালে model-এর ওপর নজর রাখা। শেষ scenario দেখায় কখন model বানানোই উচিত না।

পরিস্থিতি

Slide-এর উদাহরণ: পুরোনো ছাত্রছাত্রীদের থেকে শেখা, তারপর নতুন একজনের নম্বর আন্দাজ করা।

পুরোনো dataS3৮,০০০ জন
Ground Truthlabel দেওয়া
Training jobtrain + tune
Endpointmodel-টা
App
Monitoringdrift যাচাই
Rekognitionআগে থেকে শেখানো
ধাপ 1 / 6
1

S3-এ আছে পুরোনো data: হাজারো আগের ছাত্রছাত্রীর IT অভিজ্ঞতা কত বছরের, AWS নিয়ে কত বছর, course-এ কত ঘণ্টা দিয়েছে। Model এই input-গুলো থেকেই শিখবে।

#পথের প্রতিটা ধাপের tool

ধাপSageMaker AI toolকী করে
Data-তে labelGround Truthতোমার নিজের কর্মী বা কোনো vendor দিয়ে labelling job, সাথে automated labelling, যেটা শুধু অনিশ্চিত item-গুলো মানুষের কাছে পাঠায়
খুঁটিয়ে দেখা আর buildStudio (notebook, JupyterLab)পুরো জীবনচক্রের জন্য web IDE
Code ছাড়া modelCanvas (সাথে Autopilot, AutoML engine)একজন business analyst একটা table upload করে, কোন column আন্দাজ করবে বেছে দেয়, আর Canvas নিজে নিজে algorithm আর setting চেষ্টা করে; time-series forecasting-ও করে
তৈরি model দিয়ে শুরুJumpStartশত শত pre-trained open model (vision, text, foundation model), তোমার account-এ deploy বা fine-tune করার জন্য
Train আর tuneTraining job, automatic model tuningপ্রতি job-এ managed instance, ৯০% পর্যন্ত কম খরচে Spot Instance, অনেক চেষ্টার মধ্যে সেরাটা
DeployEndpoint, batch transformHost করা model; নিচে চারটা inference option
নজর রাখাModel MonitorBaseline-এর তুলনায় data আর মানের drift ধরে, CloudWatch দিয়ে সতর্ক করে
ব্যাখ্যা আর পক্ষপাত যাচাইClarifyTraining-এর আগে-পরে bias-এর মাপ, আর কোন input প্রতিটা prediction-কে চালাল

#Model deploy করা: prediction পাওয়ার চারটা উপায়

কীভাবে deploy করবে তা নির্ভর করে prediction কীভাবে লাগে তার ওপর: একটা একটা করে আর সাথে সাথে, মাঝে মাঝে, বড় আর ধীর, নাকি নির্দিষ্ট সময়ে একসাথে লাখ লাখ।

Optionকখন ব্যবহার করবেমনে রাখার সীমা
Real-time inferenceস্থির traffic, প্রতিটা request-এ কম latency (customer অপেক্ষা করতে করতে loan-এর risk score)তোমার বাছা instance সবসময় চালু; payload ২৫ MB পর্যন্ত, প্রতি request ৬০ সেকেন্ড (stream করা উত্তরে ৮ মিনিট)
Serverless inferenceথেমে থেমে বা অনিশ্চিত traffic; অলস থাকলে খরচ শূন্যInstance বাছতে হয় না; অনেকক্ষণ চুপ থাকার পর cold start; payload ৪ MB পর্যন্ত, ৬০ সেকেন্ড
Asynchronous inferenceবড় input বা লম্বা processing (উঁচু resolution-এর ছবি, লম্বা video, বড় document), প্রায় real time হলেই চলেRequest queue-তে বসে; input আর output S3-এ; payload ১ GB পর্যন্ত, এক ঘণ্টা পর্যন্ত; SNS খবর দেয়; শূন্যে নামতে পারে
Batch transformনির্দিষ্ট সময়ে পুরো dataset একসাথে score (রাতে প্রত্যেক customer-এর চলে যাওয়ার ঝুঁকি)কোনো স্থায়ী endpoint নেই; S3 থেকে পড়ে, S3-এ লেখে, gigabyte-এর data, ঘণ্টা বা দিন ধরে চলে

SageMaker AI-এর inference option বাছাই

একই রকম model, পরিবেশনের চারটা উপায়। দেখো অলস বসে থাকার সময় কোনটার খরচ কত, আর খুব বড় বা খুব ধীর request-এর কী হয়।

পরিস্থিতি

একটা bank-এর loan app প্রত্যেক আবেদনকারীর score বের করে, customer অপেক্ষা করতে করতেই।

Client app
SageMaker AImodelসবসময় চালু
S3input, ফলাফল
SNSখবর
২টা instance চালু
ধাপ 1 / 3
1

Real-time endpoint তোমার বাছা instance-এ সারাদিন চলে, স্থির traffic-এর জন্য তৈরি। ব্যস্ত হোক বা না হোক, প্রতি ঘণ্টা চলার টাকা দিতে হয়।

#SageMaker AI-এর নিরাপত্তা আর খরচ

  • IAM role: training job, endpoint আর notebook চলে একটা execution role দিয়ে, যেটা ঠিক যে S3 bucket আর KMS key লাগে, শুধু সেগুলোরই অনুমতি দেয় (অধ্যায় ২)।
  • Network: job আর endpoint তোমার VPC-র subnet-এ security group দিয়ে চলতে পারে; network isolation চালু থাকলে training container internet-এ একদমই যেতে পারে না; caller-রা endpoint-এ পৌঁছায় private পথে, VPC interface endpoint (PrivateLink, লেসন ২২.২) দিয়ে।
  • Encryption: data, model artifact আর যুক্ত volume KMS key দিয়ে encrypt (লেসন ২১.২); যাতায়াতে TLS।
  • খরচ: training-এর bill হয় instance চলার প্রতি সেকেন্ডে, আর job-এর সাথে থেমে যায়; checkpoint-সহ managed Spot training নিলে অনেক সাশ্রয়। Real-time endpoint প্রতি ঘণ্টায় bill তোলে, কেউ না ডাকলেও, তাই অলস endpoint হলো bill-এর পুরোনো চমক: হঠাৎ হঠাৎ আসা traffic-এর জন্য serverless বা asynchronous (শূন্যে নামে) নাও, আর যে endpoint লাগে না সেটা delete করো।

#Generative AI: Amazon Bedrock আর Amazon Q

#Foundation model আর Bedrock

Foundation model (FM) হলো বিশাল এক model, যেটা সাধারণ ধরনের বিপুল data (লেখা, code, ছবি) দিয়ে শেখানো, আর এমন অনেক কাজ পারে যার জন্য তাকে আলাদা করে শেখানো হয়নি: প্রশ্নের উত্তর, সারাংশ, লেখা, শ্রেণিবিভাগ, তথ্য বের করা। Large language model (LLM, দেখা হয়েছিল লেসন ১৭.৩-এ) হলো লেখার foundation model। একটা বানাতে লাখ লাখ ডলার লাগে, তাই প্রায় সব কোম্পানি foundation model ব্যবহার করে, বানায় না।

Amazon Bedrock হলো foundation model একটা API দিয়ে ব্যবহারের পুরোপুরি managed, serverless উপায়। Amazon বা অন্য কোম্পানির একটা model বাছো, তাকে prompt পাঠাও, আর token ধরে টাকা দাও (অথবা provisioned throughput কেনো)। কোনো GPU বা server চালাতে হয় না। যে অংশগুলো জানা দরকার:

  • Model বাছাই: কয়েকটা কোম্পানির model একই API-র পেছনে; Converse API দিয়ে call নতুন করে না লিখেই model বদলানো যায়।
  • Knowledge Base (RAG): Bedrock-কে তোমার document দেখিয়ে দাও (S3, SharePoint, Confluence আর অন্য উৎসে)। সে সেগুলো ছোট ছোট টুকরো (chunk) করে, একটা embedding model দিয়ে vector-এ বদলায়, একটা vector store-এ রাখে (OpenSearch Serverless, Aurora PostgreSQL, S3 Vectors বা Bedrock-এর নিজের সামলানো store), আর প্রশ্নের সময় দরকারি টুকরোগুলো খুঁজে এনে prompt-এ জুড়ে দেয়, যাতে model তোমার data থেকে, সূত্রসহ উত্তর দেয়। এর নাম retrieval-augmented generation (RAG)।
  • Guardrails: prompt আর উত্তরের ওপর নিয়ম: নিষিদ্ধ বিষয়, content filter, PII শনাক্ত করে ঢেকে দেওয়া, আর grounding check, যেটা খুঁজে আনা লেখায় সমর্থন নেই এমন উত্তর ধরে।
  • Agent: model ধাপে ধাপে পরিকল্পনা করে আর তোমার API বা Lambda function ডাকে (order দেখা, appointment নেওয়া)। এগুলো চালায় Bedrock Agents (এখন “Agents Classic” নামে maintenance-এ) আর নতুন AgentCore।
  • নিজের মতো করে নেওয়া: label দেওয়া উদাহরণ দিয়ে fine-tuning, label ছাড়া নিজের ক্ষেত্রের লেখা দিয়ে continued pre-training, আর ছোট, সস্তা model-এ distillation। আগে prompt আর RAG চেষ্টা করো; customise করার খরচ বেশি।
  • গোপনীয়তা: তোমার prompt আর data দিয়ে মূল model শেখানো হয় না, model-এর মালিক কোম্পানির সাথেও ভাগ হয় না; traffic PrivateLink দিয়ে private রাখা যায়, KMS দিয়ে encrypt।

Bedrock-এ একটা নিয়মকানুন-সহকারী

ঢাকার একটা বিশ্ববিদ্যালয়ের assistant ছাত্রছাত্রীদের উত্তর দেয় বিশ্ববিদ্যালয়ের নিজের নিয়মের document থেকে। Retrieval ছাড়া কী হয় তার সাথে মেলাও, আর একটা guardrail-কে কাজ করতে দেখো।

পরিস্থিতি

আগে ঠিক অংশটা খুঁজে আনো, তারপর model সেখান থেকে উত্তর দিক।

ছাত্র
Chat appLambda
Guardrailsনিয়ম
Knowledge Baseনিয়মের PDF
Foundation modelBedrock
কয়টা class বাদ দিতে পারি?
ধাপ 1 / 5
1

একজন ছাত্র এমন প্রশ্ন করে যার উত্তর আছে শুধু বিশ্ববিদ্যালয়ের পরীক্ষার নিয়মে, internet-এ না।

#Generative AI-এর জন্য Bedrock না SageMaker AI

  • Bedrock: API দিয়ে foundation model ব্যবহার, serverless, যতটুকু ব্যবহার ততটুকু টাকা, RAG, guardrail আর agent ভেতরেই। “সবচেয়ে কম operational overhead-এ generative AI যোগ করো”, এর স্বাভাবিক উত্তর।
  • SageMaker AI (JumpStart, training আর endpoint): যখন তোমার বাছা instance-এ model নিজেই host করতে হবে, Bedrock-এ নেই এমন model লাগবে, বা code-এর পুরো নিয়ন্ত্রণ রেখে train আর fine-tune করতে হবে। নিয়ন্ত্রণ বেশি, চালানোর ঝামেলাও বেশি।

#Amazon Q-এর কী হলো

Amazon Q ২০২৩-এ এসেছিল AWS-এর generative AI সহকারী হিসেবে, দুটো product-এ, আর দুটোই এখন অন্য দিকে চলে গেছে:

  • Amazon Q Business connector দিয়ে কোম্পানির data থেকে কর্মীদের প্রশ্নের উত্তর দিত। অক্টোবর ২০২৫-এ AWS আনে Amazon Quick Suite (এখন Amazon Quick), যার ভেতরে আছে Quick Sight, মানে আগের QuickSight (লেসন ১৭.৫); জুন ২০২৬-এ AWS Q Business-কে maintenance-এ নিয়েছে, আর ৩০ জুলাই ২০২৬ থেকে এটা নতুন customer নেয় না; বদলি হিসেবে AWS বলে Amazon Quick।
  • Amazon Q Developer হলো code লেখা আর AWS console-এর সহকারী। এর IDE plugin আর paid subscription-এর support শেষ হবে ৩০ এপ্রিল ২০২৭-এ, উত্তরসূরি Kiro; AWS console-এ Q চলতে থাকবে।

#Amazon Kendra

Amazon Kendra হলো একটা পুরোপুরি managed, ML-চালিত প্রতিষ্ঠানের document খোঁজার service। Document যেখানে আছে সেখানেই পড়ে (লেখা, PDF, HTML, PowerPoint, Word, প্রশ্নোত্তরের তালিকা), একটা index বানায়, আর স্বাভাবিক ভাষার প্রশ্নের জবাবে ফেরত দেয় উত্তরটাই, শুধু শব্দওয়ালা file-এর তালিকা না।

সাধারণ keyword search-এ “Where is the IT support desk?” লিখলে পাবে “IT” আর “desk” শব্দওয়ালা ৫০টা document। Kendra বোঝে এটা জায়গা জানতে চাওয়ার প্রশ্ন, facilities guide-এর ঠিক বাক্যটা খুঁজে বের করে, আর উত্তর দেয় “1st floor”, উৎস হিসেবে document-টা দেখিয়ে।

  • Connector index করে S3, RDS আর অন্য database, SharePoint, OneDrive, Google Drive, Salesforce, Confluence, ServiceNow, website আর আরও অনেক কিছু (৩০-এর বেশি), আর বাকি যেকোনো কিছুর document API দিয়ে ঠেলে দেওয়া যায়।
  • Access control: প্রতিটা document-এ user আর তার group-এর অনুমতি দেখে ফল ছাঁকা হয়, তাই একজন intern board-এর কার্যবিবরণী খুঁজে পায় না।
  • Incremental learning: Kendra ব্যবহারকারীদের আচরণ আর feedback (click, thumbs up) থেকে শেখে, আর মানুষ যে ফলগুলো কাজের পেয়েছে সেগুলো ওপরে তোলে।
  • Tuning: data source-এর গুরুত্ব, নতুনত্ব (নতুন document আগে) বা নিজের বানানো field ধরে হাতে করে ফলের গুরুত্ব বাড়ানো যায়।
  • RAG retriever: একটা Kendra index হতে পারে Bedrock Knowledge Base-এর retriever (আর Q Business-এরও ছিল), তাই একটা generative assistant একই index করা document থেকে উত্তর দেয়।

Amazon Kendra: শুধু document না, উত্তর

একটা বিশ্ববিদ্যালয় SharePoint-এর circular আর S3-এর form index করে। দেখো স্বাভাবিক ভাষার একটা প্রশ্ন, অনুমতি যাচাই, click থেকে শেখা, আর Bedrock-এর retriever হিসেবে Kendra।

পরিস্থিতি

Slide-এর উদাহরণ: “Where is the IT support desk?”

SharePointcircular
S3PDF manual
Kendraindex
Bedrockassistant
কর্মী
indexindex
ধাপ 1 / 4
1

Connector SharePoint আর S3 bucket ঘুরে একটা index বানায়। Kendra PDF, Word, PowerPoint আর HTML পড়ে, আর প্রতিটা document-এর অনুমতির তথ্যও রাখে।

#Amazon Personalize

Amazon Personalize হলো real-time personalised recommendation-এর জন্য পুরোপুরি managed ML service, বানানো Amazon.com যে প্রযুক্তিতে চলে সেটা দিয়েই। Algorithm বাছতে হয় না, server চালাতে হয় না: তাকে তিন ধরনের data দাও (interaction: কে কখন কী click করেছে, কিনেছে বা দেখেছে; item: product বা লেখার বিবরণ; user: ইচ্ছা হলে profile-এর তথ্য), কাজের জন্য একটা recipe বাছো (একজন user-এর জন্য recommendation, একই রকম item, একটা তালিকা ব্যক্তি অনুযায়ী সাজানো, এখন চলতি), আর সে model train করে একটা campaign বা recommender দিয়ে সেটা চালায়।

  • Real time: তোমার app প্রতিটা click বা কেনাকাটা একটা event tracker দিয়ে PutEvents করে পাঠায়, আর পরের recommendation কয়েক সেকেন্ডেই সেটা মাথায় রাখে, আবার train না করেই।
  • Slide-এর উদাহরণ: একজন বাগানের যন্ত্রপাতি কিনেছে, তাই পরের কেনার জিনিসটা সুপারিশ করো।
  • Customer-এর সাথে যেখানে যোগাযোগ, সবখানে: website, mobile app, SMS আর email marketing (batch job প্রত্যেক user-এর তালিকা বা user segment বানায় campaign-এর জন্য)।
  • মাস না, কয়েক দিনে চালু: ML solution নিজে build, train আর deploy করতে হয় না।
  • Use case: retail আর e-commerce, media আর বিনোদন (পরে কী দেখবে বা পড়বে), ব্যক্তি অনুযায়ী marketing।

বাংলাদেশি এক marketplace-এ Amazon Personalize

Order-এর ইতিহাস দিয়ে train, real time-এ recommendation, একদম নতুন shopper সামলানো, আর marketing email-এ তালিকা দেওয়া।

পরিস্থিতি

দুই বছরের ইতিহাস কয়েক দিনেই একটা recommender হয়ে যায়।

Order-এর ইতিহাসS3
Personalizecampaignকয়েক ঘণ্টায় train
Email toolঈদের campaign
Shop apphome page
ক্রেতা
ইতিহাস import
ধাপ 1 / 4
1

Shop S3 থেকে দুই বছরের interaction (কে কী দেখেছে বা কিনেছে, কখন) আর item-এর বিবরণ import করে। Algorithm বাছতে হয় না: শুধু একটা recipe বেছে নাও, “একজন user-এর জন্য recommendation”।

#Amazon Textract

Amazon Textract machine learning দিয়ে scan করা document (ছবি আর PDF file) থেকে ছাপা লেখা, হাতের লেখা আর data নিজে থেকেই বের করে। সাধারণ optical character recognition (OCR) একটা ছবিকে লেখার লাইনে বদলায়, ওখানেই থামে; Textract এর সাথে গঠনটাও রাখে:

  • Form আসে key-value জোড়া হিসেবে: “Account No:” → “1234 5678”, “Date of birth:” → “23.05.1997”, আর checkbox টিক দেওয়া কি না।
  • Table আসে row, column আর cell হিসেবে, merge করা cell আর header-সহ।
  • Query: সহজ ইংরেজিতে জিজ্ঞেস করো (“What is the applicant’s monthly income?”) আর value-টা ফেরত পাও, পৃষ্ঠার কোথায় আছে না জেনেই।
  • Signature আর layout (শিরোনাম, অনুচ্ছেদ, তালিকা, header আর footer)।

বিশেষ কাজের API:

  • Invoice আর receipt-এর জন্য AnalyzeExpense: vendor, তারিখ, মোট, tax আর line item, নকশা যেমনই হোক।
  • পরিচয়পত্রের জন্য AnalyzeID: আজ পর্যন্ত এটা পড়ে শুধু US passport আর US driver’s licence।
  • বন্ধকি আর loan-এর file-এর জন্য AnalyzeLending: প্রতিটা পৃষ্ঠার ধরন ঠিক করে, আর প্রতিটা ধরনের document থেকে তথ্য বের করে।

Slide-এর use case: financial services (invoice, আর্থিক report), healthcare (চিকিৎসার record, বিমার দাবি), public sector (tax form, ID document, passport)।

#Synchronous না asynchronous

Synchronous (AnalyzeDocument, DetectDocumentText, AnalyzeExpense, AnalyzeID)Asynchronous (StartDocumentAnalysis, StartDocumentTextDetection, StartExpenseAnalysis)
InputRequest-এর ভেতরে byte, অথবা S3-এর একটা objectশুধু S3-এর একটা object
মাপ১০ MB পর্যন্ত, PDF বা TIFF এক পৃষ্ঠা মাত্রPDF বা TIFF ৫০০ MB আর ৩,০০০ পৃষ্ঠা পর্যন্ত (ছবি ১০ MB)
ফলResponse-এর ভেতরেই, কয়েক সেকেন্ডেএখনই একটা job ID; Textract কাজ শেষের খবর দেয় একটা SNS topic-এ; ফল আনো GetDocumentAnalysis দিয়ে (পাতায় পাতায়) বা S3-এর output ঠিকানা থেকে
কখনUser অপেক্ষা করছেন এমন এক পৃষ্ঠার formঅনেক পৃষ্ঠার PDF, একসাথে বিপুল scan, যা একটা request-এর সময়ে শেষ হওয়ার না

বাংলাদেশে যে সীমাটা জরুরি: Textract পড়ে ইংরেজি, ফরাসি, জার্মান, ইতালীয়, পর্তুগিজ আর স্প্যানিশ, আর হাতের লেখা শুধু ইংরেজিতে। বাংলা লেখা সমর্থিত না, তাই বাংলায় পূরণ করা form Textract-এর কাজ না।

সাধারণ OCR না Textract?

ঢাকার একটা bank-এর scan করা একটা loan আবেদন। কীভাবে পড়বে বেছে নাও, আর দেখো program হাতে কী পায়।

Scan করা form

LOAN APPLICATION · Example Bank PLC

Applicant name: Nusrat Jahan

NID number: 1234 5678 90

Date of birth: 23.05.1997

Monthly income: BDT 85,000

Loan amount: BDT 5,00,000

MonthDepositsWithdrawals
Jul 202692,00061,500
Aug 202688,50070,200
Sep 202690,10058,900

স্বাক্ষর: ~N. Jahan~

Scan কীভাবে পড়বে বেছে নাও

Program হাতে যা পায়

এখনও কিছু পড়া হয়নি। ওপরের একটা বোতাম চাপো।

#আরও কিছু AI service, যেগুলো এখনও চোখে পড়তে পারে

Serviceকী করতঅবস্থা (নভেম্বর ২০২৬)পরীক্ষায়
Amazon Forecastতোমার ইতিহাস থেকে time-series আন্দাজ (চাহিদা, মজুত, কর্মী)২৯ জুলাই ২০২৪ থেকে নতুন customer নেয় না; AWS বলে SageMaker Canvas-এর forecastingপুরোনো প্রশ্নে: “time-series data থেকে চাহিদার forecast” → Forecast; নতুন নকশায় Canvas
Amazon Fraud DetectorOnline payment, sign-up আর ভুয়া account-এর জন্য জালিয়াতির score৭ নভেম্বর ২০২৫ থেকে নতুন customer নেয় না (maintenance)পুরোনো প্রশ্নে: “ML অভিজ্ঞতা ছাড়াই ML দিয়ে online জালিয়াতি ধরো” → Fraud Detector
Amazon Lookout পরিবারযন্ত্রের sensor (Equipment), product-এর ছবি (Vision), ব্যবসার metric (Metrics)-এ অস্বাভাবিকতাLookout for Metrics ১০ অক্টোবর ২০২৫-এ বন্ধ, Lookout for Vision ৩১ অক্টোবর ২০২৫-এ, Lookout for Equipment ৭ অক্টোবর ২০২৬-এএখন পরিধির বাইরে
Amazon Augmented AI (A2I)Rekognition, Textract বা নিজের model-এর কম confidence-এর ফল মানুষকে দিয়ে যাচাই (লেসন ১৮.১)SageMaker AI-এর অংশ; ৩০ জুলাই ২০২৬ থেকে নতুন customer নেয় না (maintenance)এখনকার in-scope তালিকায় নেই, তবে practice প্রশ্নে আসে: “কম confidence-এর ফল মানুষের কাছে পাঠাও” → A2I

SAA-C03 guide-এর আগের version-এ (version 1.1) Forecast, Fraud Detector আর Kendra in scope ছিল; এখনকার তালিকায় নেই। এদের এক লাইনের keyword জেনে রাখো, কিন্তু নতুন system এদের ওপর বানিও না।

#Cheat sheet: অধ্যায় ১৮-এর সব AI service

Notes-এর cheat sheet এসেছিল ভাঙা ভাঙা লাইনে; এখানে সেটা একটা table, অধ্যায়ের প্রতিটা service-সহ। লেসন ১৮.১-এর service-গুলো সেখানেই শেখানো হয়েছে। শেষ column-টা দেখায় এখনকার SAA-C03 exam guide-এ কোন service কোথায় আছে: in scope, out of scope, নাকি তালিকাতেই নেই (v1.1 মানে guide-এর আগের version)।

Serviceমূল কাজপরীক্ষার keywordSAA-C03 তালিকা (নভেম্বর ২০২৬)
Rekognition (১৮.১)ছবি আর video বিশ্লেষণImage or video analysis, facial recognition, collection-এ মুখ খোঁজা, content moderation, celebrityin scope
Transcribe (১৮.১)কথা থেকে লেখাSpeech-to-text, subtitle, call centre-এর recording থেকে লেখা, বক্তা আলাদা করা, PII redactionin scope
Polly (১৮.১)লেখা থেকে জীবন্ত কণ্ঠText-to-speech, পড়ে শোনানো, SSML, lexiconin scope
Translate (১৮.১)ভাষা অনুবাদMulti-lingual application, user-এর লেখা অনুবাদ, custom terminologyin scope
Lex + Connect (১৮.১)Chatbot + cloud contact centreকথা বা লেখার conversational bot, call centre-এর IVR, cloud contact centreLex in scope; Connect তালিকায় নেই
Comprehend (১৮.১)লেখার বিশ্লেষণ (NLP)Sentiment analysis, key phrase, entity, লেখায় PII শনাক্তin scope
Comprehend Medical (১৮.১)চিকিৎসার লেখার বিশ্লেষণClinical note, ওষুধ আর মাত্রা, PHI, HIPAA-eligible NLPআলাদা করে তালিকায় নেই
SageMaker AICustom ML model build, train আর deployনিজের data-য় custom model, ML-এর পুরো জীবনচক্র, data scientistin scope (SageMaker AI নামে)
BedrockFoundation model দিয়ে generative AIAPI দিয়ে foundation model, serverless generative AI, কোম্পানির document দিয়ে RAGতালিকায় নেই
Kendraবুদ্ধিমান প্রাতিষ্ঠানিক খোঁজInternal document আর knowledge base জুড়ে স্বাভাবিক ভাষায় খোঁজতালিকায় নেই (v1.1-এ ছিল)
Personalizeব্যক্তি অনুযায়ী recommendationReal-time recommendation, e-commerce-এর পরামর্শ, মাপমতো marketing emailout of scope
TextractDocument থেকে লেখা আর dataScan করা PDF, invoice আর receipt থেকে table, form আর হাতের লেখা বের করাin scope
Forecast / Fraud DetectorTime-series আন্দাজ / online জালিয়াতিনতুন customer নেয় না; শুধু পুরোনো প্রশ্নেতালিকায় নেই (v1.1-এ ছিল)
A2Iমানুষের review-এর loopকম confidence-এর prediction মানুষ দেখেতালিকায় নেই

বানাবে না কিনবে? AI service বাছো

একটা scenario বাছো, service আন্দাজ করো, তারপর কারণটা পড়ো। আগে জিজ্ঞেস করো: আগে থেকে শেখানো কোনো service কি এটা করেই? কেউ না পারলে তবেই SageMaker AI-তে বানাও।

১. একটা scenario বেছে নাও(প্রথমবারেই ঠিক: 0/11)

গাজীপুরের এক garments রপ্তানিকারককে এমন ত্রুটি ধরতে হবে যা শুধু তার নিজের dye house-এই হয়: রঙের দাগ, ফসকে যাওয়া সেলাই। তার কাছে ৪০,০০০ ছবি আছে, যেগুলোতে inspector-রা label দিতে পারেন।

২. তোমার উত্তর

#Event-driven AI pattern

AI service সাধারণত কেউ বোতাম চেপে ডাকে না, ডাকে একটা event। পরীক্ষা যে pattern নিয়ে বারবার প্রশ্ন করে:

User file upload করে → S3 bucket → S3 event notification (বা EventBridge) → Lambda function → AI service (Textract, Transcribe, Rekognition, Comprehend) → ফল জমা হয় DynamoDB বা S3-এ।

  1. App S3-এ upload করে (pre-signed URL দিয়ে, লেসন ১০.১)।
  2. ObjectCreated-এর S3 event notification একটা Lambda function চালায়, অথবা event পাঠায় EventBridge-এ, যেটা আরও বেশি field দিয়ে filter করে কয়েকটা target-এ পাঠাতে পারে (লেসন ১০.৭, লেসন ১৯.৫)।
  3. Lambda bucket আর key দিয়ে AI service-কে ডাকে; service নিজেই S3 থেকে object পড়ে।
  4. ফল যায় DynamoDB-তে (app যাতে query করতে পারে, লেসন ১৫.৪) বা JSON হয়ে S3-এ।

বাস্তব system-এ তিনটা জিনিস ভুল হয়, আর পরীক্ষা সেগুলো জানে:

  • লম্বা কাজ asynchronous। অনেক পৃষ্ঠার PDF, এক ঘণ্টার call recording বা লম্বা video একটা request-এর ভেতরে process হয় না। Asynchronous API ব্যবহার করো (StartDocumentAnalysis, StartTranscriptionJob, StartLabelDetection): সাথে সাথে একটা job ID দেয়, আর কাজ শেষ হলে service খবর দেয় একটা SNS topic-এ (Transcribe দেয় EventBridge দিয়ে), যেটা দ্বিতীয় একটা Lambda চালায় ফল এনে রাখার জন্য। ৩০০ পৃষ্ঠার PDF synchronous AnalyzeDocument-এ পাঠালে ব্যর্থ হয়: সে নেয় এক পৃষ্ঠা।
  • Lambda সর্বোচ্চ ১৫ মিনিট চলে (লেসন ১৫.১)। যে function job শুরু করে তারপর লম্বা video-র জন্য loop-এ বসে অপেক্ষা করে, সে টাকা নষ্ট করে আর time out হয়। Job শুরু করো, ফিরে যাও, আর কাজ শেষের event-কে পরের ধাপ শুরু করতে দাও (অথবা Step Functions দিয়ে অপেক্ষা করো, Lambda-র সময়ের টাকা না দিয়ে)।
  • Event একাধিকবার আসতে পারে। S3 event notification পৌঁছায় অন্তত একবার, আর asynchronous invocation-এ error হলে Lambda আবার চেষ্টা করে। Idempotency না থাকলে একটা invoice দুবার process হয়: Textract-এর bill দুবার, payment table-এ row দুটো। Handler-কে idempotent বানাও, যেমন কাজ শুরুর আগে object-এর key আর version (বা ETag) DynamoDB-তে একটা শর্তসাপেক্ষ লেখা (conditional write) দিয়ে লিখে রাখো, আর key আগে থেকেই থাকলে event-টা বাদ দাও।

Upload → S3 → Lambda → Textract

একটা bank নিজে থেকেই loan-এর file পড়ে। দেখো স্বাভাবিক পথ, একটা লম্বা PDF, একটা Lambda function যে বেশি অপেক্ষা করে, আর একই event দুবার আসা।

পরিস্থিতি

ছোট আর দ্রুত: synchronous call-ই যথেষ্ট।

Loan officer
S3scan
Lambdajob শুরু
Textract
SNSjob শেষ
Lambdaফল রাখো
DynamoDBfield, job
form-0042.png
ধাপ 1 / 5
1

Officer এক পৃষ্ঠার scan করা loan আবেদন S3-এ upload করেন।

# Lambda: S3 ObjectCreated → start an asynchronous Textract job, once per object version
import boto3, hashlib, os, urllib.parse
ddb = boto3.client("dynamodb")
textract = boto3.client("textract")

def handler(event, context):
    for rec in event["Records"]:
        bucket = rec["s3"]["bucket"]["name"]
        key = urllib.parse.unquote_plus(rec["s3"]["object"]["key"])
        version = rec["s3"]["object"].get("versionId", rec["s3"]["object"]["eTag"])
        try:  # idempotency: only the first delivery of this object version wins
            ddb.put_item(
                TableName=os.environ["JOBS_TABLE"],
                Item={"pk": {"S": f"{bucket}/{key}#{version}"}, "status": {"S": "STARTED"}},
                ConditionExpression="attribute_not_exists(pk)",
            )
        except ddb.exceptions.ConditionalCheckFailedException:
            continue  # duplicate event: already started
        job = textract.start_document_analysis(
            DocumentLocation={"S3Object": {"Bucket": bucket, "Name": key}},
            FeatureTypes=["FORMS", "TABLES"],
            NotificationChannel={"SNSTopicArn": os.environ["TOPIC_ARN"],
                                 "RoleArn": os.environ["TEXTRACT_ROLE_ARN"]},
            ClientRequestToken=hashlib.sha256(f"{key}#{version}".encode()).hexdigest()[:64],
        )
        print("started", key, job["JobId"])  # a second function handles the SNS message

#কোথায় ভুল হয়

  • সমাধান হয়ে যাওয়া সমস্যায় SageMaker project: অশ্লীল ছবি খুঁজতে model শেখাতে কয়েক সপ্তাহ গেল, অথচ Rekognition-এর content moderation একটা API call-এই করে দেয়। আগে managed service দেখো।
  • Model ধীরে ধীরে ভুল হয়ে যায়: data সরে গেছে (নতুন supplier, customer-এর নতুন আচরণ, মূল্যস্ফীতি), কেউ নজর রাখেনি। Input আর মানের ওপর নজর রাখো, নতুন label রাখো, নির্দিষ্ট সময়ে বা alarm বাজলে আবার train করো।
  • বড় বা ধীর request real-time endpoint-এ ব্যর্থ: payload ২৫ MB-র বেশি বা processing ৬০ সেকেন্ডের বেশি। Asynchronous inference নাও।
  • Bill-এ দেখা যায় endpoint সারা মাস চলেছে: real-time endpoint প্রতি ঘণ্টায় bill তোলে। হঠাৎ হঠাৎ traffic-এর জন্য serverless বা শূন্যে নামা asynchronous, নির্দিষ্ট সময়ের scoring-এর জন্য batch transform, আর test endpoint delete করো।
  • Chatbot নিয়ম বানিয়ে বলে: RAG ছাড়া foundation model সাধারণ জ্ঞান থেকে উত্তর দেয়। Knowledge Base আর grounding check যোগ করো।
  • Kendra এমন document দেখায় যেটা user-এর দেখার কথা না: document index হয়েছিল তাদের access list ছাড়া, অথবা query-র সাথে user-এর পরিচয় যায়নি। অনুমতিসহ index করো, আর user ও group পাঠাও।
  • User এইমাত্র যা করল, recommendation তা মানে না: app কখনো PutEvents পাঠায় না, তাই Personalize শুধু গতকালের batch import জানে।
  • Form থেকে Textract সমতল লেখা দেয়: call-টা ছিল DetectDocumentText (সাধারণ OCR); form আর table feature দিয়ে AnalyzeDocument, বা Query ব্যবহার করো।
  • ৩০০ পৃষ্ঠার PDF ব্যর্থ: synchronous API-তে পাঠানো হয়েছিল। SNS topic-সহ StartDocumentAnalysis ব্যবহার করো।
  • বাংলা form-এ আবোলতাবোল আসে, বা AnalyzeID-এ NID card ব্যর্থ: Textract বাংলা পড়ে না, আর AnalyzeID পড়ে শুধু US-এর document।
  • Lambda function time out হয়: সে asynchronous job-এর জন্য অপেক্ষা করছিল। Job শুরু করে ফিরে যাও, কাজ শেষের event-এ সাড়া দাও।
  • একই file দুবার process হয়: S3 event দুবার এসেছে আর retry হয়েছে, idempotency ছাড়া।

#System design-এ AI service

মনে রাখার pattern:

  • Document নেওয়া: S3 → Lambda → Textract (async + SNS) → DynamoDB, কম confidence-এর field-এর জন্য A2I বা একটা review screen।
  • Media process করা: S3 → Lambda → Transcribe বা Rekognition video (async job) → ফল S3-এ → লেখা থেকে অন্তর্দৃষ্টির জন্য Comprehend → খোঁজার জন্য OpenSearch।
  • নিজস্ব prediction: S3-এ data → SageMaker AI training → API Gateway আর Lambda-র পেছনে real-time endpoint, অথবা রাতে batch transform, score আবার S3-এ লিখে Athena আর QuickSight-এর জন্য।
  • Generative assistant: Bedrock + Knowledge Base (document S3-এ, vector OpenSearch Serverless-এ বা managed storage-এ) + Guardrails, API Gateway-র পেছনে Lambda থেকে ডাকা।
  • Personalisation: web আর app-এর back end Personalize campaign ডাকে, front end থেকে PutEvents; email campaign-এর জন্য batch segment।

#নিজে করে দেখো

এই command-গুলো AWS CLI v2 দিয়ে ap-south-1 (মুম্বাই, বাংলাদেশের কাছে)-এ চলে, placeholder account 111122223333। প্রতিটা call-এর bill হয় request, পৃষ্ঠা, মিনিট বা instance-ঘণ্টা ধরে; শেষ হলে SageMaker endpoint delete করে দিও।

# 1. Textract: a one-page loan form, synchronously, with forms, tables and a query
aws textract analyze-document \
  --document '{"S3Object":{"Bucket":"loan-scans-example","Name":"2026/11/form-0042.png"}}' \
  --feature-types FORMS TABLES QUERIES \
  --queries-config '{"Queries":[{"Text":"What is the monthly income?","Alias":"INCOME"}]}' \
  --query 'Blocks[?BlockType==`QUERY_RESULT`].[Text,Confidence]'
# [ [ "BDT 85,000", 97.8 ] ]

# 2. Textract: a 120-page statement, asynchronously, with an SNS completion message
aws textract start-document-analysis \
  --document-location '{"S3Object":{"Bucket":"loan-scans-example","Name":"2026/11/statement-0042.pdf"}}' \
  --feature-types TABLES \
  --notification-channel SNSTopicArn=arn:aws:sns:ap-south-1:111122223333:textract-done,RoleArn=arn:aws:iam::111122223333:role/TextractSnsRole
# { "JobId": "4a1c0b7e9d0f..." }
aws textract get-document-analysis --job-id 4a1c0b7e9d0f... --max-results 1000 \
  --query '[JobStatus,DocumentMetadata.Pages]'
# [ "SUCCEEDED", 120 ]      (IN_PROGRESS until the SNS message arrives)

# 3. Textract: a receipt
aws textract analyze-expense \
  --document '{"S3Object":{"Bucket":"loan-scans-example","Name":"receipts/r-981.jpg"}}' \
  --query 'ExpenseDocuments[0].SummaryFields[?Type.Text==`TOTAL`].ValueDetection.Text'
# [ "1,250.00" ]

# 4. Kendra: a natural-language question (existing index)
aws kendra query --index-id 0f9a2c4e-1b2d-4c3e-8f5a-6b7c8d9e0f1a \
  --query-text "Where is the IT support desk?" \
  --query 'ResultItems[0].[Type,DocumentExcerpt.Text]'
# [ "ANSWER", "The IT support desk is on the 1st floor, room 104." ]

# 5. Personalize: send a click, then ask for recommendations (existing campaign)
aws personalize-events put-events --tracking-id 5e6f7a8b-2c3d-4c1d-9e2f-0a1b2c3d4e5f \
  --user-id u-2041 --session-id s-77 \
  --event-list '[{"eventType":"click","itemId":"panjabi-117","sentAt":"2026-11-01T10:15:00Z"}]'
aws personalize-runtime get-recommendations \
  --campaign-arn arn:aws:personalize:ap-south-1:111122223333:campaign/shop-home \
  --user-id u-2041 --num-results 3
# { "itemList": [ {"itemId":"panjabi-122"}, {"itemId":"nagra-031"}, {"itemId":"attar-009"} ] }

# 6. SageMaker AI: a training job on Spot, then a serverless endpoint
aws sagemaker create-training-job --training-job-name defect-v7 \
  --algorithm-specification TrainingImage=111122223333.dkr.ecr.ap-south-1.amazonaws.com/defect-train:1.4,TrainingInputMode=File \
  --role-arn arn:aws:iam::111122223333:role/SageMakerExecRole \
  --input-data-config '[{"ChannelName":"train","DataSource":{"S3DataSource":{"S3DataType":"S3Prefix","S3Uri":"s3://defects-example/train/"}}}]' \
  --output-data-config S3OutputPath=s3://defects-example/models/ \
  --resource-config InstanceType=ml.g5.xlarge,InstanceCount=1,VolumeSizeInGB=50 \
  --enable-managed-spot-training \
  --stopping-condition MaxRuntimeInSeconds=14400,MaxWaitTimeInSeconds=21600
aws sagemaker create-endpoint-config --endpoint-config-name defect-v7-sls \
  --production-variants '[{"VariantName":"main","ModelName":"defect-v7","ServerlessConfig":{"MemorySizeInMB":4096,"MaxConcurrency":5}}]'
aws sagemaker create-endpoint --endpoint-name defect --endpoint-config-name defect-v7-sls
aws sagemaker-runtime invoke-endpoint --endpoint-name defect \
  --content-type image/jpeg --body fileb://piece-5512.jpg out.json && cat out.json
# {"label": "oil_spot", "score": 0.94, "box": [412, 180, 470, 236]}
aws sagemaker delete-endpoint --endpoint-name defect

# 7. Bedrock: one question to a foundation model (model access already enabled)
aws bedrock-runtime converse --model-id amazon.nova-lite-v1:0 \
  --messages '[{"role":"user","content":[{"text":"In one sentence, what is Amazon Textract?"}]}]' \
  --query 'output.message.content[0].text'
# "Amazon Textract is an AWS service that extracts text, forms and tables from scanned documents."

Console-এও চেষ্টা করো: Textract-এর demo page-এ একটা scan করা form upload করো, আর Raw text tab-কে Forms আর Tables tab-এর সাথে মেলাও; এক screen-এই OCR আর Textract-এর তফাতটা দেখা যায়।

#সারসংক্ষেপ

মূল কথা

  • সোনালি নিয়ম: আগে managed pre-trained service; SageMaker AI শুধু তখন, যখন কোনো তৈরি service মানায় না আর নিজের data দিয়ে custom model train করতেই হবে। SageMaker দিয়ে বাড়াবাড়ি করা পরীক্ষার পুরোনো ভুল উত্তর।
  • SageMaker AI (ডিসেম্বর ২০২৪-এ SageMaker থেকে নাম বদল; “SageMaker” এখন Unified Studio-সহ unified data আর AI platform-এরও নাম) = শুরু থেকে শেষের ML platform: data → label (Ground Truth) → build (Studio, JumpStart, code ছাড়া Canvas/Autopilot) → train আর tune → deploy → monitor (Model Monitor, Clarify)। Ground Truth, Model Monitor, Clarify আর A2I ৩০ জুলাই ২০২৬ থেকে নতুন customer-এর জন্য বন্ধ।
  • Inference: real-time (স্থির, কম latency, ২৫ MB, ৬০ সেকেন্ড), serverless (হঠাৎ হঠাৎ, cold start, ৪ MB), asynchronous (১ GB, এক ঘণ্টা, S3 + SNS, শূন্যে নামে), batch transform (পুরো dataset, endpoint নেই)।
  • Bedrock = এক API দিয়ে serverless foundation model, সাথে Knowledge Base (RAG), Guardrails, agent আর fine-tuning। Amazon Q Business → Amazon Quick (২০২৬-এ নতুন customer-এর জন্য বন্ধ); Q Developer → Kiro (support শেষ এপ্রিল ২০২৭)। Bedrock আর Q SAA-C03-এর in-scope তালিকায় নেই।
  • Kendra = স্বাভাবিক ভাষায় উত্তর দেওয়া ML-চালিত প্রাতিষ্ঠানিক খোঁজ (“Where is the IT support desk?” → “1st floor”), connector, অনুমতি, incremental learning; জুন ২০২৬ থেকে maintenance-এ, নতুন project-এ Bedrock Knowledge Base।
  • Personalize = Amazon.com-এর প্রযুক্তিতে real-time recommendation, চলতি আচরণের জন্য PutEvents, marketing email; এখন SAA-C03-এর পরিধির বাইরে।
  • Textract = লেখা, হাতের লেখা, form (key-value), table, Query, AnalyzeExpense, AnalyzeID (শুধু US document); sync ১ পৃষ্ঠা / ১০ MB, async ৩,০০০ পৃষ্ঠা / ৫০০ MB, SNS-সহ; ইংরেজি আর পাঁচটা ইউরোপীয় ভাষা। ছবি → Rekognition; document → Textract।
  • Forecast (২০২৪-এ বন্ধ) আর Fraud Detector (২০২৫-এ বন্ধ) আসে শুধু পুরোনো প্রশ্নে।
  • Pattern: upload → S3 → event (বা EventBridge) → Lambda → AI service → DynamoDB/S3; লম্বা কাজ async job + SNS; Lambda সর্বোচ্চ ১৫ মিনিট; একই event দুবার এলে idempotent handler; managed service = operational excellence।