AWS এবং Amazon SageMaker PlatoBlockchain Data Intelligence-এ Kubeflow ব্যবহার করে নমনীয় এবং স্কেলযোগ্য বিতরণ করা প্রশিক্ষণ আর্কিটেকচার তৈরি করুন। উল্লম্ব অনুসন্ধান. আ.

AWS এবং Amazon SageMaker-এ Kubeflow ব্যবহার করে নমনীয় এবং স্কেলযোগ্য বিতরণ করা প্রশিক্ষণ আর্কিটেকচার তৈরি করুন

এই পোস্টে, আমরা কিভাবে প্রদর্শন AWS-এ কুবেফ্লো (Kubeflow-এর একটি AWS-নির্দিষ্ট বন্টন) এর সাথে ব্যবহৃত হয় AWS ডিপ লার্নিং কন্টেইনার এবং আমাজন ইলাস্টিক ফাইল সিস্টেম (Amazon EFS) সহযোগিতাকে সহজ করে এবং উভয় ক্ষেত্রেই গভীর শিক্ষার মডেল প্রশিক্ষণে নমনীয়তা প্রদান করে অ্যামাজন ইলাস্টিক কুবারনেটস পরিষেবা (Amazon EKS) এবং আমাজন সেজমেকার একটি হাইব্রিড আর্কিটেকচার পদ্ধতি ব্যবহার করা।

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

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

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

Kubeflow এবং Kubernetes ডেটা বিজ্ঞানী দলকে নমনীয়তা এবং নিয়ন্ত্রণ প্রদান করে। যাইহোক, কম অপারেশনাল ওভারহেড সহ স্কেলে চলমান প্রশিক্ষণ ক্লাস্টারগুলির উচ্চ ব্যবহার নিশ্চিত করা এখনও চ্যালেঞ্জিং।

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

AWS এবং SageMaker-এ কুবেফ্লো কীভাবে সাহায্য করে?

TensorFlow, PyTorch, MXNet এবং অন্যান্যদের মতো গভীর শিক্ষার কাঠামোর সাথে নির্মিত নিউরাল নেটওয়ার্ক মডেলগুলি উল্লেখযোগ্যভাবে বড় প্রশিক্ষণ ডেটাসেট ব্যবহার করে অনেক বেশি নির্ভুলতা প্রদান করে, বিশেষ করে কম্পিউটার দৃষ্টি এবং প্রাকৃতিক ভাষা প্রক্রিয়াকরণের ক্ষেত্রে। যাইহোক, বড় প্রশিক্ষণ ডেটাসেটের সাথে, গভীর শিক্ষার মডেলগুলিকে প্রশিক্ষণ দিতে বেশি সময় লাগে, যা শেষ পর্যন্ত বাজারের সময়কে ধীর করে দেয়। যদি আমরা একটি ক্লাস্টার স্কেল করতে পারি এবং মডেল প্রশিক্ষণের সময়কে সপ্তাহ থেকে দিন বা ঘন্টায় নামিয়ে আনতে পারি, তাহলে এটি উত্পাদনশীলতা এবং ব্যবসার গতির উপর বিশাল প্রভাব ফেলতে পারে।

Amazon EKS পরিচালিত Kubernetes কন্ট্রোল প্লেনের ব্যবস্থা করতে সাহায্য করে। আপনি CPU এবং GPU দৃষ্টান্ত সহ বৃহৎ-স্কেল প্রশিক্ষণ ক্লাস্টার তৈরি করতে Amazon EKS ব্যবহার করতে পারেন এবং ML-বন্ধুত্বপূর্ণ, ওপেন-সোর্স টুল সরবরাহ করতে এবং আপনার দলের উত্পাদনশীলতা উন্নত করতে Kubeflow Pipelines ব্যবহার করে বহনযোগ্য এবং স্কেলযোগ্য ML ওয়ার্কফ্লোগুলি পরিচালনা করতে Kubeflow টুলকিট ব্যবহার করতে পারেন। বাজার করার সময় কমিয়ে দিন।

যাইহোক, এই পদ্ধতির সাথে কয়েকটি চ্যালেঞ্জ হতে পারে:

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

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

এই Kubeflow উপাদানগুলি প্রতিস্থাপন করা Kubernetes থেকে Kubeflow কন্ট্রোল প্লেনের গুরুত্বপূর্ণ অংশগুলিকে আলাদা করে, একটি সুরক্ষিত, মাপযোগ্য, স্থিতিস্থাপক, এবং খরচ-অপ্টিমাইজড ডিজাইন প্রদান করে। এই পদ্ধতিটি EKS ডেটা প্লেন থেকে সঞ্চয়স্থান এবং গণনা সংস্থানগুলিকেও মুক্ত করে, যা বিতরণকৃত মডেল প্রশিক্ষণ বা ব্যবহারকারী নোটবুক সার্ভারের মতো অ্যাপ্লিকেশনগুলির জন্য প্রয়োজন হতে পারে। AWS-এ Kubeflow ডিপ লার্নিং কন্টেইনার (DLC) ইমেজগুলির সাথে Jupyter নোটবুকের নেটিভ ইন্টিগ্রেশনও প্রদান করে, যেগুলি PyTorch এবং TensorFlow-এর মতো AWS অপ্টিমাইজড ডিপ লার্নিং ফ্রেমওয়ার্কের সাথে প্রি-প্যাকেজ এবং প্রি-কনফিগার করা হয় যেগুলি আপনাকে ডিল না করেই আপনার ট্রেনিং কোড লেখা শুরু করতে দেয়। নির্ভরতা রেজোলিউশন এবং ফ্রেমওয়ার্ক অপ্টিমাইজেশান সহ। এছাড়াও, প্রশিক্ষণ ক্লাস্টার এবং ডেভেলপমেন্ট এনভায়রনমেন্টের সাথে Amazon EFS ইন্টিগ্রেশন আপনাকে আপনার কোড এবং প্রসেসড ট্রেনিং ডেটাসেট শেয়ার করতে দেয়, যা কন্টেইনার ইমেজ তৈরি করা এবং প্রতিটি কোড পরিবর্তনের পরে বিশাল ডেটাসেট লোড করা এড়িয়ে যায়। AWS-এ Kubeflow-এর সাথে এই ইন্টিগ্রেশনগুলি আপনাকে মডেল বিল্ডিং এবং প্রশিক্ষণের সময় ত্বরান্বিত করতে সাহায্য করে এবং সহজ ডেটা এবং কোড ভাগ করে নেওয়ার সাথে আরও ভাল সহযোগিতার অনুমতি দেয়।

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

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

নিম্নোক্ত আর্কিটেকচার বর্ণনা করে যে কিভাবে আমরা কুবেফ্লো পাইপলাইনগুলিকে পোর্টেবল এবং স্কেলেবল এন্ড-টু-এন্ড এমএল ওয়ার্কফ্লো তৈরি করতে ব্যবহার করি এবং রানটাইম প্যারামিটারের উপর ভিত্তি করে Kubeflow ট্রেনিং বা SageMaker ব্যবহার করে শর্তসাপেক্ষে Kubernetes-এ বিতরণ করা প্রশিক্ষণ চালাই।

