Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.

Amazon SageMaker শ্যাডো টেস্টিং এর মাধ্যমে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন

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

এই পোস্টে, আমরা এই নতুন SageMaker ক্ষমতা প্রদর্শন. সংশ্লিষ্ট নমুনা নোটবুক এই GitHub এ উপলব্ধ সংগ্রহস্থলের.

সমাধান ওভারভিউ

আপনার মডেল পরিবেশন পরিকাঠামো মেশিন লার্নিং (ML) মডেল, পরিবেশন কন্টেইনার, বা গণনা উদাহরণ নিয়ে গঠিত। আসুন নিম্নলিখিত পরিস্থিতিতে বিবেচনা করা যাক:

  • আপনি একটি নতুন মডেলের প্রচার করার কথা ভাবছেন যা অফলাইনে প্রোডাকশনে যাচাই করা হয়েছে, কিন্তু এই সিদ্ধান্ত নেওয়ার আগে অপারেশনাল পারফরম্যান্স মেট্রিক্স যেমন লেটেন্সি, ত্রুটির হার এবং আরও অনেক কিছু মূল্যায়ন করতে চান।
  • আপনি আপনার পরিবেশন পরিকাঠামো কন্টেইনারে পরিবর্তনগুলি বিবেচনা করছেন, যেমন প্যাচিং দুর্বলতা বা নতুন সংস্করণে আপগ্রেড করা, এবং উত্পাদনে প্রচারের আগে এই পরিবর্তনগুলির প্রভাব মূল্যায়ন করতে চান৷
  • আপনি আপনার ML দৃষ্টান্ত পরিবর্তন করার বিষয়ে বিবেচনা করছেন এবং লাইভ ইনফারেন্স অনুরোধের সাথে নতুন উদাহরণটি কীভাবে কার্য সম্পাদন করবে তা মূল্যায়ন করতে চান।

নিম্নলিখিত চিত্রটি আমাদের সমাধান আর্কিটেকচারের চিত্র তুলে ধরেছে।

এই প্রতিটি পরিস্থিতির জন্য, একটি প্রোডাকশন ভেরিয়েন্ট নির্বাচন করুন যার বিরুদ্ধে আপনি পরীক্ষা করতে চান এবং SageMaker স্বয়ংক্রিয়ভাবে নতুন ভেরিয়েন্টটিকে শ্যাডো মোডে স্থাপন করে এবং একই শেষ পয়েন্টের মধ্যে রিয়েল টাইমে অনুমানের অনুরোধের একটি অনুলিপি রুট করে। শুধুমাত্র উৎপাদন বৈকল্পিক প্রতিক্রিয়া কলিং অ্যাপ্লিকেশনে ফেরত দেওয়া হয়. আপনি অফলাইন তুলনার জন্য ছায়া ভেরিয়েন্টের প্রতিক্রিয়াগুলি বাতিল বা লগ করতে বেছে নিতে পারেন। ঐচ্ছিকভাবে, আপনি পারফরম্যান্স মেট্রিক্সের পাশাপাশি তুলনা সহ একটি অন্তর্নির্মিত ড্যাশবোর্ডের মাধ্যমে ভেরিয়েন্টগুলি নিরীক্ষণ করতে পারেন। আপনি SageMaker ইনফারেন্স আপডেট-এন্ডপয়েন্ট API-এর মাধ্যমে বা SageMaker কনসোলের মাধ্যমে এই ক্ষমতাটি ব্যবহার করতে পারেন।

