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

Amazon SageMaker Pipelines লোকাল মোড দিয়ে খরচ এবং ডেভেলপমেন্ট টাইম কমান

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

এমএল জীবনচক্রের ওভারভিউ

ML-এ নতুন উদ্ভাবন এবং অ্যাপ্লিকেশনের প্রধান চালকগুলির মধ্যে একটি হল সস্তা কম্পিউট বিকল্পগুলির সাথে ডেটার প্রাপ্যতা এবং পরিমাণ। বেশ কয়েকটি ডোমেনে, ML ক্লাসিক্যাল বিগ ডেটা এবং বিশ্লেষণাত্মক কৌশলগুলির সাথে পূর্বে অমীমাংসিত সমস্যাগুলি সমাধান করতে সক্ষম বলে প্রমাণিত হয়েছে এবং ডেটা সায়েন্স এবং এমএল অনুশীলনকারীদের চাহিদা ক্রমাগত বৃদ্ধি পাচ্ছে। একটি খুব উচ্চ স্তর থেকে, ML জীবনচক্র অনেকগুলি বিভিন্ন অংশ নিয়ে গঠিত, কিন্তু একটি ML মডেলের বিল্ডিং সাধারণত নিম্নলিখিত সাধারণ পদক্ষেপগুলি নিয়ে গঠিত:

  1. ডেটা পরিষ্কার এবং প্রস্তুতি (ফিচার ইঞ্জিনিয়ারিং)
  2. মডেল প্রশিক্ষণ এবং টিউনিং
  3. মডেল মূল্যায়ন
  4. মডেল স্থাপনা (বা ব্যাচ রূপান্তর)

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

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

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

সেজমেকার পাইপলাইন

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

SageMaker Pipelines ML-এ ক্রমাগত ইন্টিগ্রেশন এবং ক্রমাগত স্থাপনার (CI/CD) অনুশীলন নিয়ে আসে, যেমন উন্নয়ন এবং উৎপাদন পরিবেশের মধ্যে সমতা বজায় রাখা, সংস্করণ নিয়ন্ত্রণ, অন-ডিমান্ড টেস্টিং এবং এন্ড-টু-এন্ড অটোমেশন, যা আপনাকে আপনার সর্বত্র ML স্কেল করতে সাহায্য করে। সংগঠন. DevOps অনুশীলনকারীরা জানেন যে CI/CD কৌশলগুলি ব্যবহার করার কিছু প্রধান সুবিধার মধ্যে রয়েছে পুনঃব্যবহারযোগ্য উপাদানগুলির মাধ্যমে উত্পাদনশীলতা বৃদ্ধি এবং স্বয়ংক্রিয় পরীক্ষার মাধ্যমে গুণমান বৃদ্ধি, যা আপনার ব্যবসায়িক উদ্দেশ্যগুলির জন্য দ্রুত ROI বাড়ে। এই সুবিধাগুলি এখন MLOps অনুশীলনকারীদের কাছে সেজমেকার পাইপলাইনগুলি ব্যবহার করে প্রশিক্ষণ, পরীক্ষা এবং এমএল মডেলগুলির স্থাপনা স্বয়ংক্রিয়ভাবে উপলব্ধ। স্থানীয় মোডের সাথে, আপনি এখন একটি পাইপলাইনে ব্যবহারের জন্য স্ক্রিপ্টগুলি বিকাশ করার সময় আরও দ্রুত পুনরাবৃত্তি করতে পারেন। মনে রাখবেন যে স্থানীয় পাইপলাইন উদাহরণগুলি স্টুডিও IDE-এর মধ্যে দেখা বা চালানো যাবে না; তবে, স্থানীয় পাইপলাইনগুলির জন্য অতিরিক্ত দেখার বিকল্পগুলি শীঘ্রই উপলব্ধ হবে৷

SageMaker SDK একটি সাধারণ উদ্দেশ্য প্রদান করে স্থানীয় মোড কনফিগারেশন যা ডেভেলপারদের তাদের স্থানীয় পরিবেশে সমর্থিত প্রসেসর এবং অনুমানকারী চালানো এবং পরীক্ষা করার অনুমতি দেয়। আপনি একাধিক AWS-সমর্থিত ফ্রেমওয়ার্ক ইমেজ (TensorFlow, MXNet, Chainer, PyTorch, এবং Scikit-Learn) এবং সেইসাথে আপনার নিজের সরবরাহ করা ছবিগুলির সাথে স্থানীয় মোড প্রশিক্ষণ ব্যবহার করতে পারেন।