Kubeflow প্রশিক্ষণ হল Kubernetes অপারেটরদের একটি গ্রুপ যারা টেনসরফ্লো, পাইটর্চ এবং অন্যান্যের মতো বিভিন্ন ফ্রেমওয়ার্ক ব্যবহার করে এমএল মডেলের বিতরণ করা প্রশিক্ষণের জন্য কুবেফ্লোতে সহায়তা যোগ করে। pytorch-operator Kubernetes এর Kubeflow বাস্তবায়ন কাস্টম সম্পদ (PyTorchJob) Kubernetes-এ বিতরণকৃত PyTorch প্রশিক্ষণের কাজ চালাতে।

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

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

ওয়ার্কফ্লো তৈরির প্রক্রিয়ার অংশ হিসাবে, আপনি এই পাইপলাইনটি তৈরি করতে নিম্নলিখিত পদক্ষেপগুলি (পূর্ববর্তী চিত্রে দেখানো হয়েছে) সম্পূর্ণ করুন:

  1. একটি Kubeflow ড্যাশবোর্ড তৈরি করতে এবং Kubeflow কেন্দ্রীয় ড্যাশবোর্ড থেকে Jupyter নোটবুক অ্যাক্সেস করতে Kubeflow ম্যানিফেস্ট ফাইল ব্যবহার করুন।
  2. পাইথন কোড ব্যবহার করে Kubeflow পাইপলাইন তৈরি এবং কম্পাইল করতে Kubeflow পাইপলাইন SDK ব্যবহার করুন। পাইপলাইন সংকলন পাইথন ফাংশনকে একটি ওয়ার্কফ্লো রিসোর্সে রূপান্তর করে, যা একটি আর্গো-সামঞ্জস্যপূর্ণ YAML ফর্ম্যাট।
  3. পাইপলাইন চালানোর জন্য পাইপলাইন পরিষেবা শেষ পয়েন্টে কল করতে Kubeflow Pipelines SDK ক্লায়েন্ট ব্যবহার করুন।
  4. পাইপলাইন শর্তসাপেক্ষ রানটাইম ভেরিয়েবলের মূল্যায়ন করে এবং সেজমেকার বা কুবারনেটসের মধ্যে লক্ষ্যমাত্রা চালানোর পরিবেশ হিসেবে সিদ্ধান্ত নেয়।
  5. কুবেফ্লো পাইটর্চ লঞ্চার উপাদানটি স্থানীয় কুবারনেটস পরিবেশে বিতরণ করা প্রশিক্ষণ চালানোর জন্য ব্যবহার করুন, অথবা সেজমেকার পরিচালিত প্ল্যাটফর্মে প্রশিক্ষণ জমা দিতে সেজমেকার উপাদান ব্যবহার করুন।

নিম্নলিখিত চিত্রটি আর্কিটেকচারের সাথে জড়িত কুবেফ্লো পাইপলাইন উপাদানগুলিকে দেখায় যা আমাদের কুবারনেটস বা সেজমেকার বিতরণ করা পরিবেশের মধ্যে বেছে নেওয়ার নমনীয়তা দেয়।

Kubeflow পাইপলাইন উপাদান

কেস ওয়ার্কফ্লো ব্যবহার করুন

আমরা AWS-এ Kubeflow ব্যবহার করে Amazon EKS এবং SageMaker ব্যবহার করে বিতরণ করা প্রশিক্ষণের জন্য ব্যবহার কেস ইনস্টল এবং চালানোর জন্য নিম্নলিখিত ধাপে ধাপে পদ্ধতি ব্যবহার করি।

AWS এবং Amazon SageMaker PlatoBlockchain Data Intelligence-এ Kubeflow ব্যবহার করে নমনীয় এবং স্কেলযোগ্য বিতরণ করা প্রশিক্ষণ আর্কিটেকচার তৈরি করুন। উল্লম্ব অনুসন্ধান. আ.

পূর্বশর্ত

এই ওয়াকথ্রুটির জন্য, আপনার নিম্নলিখিত পূর্বশর্তগুলি থাকা উচিত:

  • An এডাব্লুএস অ্যাকাউন্ট.
  • ডকার এবং সঙ্গে একটি মেশিন এডাব্লুএস কমান্ড লাইন ইন্টারফেস (AWS CLI) ইনস্টল করা হয়েছে।
  • ঐচ্ছিকভাবে, আপনি ব্যবহার করতে পারেন এডাব্লুএস ক্লাউড 9, একটি ক্লাউড-ভিত্তিক সমন্বিত উন্নয়ন পরিবেশ (IDE) যা আপনার ওয়েব ব্রাউজার থেকে সমস্ত কাজ সম্পূর্ণ করতে সক্ষম করে। সেটআপ নির্দেশাবলীর জন্য, পড়ুন Cloud9 IDE সেটআপ করুন. আপনার Cloud9 পরিবেশ থেকে, প্লাস চিহ্নটি নির্বাচন করুন এবং নতুন টার্মিনাল খুলুন।
  • একটি ভূমিকা তৈরি করুন নাম দিয়ে sagemakerrole. পরিচালিত নীতি যোগ করুন AmazonSageMakerFullAccess এবং AmazonS3FullAccess সেজমেকারকে S3 বালতিতে অ্যাক্সেস দিতে। এই ভূমিকাটি কুবেফ্লো পাইপলাইন পদক্ষেপের অংশ হিসাবে জমা দেওয়া SageMaker চাকরি দ্বারা ব্যবহৃত হয়।
  • নিশ্চিত করুন যে আপনার অ্যাকাউন্টের জন্য SageMaker ট্রেনিং রিসোর্স টাইপ সীমা আছে ml.p3.2xlarge ব্যবহার করে 2 এ বৃদ্ধি পেয়েছে পরিষেবা কোটা কনসোল

1. AWS-এ Amazon EKS এবং Kubeflow ইনস্টল করুন

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

আমরা এই পোস্টে ডু ফ্রেমওয়ার্ক ব্যবহার করি, যা অ্যাড-অন হিসাবে Amazon EFS-এর সাথে Kubeflow স্থাপনাকে স্বয়ংক্রিয় করে। উত্পাদন স্থাপনার জন্য AWS স্থাপনার বিকল্পগুলিতে অফিসিয়াল Kubeflow এর জন্য, পড়ুন বিস্তৃতি.

বর্তমান কার্যকারী ডিরেক্টরি এবং AWS CLI কনফিগার করুন

আমরা একটি কার্যকরী ডিরেক্টরি কনফিগার করি যাতে আমরা এটিকে অনুসরণকারী পদক্ষেপগুলির জন্য শুরুর বিন্দু হিসাবে উল্লেখ করতে পারি:

export working_dir=$PWD

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

aws configure --profile=kubeflow
AWS Access Key ID [None]: 
AWS Secret Access Key [None]: 
Default region name [None]: us-west-2
Default output format [None]: json

# (In Cloud9, select “Cancel” and “Permanently disable” when the AWS managed temporary credentials dialog pops up)

export AWS_PROFILE=kubeflow

1.1 একটি EKS ক্লাস্টার তৈরি করুন