শ্যাডো ভেরিয়েন্টগুলি সেজমেকার ইনফারেন্স এন্ডপয়েন্টে প্রোডাকশন বৈকল্পিক ক্ষমতার উপরে তৈরি করে। পুনর্ব্যক্ত করতে, ক উত্পাদন বৈকল্পিক ML মডেল, পরিবেশন কন্টেইনার এবং ML উদাহরণ নিয়ে গঠিত। যেহেতু প্রতিটি ভেরিয়েন্ট অন্যদের থেকে স্বাধীন, তাই আপনি বিভিন্ন মডেল, কন্টেইনার বা ইন্সট্যান্সের ধরন জুড়ে থাকতে পারেন। সেজমেকার আপনাকে প্রতি-ভেরিয়েন্টের ভিত্তিতে স্বয়ংক্রিয় স্কেলিং নীতিগুলি নির্দিষ্ট করতে দেয় যাতে তারা ইনকামিং লোডের উপর ভিত্তি করে স্বাধীনভাবে স্কেল করতে পারে। SageMaker প্রতি এন্ডপয়েন্টে 10টি পর্যন্ত প্রোডাকশন ভেরিয়েন্ট সমর্থন করে। আপনি বৈকল্পিক ওজন সেট করে ইনকামিং ট্র্যাফিকের একটি অংশ পেতে একটি বৈকল্পিক কনফিগার করতে পারেন, অথবা আগত অনুরোধে লক্ষ্য বৈকল্পিকটি নির্দিষ্ট করতে পারেন। প্রোডাকশন ভেরিয়েন্টের প্রতিক্রিয়া আবাহনকারীর কাছে ফেরত পাঠানো হয়।

A ছায়া বৈকল্পিক (নতুন) একটি উত্পাদন বৈকল্পিক হিসাবে একই উপাদান আছে. অনুরোধের একটি ব্যবহারকারী-নির্দিষ্ট অংশ, হিসাবে পরিচিত ট্রাফিক স্যাম্পলিং শতাংশ, ছায়া বৈকল্পিক ফরোয়ার্ড করা হয়. আপনি ছায়া ভেরিয়েন্টের প্রতিক্রিয়া লগ ইন করতে বেছে নিতে পারেন আমাজন সিম্পল স্টোরেজ সার্ভিস (Amazon S3) বা বাতিল করুন।

উল্লেখ্য যে SageMaker প্রতি এন্ডপয়েন্টে সর্বাধিক একটি শ্যাডো ভেরিয়েন্ট সমর্থন করে। একটি ছায়া বৈকল্পিক সহ একটি শেষ বিন্দুর জন্য, সর্বাধিক একটি উত্পাদন বৈকল্পিক হতে পারে৷

আপনি উত্পাদন এবং ছায়া বৈকল্পিক সেট আপ করার পরে, আপনি নিরীক্ষণ করতে পারেন আমন্ত্রণ মেট্রিক্স উভয় উত্পাদন এবং ছায়া বৈকল্পিক জন্য অ্যামাজন ক্লাউডওয়াচ অধীনে AWS/SageMaker নামস্থান সেজমেকার এন্ডপয়েন্টের সমস্ত আপডেটগুলি ব্যবহার করে সাজানো হয়েছে৷ নীল/সবুজ স্থাপনা এবং প্রাপ্যতা কোন ক্ষতি ছাড়া ঘটতে. আপনি ছায়া ভেরিয়েন্ট যোগ, পরিবর্তন বা অপসারণ করার সাথে সাথে আপনার এন্ডপয়েন্টগুলি উত্পাদন অনুরোধে সাড়া দিতে থাকবে।

আপনি এই ক্ষমতা দুটি উপায়ে ব্যবহার করতে পারেন:

  • SageMaker কনসোল ব্যবহার করে পরিচালিত ছায়া পরীক্ষা - ছায়া পরীক্ষার এন্ড-টু-এন্ড যাত্রা পরিচালনা করতে আপনি একটি নির্দেশিত অভিজ্ঞতার জন্য কনসোলটি ব্যবহার করতে পারেন। এটি আপনাকে একটি পূর্বনির্ধারিত সময়ের জন্য ছায়া পরীক্ষা সেটআপ করতে দেয়, একটি লাইভ ড্যাশবোর্ডের মাধ্যমে অগ্রগতি নিরীক্ষণ করতে, সমাপ্তির পরে পরিষ্কার করতে এবং ফলাফলগুলিতে কাজ করতে দেয়৷
  • সেজমেকার ইনফারেন্স API ব্যবহার করে স্ব-পরিষেবা ছায়া পরীক্ষা - যদি আপনার ডিপ্লয়মেন্ট ওয়ার্কফ্লো ইতিমধ্যেই তৈরি/আপডেট/ডিলিট-এন্ডপয়েন্ট API ব্যবহার করে, আপনি শ্যাডো ভেরিয়েন্টগুলি পরিচালনা করতে তাদের ব্যবহার চালিয়ে যেতে পারেন।