সেজমেকার পাইপলাইন, যা অর্কেস্ট্রেটেড ওয়ার্কফ্লো ধাপগুলির একটি ডাইরেক্টেড অ্যাসাইক্লিক গ্রাফ (ডিএজি) তৈরি করে, এমএল জীবনচক্রের অংশ এমন অনেক কার্যকলাপকে সমর্থন করে। স্থানীয় মোডে, নিম্নলিখিত পদক্ষেপগুলি সমর্থিত:

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

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

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

স্থানীয় মোড ডেটা বিজ্ঞানীদের একত্রে ধাপগুলি সেলাই করার অনুমতি দেয়, যার মধ্যে প্রক্রিয়াকরণ, প্রশিক্ষণ এবং মূল্যায়নের কাজ অন্তর্ভুক্ত থাকতে পারে এবং স্থানীয়ভাবে সমগ্র কর্মপ্রবাহ চালাতে পারে। যখন আপনি স্থানীয়ভাবে পরীক্ষা শেষ করেন, তখন আপনি প্রতিস্থাপন করে সেজমেকার পরিচালিত পরিবেশে পাইপলাইনটি পুনরায় চালু করতে পারেন LocalPipelineSession সঙ্গে বস্তু PipelineSession, যা ML জীবনচক্রে ধারাবাহিকতা নিয়ে আসে।

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

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

  • প্রক্রিয়াকরণের ধাপ (ফিচার ইঞ্জিনিয়ারিং)
  • প্রশিক্ষণের ধাপ (মডেল প্রশিক্ষণ)
  • প্রক্রিয়াকরণ পদক্ষেপ (মডেল মূল্যায়ন)
  • শর্ত ধাপ (মডেল নির্ভুলতা)
  • মডেল ধাপ তৈরি করুন (মডেল)
  • ট্রান্সফর্ম স্টেপ (ব্যাচ ট্রান্সফর্ম)
  • রেজিস্টার মডেল স্টেপ (মডেল প্যাকেজ)
  • ব্যর্থ পদক্ষেপ (রান ব্যর্থ)

নিম্নলিখিত চিত্রটি আমাদের পাইপলাইন চিত্রিত করে।

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

পূর্বশর্ত

এই পোস্টে অনুসরণ করতে, আপনার নিম্নলিখিতগুলি প্রয়োজন:

এই পূর্বশর্তগুলি কার্যকর হওয়ার পরে, আপনি নিম্নলিখিত বিভাগে বর্ণিত নমুনা নোটবুকটি চালাতে পারেন।

আপনার পাইপলাইন তৈরি করুন

এই নোটবুক নমুনা, আমরা ব্যবহার সেজমেকার স্ক্রিপ্ট মোড বেশিরভাগ ML প্রক্রিয়ার জন্য, যার মানে হল যে আমরা কার্যকলাপটি সম্পাদন করতে এবং এই কোডের একটি রেফারেন্স পাস করার জন্য প্রকৃত পাইথন কোড (স্ক্রিপ্ট) প্রদান করি। স্ক্রিপ্ট মোড SageMaker প্রক্রিয়াকরণের মধ্যে আচরণ নিয়ন্ত্রণ করার জন্য দুর্দান্ত নমনীয়তা প্রদান করে আপনাকে আপনার কোড কাস্টমাইজ করার অনুমতি দিয়ে এখনও সেজমেকার পূর্ব-নির্মিত পাত্র যেমন XGBoost বা Scikit-Learn এর সুবিধা গ্রহণ করে। কাস্টম কোডটি ম্যাজিক কমান্ড দিয়ে শুরু হওয়া সেলগুলি ব্যবহার করে একটি পাইথন স্ক্রিপ্ট ফাইলে লেখা হয় %%writefile, নিম্নলিখিত মত:

%%writefile code/evaluation.py

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

from sagemaker.workflow.pipeline_context import LocalPipelineSession

# Create a `LocalPipelineSession` object so that each 
# pipeline step will run locally
# To run this pipeline in the cloud, you must change 
# the `LocalPipelineSession()` to `PipelineSession()`
local_pipeline_session = LocalPipelineSession()
region = local_pipeline_session.boto_region_name