আপনার যদি ইতিমধ্যেই একটি EKS ক্লাস্টার উপলব্ধ থাকে, তাহলে আপনি পরবর্তী বিভাগে যেতে পারেন। এই পোস্টের জন্য, আমরা ব্যবহার করি aws-do-eks প্রকল্প আমাদের ক্লাস্টার তৈরি করতে।

  1. প্রথমে আপনার কাজের ডিরেক্টরিতে প্রকল্পটি ক্লোন করুন
    cd ${working_dir}
    git clone https://github.com/aws-samples/aws-do-eks
    cd aws-do-eks/

  2. তারপর তৈরি করুন এবং চালান aws-do-eks ধারক:
    ./build.sh
    ./run.sh

    সার্জারির build.sh স্ক্রিপ্ট একটি ডকার কন্টেইনার ইমেজ তৈরি করে যাতে EKS ক্লাস্টারগুলির বিধান এবং পরিচালনার জন্য সমস্ত প্রয়োজনীয় সরঞ্জাম এবং স্ক্রিপ্ট রয়েছে। দ্য run.sh স্ক্রিপ্ট তৈরি করা ডকার ইমেজ ব্যবহার করে একটি ধারক শুরু করে এবং এটি বজায় রাখে, তাই আমরা এটিকে আমাদের EKS ব্যবস্থাপনা পরিবেশ হিসাবে ব্যবহার করতে পারি। আপনার অবস্থা দেখতে aws-do-eks ধারক, আপনি চালাতে পারেন ./status.sh. যদি ধারকটি প্রস্থান অবস্থায় থাকে তবে আপনি ব্যবহার করতে পারেন ./start.sh ধারকটি উপরে আনতে স্ক্রিপ্ট বা ধারকটি পুনরায় চালু করতে, আপনি চালাতে পারেন ./stop.sh দ্বারা অনুসরণ ./run.sh.

  3. দৌড়ে একটি শেল খুলুন aws-do-eks ধারক:
  4. আমাদের KubeFlow স্থাপনার জন্য EKS ক্লাস্টার কনফিগারেশন পর্যালোচনা করতে, নিম্নলিখিত কমান্ডটি চালান:
    vi ./eks-kubeflow.yaml

    ডিফল্টরূপে, এই কনফিগারেশন নামের একটি ক্লাস্টার তৈরি করে eks-kubeflow মধ্যে us-west-2 ছয়টি m5.xlarge নোড সহ অঞ্চল। এছাড়াও, ডিফল্টরূপে EBS ভলিউম এনক্রিপশন সক্রিয় করা হয় না। আপনি যোগ করে এটি সক্রিয় করতে পারেন "volumeEncrypted: true" নোডগ্রুপে এবং এটি ডিফল্ট কী ব্যবহার করে এনক্রিপ্ট করবে। প্রয়োজনে অন্যান্য কনফিগারেশন সেটিংস পরিবর্তন করুন।

  5. ক্লাস্টার তৈরি করতে, নিম্নলিখিত কমান্ডটি চালান:
    export AWS_PROFILE=kubeflow
    eksctl create cluster -f ./eks-kubeflow.yaml

    ক্লাস্টার প্রভিশনিং প্রক্রিয়া 30 মিনিট পর্যন্ত সময় নিতে পারে।

  6. ক্লাস্টারটি সফলভাবে তৈরি হয়েছে তা যাচাই করতে, নিম্নলিখিত কমান্ডটি চালান:
    kubectl get nodes

    সফলভাবে তৈরি করা একটি ক্লাস্টারের জন্য পূর্ববর্তী কমান্ড থেকে আউটপুট নিম্নলিখিত কোডের মত দেখায়:

    root@cdf4ecbebf62:/eks# kubectl get nodes
    NAME                                           STATUS   ROLES    AGE   VERSION
    ip-192-168-0-166.us-west-2.compute.internal    Ready       23m   v1.21.14-eks-ba74326
    ip-192-168-13-28.us-west-2.compute.internal    Ready       23m   v1.21.14-eks-ba74326
    ip-192-168-45-240.us-west-2.compute.internal   Ready       23m   v1.21.14-eks-ba74326
    ip-192-168-63-84.us-west-2.compute.internal    Ready       23m   v1.21.14-eks-ba74326
    ip-192-168-75-56.us-west-2.compute.internal    Ready       23m   v1.21.14-eks-ba74326
    ip-192-168-85-226.us-west-2.compute.internal   Ready       23m   v1.21.14-eks-ba74326

SageMaker প্রশিক্ষণ কাজের জন্য একটি EFS ভলিউম তৈরি করুন

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

আমরা একটি EFS ভলিউম তৈরি করি এবং EFS কন্টেইনার স্টোরেজ ইন্টারফেস (CSI) ড্রাইভার স্থাপন করি। এটি অবস্থিত একটি স্থাপনার স্ক্রিপ্ট দ্বারা সম্পন্ন করা হয় /eks/deployment/csi/efs মধ্যে aws-do-eks ধারক।

এই স্ক্রিপ্টটি ধরে নেয় যে আপনার অ্যাকাউন্টে একটি EKS ক্লাস্টার আছে। সেট CLUSTER_NAME= আপনার যদি একাধিক EKS ক্লাস্টার থাকে।

cd /eks/deployment/csi/efs
./deploy.sh

এই স্ক্রিপ্টটি একটি EFS ভলিউমের ব্যবস্থা করে এবং ক্লাস্টার VPC-এর সাবনেটের জন্য মাউন্ট লক্ষ্য তৈরি করে। এটি তারপর EFS CSI ড্রাইভার স্থাপন করে এবং তৈরি করে efs-sc স্টোরেজ ক্লাস এবং efs-pv EKS ক্লাস্টারে ক্রমাগত ভলিউম।

স্ক্রিপ্টের সফল সমাপ্তির পরে, আপনি নিম্নলিখিত মত আউটপুট দেখতে হবে:

Generating efs-sc.yaml ...

Applying efs-sc.yaml ...
storageclass.storage.k8s.io/efs-sc created
NAME            PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
efs-sc          efs.csi.aws.com         Delete          Immediate              false                  1s
gp2 (default)   kubernetes.io/aws-ebs   Delete          WaitForFirstConsumer   false                  36m

Generating efs-pv.yaml ...
Applying efs-pv.yaml ...
persistentvolume/efs-pv created
NAME     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
efs-pv   5Gi        RWX            Retain           Available           efs-sc                  10s

Done ...

একটি Amazon S3 VPC এন্ডপয়েন্ট তৈরি করুন

আপনি একটি ব্যক্তিগত ভিপিসি ব্যবহার করেন যা আপনার সেজমেকার প্রশিক্ষণের কাজ এবং ইএফএস ফাইল সিস্টেমে অ্যাক্সেস রয়েছে। আপনার ব্যক্তিগত VPC থেকে S3 buckets-এ SageMaker প্রশিক্ষণ ক্লাস্টার অ্যাক্সেস দিতে, আপনি একটি VPC এন্ডপয়েন্ট তৈরি করুন:

cd /eks/vpc 
export CLUSTER_NAME= 
export REGION= 
./vpc-endpoint-create.sh

আপনি এখন প্রস্থান করতে পারেন aws-do-eks ধারক শেল এবং পরবর্তী বিভাগে এগিয়ে যান:

exit

root@cdf4ecbebf62:/eks/deployment/csi/efs# exit
exit
TeamRole:~/environment/aws-do-eks (main) $