নিম্নলিখিত বিভাগে, আমরা এই পরিস্থিতিতে প্রতিটি মাধ্যমে হাঁটা.

দৃশ্যকল্প 1 - সেজমেকার কনসোল ব্যবহার করে পরিচালিত ছায়া পরীক্ষা

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

আগ্রহী

উত্পাদন এবং ছায়ার জন্য মডেলগুলি সেজমেকারে তৈরি করা দরকার। অনুগ্রহ করে দেখুন CreateModel এপিআই এখানে.

ধাপ 1 - একটি ছায়া পরীক্ষা তৈরি করুন

নেভিগেট করুন অনুমিতি SageMaker কনসোলের বাম নেভিগেশন প্যানেলের বিভাগ এবং তারপর ছায়া পরীক্ষা নির্বাচন করুন। এটি আপনাকে সমস্ত নির্ধারিত, চলমান এবং সম্পূর্ণ ছায়া পরীক্ষা সহ একটি ড্যাশবোর্ডে নিয়ে যাবে। ক্লিক 'একটি ছায়া পরীক্ষা তৈরি করুন'. পরীক্ষার জন্য একটি নাম লিখুন এবং পরবর্তী নির্বাচন করুন।

এটি আপনাকে ছায়া পরীক্ষার সেটিংস পৃষ্ঠায় নিয়ে যাবে। আপনি একটি বিদ্যমান IAM ভূমিকা চয়ন করতে পারেন বা এমন একটি তৈরি করতে পারেন যাতে রয়েছে৷ AmazonSageMakerFullAccess আইএএম নীতি সংযুক্ত। পরবর্তী, নির্বাচন করুন 'একটি নতুন শেষ পয়েন্ট তৈরি করুন' এবং একটি নাম লিখুন (xgb-prod-shadow-1)। আপনি 'এ ক্লিক করে এই শেষ বিন্দুর সাথে যুক্ত একটি উত্পাদন এবং একটি ছায়া বৈকল্পিক যোগ করতে পারেনযোগ করুন' ভেরিয়েন্ট বিভাগে। আপনি আপনার তৈরি করা মডেলগুলি নির্বাচন করতে পারেন 'মডেল যোগ করুন' সংলাপ বাক্স. এটি একটি উত্পাদন বা বৈকল্পিক তৈরি করে। ঐচ্ছিকভাবে, আপনি প্রতিটি ভেরিয়েন্টের সাথে সম্পর্কিত উদাহরণের ধরন এবং গণনা পরিবর্তন করতে পারেন।

সমস্ত ট্র্যাফিক প্রোডাকশন ভেরিয়েন্টে যায় এবং এটি আহ্বানের অনুরোধে সাড়া দেয়। আপনি পরিবর্তন করে ছায়া ভেরিয়েন্টে রাউট করা অনুরোধের একটি অংশ নিয়ন্ত্রণ করতে পারেন Traffic Sampling Percentage.

আপনি এক ঘন্টা থেকে 30 দিন পর্যন্ত পরীক্ষার সময়কাল নিয়ন্ত্রণ করতে পারেন। অনির্দিষ্ট থাকলে, এটি ডিফল্ট 7 দিন। এই সময়ের পরে, পরীক্ষা সম্পূর্ণরূপে চিহ্নিত করা হয়। আপনি যদি একটি বিদ্যমান এন্ডপয়েন্টে একটি পরীক্ষা চালাচ্ছেন, তাহলে পরীক্ষাটি শেষ হওয়ার আগে এটিকে রাজ্যে ফিরিয়ে দেওয়া হবে।