default_bucket = local_pipeline_session.default_bucket()
prefix = "sagemaker-pipelines-local-mode-example"

আমরা পৃথক পাইপলাইন পদক্ষেপগুলি তৈরি করার আগে, আমরা পাইপলাইনের দ্বারা ব্যবহৃত কিছু পরামিতি সেট করি। এই প্যারামিটারগুলির মধ্যে কিছু স্ট্রিং লিটারেল, অন্যগুলি SDK দ্বারা প্রদত্ত বিশেষ গণনাকৃত প্রকার হিসাবে তৈরি করা হয়। গণনাকৃত টাইপিং নিশ্চিত করে যে পাইপলাইনে বৈধ সেটিংস প্রদান করা হয়েছে, যেমন এটি, যা পাস করা হয় ConditionLessThanOrEqualTo আরও নিচের ধাপ:

mse_threshold = ParameterFloat(name="MseThreshold", default_value=7.0)

একটি ডেটা প্রসেসিং ধাপ তৈরি করতে, যা এখানে ফিচার ইঞ্জিনিয়ারিং করতে ব্যবহৃত হয়, আমরা ব্যবহার করি SKLearnProcessor ডেটাসেট লোড এবং রূপান্তর করতে। আমরা পাস local_pipeline_session ক্লাস কনস্ট্রাক্টরের জন্য পরিবর্তনশীল, যা স্থানীয় মোডে চালানোর জন্য ওয়ার্কফ্লো ধাপকে নির্দেশ করে:

from sagemaker.sklearn.processing import SKLearnProcessor

framework_version = "1.0-1"

sklearn_processor = SKLearnProcessor(
    framework_version=framework_version,
    instance_type=instance_type,
    instance_count=processing_instance_count,
    base_job_name="sklearn-abalone-process",
    role=role,
    sagemaker_session=local_pipeline_session,
)

এর পরে, আমরা আমাদের প্রথম প্রকৃত পাইপলাইন ধাপ তৈরি করি, ক ProcessingStep অবজেক্ট, যেমন SageMaker SDK থেকে আমদানি করা হয়েছে। প্রসেসর আর্গুমেন্ট একটি কল থেকে ফিরে SKLearnProcessor রান() পদ্ধতি। এই ওয়ার্কফ্লো ধাপটি নোটবুকের শেষের দিকে অন্যান্য ধাপের সাথে মিলিত হয় যাতে পাইপলাইনের মধ্যে অপারেশনের ক্রম নির্দেশ করা হয়।

from sagemaker.processing import ProcessingInput, ProcessingOutput
from sagemaker.workflow.steps import ProcessingStep

processor_args = sklearn_processor.run(
    inputs=[
        ProcessingInput(source=input_data, destination="/opt/ml/processing/input"),
    ],
    outputs=[
        ProcessingOutput(output_name="train", source="/opt/ml/processing/train"),
        ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation"),
        ProcessingOutput(output_name="test", source="/opt/ml/processing/test"),
    ],
    code="code/preprocessing.py",
)

step_process = ProcessingStep(name="AbaloneProcess", step_args=processor_args)

এর পরে, আমরা SageMaker SDK ব্যবহার করে প্রথমে একটি প্রমিত অনুমানকারীকে ইনস্ট্যান্টিয়েট করে একটি প্রশিক্ষণের ধাপ স্থাপন করার জন্য কোড প্রদান করি। আমরা একই পাস local_pipeline_session অনুমানকারীর পরিবর্তনশীল, xgb_train নামে, হিসাবে sagemaker_session যুক্তি. যেহেতু আমরা একটি XGBoost মডেলকে প্রশিক্ষণ দিতে চাই, তাই ফ্রেমওয়ার্ক এবং বেশ কয়েকটি সংস্করণের পরামিতি সহ নিম্নলিখিত পরামিতিগুলি নির্দিষ্ট করে আমাদের অবশ্যই একটি বৈধ চিত্র URI তৈরি করতে হবে:

from sagemaker.estimator import Estimator
from sagemaker.inputs import TrainingInput

model_path = f"s3://{default_bucket}/{prefix}/model"
image_uri = sagemaker.image_uris.retrieve(
    framework="xgboost",
    region=region,
    version="1.5-1",
    py_version="py3",
    instance_type=instance_type,
)