1.2 Amazon EKS-এ AWS-এ Kubeflow স্থাপন করুন

Amazon EKS-এ Kubeflow স্থাপন করতে, আমরা ব্যবহার করি aws-do-kubeflow প্রকল্প.

  1. নিম্নলিখিত কমান্ড ব্যবহার করে সংগ্রহস্থল ক্লোন করুন:
    cd ${working_dir}
    git clone https://github.com/aws-samples/aws-do-kubeflow
    cd aws-do-kubeflow

  2. তারপর প্রকল্পটি কনফিগার করুন:
    ./config.sh

    এই স্ক্রিপ্টটি একটি পাঠ্য সম্পাদকে প্রকল্প কনফিগারেশন ফাইলটি খোলে। এটা জন্য গুরুত্বপূর্ণ AWS_REGION G আপনার ক্লাস্টার যে অঞ্চলে রয়েছে সেই অঞ্চলে সেট করার জন্য, পাশাপাশি AWS_CLUSTER_NAME আপনি আগে তৈরি করা ক্লাস্টারের নামের সাথে মেলে। ডিফল্টরূপে, আপনার কনফিগারেশন ইতিমধ্যেই সঠিকভাবে সেট করা আছে, তাই যদি আপনাকে কোনো পরিবর্তন করতে না হয়, শুধু সম্পাদকটি বন্ধ করুন।

    ./build.sh
    ./run.sh
    ./exec.sh

    সার্জারির build.sh স্ক্রিপ্ট একটি ডকার কন্টেইনার ইমেজ তৈরি করে যাতে একটি বিদ্যমান Kubernetes ক্লাস্টারে Kubeflow স্থাপন এবং পরিচালনা করার জন্য প্রয়োজনীয় সমস্ত সরঞ্জাম রয়েছে। দ্য run.sh স্ক্রিপ্ট ডকার ইমেজ ব্যবহার করে একটি কন্টেইনার শুরু করে এবং exec.sh স্ক্রিপ্ট কন্টেইনারে একটি কমান্ড শেল খোলে, যা আমরা আমাদের Kubeflow ব্যবস্থাপনা পরিবেশ হিসেবে ব্যবহার করতে পারি। আপনি ব্যবহার করতে পারেন ./status.sh যদি দেখতে স্ক্রিপ্ট aws-do-kubeflow ধারক আপ এবং চলমান এবং ./stop.sh এবং ./run.sh প্রয়োজন অনুসারে এটি পুনরায় চালু করার জন্য স্ক্রিপ্ট।

  3. আপনি একটি শেল খোলা আছে পরে aws-do-eks ধারক, আপনি যাচাই করতে পারেন যে কনফিগার করা ক্লাস্টার প্রসঙ্গ প্রত্যাশা অনুযায়ী:
    root@ip-172-31-43-155:/kubeflow# kubectx
    kubeflow@eks-kubeflow.us-west-2.eksctl.io

  4. EKS ক্লাস্টারে Kubeflow স্থাপন করতে, চালান deploy.sh লিপি:
    ./kubeflow-deploy.sh

    কিউবেফ্লো নামস্থানের সমস্ত পড চলমান অবস্থায় প্রবেশ করলে স্থাপনা সফল হয়। একটি সাধারণ আউটপুট নিম্নলিখিত কোড মত দেখায়:

    Waiting for all Kubeflow pods to start Running ...
    
    Waiting for all Kubeflow pods to start Running ...
    
    Restarting central dashboard ...
    pod "centraldashboard-79f489b55-vr6lp" deleted
    /kubeflow/deploy/distro/aws/kubeflow-manifests /kubeflow/deploy/distro/aws
    /kubeflow/deploy/distro/aws
    
    Kubeflow deployment succeeded
    Granting cluster access to kubeflow profile user ...
    Argument not provided, assuming default user namespace kubeflow-user-example-com ...
    clusterrolebinding.rbac.authorization.k8s.io/kubeflow-user-example-com-cluster-admin-binding created
    Setting up access to Kubeflow Pipelines ...
    Argument not provided, assuming default user namespace kubeflow-user-example-com ...
    
    Creating pod-default for namespace kubeflow-user-example-com ...
    poddefault.kubeflow.org/access-ml-pipeline created

  5. KubeFlow পডের অবস্থা নিরীক্ষণ করতে, একটি পৃথক উইন্ডোতে, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:
    watch kubectl -n kubeflow get pods

  6. প্রেস CTRL + C যখন সমস্ত পড চলছে, তখন নিম্নলিখিত কমান্ডটি চালিয়ে ক্লাস্টারের বাইরে কুবেফ্লো ড্যাশবোর্ডটি প্রকাশ করুন:
    ./kubeflow-expose.sh

আপনি নিম্নলিখিত কোড মত দেখায় যে আউটপুট দেখতে হবে:

root@ip-172-31-43-155:/kubeflow# ./kubeflow-expose.sh
root@ip-172-31-43-155:/kubeflow# Forwarding from 127.0.0.1:8080 -> 8080
Forwarding from [::1]:8080 -> 8080

এই কমান্ডটি আপনার ক্লাস্টার থেকে আপনার স্থানীয় পোর্ট 8080-এ Istio ইনগ্রেস গেটওয়ে পরিষেবাকে পোর্ট-ফরোয়ার্ড করে। Kubeflow ড্যাশবোর্ড অ্যাক্সেস করতে, দেখুন http://localhost:8080 এবং ডিফল্ট ব্যবহারকারীর শংসাপত্র ব্যবহার করে লগ ইন করুন (user@example.com/12341234)। আপনি চালাচ্ছেন যদি aws-do-kubeflow AWS Cloud9 এ ধারক, তারপর আপনি চয়ন করতে পারেন প্রি, তাহলে বেছে নাও প্রাকদর্শন চলমান অ্যাপ্লিকেশন. আপনি যদি ডকার ডেস্কটপে চালান তবে আপনাকে এটি চালানোর প্রয়োজন হতে পারে ./kubeflow-expose.sh এর বাইরে স্ক্রিপ্ট aws-do-kubeflow ধারক।

AWS এবং Amazon SageMaker PlatoBlockchain Data Intelligence-এ Kubeflow ব্যবহার করে নমনীয় এবং স্কেলযোগ্য বিতরণ করা প্রশিক্ষণ আর্কিটেকচার তৈরি করুন। উল্লম্ব অনুসন্ধান. আ.

2. AWS পরিবেশে Kubeflow সেট আপ করুন

AWS পরিবেশে আপনার Kubeflow সেট আপ করতে, আমরা একটি EFS ভলিউম এবং একটি Jupyter নোটবুক তৈরি করি।

2.1 একটি EFS ভলিউম তৈরি করুন

একটি EFS ভলিউম তৈরি করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  • Kubeflow ড্যাশবোর্ডে, নির্বাচন করুন খন্ড নেভিগেশন ফলকে।
  • বেছে নেওয়া হয়েছে নতুন ভলিউম.
  • জন্য নামপ্রবেশ করান efs-sc-claim.
  • জন্য আয়তনের আকারপ্রবেশ করান 10.
  • জন্য স্টোরেজ ক্লাসনির্বাচন efs-sc.
  • জন্য অ্যাক্সেস মোডনির্বাচন ReadWriteOnce.
  • বেছে নিন সৃষ্টি.