আপনি বিকল্পভাবে ব্যবহার করে ছায়া ভেরিয়েন্টের অনুরোধ এবং প্রতিক্রিয়া ক্যাপচার করতে পারেন তথ্য সংগ্রহ বিকল্প যদি অনির্দিষ্ট রেখে দেওয়া হয়, ছায়া বৈকল্পিকের প্রতিক্রিয়া বাতিল করা হয়।

Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.

Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.

ধাপ 2 - একটি ছায়া পরীক্ষা নিরীক্ষণ

আপনি নেভিগেট করে ছায়া পরীক্ষার তালিকা দেখতে পারেন Shadow Tests অনুমানের অধীনে বিভাগ। একটি ছায়া পরীক্ষার বিশদ বিবরণ দেখতে পূর্ববর্তী ধাপে তৈরি করা ছায়া পরীক্ষার উপর ক্লিক করুন এবং এটি প্রক্রিয়া চলাকালীন বা এটি সম্পূর্ণ হওয়ার পরে এটি পর্যবেক্ষণ করুন।

Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.

মেট্রিক্স বিভাগটি মূল মেট্রিক্সের একটি তুলনা প্রদান করে এবং বর্ণনামূলক পরিসংখ্যান সহ উত্পাদন এবং ছায়ার রূপগুলির মধ্যে ওভারলেড গ্রাফ প্রদান করে। আপনি যেমন আহ্বান মেট্রিক তুলনা করতে পারেন ModelLatency এবং Invocation4xxErrors সেইসাথে উদাহরণ মেট্রিক্স যেমন CPUUtilization এবং DiskUtilization.

Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.

ধাপ 3 - নতুন উত্পাদন ভেরিয়েন্টে ছায়া ভেরিয়েন্টকে উন্নীত করুন

তুলনা করার পরে, আপনি হয় ছায়া ভেরিয়েন্টটিকে নতুন উত্পাদন বৈকল্পিক হিসাবে প্রচার করতে বা ছায়া বৈকল্পিকটি সরাতে পারেন৷ এই উভয় বিকল্পের জন্য, 'নির্বাচন করুনসম্পূর্ণ চিহ্নিত করুন' পৃষ্ঠার শীর্ষে এটি আপনাকে ছায়া বৈকল্পিক প্রচার বা অপসারণ করার একটি বিকল্প উপস্থাপন করে।

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

একবার আপনি স্থাপনার বিষয়টি নিশ্চিত করলে, SageMaker ছায়া ভেরিয়েন্টটিকে নতুন উৎপাদন ভেরিয়েন্টে উন্নীত করতে আপনার এন্ডপয়েন্টে একটি আপডেট শুরু করবে। SageMaker সমস্ত আপডেটের মতো, আপডেটের সময় আপনার এন্ডপয়েন্ট এখনও চালু থাকবে।

Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.

Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.

দৃশ্যকল্প 2: SageMaker inference APIs ব্যবহার করে শ্যাডো টেস্টিং

এই বিভাগে শ্যাডো ভেরিয়েন্ট স্থাপন করতে বিদ্যমান সেজমেকার তৈরি/আপডেট/ডিলিট-এন্ডপয়েন্ট এপিআই কীভাবে ব্যবহার করবেন তা কভার করে।

এই উদাহরণের জন্য, আমাদের কাছে দুটি XGBoost মডেল রয়েছে যা পূর্ব-প্রশিক্ষিত মডেলগুলির দুটি ভিন্ন সংস্করণের প্রতিনিধিত্ব করে। model.tar.gz বর্তমানে উৎপাদনে নিয়োজিত মডেল। model2 এটি নতুন মডেল, এবং আমরা উৎপাদনে এটি ব্যবহার করার সিদ্ধান্ত নেওয়ার আগে অপারেশনাল মেট্রিক্স যেমন লেটেন্সির পরিপ্রেক্ষিতে এর কার্যকারিতা পরীক্ষা করতে চাই। আমরা মোতায়েন model2 একটি ছায়া বৈকল্পিক হিসাবে model.tar.gz. উভয় প্রাক-প্রশিক্ষিত মডেল পাবলিক S3 বালতিতে সংরক্ষণ করা হয় s3://sagemaker-sample-files. আমরা প্রথমে আমাদের স্থানীয় গণনার উদাহরণটি ডাউনলোড করি এবং তারপর S3 এ আপলোড করি।