xgb_train = Estimator(
    image_uri=image_uri,
    entry_point="code/abalone.py",
    instance_type=instance_type,
    instance_count=training_instance_count,
    output_path=model_path,
    role=role,
    sagemaker_session=local_pipeline_session,
)

আমরা ঐচ্ছিকভাবে অতিরিক্ত অনুমানকারী পদ্ধতি কল করতে পারি, উদাহরণস্বরূপ set_hyperparameters(), প্রশিক্ষণ কাজের জন্য হাইপারপ্যারামিটার সেটিংস প্রদান করতে। এখন যেহেতু আমাদের একটি অনুমানকারী কনফিগার করা আছে, আমরা প্রকৃত প্রশিক্ষণের ধাপ তৈরি করতে প্রস্তুত। আবার, আমরা আমদানি TrainingStep SageMaker SDK লাইব্রেরি থেকে ক্লাস:

from sagemaker.workflow.steps import TrainingStep

step_train = TrainingStep(name="AbaloneTrain", step_args=train_args)

এর পরে, আমরা মডেল মূল্যায়ন সঞ্চালনের জন্য আরেকটি প্রক্রিয়াকরণ ধাপ তৈরি করি। এটি একটি তৈরি করে করা হয় ScriptProcessor উদাহরণ এবং পাস করা local_pipeline_session একটি পরামিতি হিসাবে বস্তু:

from sagemaker.processing import ScriptProcessor

script_eval = ScriptProcessor(
    image_uri=image_uri,
    command=["python3"],
    instance_type=instance_type,
    instance_count=processing_instance_count,
    base_job_name="script-abalone-eval",
    role=role,
    sagemaker_session=local_pipeline_session,
)

প্রশিক্ষিত মডেলের স্থাপনা সক্ষম করতে, হয় a সেজমেকার রিয়েল-টাইম এন্ডপয়েন্ট অথবা একটি ব্যাচ রূপান্তর করতে, আমাদের একটি তৈরি করতে হবে Model মডেল আর্টিফ্যাক্ট, সঠিক ইমেজ URI, এবং ঐচ্ছিকভাবে আমাদের কাস্টম ইনফারেন্স কোড পাস করে বস্তু। আমরা তারপর এই পাস Model আপত্তি a ModelStep, যা স্থানীয় পাইপলাইনে যোগ করা হয়। নিম্নলিখিত কোড দেখুন:

from sagemaker.model import Model

model = Model(
    image_uri=image_uri,
    model_data=step_train.properties.ModelArtifacts.S3ModelArtifacts,
    source_dir="code",
    entry_point="inference.py",
    role=role,
    sagemaker_session=local_pipeline_session,
)

from sagemaker.workflow.model_step import ModelStep

step_create_model = ModelStep(name="AbaloneCreateModel", 
    step_args=model.create(instance_type=instance_type)
)

এরপরে, আমরা একটি ব্যাচ ট্রান্সফর্ম স্টেপ তৈরি করি যেখানে আমরা ফিচার ভেক্টরের একটি সেট জমা দিই এবং অনুমান সম্পাদন করি। আমাদের প্রথমে একটি তৈরি করতে হবে Transformer বস্তু এবং পাস local_pipeline_session এটির পরামিতি। তারপর আমরা একটি তৈরি করি TransformStep, প্রয়োজনীয় আর্গুমেন্ট পাস করে, এবং পাইপলাইন সংজ্ঞাতে এটি যোগ করুন:

from sagemaker.transformer import Transformer

transformer = Transformer(
    model_name=step_create_model.properties.ModelName,
    instance_type=instance_type,
    instance_count=transform_instance_count,
    output_path=f"s3://{default_bucket}/{prefix}/transform",
    sagemaker_session=local_pipeline_session,
)

from sagemaker.workflow.steps import TransformStep

transform_args = transformer.transform(transform_data, content_type="text/csv")

step_transform = TransformStep(name="AbaloneTransform", step_args=transform_args)