AWS এবং Amazon SageMaker PlatoBlockchain Data Intelligence-এ Kubeflow ব্যবহার করে নমনীয় এবং স্কেলযোগ্য বিতরণ করা প্রশিক্ষণ আর্কিটেকচার তৈরি করুন। উল্লম্ব অনুসন্ধান. আ.

2.2 একটি জুপিটার নোটবুক তৈরি করুন

একটি নতুন নোটবুক তৈরি করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  • Kubeflow ড্যাশবোর্ডে, নির্বাচন করুন নোটবুক নেভিগেশন ফলকে।
  • বেছে নিন নতুন নোটবুক.
  • জন্য নামপ্রবেশ করান aws-hybrid-nb.
  • জন্য জুপিটার ডকেট ইমেজ, ইমেজ নির্বাচন করুন c9e4w0g3/notebook-servers/jupyter-pytorch:1.11.0-cpu-py38-ubuntu20.04-e3-v1.1 (সর্বশেষ উপলব্ধ jupyter-pytorch DLC চিত্র)।
  • জন্য সিপিইউপ্রবেশ করান 1.
  • জন্য স্মৃতিপ্রবেশ করান 5.
  • জন্য জিপিইউ, হিসাবে ছেড়ে না.
  • কোন পরিবর্তন করবেন না ওয়ার্কস্পেস ভলিউম অধ্যায়.
  • মধ্যে ডেটা ভলিউম বিভাগ, চয়ন করুন বিদ্যমান ভলিউম সংযুক্ত করুন এবং বিদ্যমান ভলিউম বিভাগ প্রসারিত করুন
  • জন্য নামনির্বাচন efs-sc-claim.
  • জন্য মাউন্ট পাথপ্রবেশ করান /home/jovyan/efs-sc-claim.
    এটি আপনার জুপিটার নোটবুকের পডে EFS ভলিউম মাউন্ট করে এবং আপনি ফোল্ডারটি দেখতে পারেন efs-sc-claim আপনার জুপিটার ল্যাব ইন্টারফেসে। আপনি এই ফোল্ডারে প্রশিক্ষণ ডেটাসেট এবং প্রশিক্ষণ কোড সংরক্ষণ করেন যাতে প্রশিক্ষণ ক্লাস্টারগুলি পরীক্ষার জন্য কন্টেইনার চিত্রগুলি পুনর্নির্মাণের প্রয়োজন ছাড়াই এটি অ্যাক্সেস করতে পারে।AWS এবং Amazon SageMaker PlatoBlockchain Data Intelligence-এ Kubeflow ব্যবহার করে নমনীয় এবং স্কেলযোগ্য বিতরণ করা প্রশিক্ষণ আর্কিটেকচার তৈরি করুন। উল্লম্ব অনুসন্ধান. আ.
  • নির্বাচন করা কুবেফ্লো পাইপলাইনে অ্যাক্সেসের অনুমতি দিন কনফিগারেশন বিভাগে।
  • বেছে নিন শুরু করা.
    যাচাই করুন যে আপনার নোটবুক সফলভাবে তৈরি হয়েছে (এটি কয়েক মিনিট সময় নিতে পারে)।AWS এবং Amazon SageMaker PlatoBlockchain Data Intelligence-এ Kubeflow ব্যবহার করে নমনীয় এবং স্কেলযোগ্য বিতরণ করা প্রশিক্ষণ আর্কিটেকচার তৈরি করুন। উল্লম্ব অনুসন্ধান. আ.
  • উপরে নোটবুক পৃষ্ঠা, চয়ন করুন সংযোগ করা JupyterLab পরিবেশে লগ ইন করতে।
  • উপরে git মেনু, নির্বাচন করুন একটি সংগ্রহস্থল ক্লোন করুন.
  • জন্য একটি রেপো ক্লোন করুনপ্রবেশ করান https://github.com/aws-samples/aws-do-kubeflow.
    AWS এবং Amazon SageMaker PlatoBlockchain Data Intelligence-এ Kubeflow ব্যবহার করে নমনীয় এবং স্কেলযোগ্য বিতরণ করা প্রশিক্ষণ আর্কিটেকচার তৈরি করুন। উল্লম্ব অনুসন্ধান. আ.

3. বিতরণ করা প্রশিক্ষণ চালান

আপনি জুপিটার নোটবুক সেট আপ করার পরে, আপনি ফোল্ডার থেকে নিম্নলিখিত উচ্চ-স্তরের পদক্ষেপগুলি ব্যবহার করে পুরো ডেমো চালাতে পারেন aws-do-kubeflow/workshop ক্লোন করা সংগ্রহস্থলে:

  • PyTorch বিতরণ করা ডেটা সমান্তরাল (DDP) প্রশিক্ষণ স্ক্রিপ্ট: PyTorch DDP প্রশিক্ষণ স্ক্রিপ্ট cifar10-distributed-gpu-final.py পড়ুন, যাতে একটি মাল্টি-নোড CPU এবং GPU ক্লাস্টারে প্রশিক্ষণ বিতরণের জন্য একটি নমুনা কনভোল্যুশনাল নিউরাল নেটওয়ার্ক এবং লজিক রয়েছে। (বিস্তারিত জানার জন্য 3.1 পড়ুন)
  • লাইব্রেরি ইনস্টল করুন: নোটবুক চালান 0_initialize_dependencies.ipynb সমস্ত নির্ভরতা শুরু করতে। (বিস্তারিত জানার জন্য 3.2 পড়ুন)
  • কুবারনেটসে বিতরণকৃত পাইটর্চ কাজের প্রশিক্ষণ চালান: নোটবুক চালান 1_submit_pytorchdist_k8s.ipynb পাইথন কোড ব্যবহার করে Kubernetes কাস্টম রিসোর্স PyTorchJob YAML ফাইল ব্যবহার করে একটি প্রাথমিক এবং দুটি কর্মী পাত্রে বিতরণ করা প্রশিক্ষণ তৈরি এবং জমা দিতে। (বিস্তারিত জানার জন্য 3.3 পড়ুন)
  • একটি হাইব্রিড কুবেফ্লো পাইপলাইন তৈরি করুন: নোটবুক চালান 2_create_pipeline_k8s_sagemaker.ipynb হাইব্রিড কুবেফ্লো পাইপলাইন তৈরি করতে যা রানটাইম ভেরিয়েবল ব্যবহার করে সেজমেকার বা অ্যামাজন ইকেএস-এ বিতরণ করা প্রশিক্ষণ চালায় training_runtime. (বিস্তারিত জানার জন্য 3.4 পড়ুন)

আপনি নোটবুক চালানো নিশ্চিত করুন 1_submit_pytorchdist_k8s.ipynb আপনি নোটবুক শুরু করার আগে 2_create_pipeline_k8s_sagemaker.ipynb.

পরবর্তী বিভাগে, আমরা এই পদক্ষেপগুলির প্রতিটি বিশদভাবে আলোচনা করব।

3.1 পাইটর্চ ডিস্ট্রিবিউটেড ডেটা প্যারালাল (ডিডিপি) প্রশিক্ষণ স্ক্রিপ্ট