এই উদাহরণের মডেলগুলি একটি মোবাইল গ্রাহকের তাদের বর্তমান মোবাইল অপারেটর ছেড়ে যাওয়ার সম্ভাবনার পূর্বাভাস দিতে ব্যবহৃত হয়৷ আমরা যে ডেটাসেট ব্যবহার করি তা সর্বজনীনভাবে উপলব্ধ এবং বইটিতে উল্লেখ করা হয়েছে ডেটাতে জ্ঞান আবিষ্কার করা ড্যানিয়েল টি. লরোজ দ্বারা। এই মডেলগুলি ব্যবহার করে প্রশিক্ষণ দেওয়া হয়েছিল XGB চার্ন ভবিষ্যদ্বাণী নোটবুক সেজমেকারে। আপনি আপনার নিজের প্রাক-প্রশিক্ষিত মডেলগুলিও ব্যবহার করতে পারেন, এই ক্ষেত্রে আপনি ডাউনলোড করা এড়িয়ে যেতে পারেন৷ s3://sagemaker-sample-files এবং মডেল/ফোল্ডারে সরাসরি আপনার নিজের মডেল কপি করুন।

!aws s3 cp s3://sagemaker-sample-files/models/xgb-churn/xgb-churn-prediction-model.tar.gz model/
!aws s3 cp s3://sagemaker-sample-files/models/xgb-churn/xgb-churn-prediction-model2.tar.gz model/

ধাপ 1 - মডেল তৈরি করুন

আমরা মডেল ফাইলগুলি আমাদের নিজস্ব S3 বালতিতে আপলোড করি এবং দুটি SageMaker মডেল তৈরি করি। নিম্নলিখিত কোড দেখুন:

model_url = S3Uploader.upload(
    local_path="model/xgb-churn-prediction-model.tar.gz",
    desired_s3_uri=f"s3://{bucket}/{prefix}",
)
model_url2 = S3Uploader.upload(
    local_path="model/xgb-churn-prediction-model2.tar.gz",
    desired_s3_uri=f"s3://{bucket}/{prefix}",
from sagemaker import image_uris
image_uri = image_uris.retrieve("xgboost", boto3.Session().region_name, "0.90-1")
image_uri2 = image_uris.retrieve("xgboost", boto3.Session().region_name, "0.90-2")

model_name = f"DEMO-xgb-churn-pred-{datetime.now():%Y-%m-%d-%H-%M-%S}"
model_name2 = f"DEMO-xgb-churn-pred2-{datetime.now():%Y-%m-%d-%H-%M-%S}"

resp = sm.create_model(
    ModelName=model_name,
    ExecutionRoleArn=role,
    Containers=[{"Image": image_uri, "ModelDataUrl": model_url}],
)

resp = sm.create_model(
    ModelName=model_name2,
    ExecutionRoleArn=role,
    Containers=[{"Image": image_uri2, "ModelDataUrl": model_url2}],
)

ধাপ 2 - একটি রিয়েল-টাইম ইনফারেন্স এন্ডপয়েন্টে উত্পাদন এবং ছায়ার রূপ হিসাবে দুটি মডেল স্থাপন করুন

আমরা প্রোডাকশন এবং শ্যাডো ভেরিয়েন্ট সহ একটি এন্ডপয়েন্ট কনফিগ তৈরি করি। দ্য ProductionVariants এবং ShadowProductionVariants বিশেষ আগ্রহ আছে। এই দুটি ভেরিয়েন্টেই 5 vCPU এবং 4 GiB মেমরি সহ ml.m16.xlarge দৃষ্টান্ত রয়েছে এবং প্রাথমিক দৃষ্টান্ত গণনা 1 এ সেট করা হয়েছে৷ নিম্নলিখিত কোডটি দেখুন:

ep_config_name = f"Shadow-EpConfig-{datetime.now():%Y-%m-%d-%H-%M-%S}"
production_variant_name = "production"
shadow_variant_name = "shadow"
create_endpoint_config_response = sm.create_endpoint_config(
    EndpointConfigName=ep_config_name,
    ProductionVariants=[
    # Type: Array of ProductionVariant (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html) objects
      { 
         "VariantName": shadow_variant_name,
        {
            "VariantName": production_variant_name,
            "ModelName": model_name,
            "InstanceType": "ml.m5.xlarge",
            "InitialInstanceCount": 2,
            "InitialVariantWeight": 1,
        }
    ],
     # Type: Array of ShadowProductionVariants 
    ShadowProductionVariants = [
         "ModelName": model_name2,
         "InitialInstanceCount": 1,
         "InitialVariantWeight": 0.5,
         "InstanceType": "ml.m5.xlarge" 
      }
   ]
)

অবশেষে, আমরা উত্পাদন এবং ছায়া বৈকল্পিক তৈরি করি:

endpoint_name = f"xgb-prod-shadow-{datetime.now():%Y-%m-%d-%H-%M-%S}"
create_endpoint_api_response = sm.create_endpoint(
                                    EndpointName=endpoint_name,
                                    EndpointConfigName=ep_config_name,
                                )

ধাপ 3 - পরীক্ষার জন্য শেষ বিন্দু আহ্বান করুন

শেষ বিন্দু সফলভাবে তৈরি হওয়ার পরে, আপনি এটি শুরু করতে পারেন। আমরা ক্রমানুসারে প্রায় 3,000টি অনুরোধ পাঠাই:

def invoke_endpoint(endpoint_name, wait_interval_sec=0.01, should_raise_exp=False):
    with open("test_data/test-dataset-input-cols.csv", "r") as f:
        for row in f:
            payload = row.rstrip("n")
            try:
                for i in range(10): #send the same payload 10 times for testing purpose
                    response = sm_runtime.invoke_endpoint(
                        EndpointName=endpoint_name, ContentType="text/csv", Body=payload
                    )
            except Exception as e:
                print("E", end="", flush=True)
                if should_raise_exp:
                    raise e

invoke_endpoint(endpoint_name)

ধাপ 4 - মেট্রিক্স তুলনা করুন

এখন যেহেতু আমরা উত্পাদন এবং ছায়া মডেল উভয়ই স্থাপন করেছি, আসুন আমন্ত্রণ মেট্রিক্স তুলনা করি। তুলনা করার জন্য উপলব্ধ আমন্ত্রণ মেট্রিক্সের একটি তালিকার জন্য, পড়ুন অ্যামাজন ক্লাউডওয়াচ দিয়ে অ্যামাজন সেজমেকার মনিটর করুন. চলুন শুরু করা যাক প্রোডাকশন এবং শ্যাডো ভেরিয়েন্টের মধ্যে আহ্বানের তুলনা করে।

সার্জারির InvocationsPerInstance মেট্রিক বলতে প্রোডাকশন ভেরিয়েন্টে পাঠানো আমন্ত্রণের সংখ্যা বোঝায়। এই আহ্বানের একটি ভগ্নাংশ, বৈকল্পিক ওজনে নির্দিষ্ট করা, ছায়া বৈকল্পিকে পাঠানো হয়। একটি ভেরিয়েন্টের দৃষ্টান্তের সংখ্যা দ্বারা আহ্বানের মোট সংখ্যাকে ভাগ করে প্রতি দৃষ্টান্ত প্রতি আহ্বান গণনা করা হয়। নিম্নলিখিত চার্টে দেখানো হয়েছে, আমরা নিশ্চিত করতে পারি যে উৎপাদন এবং ছায়া ভেরিয়েন্ট উভয়ই এন্ডপয়েন্ট কনফিগারেশনে নির্দিষ্ট ওজন অনুযায়ী আহ্বানের অনুরোধ গ্রহণ করছে।

Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.

এর পরে, মডেল লেটেন্সি তুলনা করা যাক (ModelLatency মেট্রিক) উত্পাদন এবং ছায়া রূপের মধ্যে। মডেল লেটেন্সি হল সেজমেকার থেকে দেখা হিসাবে প্রতিক্রিয়া জানাতে একটি মডেলের নেওয়া সময়। আমরা শ্যাডো ভেরিয়েন্টের মডেল লেটেন্সি কীভাবে শেষ-ব্যবহারকারীকে ছায়া ভেরিয়েন্টের সাথে প্রকাশ না করে উৎপাদন ভেরিয়েন্টের সাথে তুলনা করে তা লক্ষ্য করতে পারি।

Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.

আমরা ওভারহেড লেটেন্সি আশা করি (OverheadLatency মেট্রিক) উৎপাদন এবং ছায়া ভেরিয়েন্ট জুড়ে তুলনীয় হতে হবে। ওভারহেড লেটেন্সি হল সেজমেকার রিকোয়েস্ট পাওয়ার সময় থেকে ক্লায়েন্টের কাছে রিপ্লাই না দেওয়া পর্যন্ত ব্যবধান মাপা, মডেল লেটেন্সি বিয়োগ করে।

Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.

ধাপ 5- আপনার ছায়া বৈকল্পিক প্রচার করুন

ছায়া মডেলটিকে উৎপাদনে উন্নীত করতে, বর্তমানের সাথে একটি নতুন এন্ডপয়েন্ট কনফিগারেশন তৈরি করুন ShadowProductionVariant নতুন হিসাবে ProductionVariant এবং অপসারণ ShadowProductionVariant. এটি বর্তমান মুছে ফেলবে ProductionVariant এবং ছায়া ভেরিয়েন্টটিকে নতুন প্রোডাকশন ভেরিয়েন্টে পরিণত করার জন্য প্রচার করুন। বরাবরের মতো, সমস্ত সেজমেকার আপডেটগুলি হুডের নীচে নীল/সবুজ স্থাপনা হিসাবে সাজানো হয় এবং আপডেটটি সম্পাদন করার সময় উপলব্ধতার কোনও ক্ষতি হয় না।

ঐচ্ছিকভাবে, আপনি লিভারেজ করতে পারেন স্থাপনার গার্ডেল আপনি যদি আপনার আপডেটের সময় সব-এ-একবার ট্রাফিক শিফটিং এবং স্বয়ংক্রিয় রোলব্যাক ব্যবহার করতে চান।

promote_ep_config_name = f"PromoteShadow-EpConfig-{datetime.now():%Y-%m-%d-%H-%M-%S}"

create_endpoint_config_response = sm.create_endpoint_config(
    EndpointConfigName=promote_ep_config_name,
    ProductionVariants=[
        {
            "VariantName": shadow_variant_name,
            "ModelName": model_name2,
            "InstanceType": "ml.m5.xlarge",
            "InitialInstanceCount": 2,
            "InitialVariantWeight": 1.0,
        }
    ],
)
print(f"Created EndpointConfig: {create_endpoint_config_response['EndpointConfigArn']}")

update_endpoint_api_response = sm.update_endpoint(
    EndpointName=endpoint_name,
    EndpointConfigName=promote_ep_config_name,
)

wait_for_endpoint_in_service(endpoint_name)

sm.describe_endpoint(EndpointName=endpoint_name)

ধাপ 6 - পরিষ্কার করুন

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

dsm.delete_endpoint(EndpointName=endpoint_name)
sm.delete_endpoint_config(EndpointConfigName=ep_config_name)
sm.delete_endpoint_config(EndpointConfigName=promote_ep_config_name)
sm.delete_model(ModelName=model_name)
sm.delete_model(ModelName=model_name2)

উপসংহার

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


লেখক সম্পর্কে

Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.রঘু রমেশা অ্যামাজন সেজমেকার সার্ভিস টিমের সাথে একজন মেশিন লার্নিং সলিউশন আর্কিটেক্ট। তিনি গ্রাহকদের এমএল উৎপাদন কাজের লোডগুলিকে সেজমেকারে স্কেলে তৈরি, স্থাপন এবং স্থানান্তর করতে সহায়তা করার দিকে মনোনিবেশ করেন। তিনি মেশিন লার্নিং, এআই, এবং কম্পিউটার ভিশন ডোমেনে বিশেষজ্ঞ এবং UT ডালাস থেকে কম্পিউটার সায়েন্সে স্নাতকোত্তর ডিগ্রি অর্জন করেছেন। অবসর সময়ে, তিনি ভ্রমণ এবং ফটোগ্রাফি উপভোগ করেন।

Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.কিংওয়েই লি অ্যামাজন ওয়েব সার্ভিসের একজন মেশিন লার্নিং বিশেষজ্ঞ। তিনি তার পিএইচ.ডি. অপারেশনস রিসার্চে যখন তিনি তার উপদেষ্টার গবেষণা অনুদানের হিসাব ভেঙ্গে দেন এবং নোবেল পুরস্কার প্রদানে ব্যর্থ হন তার প্রতিশ্রুতি। বর্তমানে তিনি আর্থিক পরিষেবা এবং বীমা শিল্পের গ্রাহকদের AWS-এ মেশিন লার্নিং সমাধান তৈরি করতে সহায়তা করেন। অবসর সময়ে তিনি পড়া ও পড়াতে পছন্দ করেন।

Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.কিয়ুন ঝাও অ্যামাজন সেজমেকার ইনফারেন্স প্ল্যাটফর্ম টিমের একজন সিনিয়র সফটওয়্যার ডেভেলপমেন্ট ইঞ্জিনিয়ার। তিনি ডিপ্লোয়মেন্ট গার্ডেল এবং শ্যাডো ডিপ্লয়মেন্টের প্রধান বিকাশকারী এবং তিনি গ্রাহকদের এমএল ওয়ার্কলোড এবং উচ্চ প্রাপ্যতা সহ স্কেলে স্থাপনা পরিচালনা করতে সহায়তা করার দিকে মনোনিবেশ করেন। তিনি দ্রুত এবং নিরাপদ ML চাকরি স্থাপন এবং স্বাচ্ছন্দ্যে ML অনলাইন পরীক্ষা চালানোর জন্য প্ল্যাটফর্ম আর্কিটেকচারের বিবর্তনে কাজ করেন। তার অবসর সময়ে, তিনি পড়া, গেমিং এবং ভ্রমণ উপভোগ করেন।

Amazon SageMaker শ্যাডো টেস্টিং PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে ML মডেল আপডেটের উৎপাদন প্রভাব কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.তরুণ সাইরাম অ্যামাজন সেজমেকার ইনফারেন্সের একজন সিনিয়র প্রোডাক্ট ম্যানেজার। তিনি মেশিন লার্নিং-এর সাম্প্রতিক প্রবণতা সম্পর্কে জানতে আগ্রহী এবং গ্রাহকদের তাদের সাহায্য করতে আগ্রহী। তার অবসর সময়ে, তিনি বাইক চালানো, স্কিইং এবং টেনিস খেলা উপভোগ করেন।

সময় স্ট্যাম্প:

থেকে আরো এডাব্লুএস মেশিন লার্নিং

3xLOGIC নিরীক্ষণ এজেন্টদের লাইভ ভিডিও স্ট্রিমগুলিতে বুদ্ধিমান ভিডিও বিশ্লেষণ প্রদান করতে Amazon Recognition স্ট্রিমিং ভিডিও ইভেন্ট ব্যবহার করে

উত্স নোড: 1284772
সময় স্ট্যাম্প: এপ্রিল 28, 2022