পরিশেষে, আমরা ওয়ার্কফ্লোতে একটি শাখা শর্ত যোগ করতে চাই যাতে মডেল মূল্যায়নের ফলাফল আমাদের মানদণ্ড পূরণ করলে আমরা শুধুমাত্র ব্যাচ ট্রান্সফর্ম চালাই। আমরা একটি যোগ করে এই শর্তসাপেক্ষ নির্দেশ করতে পারি ConditionStep একটি নির্দিষ্ট অবস্থার ধরন সহ, যেমন ConditionLessThanOrEqualTo. তারপরে আমরা দুটি শাখার জন্য ধাপগুলি গণনা করি, মূলত পাইপলাইনের if/else বা true/false শাখাগুলিকে সংজ্ঞায়িত করে। if_steps দেওয়া আছে ConditionStep (step_create_model, step_transformযখনই শর্ত মূল্যায়ন করা হয় তখনই চালানো হয় True.

from sagemaker.workflow.conditions import ConditionLessThanOrEqualTo
from sagemaker.workflow.condition_step import ConditionStep
from sagemaker.workflow.functions import JsonGet

cond_lte = ConditionLessThanOrEqualTo(
    left=JsonGet(
        step_name=step_eval.name,
        property_file=evaluation_report,
        json_path="regression_metrics.mse.value",),
    right=mse_threshold,
)

step_cond = ConditionStep(
    name="AbaloneMSECond",
    conditions=[cond_lte],
    if_steps=[step_create_model, step_transform],
    else_steps=[step_fail],
)

নিম্নলিখিত চিত্রটি এই শর্তসাপেক্ষ শাখা এবং সংশ্লিষ্ট if/else ধাপগুলিকে চিত্রিত করে৷ শর্ত ধাপের তুলনায় মডেল মূল্যায়ন ধাপের ফলাফলের উপর ভিত্তি করে শুধুমাত্র একটি শাখা চালানো হয়।

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

এখন যেহেতু আমরা আমাদের সমস্ত পদক্ষেপ সংজ্ঞায়িত করেছি এবং অন্তর্নিহিত শ্রেণির উদাহরণ তৈরি করেছি, আমরা সেগুলিকে একটি পাইপলাইনে একত্রিত করতে পারি। আমরা কিছু পরামিতি প্রদান করি, এবং শুধুমাত্র পছন্দসই ক্রমে পদক্ষেপগুলি তালিকাবদ্ধ করে অপারেশনের ক্রমটিকে অত্যন্ত গুরুত্বপূর্ণভাবে সংজ্ঞায়িত করি। উল্লেখ্য যে TransformStep এখানে দেখানো হয়নি কারণ এটি শর্তসাপেক্ষ পদক্ষেপের লক্ষ্য, এবং ধাপে যুক্তি হিসাবে প্রদান করা হয়েছিল ConditionalStep তার আগে।

from sagemaker.workflow.pipeline import Pipeline

pipeline_name = f"LocalModelPipeline"
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[
        input_data,
        mse_threshold,
    ],
    steps=[step_process, step_train, step_eval, step_cond],
    sagemaker_session=local_pipeline_session,
)

পাইপলাইন চালানোর জন্য, আপনাকে দুটি পদ্ধতিতে কল করতে হবে: pipeline.upsert(), যা অন্তর্নিহিত পরিষেবাতে পাইপলাইন আপলোড করে, এবং pipeline.start(), যা পাইপলাইন চালানো শুরু করে। আপনি রান স্ট্যাটাস জিজ্ঞাসাবাদ, পাইপলাইন পদক্ষেপ তালিকা, এবং আরও অনেক অন্যান্য পদ্ধতি ব্যবহার করতে পারেন। যেহেতু আমরা স্থানীয় মোড পাইপলাইন সেশন ব্যবহার করেছি, এই পদক্ষেপগুলি আপনার প্রসেসরে স্থানীয়ভাবে চালানো হয়৷ স্টার্ট পদ্ধতির নীচে সেল আউটপুট পাইপলাইন থেকে আউটপুট দেখায়:

pipeline.upsert(role_arn=role)
execution = pipeline.start()

আপনি নিম্নলিখিত অনুরূপ সেল আউটপুট নীচে একটি বার্তা দেখতে হবে:

Pipeline execution d8c3e172-089e-4e7a-ad6d-6d76caf987b7 SUCCEEDED

পরিচালিত সম্পদে ফিরে যান

আমরা নিশ্চিত করার পরে যে পাইপলাইনটি ত্রুটি ছাড়াই চলে এবং আমরা পাইপলাইনের প্রবাহ এবং ফর্ম নিয়ে সন্তুষ্ট হয়েছি, আমরা পাইপলাইনটি আবার তৈরি করতে পারি কিন্তু সেজমেকার পরিচালিত সংস্থানগুলির সাথে এবং এটিকে পুনরায় চালাতে পারি৷ শুধুমাত্র পরিবর্তন প্রয়োজন ব্যবহার করা হয় PipelineSession এর পরিবর্তে বস্তু LocalPipelineSession:

থেকে sagemaker.workflow.pipeline_context import LocalPipelineSession
from sagemaker.workflow.pipeline_context import PipelineSession

local_pipeline_session = স্থানীয় পাইপলাইন সেশন()
pipeline_session = PipelineSession()

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

from sagemaker.sklearn.processing import SKLearnProcessor

framework_version = "1.0-1"

sklearn_processor = SKLearnProcessor(
    framework_version=framework_version,
    instance_type=instance_type,
    instance_count=processing_instance_count,
    base_job_name="sklearn-abalone-process",
    role=role,
    sagemaker_session=pipeline_session,  # non-local session
)

স্থানীয় সেশন অবজেক্টটি সর্বত্র প্রতিস্থাপিত হওয়ার পরে, আমরা পাইপলাইনটি পুনরায় তৈরি করি এবং সেজমেকার পরিচালিত সংস্থানগুলির সাথে এটি চালাই:

from sagemaker.workflow.pipeline import Pipeline

pipeline_name = f"LocalModelPipeline"
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[
        input_data,
        mse_threshold,
    ],
    steps=[step_process, step_train, step_eval, step_cond],
    sagemaker_session=pipeline_session, # non-local session
)

pipeline.upsert(role_arn=role)
execution = pipeline.start()

পরিষ্কার কর

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

# delete models 
sm_client = boto3.client("sagemaker")
model_prefix="AbaloneCreateModel"
delete_models(sm_client, model_prefix)

# delete managed pipeline
pipeline_to_delete = 'SM-Managed-Pipeline'
delete_sagemaker_pipeline(sm_client, pipeline_to_delete)

উপসংহার

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

আরো জানতে, এখানে যান অ্যামাজন সেজমেকার পাইপলাইন or স্থানীয়ভাবে আপনার কাজ চালানোর জন্য SageMaker পাইপলাইন ব্যবহার করুন.


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

Amazon SageMaker Pipelines লোকাল মোড PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে খরচ এবং ডেভেলপমেন্টের সময় কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.পল হারগিস AWS, Amazon, এবং Hortonworks সহ বেশ কয়েকটি কোম্পানিতে মেশিন লার্নিং এর উপর তার প্রচেষ্টাকে কেন্দ্রীভূত করেছে। তিনি প্রযুক্তি সমাধানগুলি তৈরি করতে এবং কীভাবে এটির সর্বোচ্চ ব্যবহার করতে হয় তা লোকেদের শেখান উপভোগ করেন৷ AWS-এ তার ভূমিকার আগে, তিনি Amazon Exports এবং Expanions-এর প্রধান স্থপতি ছিলেন, amazon.com-কে আন্তর্জাতিক ক্রেতাদের অভিজ্ঞতা উন্নত করতে সাহায্য করেছিলেন। পল গ্রাহকদের বাস্তব-বিশ্বের সমস্যা সমাধানের জন্য তাদের মেশিন লার্নিং উদ্যোগ প্রসারিত করতে সাহায্য করতে পছন্দ করেন।

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

Amazon SageMaker Pipelines লোকাল মোড PlatoBlockchain ডেটা ইন্টেলিজেন্সের সাথে খরচ এবং ডেভেলপমেন্টের সময় কমিয়ে দিন। উল্লম্ব অনুসন্ধান. আ.কিরীট থাডাকা সেজমেকার সার্ভিস এসএ টিমে কাজ করা একজন এমএল সলিউশন আর্কিটেক্ট। AWS-এ যোগদানের আগে, কিরীট প্রাথমিক পর্যায়ের AI স্টার্টআপগুলিতে কাজ করেছিলেন এবং কিছু সময় AI গবেষণা, MLOps এবং প্রযুক্তিগত নেতৃত্বে বিভিন্ন ভূমিকার পরামর্শ দিয়েছিলেন।

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

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

অ্যামাজন স্বীকৃতি লাইভ ভিডিও স্ট্রিমগুলিতে রিয়েল-টাইম সতর্কতা প্রদানের জন্য স্ট্রিমিং ভিডিও ইভেন্টগুলি প্রবর্তন করে

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