বিতরণকৃত প্রশিক্ষণের অংশ হিসাবে, আমরা একটি সাধারণ কনভোল্যুশনাল নিউরাল নেটওয়ার্ক দ্বারা তৈরি একটি শ্রেণিবিন্যাস মডেলকে প্রশিক্ষণ দিই যা CIFAR10 ডেটাসেটে কাজ করে। প্রশিক্ষণের স্ক্রিপ্ট cifar10-distributed-gpu-final.py শুধুমাত্র ওপেন-সোর্স লাইব্রেরি ধারণ করে এবং জিপিইউ ডিভাইস বা সিপিইউ ইনস্ট্যান্সে কুবারনেটস এবং সেজমেকার ট্রেনিং ক্লাস্টার উভয়ই চালানোর জন্য সামঞ্জস্যপূর্ণ। আমরা আমাদের নোটবুকের উদাহরণগুলি চালানোর আগে প্রশিক্ষণের স্ক্রিপ্টের কয়েকটি গুরুত্বপূর্ণ দিক দেখি।

আমরা ব্যবহার করি torch.distributed মডিউল, যা ক্লাস্টারের নোড জুড়ে বহু-প্রক্রিয়া সমান্তরালতার জন্য PyTorch সমর্থন এবং যোগাযোগ আদিম ধারণ করে:

...
import torch
import torch.distributed as dist
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
import torch.utils.data
import torch.utils.data.distributed
import torchvision
from torchvision import datasets, transforms
...

আমরা কনভোলিউশনাল, ম্যাক্স পুলিং এবং লিনিয়ার লেয়ারের সমন্বয় ব্যবহার করে একটি সাধারণ ইমেজ ক্লাসিফিকেশন মডেল তৈরি করি যেখানে মডেল ট্রেনিং এর ফরোয়ার্ড পাসে একটি রিলু অ্যাক্টিভেশন ফাংশন প্রয়োগ করা হয়:

# Define models
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = nn.Conv2d(3, 6, 5)
self.pool = nn.MaxPool2d(2, 2)
self.conv2 = nn.Conv2d(6, 16, 5)
self.fc1 = nn.Linear(16 * 5 * 5, 120)
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 10)

def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 16 * 5 * 5)
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x

আমরা টর্চ ডেটালোডার ব্যবহার করি যা ডেটাসেটকে একত্রিত করে এবং DistributedSampler (ব্যবহার করে বিতরণ করা পদ্ধতিতে ডেটার একটি উপসেট লোড করে torch.nn.parallel.DistributedDataParallel) এবং ডেটার উপর একটি একক-প্রক্রিয়া বা বহু-প্রক্রিয়া পুনরাবৃত্তিকারী প্রদান করে:

# Define data loader for training dataset
def _get_train_data_loader(batch_size, training_dir, is_distributed):
logger.info("Get train data loader")

train_set = torchvision.datasets.CIFAR10(root=training_dir,
train=True,
download=False,
transform=_get_transforms())

train_sampler = (
torch.utils.data.distributed.DistributedSampler(train_set) if is_distributed else None
)

return torch.utils.data.DataLoader(
train_set,
batch_size=batch_size,
shuffle=train_sampler is None,
sampler=train_sampler)
...

ট্রেনিং ক্লাস্টারে যদি GPU থাকে, স্ক্রিপ্টটি CUDA ডিভাইসে ট্রেনিং চালায় এবং ডিভাইস ভেরিয়েবল ডিফল্ট CUDA ডিভাইস ধারণ করে:

device = "cuda" if torch.cuda.is_available() else "cpu"
...

আপনি PyTorch ব্যবহার করে বিতরণ প্রশিক্ষণ চালানোর আগে DistributedDataParallel একাধিক নোডে বিতরণ প্রক্রিয়া চালানোর জন্য, আপনাকে কল করে বিতরণ করা পরিবেশ শুরু করতে হবে init_process_group. এটি প্রশিক্ষণ ক্লাস্টারের প্রতিটি মেশিনে শুরু করা হয়।

dist.init_process_group(backend=args.backend, rank=host_rank, world_size=world_size)
...

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

model = Net().to(device)

if is_distributed:
model = torch.nn.parallel.DistributedDataParallel(model)

...

3.2 লাইব্রেরি ইনস্টল করুন

আপনি PyTorch বিতরণ করা প্রশিক্ষণ উদাহরণ চালানোর জন্য সমস্ত প্রয়োজনীয় লাইব্রেরি ইনস্টল করবেন। এর মধ্যে রয়েছে Kubeflow Pipelines SDK, ট্রেনিং অপারেটর Python SDK, Kubernetes এর জন্য Python ক্লায়েন্ট এবং Amazon SageMaker Python SDK।

#Please run the below commands to install necessary libraries

!pip install kfp==1.8.4

!pip install kubeflow-training

!pip install kubernetes

!pip install sagemaker

3.3 Kubernetes-এ বিতরণকৃত PyTorch কাজের প্রশিক্ষণ চালান

খাতাটি 1_submit_pytorchdist_k8s.ipynb Kubeflow প্রশিক্ষণ এবং Kubernetes ক্লায়েন্ট Python SDK ব্যবহার করে Kubernetes কাস্টম রিসোর্স PyTorchJob YAML ফাইল তৈরি করে। নিম্নলিখিত এই নোটবুক থেকে কিছু গুরুত্বপূর্ণ স্নিপেট আছে.

আমরা নিম্নলিখিত কোডে দেখানো প্রাথমিক এবং কর্মী পাত্রে PyTorchJob YAML তৈরি করি:

# Define PyTorchJob custom resource manifest
pytorchjob = V1PyTorchJob(
api_version="kubeflow.org/v1",
kind="PyTorchJob",
metadata=V1ObjectMeta(name=pytorch_distributed_jobname,namespace=user_namespace),
spec=V1PyTorchJobSpec(
run_policy=V1RunPolicy(clean_pod_policy="None"),
pytorch_replica_specs={"Master": master,
"Worker": worker}
)
)

এটি ব্যবহার করে Kubernetes কন্ট্রোল প্লেনে জমা দেওয়া হয় PyTorchJobClient:

# Creates and Submits PyTorchJob custom resource file to Kubernetes
pytorchjob_client = PyTorchJobClient()

pytorch_job_manifest=pytorchjob_client.create(pytorchjob):

Kubernetes প্রশিক্ষণ লগ দেখুন

আপনি পাইথন কোড ব্যবহার করে একই জুপিটার নোটবুক থেকে বা কুবারনেটস ক্লায়েন্ট শেল থেকে প্রশিক্ষণ লগগুলি দেখতে পারেন।

3.4 একটি হাইব্রিড Kubeflow পাইপলাইন তৈরি করুন৷

খাতাটি 2_create_pipeline_k8s_sagemaker.ipynb শর্তসাপেক্ষ রানটাইম ভেরিয়েবলের উপর ভিত্তি করে একটি হাইব্রিড Kubeflow পাইপলাইন তৈরি করে training_runtime, নিচের কোডে দেখানো হয়েছে। নোটবুক ব্যবহার করে Kubeflow পাইপলাইন SDK এবং এটি এমএল ওয়ার্কফ্লো পাইপলাইনগুলি নির্দিষ্ট করতে এবং চালানোর জন্য পাইথন প্যাকেজগুলির একটি সেট প্রদান করেছে। এই SDK-এর অংশ হিসাবে, আমরা নিম্নলিখিত প্যাকেজগুলি ব্যবহার করি:

  • ডোমেন-নির্দিষ্ট ভাষা (DSL) প্যাকেজ ডেকোরেটর dsl.pipeline, যা পাইপলাইন ফেরত দিতে পাইথন ফাংশন সাজায়
  • সার্জারির dsl.Condition প্যাকেজ, যা ক্রিয়াকলাপগুলির একটি গ্রুপকে প্রতিনিধিত্ব করে যা শুধুমাত্র একটি নির্দিষ্ট শর্ত পূরণ করা হলে চালানো হয়, যেমন চেক করা training_runtime হিসাবে মান sagemaker or kubernetes

নিম্নলিখিত কোডটি দেখুন:

# Define your training runtime value with either 'sagemaker' or 'kubernetes'
training_runtime='sagemaker'

# Create Hybrid Pipeline using Kubeflow PyTorch Training Operators and Amazon SageMaker Service
@dsl.pipeline(name="PyTorch Training pipeline", description="Sample training job test")
def pytorch_cnn_pipeline():

# Pipeline Step 1: to evaluate the condition. You can enter any logic here. For demonstration we are checking if GPU is needed for training
condition_result = check_condition_op(training_runtime)

# Pipeline Step 2: to run training on Kuberentes using PyTorch Training Operators. This will be executed if gpus are not needed
with dsl.Condition(condition_result.output == 'kubernetes', name="PyTorch_Comp"):
train_task = pytorch_job_op(
name=training_job_name,
namespace=user_namespace,
master_spec=json.dumps(master_spec_loaded), # Please refer file at pipeline_yaml_specifications/pipeline_master_spec.yml
worker_spec=json.dumps(worker_spec_loaded), # Please refer file at pipeline_yaml_specifications/pipeline_worker_spec.yml
delete_after_done=False
).after(condition_result)

# Pipeline Step 3: to run training on SageMaker using SageMaker Components for Pipeline. This will be executed if gpus are needed
with dsl.Condition(condition_result.output == 'sagemaker', name="SageMaker_Comp"):
training = sagemaker_train_op(
region=region,
image=train_image,
job_name=training_job_name,
training_input_mode=training_input_mode,
hyperparameters='{ 
"backend": "'+str(pytorch_backend)+'", 
"batch-size": "64", 
"epochs": "3", 
"lr": "'+str(learning_rate)+'", 
"model-type": "custom", 
"sagemaker_container_log_level": "20", 
"sagemaker_program": "cifar10-distributed-gpu-final.py", 
"sagemaker_region": "us-west-2", 
"sagemaker_submit_directory": "'+source_s3+'" 
}',
channels=channels,
instance_type=instance_type,
instance_count=instance_count,
volume_size=volume_size,
max_run_time=max_run_time,
model_artifact_path=f's3://{bucket_name}/jobs',
network_isolation=network_isolation,
traffic_encryption=traffic_encryption,
role=role,
vpc_subnets=subnet_id,
vpc_security_group_ids=security_group_id
).after(condition_result)

আমরা দুটি ml.p3.2x বড় উদাহরণ ব্যবহার করে SageMaker বিতরণকৃত প্রশিক্ষণ কনফিগার করি।

পাইপলাইনটি সংজ্ঞায়িত হওয়ার পরে, আপনি Kubeflow Pipelines SDK এর ব্যবহার করে একটি Argo YAML স্পেসিফিকেশনে পাইপলাইন কম্পাইল করতে পারেন kfp.compiler প্যাকেজ আপনি কুবেফ্লো পাইপলাইন SDK ক্লায়েন্ট ব্যবহার করে এই পাইপলাইনটি চালাতে পারেন, যা পাইপলাইন পরিষেবার এন্ডপয়েন্টকে কল করে এবং নোটবুক থেকে সঠিক প্রমাণীকরণ শিরোনামে পাস করে। নিম্নলিখিত কোড দেখুন:

# DSL Compiler that compiles pipeline functions into workflow yaml.
kfp.compiler.Compiler().compile(pytorch_cnn_pipeline, "pytorch_cnn_pipeline.yaml")

# Connect to Kubeflow Pipelines using the Kubeflow Pipelines SDK client
client = kfp.Client()

experiment = client.create_experiment(name="kubeflow")

# Run a specified pipeline
my_run = client.run_pipeline(experiment.id, "pytorch_cnn_pipeline", "pytorch_cnn_pipeline.yaml")

# Please click “Run details” link generated below this cell to view your pipeline. You can click every pipeline step to see logs.

পেলে ক sagemaker import ত্রুটি, চালান !pip সেজমেকার ইনস্টল করুন এবং কার্নেল পুনরায় চালু করুন (এ শাঁস মেনু, নির্বাচন করুন কার্নেল পুনরায় চালু করুন).

পছন্দ বিস্তারিত চালান Kubeflow পাইপলাইন দেখার জন্য শেষ কক্ষের নিচে লিঙ্ক করুন।

এর সাথে পাইপলাইন তৈরির ধাপটি পুনরাবৃত্তি করুন training_runtime='kubernetes' একটি Kubernetes পরিবেশে চালিত পাইপলাইন পরীক্ষা করতে. দ্য training_runtime একটি উত্পাদন দৃশ্যে আপনার CI/CD পাইপলাইনে পরিবর্তনশীলও পাস করা যেতে পারে।

SageMaker উপাদানের জন্য Kubeflow পাইপলাইন রান লগ দেখুন

নিচের স্ক্রিনশটটি সেজমেকার উপাদানের জন্য আমাদের পাইপলাইনের বিবরণ দেখায়।

AWS এবং Amazon SageMaker PlatoBlockchain Data Intelligence-এ Kubeflow ব্যবহার করে নমনীয় এবং স্কেলযোগ্য বিতরণ করা প্রশিক্ষণ আর্কিটেকচার তৈরি করুন। উল্লম্ব অনুসন্ধান. আ.

প্রশিক্ষণ কাজের ধাপ এবং উপর নির্বাচন করুন লগ ট্যাবে, SageMaker লগগুলি অ্যাক্সেস করতে CloudWatch লগ লিঙ্কটি বেছে নিন।

AWS এবং Amazon SageMaker PlatoBlockchain Data Intelligence-এ Kubeflow ব্যবহার করে নমনীয় এবং স্কেলযোগ্য বিতরণ করা প্রশিক্ষণ আর্কিটেকচার তৈরি করুন। উল্লম্ব অনুসন্ধান. আ.

নিম্নলিখিত স্ক্রিনশট দুটি ml.p3.2x বড় উদাহরণগুলির প্রতিটির জন্য CloudWatch লগগুলি দেখায়৷

AWS এবং Amazon SageMaker PlatoBlockchain Data Intelligence-এ Kubeflow ব্যবহার করে নমনীয় এবং স্কেলযোগ্য বিতরণ করা প্রশিক্ষণ আর্কিটেকচার তৈরি করুন। উল্লম্ব অনুসন্ধান. আ.

লগগুলি দেখতে গ্রুপগুলির মধ্যে যেকোনো একটি বেছে নিন।

AWS এবং Amazon SageMaker PlatoBlockchain Data Intelligence-এ Kubeflow ব্যবহার করে নমনীয় এবং স্কেলযোগ্য বিতরণ করা প্রশিক্ষণ আর্কিটেকচার তৈরি করুন। উল্লম্ব অনুসন্ধান. আ.

Kubeflow PyTorchJob লঞ্চার উপাদানের জন্য Kubeflow পাইপলাইন রান লগগুলি দেখুন

নিম্নলিখিত স্ক্রিনশটটি আমাদের কুবেফ্লো উপাদানের জন্য পাইপলাইনের বিশদ বিবরণ দেখায়।

AWS এবং Amazon SageMaker PlatoBlockchain Data Intelligence-এ Kubeflow ব্যবহার করে নমনীয় এবং স্কেলযোগ্য বিতরণ করা প্রশিক্ষণ আর্কিটেকচার তৈরি করুন। উল্লম্ব অনুসন্ধান. আ.

নিম্নলিখিত কমান্ডগুলি ব্যবহার করে চালান Kubectl লগগুলি দেখতে কুবারনেটস ক্লাস্টারের সাথে সংযুক্ত আপনার কুবারনেটস ক্লায়েন্ট শেলটিতে (আপনার নামস্থান এবং পডের নামগুলি প্রতিস্থাপন করুন):

kubectl get pods -n kubeflow-user-example-com
kubectl logs  -n kubeflow-user-example-com -f

4.1 পরিষ্কার করুন

আমরা অ্যাকাউন্টে তৈরি করা সমস্ত সংস্থান পরিষ্কার করতে, আমাদের সেগুলিকে বিপরীত ক্রমে সরাতে হবে।

  1. রান করে Kubeflow ইনস্টলেশন মুছুন ./kubeflow-remove.sh মধ্যে aws-do-kubeflow ধারক কমান্ডের প্রথম সেটটি ঐচ্ছিক এবং ব্যবহার করা যেতে পারে যদি আপনার কাছে ইতিমধ্যে একটি কমান্ড শেল না থাকে aws-do-kubeflow ধারক খোলা।
    cd aws-do-kubeflow
    ./status.sh
    ./start.sh
    ./exec.sh
    
    ./kubeflow-remove.sh

  2. থেকে aws-do-eks ধারক ফোল্ডার, EFS ভলিউম সরান। কমান্ডের প্রথম সেটটি ঐচ্ছিক এবং আপনার কাছে ইতিমধ্যেই একটি কমান্ড শেল না থাকলে ব্যবহার করা যেতে পারে aws-do-eks ধারক খোলা।
    cd aws-do-eks
    ./status.sh
    ./start.sh
    ./exec.sh
    
    cd /eks/deployment/csi/efs
    ./delete.sh
    ./efs-delete.sh

    আমাদের ক্লাস্টারের জন্য আমরা যে VPC তৈরি করেছি তার সাথে যুক্ত নেটওয়ার্ক ইন্টারফেসটি প্রকাশ করার জন্য Amazon EFS মুছে ফেলা প্রয়োজন। মনে রাখবেন যে ইএফএস ভলিউম মুছে ফেলার ফলে এটিতে সংরক্ষিত যে কোনও ডেটা নষ্ট হয়ে যায়।

  3. থেকে aws-do-eks ধারক, চালান eks-delete.sh ক্লাস্টার মুছে ফেলার স্ক্রিপ্ট এবং VPC সহ এর সাথে সম্পর্কিত অন্য কোনো সংস্থান:
    cd /eks
    ./eks-delete.sh

সারাংশ

এই পোস্টে, আমরা বিতরণকৃত মডেল প্রশিক্ষণ এবং ML কর্মপ্রবাহের কিছু সাধারণ চ্যালেঞ্জ নিয়ে আলোচনা করেছি। আমরা AWS বিতরণে Kubeflow এর একটি ওভারভিউ প্রদান করেছি এবং দুটি ওপেন সোর্স প্রকল্প শেয়ার করেছি (aws-do-eks এবং aws-do-kubeflow) যা পরিকাঠামোর বিধান এবং এতে কুবেফ্লো স্থাপনকে সহজ করে। অবশেষে, আমরা একটি হাইব্রিড আর্কিটেকচার বর্ণনা করেছি এবং প্রদর্শন করেছি যা একটি স্ব-পরিচালিত কুবারনেটস এবং সম্পূর্ণরূপে পরিচালিত সেজমেকার অবকাঠামোতে চলার মধ্যে কাজের চাপকে নিরবিচ্ছিন্নভাবে পরিবর্তন করতে সক্ষম করে। আমরা আপনাকে আপনার নিজের ব্যবহারের ক্ষেত্রে এই হাইব্রিড আর্কিটেকচার ব্যবহার করতে উত্সাহিত করি।

আপনি অনুসরণ করতে পারেন AWS ল্যাবস সংগ্রহস্থল Kubeflow এ সমস্ত AWS অবদান ট্র্যাক করতে। এছাড়াও আপনি আমাদের খুঁজে পেতে পারেন কুবেফ্লো #AWS স্ল্যাক চ্যানেল; সেখানে আপনার প্রতিক্রিয়া কুবেফ্লো প্রকল্পে অবদান রাখার জন্য পরবর্তী বৈশিষ্ট্যগুলিকে অগ্রাধিকার দিতে আমাদের সাহায্য করবে৷

এই পোস্টটি চালু করার জন্য তাদের সমর্থনের জন্য শ্রী আরাসনাগট্টা (সফ্টওয়্যার ডেভেলপমেন্ট ম্যানেজার AWS ML) এবং Suraj Kota (Software Dev Engineer) কে বিশেষ ধন্যবাদ৷


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

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

AWS এবং Amazon SageMaker PlatoBlockchain Data Intelligence-এ Kubeflow ব্যবহার করে নমনীয় এবং স্কেলযোগ্য বিতরণ করা প্রশিক্ষণ আর্কিটেকচার তৈরি করুন। উল্লম্ব অনুসন্ধান. আ.গৌতম কুমার AWS AI ডিপ লার্নিং সহ একজন সফটওয়্যার ইঞ্জিনিয়ার। তিনি AWS ডিপ লার্নিং কন্টেইনার এবং AWS ডিপ লার্নিং AMI তৈরি করেছেন। তিনি AI এর জন্য সরঞ্জাম এবং সিস্টেম তৈরির বিষয়ে উত্সাহী। অবসর সময়ে তিনি বাইক চালানো এবং বই পড়া উপভোগ করেন।

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

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

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

AWS APEJ AI লাইফ-সাইকেল সফটওয়্যার টুলস এবং প্ল্যাটফর্ম ভেন্ডর অ্যাসেসমেন্টের জন্য 2022 IDC মার্কেটস্কেপে লিডার ক্যাটাগরিতে অবস্থান করেছে

উত্স নোড: 1785099
সময় স্ট্যাম্প: জানুয়ারী 6, 2023

ভাষা বাধাগুলি আনলক করা: বিরামহীন সমর্থনের জন্য অ্যামাজন অনুবাদের মাধ্যমে অ্যাপ্লিকেশন লগগুলি অনুবাদ করুন | আমাজন ওয়েব সার্ভিসেস

উত্স নোড: 1888722
সময় স্ট্যাম্প: সেপ্টেম্বর 12, 2023