এই ব্লগ পোস্টটি Intel থেকে Jonathan Lee, Nelson Leung, Paul Min, এবং Troy Squillaci দ্বারা সহ-লিখিত।
In পার্ট 1 এই পোস্টে, আমরা আলোচনা করেছি কিভাবে Intel®3DAT এর সাথে সহযোগিতা করেছে AWS মেশিন লার্নিং প্রফেশনাল সার্ভিসেস (MLPS) একটি মাপযোগ্য AI SaaS অ্যাপ্লিকেশন তৈরি করতে। স্ট্যান্ডার্ড ভিডিও থেকে 3 টিরও বেশি বায়োমেকানিক্স ডেটা পয়েন্ট সনাক্ত করতে, ট্র্যাক করতে এবং বিশ্লেষণ করতে 1,000DAT কম্পিউটার দৃষ্টি এবং AI ব্যবহার করে। এটি গ্রাহকদের বিস্তারিত কর্মক্ষমতা ডেটা এবং ত্রি-মাত্রিক ভিজ্যুয়ালাইজেশন সহ ওয়েব এবং মোবাইল অ্যাপ্লিকেশনের মতো সমৃদ্ধ এবং শক্তিশালী বায়োমেকানিক্স-চালিত পণ্য তৈরি করতে দেয়।
এই পোস্টের পার্ট 2-এ, আমরা স্থাপত্যের প্রতিটি পর্যায়ে গভীরভাবে ডুব দিয়েছি। আমরা 3DAT ডিজাইনের প্রয়োজনীয়তা মেটাতে ব্যবহৃত AWS পরিষেবাগুলি অন্বেষণ করি, সহ অ্যামাজন কিনসিস ডেটা স্ট্রিম এবং অ্যামাজন ইলাস্টিক কুবারনেটস পরিষেবা (Amazon EKS), একটি পরিষেবা (SaaS) অ্যাপ্লিকেশন হিসাবে এই সফ্টওয়্যারটির জন্য প্রয়োজনীয় পোজ অনুমান মডেলগুলিকে পরিমাপযোগ্যভাবে স্থাপন করার জন্য।
আর্কিটেকচার ওভারভিউ
MLPS টিমের প্রাথমিক লক্ষ্য ছিল 2D এবং 3D পোজ অনুমান মডেল পাইপলাইনগুলিকে উত্পাদনশীল করা এবং একটি কার্যকরী এবং মাপযোগ্য অ্যাপ্লিকেশন তৈরি করা। নিম্নলিখিত চিত্রটি সমাধানের আর্কিটেকচারকে চিত্রিত করে।
সম্পূর্ণ আর্কিটেকচারটি পাঁচটি প্রধান উপাদানে বিভক্ত:
- ব্যবহারকারী অ্যাপ্লিকেশন ইন্টারফেস স্তর
- ডেটাবেস
- ওয়ার্কফ্লো অর্কেস্ট্রেশন
- পরিমাপযোগ্য ভঙ্গি অনুমান অনুমান প্রজন্ম
- অপারেশনাল মনিটরিং
আসুন প্রতিটি উপাদান, তাদের মিথস্ক্রিয়া এবং নকশা পছন্দের পিছনে যুক্তি সম্পর্কে বিস্তারিতভাবে যাই।
ব্যবহারকারী অ্যাপ্লিকেশন ইন্টারফেস স্তর
নিম্নলিখিত চিত্রটি অ্যাপ্লিকেশন ইন্টারফেস স্তরগুলি দেখায় যা ব্যবহারকারীর অ্যাক্সেস এবং অ্যাপ্লিকেশন এবং এর সংস্থানগুলির নিয়ন্ত্রণ প্রদান করে।
এই অ্যাক্সেস পয়েন্টগুলি বিভিন্ন গ্রাহক ব্যক্তিত্বের উপর ভিত্তি করে বিভিন্ন ব্যবহারের ক্ষেত্রে সমর্থন করে। উদাহরণস্বরূপ, একজন অ্যাপ্লিকেশন ব্যবহারকারী CLI এর মাধ্যমে একটি কাজ জমা দিতে পারেন, যেখানে একজন বিকাশকারী Python SDK ব্যবহার করে একটি অ্যাপ্লিকেশন তৈরি করতে পারেন এবং তাদের অ্যাপ্লিকেশনগুলিতে পোজ অনুমান বুদ্ধিমত্তা এম্বেড করতে পারেন। CLI এবং SDK মডুলার উপাদান হিসাবে তৈরি করা হয়েছে- উভয় স্তরই API স্তরের মোড়ক, যা ব্যবহার করে নির্মিত হয় অ্যামাজন এপিআই গেটওয়ে API কলগুলি সমাধান করতে এবং সংশ্লিষ্ট AWS Lambda ফাংশন, যা প্রতিটি API কলের সাথে যুক্ত ব্যাকএন্ড লজিকের যত্ন নেয়। এই স্তরগুলি ইন্টেল OTG দলের জন্য একটি গুরুত্বপূর্ণ উপাদান ছিল কারণ এটি গ্রাহকদের একটি বিস্তৃত ভিত্তি উন্মুক্ত করে যারা কার্যকরভাবে এই SaaS অ্যাপ্লিকেশনটি ব্যবহার করতে পারে।
API স্তর
সমাধানটিতে নয়টি API-এর একটি মূল সেট রয়েছে, যা এই প্ল্যাটফর্মে কাজ করে এমন অবজেক্টের প্রকারের সাথে মিলে যায়। প্রতিটি API একটি পাইথন ফাইল আছে যা চালানো যেতে পারে যে API ক্রিয়া সংজ্ঞায়িত করে। নতুন অবজেক্টের সৃষ্টি স্বয়ংক্রিয়ভাবে একটি অবজেক্ট আইডি ক্রমানুসারে বরাদ্দ করা হয়। এই বস্তুর বৈশিষ্ট্য সংরক্ষিত এবং ট্র্যাক করা হয় অ্যামাজন অরোরা সার্ভারহীন এই আইডি ব্যবহার করে ডাটাবেস। অতএব, এপিআই অ্যাকশনগুলি এমন ফাংশনের সাথে সংযুক্ত থাকে যা একটি কেন্দ্রীয় ফাইলে সংজ্ঞায়িত করা হয় যাতে অরোরা ডাটাবেস অনুসন্ধানের জন্য ব্যাকএন্ড লজিক থাকে। এই ব্যাকএন্ড লজিক Boto3 ব্যবহার করে Amazon RDS DataService ক্লায়েন্ট ডাটাবেস ক্লাস্টার অ্যাক্সেস করতে।
একটি ব্যতিক্রম হল /job
API, যার একটি আছে create_job
পদ্ধতি যা একটি নতুন প্রসেসিং কাজ তৈরি করার জন্য ভিডিও জমা পরিচালনা করে। এই পদ্ধতি শুরু হয় এডাব্লুএস স্টেপ ফাংশন কাজ চালানোর জন্য ওয়ার্কফ্লো যুক্তি। পাশ করে ক job_id
, এই পদ্ধতি Boto3 ব্যবহার করে ধাপ ফাংশন ক্লায়েন্ট কল করতে start_execution
একটি নির্দিষ্ট জন্য পদ্ধতি stateMachineARN
(আমাজন সম্পদের নাম)।
আটটি অবজেক্ট API-এর পদ্ধতি এবং অনুরূপ অ্যাক্সেস প্যাটার্ন রয়েছে যা নিম্নলিখিত টেবিলে সংক্ষিপ্ত করা হয়েছে।
পদ্ধতির ধরন | ফাংশন নাম | বিবরণ |
পাওয়া | list_[object_name]s |
ডাটাবেস এবং প্রদর্শন থেকে এই ধরনের সমস্ত বস্তু নির্বাচন করে। |
পোস্ট | create_[object] |
ডাটাবেসে প্রয়োজনীয় ইনপুট সহ একটি নতুন অবজেক্ট রেকর্ড সন্নিবেশ করায়। |
পাওয়া | get_[object] |
ডাটাবেস এবং প্রদর্শন থেকে অবজেক্ট আইডির উপর ভিত্তি করে অবজেক্ট অ্যাট্রিবিউট নির্বাচন করে। |
PUT | update_[object] |
প্রয়োজনীয় ইনপুট সহ একটি বিদ্যমান অবজেক্ট রেকর্ড আপডেট করে। |
মুছে ফেলা | delete_[object] |
অবজেক্ট আইডির উপর ভিত্তি করে ডাটাবেস থেকে একটি বিদ্যমান অবজেক্ট রেকর্ড মুছে দেয়। |
নয়টি API-এর বিবরণ নিম্নরূপ:
- /ব্যবহারকারী – একজন ব্যবহারকারী হল এই অ্যাপ্লিকেশনে চাকরি জমা দেওয়ার জন্য অনুমোদিত ব্যক্তির পরিচয়। একটি ব্যবহারকারী তৈরি করতে একটি ব্যবহারকারীর নাম, ব্যবহারকারীর ইমেল এবং গ্রুপ আইডি প্রয়োজন যা ব্যবহারকারীর অন্তর্গত।
- /ব্যবহারকারী দল - একটি ব্যবহারকারী গ্রুপ ব্যবহারকারীদের একটি সংগ্রহ। প্রতিটি ব্যবহারকারী গ্রুপ একটি প্রকল্প এবং একটি পাইপলাইন প্যারামিটার সেট ম্যাপ করা হয়. বিভিন্ন স্তর থাকতে (অবকাঠামোগত সংস্থান এবং পাইপলাইন পরামিতিগুলির পরিপ্রেক্ষিতে), ব্যবহারকারীদের ব্যবহারকারী গ্রুপে বিভক্ত করা হয়। প্রতিটি ব্যবহারকারী শুধুমাত্র একটি ব্যবহারকারী দলের অন্তর্গত হতে পারে. একটি ইউজার গ্রুপ তৈরির জন্য একটি প্রোজেক্ট আইডি, পাইপলাইন প্যারামিটার সেট আইডি, ইউজার গ্রুপের নাম এবং ইউজার গ্রুপের বিবরণ প্রয়োজন। মনে রাখবেন যে ব্যবহারকারী গ্রুপগুলি AWS অ্যাকাউন্টে সংজ্ঞায়িত ব্যবহারকারীর ভূমিকা থেকে আলাদা। পরবর্তীটি তাদের অ্যাক্সেসের ভূমিকার উপর ভিত্তি করে বিভিন্ন স্তরের অ্যাক্সেস প্রদান করতে ব্যবহৃত হয় (উদাহরণস্বরূপ প্রশাসক)।
- /প্রকল্প - একটি প্রকল্প বিভিন্ন অবকাঠামোগত সংস্থানগুলিকে একত্রিত করতে ব্যবহৃত হয়। একটি প্রকল্প একটি একক সঙ্গে যুক্ত করা হয়
project_cluster_url
(অরোরা ক্লাস্টার) ব্যবহারকারী, চাকরি এবং অন্যান্য মেটাডেটা রেকর্ড করার জন্য, কproject_queue_arn
(কাইনেসিস ডেটা স্ট্রীমস এআরএন), এবং একটি কম্পিউট রানটাইম এনভায়রনমেন্ট (বর্তমানে কর্টেক্সের মাধ্যমে নিয়ন্ত্রিত) ফ্রেম ব্যাচগুলিতে অনুমান চালানো বা ভিডিওগুলিতে পোস্টপ্রসেসিংয়ের জন্য ব্যবহৃত হয়। প্রতিটি ব্যবহারকারী গোষ্ঠী একটি প্রকল্পের সাথে যুক্ত, এবং এই প্রক্রিয়াটি হল কিভাবে ব্যবহারকারীদের বিভিন্ন গোষ্ঠীর জন্য লেটেন্সি এবং কম্পিউট পাওয়ার পরিপ্রেক্ষিতে বিভিন্ন স্তর সক্রিয় করা হয়। একটি প্রকল্প তৈরির জন্য একটি প্রকল্পের নাম, প্রকল্প ক্লাস্টার URL এবং প্রকল্প সারি ARN প্রয়োজন৷ - / পাইপলাইন – একটি পাইপলাইন প্রসেসিং কন্টেইনারগুলির একটি সিকোয়েন্সের জন্য একটি একক কনফিগারেশনের সাথে যুক্ত যা কর্টেক্স দ্বারা সমন্বিত অ্যামাজন ইকেএস ইনফারেন্স জেনারেশন ক্লাস্টারে ভিডিও প্রক্রিয়াকরণ করে (আরো বিশদ বিবরণের জন্য ভিডিও প্রসেসিং ইনফারেন্স জেনারেশনের বিভাগটি দেখুন)। সাধারণত, এটি তিনটি ধারক নিয়ে গঠিত: প্রিপ্রসেসিং এবং ডিকোডিং, অবজেক্ট ডিটেকশন এবং পোজ অনুমান। উদাহরণ স্বরূপ, 2D এবং 3D পাইপলাইনের জন্য ডিকোড এবং অবজেক্ট ডিটেকশন স্টেপ একই, কিন্তু HRNet বা 3DMPPE ব্যবহার করে শেষ কন্টেইনারটি অদলবদল করার ফলে 2D বনাম 3D প্রসেসিং পাইপলাইনের প্যারামিটার সেট হয়ে যায়। আপনি সম্ভাব্য পাইপলাইনগুলিকে সংজ্ঞায়িত করতে নতুন কনফিগারেশন তৈরি করতে পারেন যা প্রক্রিয়াকরণের জন্য ব্যবহার করা যেতে পারে, এবং এটির জন্য কর্টেক্স রেপোতে একটি নতুন পাইথন ফাইল ইনপুট করা প্রয়োজন যা মডেল এন্ডপয়েন্ট কলের ক্রমটির বিবরণ দেয় যা সেই পাইপলাইনকে সংজ্ঞায়িত করে (ভিডিও প্রসেসিং ইনফারেন্স জেনারেশনের বিভাগটি দেখুন ) পাইপলাইন এন্ডপয়েন্ট হল কর্টেক্স এন্ডপয়েন্ট যা একটি একক ফ্রেম প্রক্রিয়া করার জন্য বলা হয়। একটি পাইপলাইন তৈরির জন্য একটি পাইপলাইনের নাম, পাইপলাইনের বিবরণ এবং পাইপলাইনের শেষ পয়েন্ট প্রয়োজন।
- /pipeline_parameter_set - একটি পাইপলাইন প্যারামিটার সেট হল একটি নির্দিষ্ট পাইপলাইনের জন্য একাধিক প্যারামিটারের (একটি পাইপলাইন কনফিগারেশন রানটাইম) একটি নমনীয় JSON সংগ্রহ, এবং একাধিক পাইপলাইন কনফিগারেশন রানটাইম প্রয়োজন হলে ভবিষ্যতে কাস্টমাইজেশনের জন্য নমনীয়তা প্রদান করতে যোগ করা হয়। ব্যবহারকারী গোষ্ঠীগুলি একটি নির্দিষ্ট পাইপলাইন প্যারামিটার সেটের সাথে যুক্ত হতে পারে এবং এর উদ্দেশ্য হ'ল ব্যবহারকারীর গ্রুপ এবং প্রতি পাইপলাইনে বিভিন্ন প্যারামিটারের গ্রুপ থাকা। ইন্টেল OTG-এর জন্য কাস্টমাইজেশন তৈরি করার জন্য এটি একটি গুরুত্বপূর্ণ অগ্রগামী সংযোজন ছিল যা পোর্টেবিলিটি সমর্থন করে কারণ বিভিন্ন গ্রাহক, বিশেষ করে ISV, অ্যাপ্লিকেশন ব্যবহার শুরু করে।
- /পাইপলাইন_প্যারামিটার - পাইপলাইন পরামিতিগুলির একটি একক সংগ্রহ হল একটি পাইপলাইন পরামিতি সেটের একটি ইনস্ট্যান্টিয়েশন। এটি একটি পাইপলাইন প্যারামিটারের 1:অনেক ম্যাপিং পাইপলাইন প্যারামিটারে সেট করে। পাইপলাইন প্যারামিটারের সেটের সাথে সংযুক্ত করার জন্য এই API-এর একটি পাইপলাইন আইডি প্রয়োজন যা পাইপলাইনে পাইপলাইন প্যারামিটারগুলির 1:1 ম্যাপিংয়ের জন্য একটি পাইপলাইন তৈরি করতে সক্ষম করে৷ এই API-এর জন্য প্রয়োজনীয় অন্যান্য ইনপুট হল একটি পাইপলাইন প্যারামিটার সেট আইডি, পাইপলাইন প্যারামিটারের মান এবং পাইপলাইন প্যারামিটারের নাম।
- /ভিডিও – একটি ভিডিও অবজেক্ট একটি কাজের সময় জমা দেওয়া একটি .zip প্যাকেজ তৈরি করে এমন পৃথক ভিডিওগুলিকে সংজ্ঞায়িত করতে ব্যবহৃত হয়৷ জমা দেওয়ার পরে এই ফাইলটিকে একাধিক ভিডিওতে বিভক্ত করা হয়েছে৷ একটি ভিডিও এর সাথে সম্পর্কিত
job_id
যে কাজের জন্য .zip প্যাকেজ জমা দেওয়া হয়েছে, এবং আমাজন সিম্পল স্টোরেজ সার্ভিস (Amazon S3) কাঁচা পৃথক ভিডিওগুলির অবস্থান এবং প্রতিটি ভিডিওর পোস্টপ্রসেসিং ফলাফলের জন্য পাথ৷ ভিডিও অবজেক্টটিতে একটি ভিডিও অগ্রগতি শতাংশও রয়েছে, যা সেই ভিডিওর পৃথক ফ্রেম ব্যাচগুলির প্রক্রিয়াকরণের সময় ধারাবাহিকভাবে আপডেট করা হয়, সেইসাথে সম্পূর্ণ বা সম্পূর্ণ না হওয়ার জন্য একটি ভিডিও স্ট্যাটাস পতাকা। একটি ভিডিও তৈরির জন্য একটি কাজের আইডি, ভিডিও পাথ, ভিডিও ফলাফলের পথ, ভিডিও অগ্রগতি শতাংশ এবং ভিডিও স্থিতি প্রয়োজন। - /ফ্রেম_ব্যাচ - একটি
frame_batch
অবজেক্ট হল একটি মিনি-ব্যাচ ফ্রেমের একটি ভিডিওর নমুনা তৈরি করে। একটি ভিডিওকে নিয়মিত আকারের ফ্রেমের ব্যাচে আলাদা করা লেটেন্সি সুর করার জন্য একটি লিভার প্রদান করে এবং সমান্তরালকরণ এবং থ্রুপুট বাড়ায়। এটি হল দানাদার একক যা অনুমানের জন্য কাইনেসিস ডেটা স্ট্রীমের মাধ্যমে চালিত হয়। একটি ফ্রেম ব্যাচ তৈরির জন্য একটি ভিডিও আইডি, ফ্রেম ব্যাচ স্টার্ট নম্বর, ফ্রেম ব্যাচের শেষ নম্বর, ফ্রেম ব্যাচ ইনপুট পাথ, ফ্রেম ব্যাচ ফলাফলের পথ এবং ফ্রেম ব্যাচ স্থিতি প্রয়োজন। - /চাকরি - এই মিথস্ক্রিয়া API একটি প্রক্রিয়াকরণ কাজ শুরু করার জন্য ফাইল জমা দেওয়ার জন্য ব্যবহার করা হয়। এই API-এর অন্যান্য অবজেক্ট API থেকে আলাদা ফাংশন রয়েছে কারণ এটি ভিডিও প্রসেসিং ব্যাকএন্ড স্টেপ ফাংশন ওয়ার্কফ্লো সমন্বয় এবং Amazon EKS ক্লাস্টারের সাথে ইন্টারঅ্যাক্ট করার সরাসরি পথ। এই API-এর জন্য একটি ইউজার আইডি, প্রোজেক্ট আইডি, পাইপলাইন আইডি, পাইপলাইন প্যারামিটার সেট আইডি, কাজের প্যারামিটার এবং কাজের স্থিতি প্রয়োজন। কাজের পরামিতিগুলিতে, একটি ইনপুট ফাইলের পথ নির্দিষ্ট করা হয়েছে, যা Amazon S3-এর অবস্থান যেখানে প্রসেস করা ভিডিওগুলির .zip প্যাকেজ অবস্থিত। ফাইল আপলোড দিয়ে পরিচালনা করা হয়
upload_handler
পদ্ধতি, যা একটি ফাইল স্থাপন করার জন্য ব্যবহারকারীর জন্য একটি নির্ধারিত S3 URL তৈরি করে। একটি WORKFLOW_STATEMACHINE_ARN হল একটি এনভায়রনমেন্ট ভেরিয়েবল যাকে পাস করা হয়create_job
একটি কাজ শুরু করার জন্য একটি ইনপুট ফাইল পাথ সহ একটি ভিডিও .zip প্যাকেজ কোথায় জমা দেওয়া হয়েছে তা নির্দিষ্ট করতে API।
নিম্নলিখিত সারণী API-এর ফাংশনগুলিকে সংক্ষিপ্ত করে।
পদ্ধতির ধরন | ক্রিয়া | বিবরণ |
পাওয়া | list_jobs |
ডাটাবেস থেকে সমস্ত কাজ নির্বাচন করে এবং প্রদর্শন করে। |
পোস্ট | create_ job |
ইউজার আইডি, প্রোজেক্ট আইডি, পাইপলাইন আইডি, পাইপলাইন প্যারামিটার সেট আইডি, কাজের ফলাফলের পথ, কাজের প্যারামিটার এবং কাজের স্থিতি সহ একটি নতুন কাজের রেকর্ড সন্নিবেশ করায়। |
পাওয়া | get_ job |
ডাটাবেস এবং প্রদর্শন থেকে কাজের আইডির উপর ভিত্তি করে কাজের বৈশিষ্ট্যগুলি নির্বাচন করে। |
পাওয়া | upload_handler |
.zip ফাইল আপলোডের জন্য অবস্থান হিসাবে একটি নির্ধারিত S3 URL তৈরি করে৷ একটি S3 বালতি নাম প্রয়োজন এবং একটি অ্যাপ্লিকেশন/জিপ ফাইল প্রকার আশা করে৷ |
পাইথন SDK স্তর
API-এর উপর ভিত্তি করে, দলটি একটি পাইথন SDK ক্লায়েন্ট লাইব্রেরি তৈরি করেছে যাতে একটি মোড়ক হিসাবে বিকাশকারীদের API পদ্ধতিগুলি অ্যাক্সেস করা সহজ হয়৷ তারা ওপেন সোর্স ব্যবহার করেছে কবিতা, যা পাইথন প্যাকেজিং এবং নির্ভরতা ব্যবস্থাপনা পরিচালনা করে। তারা একটি তৈরি client.py
পাইথন ব্যবহার করে প্রতিটি API গুলি মোড়ানো ফাংশন ধারণকারী ফাইল requests
API অনুরোধ এবং ব্যতিক্রমগুলি পরিচালনা করার জন্য লাইব্রেরি।
বিকাশকারীদের জন্য Intel 3DAT SDK চালু করার জন্য, তাদের কবিতা প্যাকেজটি ইনস্টল এবং তৈরি করতে হবে। তারপর, তারা একটি সাধারণ পাইথন আমদানি যোগ করতে পারে intel_3dat_sdk
যেকোনো পাইথন কোডে।
ক্লায়েন্ট ব্যবহার করার জন্য, আপনি API শেষ পয়েন্ট উল্লেখ করে ক্লায়েন্টের একটি উদাহরণ তৈরি করতে পারেন:
তারপরে আপনি ক্লায়েন্টকে পৃথক পদ্ধতিগুলি যেমন কল করতে ব্যবহার করতে পারেন create_pipeline
পদ্ধতি (নিম্নলিখিত কোড দেখুন), সঠিক আর্গুমেন্ট যেমন পাইপলাইনের নাম এবং পাইপলাইন বিবরণ গ্রহণ করে।
CLI স্তর
একইভাবে, যারা পাইথন কোড লেখার প্রয়োজন ছাড়াই একটি সরল ইন্টারফেসের সাথে API পদ্ধতিগুলি অ্যাক্সেস করতে চান তাদের জন্য একটি কমান্ড লাইন ইন্টারফেস তৈরি করার জন্য API-এর উপর তৈরি দলটি। তারা ওপেন সোর্স পাইথন প্যাকেজ ব্যবহার করেছে ক্লিক (কমান্ড লাইন ইন্টারফেস ক্রিয়েশন কিট)। এই ফ্রেমওয়ার্কের সুবিধাগুলি হল কমান্ডের নির্বিচারে নেস্টিং, স্বয়ংক্রিয় সহায়তা পৃষ্ঠা তৈরি করা এবং রানটাইমে সাবকমান্ডের অলস লোডিং সমর্থন। একই client.py
SDK-এর মতো ফাইল, প্রতিটি SDK ক্লায়েন্ট পদ্ধতি ক্লিক ব্যবহার করে মোড়ানো হয়েছিল এবং প্রয়োজনীয় পদ্ধতি আর্গুমেন্টগুলিকে কমান্ড লাইন ফ্ল্যাগে রূপান্তরিত করা হয়েছিল। SDK কমান্ড কল করার সময় পতাকা ইনপুট ব্যবহার করা হয়।
CLI চালু করতে, আপনি ব্যবহার করতে পারেন CLI configure
আদেশ আপনাকে এন্ডপয়েন্ট URL-এর জন্য অনুরোধ করা হচ্ছে:
এখন আপনি API পদ্ধতির সাথে সম্পর্কিত বিভিন্ন কমান্ড কল করতে CLI ব্যবহার করতে পারেন, উদাহরণস্বরূপ:
ডেটাবেস
ডাটাবেস হিসাবে, এই অ্যাপ্লিকেশনটি ডাটাবেস ইঞ্জিন হিসাবে MYSQL-এর সাথে প্রতিটি API-এর সাথে সম্পর্কিত মেটাডেটা সংরক্ষণ করতে অরোরা সার্ভারলেস ব্যবহার করে। অরোরা সার্ভারলেস ডাটাবেস পরিষেবা নির্বাচন করা যখন সম্ভব সার্ভারবিহীন AWS পরিষেবাগুলি ব্যবহার করে অবকাঠামোগত ওভারহেডকে ন্যূনতম করার জন্য ডিজাইন নীতি মেনে চলে। নিচের চিত্রটি এই স্থাপত্যকে তুলে ধরে।
সার্জারির সার্ভারহীন ইঞ্জিন মোড বিরতিহীন ব্যবহারের প্যাটার্ন পূরণ করে কারণ এই অ্যাপ্লিকেশনটি নতুন গ্রাহকদের পর্যন্ত স্কেল করে এবং কাজের চাপ এখনও অনিশ্চিত। একটি ডাটাবেস এন্ডপয়েন্ট চালু করার সময়, একটি নির্দিষ্ট DB দৃষ্টান্ত আকার প্রয়োজন হয় না, ক্লাস্টার ক্ষমতার জন্য শুধুমাত্র একটি সর্বনিম্ন এবং সর্বাধিক পরিসীমা। অরোরা সার্ভারলেস একটি রাউটার ফ্লিটের উপযুক্ত বিধান পরিচালনা করে এবং সংস্থানগুলির মধ্যে কাজের চাপ বিতরণ করে। অরোরা সার্ভারলেস স্বয়ংক্রিয়ভাবে ন্যূনতম 1 দিন থেকে 35 দিন পর্যন্ত ব্যাকআপ ধারণ সম্পাদন করে। ডিফল্ট সর্বোচ্চ 35 মান সেট করে টিম নিরাপত্তার জন্য অপ্টিমাইজ করেছে।
এ ছাড়া দলটি ব্যবহার করেছে ডেটা API অরোরা সার্ভারলেস ক্লাস্টারে অ্যাক্সেস পরিচালনা করতে, যার জন্য একটি স্থায়ী সংযোগের প্রয়োজন হয় না এবং পরিবর্তে একটি নিরাপদ HTTP এন্ডপয়েন্ট এবং AWS SDK-এর সাথে ইন্টিগ্রেশন প্রদান করে। এই বৈশিষ্ট্যটি ব্যবহার করে এডাব্লুএস সিক্রেটস ম্যানেজার ডাটাবেস শংসাপত্র সংরক্ষণ করতে যাতে স্পষ্টভাবে শংসাপত্র পাস করার প্রয়োজন নেই। নয়টি এপিআই-এর সাথে সংশ্লিষ্ট নয়টি টেবিলের প্রতিটির জন্য .sql ফাইলে .sql ফাইলে CRATE TABLE স্ক্রিপ্ট লেখা হয়েছে। যেহেতু এই ডাটাবেসটিতে সিস্টেমের সমস্ত মেটাডেটা এবং অবজেক্টের অবস্থা রয়েছে, তাই উপযুক্ত SQL কমান্ড ব্যবহার করে API পদ্ধতিগুলি চালানো হয়েছিল (উদাহরণস্বরূপ select * from Job
জন্য list_jobs
এপিআই) এবং পাস করেছে execute_statement
ডেটা API-তে Amazon RDS ক্লায়েন্ট থেকে পদ্ধতি।
ওয়ার্কফ্লো অর্কেস্ট্রেশন
অ্যাপ্লিকেশনটির কার্যকরী ব্যাকবোনটি কর্মপ্রবাহের সমন্বয় করার জন্য ধাপ ফাংশন ব্যবহার করে পরিচালনা করা হয়েছিল, যেমনটি নিম্নলিখিত চিত্রে দেখানো হয়েছে।
স্টেট মেশিনে চারটি ল্যাম্বডা ফাংশনের একটি ক্রম থাকে, যা শুরু হয় যখন একটি কাজ জমা দেওয়া হয় create_job
থেকে পদ্ধতি job
API ইউজার আইডি, প্রোজেক্ট আইডি, পাইপলাইন আইডি, পাইপলাইন প্যারামিটার সেট আইডি, কাজের ফলাফলের পথ, কাজের প্যারামিটার এবং চাকরির স্থিতি চাকরি সৃষ্টির জন্য প্রয়োজন। আপনি প্রথমে ব্যবহার করে ভিডিও ফাইলের একটি .zip প্যাকেজ আপলোড করতে পারেন upload_handler
কাজের API থেকে একটি নির্ধারিত S3 URL তৈরি করার পদ্ধতি। চাকরি জমা দেওয়ার সময়, ফাইলের অবস্থান নির্দিষ্ট করতে ইনপুট ফাইল পাথ কাজের পরামিতিগুলির মাধ্যমে পাস করা হয়। এটি ওয়ার্কফ্লো স্টেট মেশিনের রান শুরু করে, চারটি প্রধান ধাপ ট্রিগার করে:
- ইনিশিয়ালাইজার ল্যাম্বডা ফাংশন
- সাবমিটার ল্যাম্বডা ফাংশন
- সমাপ্তি চেক Lambda ফাংশন
- কালেক্টর ল্যাম্বডা ফাংশন
ইনিশিয়ালাইজার ল্যাম্বডা ফাংশন
ইনিশিয়ালাইজারের প্রধান কাজ হল .zip প্যাকেজকে পৃথক ভিডিও ফাইলে আলাদা করা এবং জমা দেওয়ার জন্য প্রস্তুত করা। প্রথমে, .zip ফাইলটি ডাউনলোড করা হয় এবং তারপর ভিডিও ফাইল সহ প্রতিটি পৃথক ফাইল আনজিপ করা হয় এবং বের করা হয়। ভিডিওগুলি, বিশেষত .mp4 ফর্ম্যাটে, একটি S3 বালতিতে আবার আপলোড করা হয়৷ ব্যবহার করে create_video
পদ্ধতিতে video
এপিআই, ইনপুট হিসাবে ভিডিও পাথ দিয়ে একটি ভিডিও অবজেক্ট তৈরি করা হয়। এটি অরোরা ডাটাবেসে প্রতিটি ভিডিওর ডেটা সন্নিবেশ করায়। অন্য কোনো ফাইলের ধরন, যেমন JSON ফাইল, মেটাডেটা হিসেবে বিবেচিত হয় এবং একইভাবে আপলোড করা হয়, কিন্তু কোনো ভিডিও অবজেক্ট তৈরি করা হয় না। এক্সট্র্যাক্ট করা ফাইল এবং ভিডিও ফাইলগুলির নামের একটি তালিকা পরবর্তী ধাপে পাঠানো হয়।
সাবমিটার ল্যাম্বডা ফাংশন
সাবমিটার ফাংশন ভিডিও ফাইলগুলিকে নেয় যা ইনিশিয়ালাইজার দ্বারা নিষ্কাশিত হয়েছিল এবং ছবি হিসাবে ভিডিও ফ্রেমের মিনি-ব্যাচ তৈরি করে। উত্পাদনের বেশিরভাগ বর্তমান কম্পিউটার ভিশন মডেলগুলিকে চিত্রগুলিতে প্রশিক্ষিত করা হয়েছে তাই এমনকি যখন ভিডিও প্রক্রিয়া করা হয়, তারা প্রথমে মডেল অনুমানের আগে চিত্র ফ্রেমে আলাদা করা হয়। একটি অত্যাধুনিক ভঙ্গি অনুমান মডেল ব্যবহার করে এই বর্তমান সমাধানটি আলাদা নয় - অনুমান জেনারেশন ধাপ শুরু করতে জমাদানকারীর ফ্রেম ব্যাচগুলি কাইনেসিস ডেটা স্ট্রীমগুলিতে প্রেরণ করা হয়।
প্রথমত, ভিডিও ফাইলটি ল্যাম্বডা ফাংশন দ্বারা ডাউনলোড করা হয়। ফ্রেমের হার এবং ফ্রেমের সংখ্যা ব্যবহার করে গণনা করা হয় FileVideoStream
থেকে মডিউল imutils.video
প্রসেসিং লাইব্রেরি। ফ্রেমগুলিকে একটি নির্দিষ্ট মিনি-ব্যাচের আকার অনুসারে বের করা হয় এবং গোষ্ঠীবদ্ধ করা হয়, যা এই পাইপলাইনের মূল টিউনযোগ্য পরামিতিগুলির মধ্যে একটি। পাইথন পিকল লাইব্রেরি ব্যবহার করে, ডেটা সিরিয়ালাইজ করা হয় এবং অ্যামাজন এস3-এ আপলোড করা হয়। পরবর্তীকালে, একটি ফ্রেম ব্যাচ অবজেক্ট তৈরি করা হয় এবং অরোরা ডাটাবেসে মেটাডেটা এন্ট্রি তৈরি করা হয়। এই Lambda ফাংশন নির্ভরতা সহ একটি Dockerfile ব্যবহার করে নির্মিত হয়েছিল opencv-python
, numpy
, এবং imutils
লাইব্রেরি।
সমাপ্তি চেক Lambda ফাংশন
কমপ্লিশন চেক ফাংশনটি এই বর্তমান কাজের জন্য .zip প্যাকেজের প্রতিটি ভিডিওর জন্য, কতগুলি ফ্রেম ব্যাচ সম্পূর্ণ অবস্থায় রয়েছে তা দেখতে অরোরা ডাটাবেসকে জিজ্ঞাসা করতে থাকে। যখন সমস্ত ভিডিওর সমস্ত ফ্রেম ব্যাচ সম্পূর্ণ হয়, তখন এই চেক প্রক্রিয়াটি সম্পূর্ণ হয়।
কালেক্টর ল্যাম্বডা ফাংশন
সংগ্রাহক ফাংশন গ্রাহক পর্যায়ে প্রতিটি ফ্রেমে সম্পাদিত অনুমানগুলির আউটপুট নেয় এবং একটি ফ্রেম ব্যাচ এবং একটি ভিডিও জুড়ে সেগুলিকে একত্রিত করে। সম্মিলিত একত্রিত ডেটা তারপর একটি S3 বালতিতে আপলোড করা হয়। ফাংশন তারপরে কোনো পোস্টপ্রসেসিং গণনা সম্পাদন করার জন্য একটি নির্দিষ্ট ML পাইপলাইনের জন্য কর্টেক্স পোস্টপ্রসেসিং এপিআইকে আহ্বান করে এবং আউটপুট বালতিতে ভিডিও দ্বারা সমষ্টিগত ফলাফল যোগ করে। এই মেট্রিকগুলির অনেকগুলি ফ্রেম জুড়ে গণনা করা হয়, যেমন গতি, ত্বরণ এবং যৌথ কোণ, তাই এই গণনাটি সমষ্টিগত ডেটাতে সঞ্চালিত করা প্রয়োজন৷ প্রধান আউটপুটগুলির মধ্যে রয়েছে বডি কী পয়েন্ট ডেটা (CSV ফর্ম্যাটে একত্রিত), BMA গণনা (যেমন ত্বরণ), এবং একটি চিত্র ফাইলের প্রতিটি ফ্রেমে যুক্ত মূল পয়েন্টগুলির ভিজ্যুয়াল ওভারলে।
পরিমাপযোগ্য ভঙ্গি অনুমান অনুমান প্রজন্ম
প্রসেসিং ইঞ্জিন যা এমএল ইনফারেন্সের স্কেলিংকে ক্ষমতা দেয় তা এই পর্যায়ে ঘটে। এটিতে তিনটি প্রধান টুকরা জড়িত, প্রতিটির নিজস্ব সমগত লিভার রয়েছে যা লেটেন্সি ট্রেডঅফের জন্য টিউন করা যেতে পারে (নিম্নলিখিত চিত্রটি দেখুন)।
এই আর্কিটেকচারটি লেটেন্সি লাভের পরীক্ষা করার জন্য পরীক্ষা করার অনুমতি দেয়, সেইসাথে ভবিষ্যতের জন্য নমনীয়তার জন্য যখন কাজের চাপগুলি অ্যাপ্লিকেশন অ্যাক্সেস করে এমন শেষ-ব্যবহারকারীর অংশগুলির বিভিন্ন মিশ্রণের সাথে পরিবর্তিত হতে পারে।
কাইনেসিস ডেটা স্ট্রীম
দলটি কাইনেসিস ডেটা স্ট্রিম বেছে নিয়েছে কারণ এটি সাধারণত স্ট্রিমিং ডেটা পরিচালনা করতে ব্যবহৃত হয় এবং এই ক্ষেত্রে এটি একটি উপযুক্ত কারণ এটি স্কেলেবিলিটি এবং সমান্তরালকরণ প্রদানের জন্য একইভাবে ফ্রেম ব্যাচগুলি পরিচালনা করতে পারে। Submitter Lambda ফাংশনে, Kinesis Boto3 ক্লায়েন্ট ব্যবহার করা হয়, এর সাথে put_record
একটি একক ফ্রেম ব্যাচের সাথে যুক্ত মেটাডেটাতে পাস করার পদ্ধতি, যেমন ফ্রেম ব্যাচ আইডি, ফ্রেম ব্যাচের শুরুর ফ্রেম, ফ্রেমের ব্যাচ শেষ হওয়া ফ্রেম, ছবির আকৃতি, ফ্রেম রেট এবং ভিডিও আইডি।
আমরা বিভিন্ন কাজের সারি এবং কাইনেসিস ডেটা স্ট্রীম কনফিগারেশন সংজ্ঞায়িত করেছি থ্রুপুটের স্তরগুলি সেট করতে যা বিভিন্ন ব্যবহারকারী গোষ্ঠীর অগ্রাধিকার স্তরে ফিরে আসে। প্রসেসিং পাওয়ারের বিভিন্ন স্তরের অ্যাক্সেস একটি প্রকল্প সারি ARN পাস করার মাধ্যমে সংযুক্ত করা হয় যখন ব্যবহার করে একটি নতুন প্রকল্প তৈরি করা হয় project
API ব্যবহারকারী গ্রুপ তৈরির সময় প্রতিটি ব্যবহারকারী গ্রুপ একটি নির্দিষ্ট প্রকল্পের সাথে লিঙ্ক করা হয়। তিনটি ডিফল্ট স্ট্রীম কনফিগারেশন সংজ্ঞায়িত করা হয়েছে এডাব্লুএস সার্ভারলেস অ্যাপ্লিকেশন মডেল (AWS SAM) অবকাঠামো টেমপ্লেট:
- মান -
JobStreamShardCount
- অগ্রাধিকার -
PriorityJobStreamShardCount
- বেশি অগ্রাধিকার -
HighPriorityJobStreamShardCount
দলটি প্রতিটি স্ট্রীমের প্রক্রিয়াকরণ শক্তিকে আলাদা করতে বা সিস্টেমের লেটেন্সি টিউন করতে কয়েকটি ভিন্ন লিভার ব্যবহার করেছে, যেমনটি নিম্নলিখিত টেবিলে সংক্ষিপ্ত করা হয়েছে।
নদীতীরের বাঁধ | বিবরণ | ডিফল্ট মান |
ঠিকরা | একটি শার্ড কাইনেসিস ডেটা স্ট্রীমের নেটিভ; এটি ইনজেশনের জন্য থ্রুপুটের বেস ইউনিট। ডিফল্ট হল 1MB/sec, যা প্রতি সেকেন্ডে 1,000 ডেটা রেকর্ডের সমান৷ | 2 |
KinesisBatchSize |
ভোক্তা Lambda ফাংশন চালু করার আগে একটি একক ব্যাচে কাইনেসিস ডেটা স্ট্রীমগুলি পুনরুদ্ধারের সর্বাধিক সংখ্যক রেকর্ড। | 1 |
KinesisParallelizationFactor |
প্রতিটি শার্ড থেকে একযোগে প্রক্রিয়া করার জন্য ব্যাচের সংখ্যা। | 1 |
উন্নত ফ্যান-আউট | যে সমস্ত ডেটা ভোক্তারা ফ্যান-আউট অ্যাক্টিভেটেড করেছে তাদের গ্রাহকদের মধ্যে থ্রুপুট ভাগ করে নেওয়ার পরিবর্তে উপভোক্তা প্রতি একটি ডেডিকেটেড ইনজেশন থ্রুপুট রয়েছে (যেমন ডিফল্ট 1MB/sec)। | বন্ধ |
কনজিউমার ল্যাম্বডা ফাংশন
কাইনেসিস ডেটা স্ট্রীমের দৃষ্টিকোণ থেকে, একজন ডেটা ভোক্তা হল একটি AWS পরিষেবা যা একটি ডেটা স্ট্রিম শার্ড থেকে ডেটা পুনরুদ্ধার করে কারণ একটি স্ট্রীমে ডেটা তৈরি হয়। এই অ্যাপ্লিকেশনটি একটি উপভোক্তা ল্যাম্বডা ফাংশন ব্যবহার করে, যা ডেটা স্ট্রিম সারি থেকে বার্তাগুলি পাস করার সময় আহ্বান করা হয়। প্রতিটি কনজিউমার ফাংশন নিম্নলিখিত ধাপগুলি সম্পাদন করে একটি ফ্রেম ব্যাচ প্রক্রিয়া করে। প্রথমত, কর্টেক্স প্রসেসর এপিআই-এ সিঙ্ক্রোনাসভাবে একটি কল করা হয়, যেটি মডেল ইনফারেন্স পাইপলাইন হোস্ট করে এমন শেষ পয়েন্ট (আরও বিশদ বিবরণের জন্য কর্টেক্সের সাথে অ্যামাজন ইকেএস সম্পর্কিত পরবর্তী বিভাগটি দেখুন)। ফলাফলগুলি Amazon S3 এ সংরক্ষণ করা হয় এবং প্রক্রিয়াকৃত ফ্রেম ব্যাচের স্থিতি পরিবর্তন করে ডাটাবেসে একটি আপডেট করা হয় Complete
. Cortex ক্লাস্টার থেকে যেকোন 504 ত্রুটি পরিচালনা করার জন্য পুনরায় চেষ্টা করার লুপ সহ Cortex API কল পরিচালনা করার জন্য ত্রুটি হ্যান্ডলিং তৈরি করা হয়েছে, পুনঃপ্রচারের সংখ্যা 5 এ সেট করা হয়েছে।
এমএল অনুমানের জন্য কর্টেক্স সহ আমাজন EKS
দলটি ML অনুমানের জন্য কম্পিউট ইঞ্জিন হিসাবে AWS-এ পরিচালিত Kubernetes পরিষেবা Amazon EKS ব্যবহার করেছে। এমএল এন্ডপয়েন্ট হোস্ট করার জন্য অ্যামাজন ইকেএস ব্যবহার করার জন্য একটি ডিজাইন পছন্দ করা হয়েছিল, যা AWS এর মাধ্যমে সম্পূর্ণরূপে পরিচালিত ক্লাস্টারগুলির বিকল্পের সাথে আপস্ট্রিম কুবারনেটস চালানোর নমনীয়তা দেয় AWS Fargate, অথবা অন-প্রিমিসেস হার্ডওয়্যারের মাধ্যমে আমাজন EKS যে কোন জায়গায়. এটি ইন্টেল OTG দ্বারা আকাঙ্ক্ষিত কার্যকারিতার একটি সমালোচনামূলক অংশ ছিল, যা এই অ্যাপ্লিকেশনটিকে বিশেষায়িত অন-প্রিমিসেস হার্ডওয়্যারের সাথে সংযুক্ত করার বিকল্প প্রদান করেছিল, উদাহরণস্বরূপ।
তিনটি এমএল মডেল যা অনুমান পাইপলাইন নির্মাণের জন্য বিল্ডিং ব্লক ছিল একটি কাস্টম ইয়োলো মডেল (বস্তু সনাক্তকরণের জন্য), একটি কাস্টম HRNet মডেল (2D পোজ অনুমানের জন্য), এবং একটি 3DMPPE মডেল (3D পোজ অনুমানের জন্য) (আগেরটি দেখুন আরো বিস্তারিত জানার জন্য ML বিভাগ)। তারা ওপেন সোর্স ব্যবহার করেছে বল্কল এমএল ইনফারেন্স পাইপলাইন এন্ডপয়েন্টের স্থাপনা ও ব্যবস্থাপনা এবং অ্যামাজন ইকেএস ক্লাস্টার চালু ও স্থাপনা পরিচালনার জন্য লাইব্রেরি। এই মডেলগুলির প্রত্যেকটি ডকার পাত্রে প্যাকেজ করা হয়েছিল - মডেল ফাইলগুলি অ্যামাজন এস 3 এ সংরক্ষণ করা হয়েছিল এবং মডেলের চিত্রগুলি এখানে সংরক্ষণ করা হয়েছিল অ্যামাজন ইলাস্টিক কনটেইনার রেজিস্ট্রি (Amazon ECR)-এবং কর্টেক্স রিয়েলটাইম API হিসাবে মোতায়েন করা হয়েছে। CPU এবং GPU-তে চালিত মডেল কন্টেইনারগুলির সংস্করণগুলি কম্পিউট হার্ডওয়্যারের ধরণের জন্য নমনীয়তা প্রদানের জন্য তৈরি করা হয়েছিল। ভবিষ্যতে, যদি অতিরিক্ত মডেল বা মডেল পাইপলাইন যোগ করার প্রয়োজন হয়, তারা কেবল অতিরিক্ত কর্টেক্স রিয়েলটাইম API তৈরি করতে পারে।
তারপরে তারা কর্টেক্স রিয়েলটাইম মডেল এপিআইগুলিকে কর্টেক্স রিয়েলটাইম পাইপলাইন এপিআইগুলিতে একত্রিত করে অনুমান পাইপলাইনগুলি তৈরি করে৷ একটি একক রিয়েলটাইম পাইপলাইন এপিআই রিয়েলটাইম মডেল এপিআইগুলির একটি ক্রম কল করে। ভোক্তা Lambda ফাংশন একটি চিকিত্সা pipeline
একটি ব্ল্যাক বক্স হিসাবে API, একটি চিত্রের জন্য চূড়ান্ত অনুমান আউটপুট পুনরুদ্ধার করতে একটি একক API কল ব্যবহার করে। দুটি পাইপলাইন তৈরি করা হয়েছিল: একটি 2D পাইপলাইন এবং একটি 3D পাইপলাইন।
2D পাইপলাইন একটি ডিকোডিং প্রিপ্রসেসিং ধাপ, ক্রীড়াবিদকে সনাক্ত করতে এবং বাউন্ডিং বাক্স তৈরি করতে একটি কাস্টম ইয়োলো মডেল ব্যবহার করে অবজেক্ট সনাক্তকরণ এবং শেষ পর্যন্ত পোজ অনুমানের জন্য 2D মূল পয়েন্ট তৈরি করার জন্য একটি কাস্টম HRNet মডেলকে একত্রিত করে।
3D পাইপলাইনটি একটি ডিকোডিং প্রিপ্রসেসিং ধাপ, ক্রীড়াবিদকে সনাক্ত করতে এবং বাউন্ডিং বাক্স তৈরি করতে একটি কাস্টম ইয়োলো মডেল ব্যবহার করে অবজেক্ট সনাক্তকরণ এবং শেষ পর্যন্ত পোজ অনুমানের জন্য 3D মূল পয়েন্ট তৈরি করার জন্য একটি 3DMPPE মডেলকে একত্রিত করে।
ফ্রেমের একটি ব্যাচে অনুমান তৈরি করার পরে, প্রতিটি পাইপলাইনে একটি পৃথক পোস্টপ্রসেসিং রিয়েলটাইম কর্টেক্স এন্ডপয়েন্টও রয়েছে যা তিনটি প্রধান আউটপুট তৈরি করে:
- একটি একক CSV ফাইলে একত্রিত বডি কী পয়েন্ট ডেটা
- BMA গণনা (যেমন ত্বরণ)
- একটি ইমেজ ফাইলের প্রতিটি ফ্রেমে যুক্ত মূল পয়েন্টের ভিজ্যুয়াল ওভারলে
কালেক্টর ল্যাম্বডা ফাংশন এই পোস্টপ্রসেসিং আউটপুটগুলি তৈরি করার জন্য একটি নির্দিষ্ট ভিডিওর সাথে যুক্ত উপযুক্ত মেটাডেটা জমা দেয়, যেমন ফ্রেম আইডি এবং পোজ অনুমান অনুমানের আউটপুটগুলির S3 অবস্থানগুলি শেষ পয়েন্টে।
কর্টেক্সকে অ্যামাজন ইকেএস-এর সাথে একীভূত করার জন্য ডিজাইন করা হয়েছে এবং কুবারনেটস ক্লাস্টার চালু করার জন্য শুধুমাত্র একটি ক্লাস্টার কনফিগারেশন ফাইল এবং একটি সাধারণ কমান্ডের প্রয়োজন:
পারফরম্যান্স টিউনিংয়ের আরেকটি লিভার ছিল কম্পিউট ক্লাস্টারগুলির জন্য ইনস্ট্যান্স কনফিগারেশন। M5 এবং G4dn দৃষ্টান্তগুলির বিভিন্ন মিশ্রণের সাথে তিনটি স্তর তৈরি করা হয়েছিল, ক্লাস্টারের নাম, অঞ্চল এবং উদাহরণ কনফিগারেশন এবং মিশ্রণের মতো স্পেসিফিকেশন সহ .yaml ফাইল হিসাবে কোডিকৃত। কিছু খরচ/পারফরম্যান্স ট্রেডঅফ প্রদানের জন্য M5 দৃষ্টান্তগুলি কম খরচের CPU-ভিত্তিক এবং G4dn হল উচ্চ মূল্যের GPU-ভিত্তিক।
অপারেশনাল মনিটরিং
অপারেশনাল লগিং মান বজায় রাখার জন্য, সমস্ত ল্যাম্বডা ফাংশন এর মাধ্যমে লগ রেকর্ড এবং ইনজেস্ট করার কোড অন্তর্ভুক্ত করে আমাজন কিনেস ডেটা ফায়ারহোজ ose. উদাহরণ স্বরূপ, সাবমিটার ল্যাম্বডা ফাংশন থেকে প্রসেস করা প্রতিটি ফ্রেম ব্যাচ টাইমস্ট্যাম্প, অ্যাকশনের নাম এবং ল্যাম্বডা ফাংশন রেসপন্স JSON দিয়ে লগ করা হয় এবং Amazon S3 এ সেভ করা হয়। নিম্নলিখিত চিত্রটি স্থাপত্যের এই ধাপটি চিত্রিত করে।
বিস্তৃতি
AWS SAM ব্যবহার করে স্থাপনা পরিচালনা করা হয়, AWS-এ সার্ভারহীন অ্যাপ্লিকেশন তৈরির জন্য একটি ওপেন-সোর্স ফ্রেমওয়ার্ক। AWS SAM ফাংশন, API, ডাটাবেস এবং ইভেন্ট সোর্স ম্যাপিং সহ অবকাঠামো ডিজাইনকে কোডিফাইড এবং সহজেই নতুন AWS পরিবেশে স্থাপন করতে সক্ষম করে। স্থাপনার সময়, AWS SAM সিনট্যাক্স অনুবাদ করা হয় এডাব্লুএস ক্লাউডফর্মেশন অবকাঠামো ব্যবস্থা পরিচালনা করতে।
A template.yaml
ফাইলটিতে টিউনযোগ্য পরামিতি সহ অবকাঠামোগত বৈশিষ্ট্য রয়েছে, যেমন কিনেসিস ডেটা স্ট্রীম লেটেন্সি লিভারগুলি পূর্ববর্তী বিভাগে বিস্তারিত। ক samconfig.toml
ফাইলটিতে স্থাপনার পরামিতি রয়েছে যেমন স্ট্যাকের নাম, S3 বাকেটের নাম যেখানে ল্যাম্বডা ফাংশন কোডের মতো অ্যাপ্লিকেশন ফাইলগুলি সংরক্ষণ করা হয় এবং ট্র্যাকিং খরচের জন্য রিসোর্স ট্যাগ। সাধারণ কমান্ড সহ একটি deploy.sh শেল স্ক্রিপ্ট সম্পূর্ণ টেমপ্লেট তৈরি এবং স্থাপন করার জন্য যা প্রয়োজন:
ব্যবহারকারীর কাজের প্রবাহ
সংক্ষেপে, পরিকাঠামো স্থাপনের পরে, আপনি শুরু করতে এই ওয়ার্কফ্লো অনুসরণ করতে পারেন:
- ক্লায়েন্ট লাইব্রেরি ব্যবহার করে একটি Intel 3DAT ক্লায়েন্ট তৈরি করুন।
- একটি পাইপলাইনের একটি নতুন দৃষ্টান্ত তৈরি করতে API ব্যবহার করুন যা প্রয়োজনীয় প্রক্রিয়াকরণের ধরণের সাথে সম্পর্কিত, যেমন 3D পোজ অনুমানের জন্য একটি।
- একটি প্রকল্পের একটি নতুন উদাহরণ তৈরি করুন, ক্লাস্টার ARN এবং Kinesis queue ARN এর মধ্যে দিয়ে।
- একটি পাইপলাইন প্যারামিটার সেটের একটি নতুন উদাহরণ তৈরি করুন।
- পাইপলাইন প্যারামিটারের একটি নতুন উদাহরণ তৈরি করুন যা পাইপলাইন প্যারামিটার সেটে মানচিত্র করে।
- একটি নতুন ব্যবহারকারী গ্রুপ তৈরি করুন যা একটি প্রকল্প আইডি এবং একটি পাইপলাইন প্যারামিটার সেট আইডির সাথে যুক্ত।
- ব্যবহারকারী গ্রুপের সাথে যুক্ত একটি নতুন ব্যবহারকারী তৈরি করুন।
- কাজের API-এ আপলোড ফাংশন দ্বারা তৈরি একটি নির্ধারিত S3 URL ব্যবহার করে Amazon S3 এ ভিডিওগুলির একটি .zip ফাইল আপলোড করুন৷
- একটি জমা দিন
create_job
এপিআই কল, কাজের পরামিতি সহ যা ভিডিও ফাইলের অবস্থান নির্দিষ্ট করে। এটি প্রক্রিয়াকরণের কাজ শুরু করে।
উপসংহার
অ্যাপ্লিকেশানটি এখন লাইভ এবং অ্যাথলেট এবং কোচদের সাথে একইভাবে পরীক্ষা করার জন্য প্রস্তুত৷ Intel OTG কম্পিউটার ভিশন ব্যবহার করে উদ্ভাবনী পোজ এস্টিমেশন প্রযুক্তিকে বিভিন্ন ব্যবহারকারী, ডেভেলপার থেকে শুরু করে ক্রীড়াবিদ থেকে সফটওয়্যার বিক্রেতা অংশীদারদের জন্য অ্যাক্সেসযোগ্য করে তুলতে উত্তেজিত।
AWS টিম ইন্টেল OTG-এর মতো গ্রাহকদের তাদের ML যাত্রাকে ত্বরান্বিত করতে, ML সলিউশন ল্যাবের ধারণা এবং আবিষ্কারের পর্যায় থেকে AWS ML ProServe-এর সাথে শক্তকরণ এবং স্থাপনার পর্যায়ে সাহায্য করার জন্য উত্সাহী। আমরা সবাই এই গ্রীষ্মে 2021 টোকিও অলিম্পিকে ঘনিষ্ঠভাবে পর্যবেক্ষণ করব যাতে ML খেলাধুলায় আনলক করতে পারে এমন সমস্ত অগ্রগতি কল্পনা করতে।
আজই শুরু করো! এই পোস্টে উল্লিখিত পরিষেবাগুলি এবং আরও অনেকের সাথে আপনার ব্যবহারের ক্ষেত্রে অন্বেষণ করুন৷ এডাব্লুএস ম্যানেজমেন্ট কনসোল.
লেখক সম্পর্কে
হান ম্যান সান দিয়েগো, CA ভিত্তিক AWS-এর একজন সিনিয়র ম্যানেজার- মেশিন লার্নিং এবং AI। তিনি নর্থওয়েস্টার্ন ইউনিভার্সিটি থেকে প্রকৌশলে পিএইচডি করেছেন এবং ক্লায়েন্টদের উত্পাদন, আর্থিক পরিষেবা এবং শক্তিতে পরামর্শ দেওয়ার জন্য ম্যানেজমেন্ট কনসালট্যান্ট হিসাবে কয়েক বছরের অভিজ্ঞতা রয়েছে। আজ তিনি AWS-এ মেশিন লার্নিং এবং AI সমাধানগুলি বিকাশ ও প্রয়োগ করতে বিভিন্ন শিল্পের গ্রাহকদের সাথে আবেগের সাথে কাজ করছেন। তিনি এনবিএ অনুসরণ করা এবং অবসর সময়ে বাস্কেটবল খেলা উপভোগ করেন।
ইমান কাম্যবী AWS প্রফেশনাল সার্ভিসেস সহ একজন এমএল ইঞ্জিনিয়ার। পুনরাবৃত্তিযোগ্য এবং নির্ভরযোগ্য ML পাইপলাইন স্থাপনের সেরা অনুশীলনগুলিকে চ্যাম্পিয়ন করার জন্য তিনি AWS গ্রাহকদের একটি বিস্তৃত পরিসরের সাথে কাজ করেছেন।
জনাথন লি ইন্টেলের অলিম্পিক টেকনোলজি গ্রুপের স্পোর্টস পারফরম্যান্স টেকনোলজির পরিচালক। তিনি UCLA তে স্নাতক এবং অক্সফোর্ড বিশ্ববিদ্যালয়ে স্নাতক কাজের সময় স্বাস্থ্যের জন্য মেশিন লার্নিং এর প্রয়োগ অধ্যয়ন করেন। তার কর্মজীবন স্বাস্থ্য এবং মানুষের কর্মক্ষমতা জন্য অ্যালগরিদম এবং সেন্সর উন্নয়নের উপর দৃষ্টি নিবদ্ধ করেছে। তিনি এখন ইন্টেলে 3D অ্যাথলেট ট্র্যাকিং প্রকল্পের নেতৃত্ব দিচ্ছেন।
নেলসন লেউং তিনি ইন্টেলের স্পোর্টস পারফরম্যান্স CoE-এর প্ল্যাটফর্ম আর্কিটেক্ট, যেখানে তিনি ক্রীড়াবিদদের পারফরম্যান্স উন্নত করে এমন অত্যাধুনিক পণ্যগুলির জন্য এন্ড-টু-এন্ড আর্কিটেকচার সংজ্ঞায়িত করেন। এছাড়াও তিনি বিভিন্ন ইন্টেল অংশীদারদের কাছে এই মেশিন লার্নিং সমাধানগুলির বাস্তবায়ন, স্থাপনা এবং উৎপাদনের নেতৃত্ব দেন।
ট্রয় স্কুইলাচি ইন্টেলের একজন DecSecOps প্রকৌশলী যেখানে তিনি DevOps সেরা অনুশীলনের মাধ্যমে গ্রাহকদের পেশাদার সফ্টওয়্যার সমাধান প্রদান করেন। তিনি বিভিন্ন ডোমেনে স্কেলযোগ্য প্ল্যাটফর্মে AI সমাধানগুলিকে একীভূত করা উপভোগ করেন।
পল মিন তিনি অ্যামাজন ওয়েব সার্ভিসেস (AWS) এর একজন সহযোগী সমাধান আর্কিটেক্ট ইন্টার্ন, যেখানে তিনি বিভিন্ন শিল্প উল্লম্ব জুড়ে গ্রাহকদের তাদের মিশন এগিয়ে নিতে এবং তাদের ক্লাউড গ্রহণকে ত্বরান্বিত করতে সহায়তা করেন। পূর্বে ইন্টেলে, তিনি 3D অ্যাথলেট ট্র্যাকিং ক্লাউড SDK বিকাশে সহায়তা করার জন্য একটি সফ্টওয়্যার ইঞ্জিনিয়ারিং ইন্টার্ন হিসাবে কাজ করেছিলেন। কাজের বাইরে, পল গলফ খেলা উপভোগ করেন এবং গান গাইতে শোনা যায়।
- Coinsmart. ইউরোপের সেরা বিটকয়েন এবং ক্রিপ্টো এক্সচেঞ্জ।
- প্লেটোব্লকচেন। Web3 মেটাভার্স ইন্টেলিজেন্স। জ্ঞান প্রসারিত. বিনামূল্যে এক্সেস.
- ক্রিপ্টোহক। Altcoin রাডার। বিনামূল্যে ট্রায়াল.
- সূত্র: https://aws.amazon.com/blogs/machine-learning/the-intel3d-athlete-tracking-3dat-scalable-architecture-deploys-pose-estimation-models-using-amazon-kinesis-data-streams- এবং-অ্যামাজন-ইক্স/
- "
- &
- 000
- 100
- 2021
- 3d
- সম্পর্কে
- দ্রুততর করা
- প্রবেশ
- প্রবেশযোগ্য
- অনুযায়ী
- হিসাব
- দিয়ে
- কর্ম
- স্টক
- যোগ
- অতিরিক্ত
- অ্যাডমিন
- গ্রহণ
- AI
- অ্যালগরিদম
- সব
- মর্দানী স্ত্রীলোক
- অ্যামাজন ওয়েব সার্ভিসেস
- মধ্যে
- API
- API গুলি
- আবেদন
- অ্যাপ্লিকেশন
- যথাযথ
- স্থাপত্য
- আর্গুমেন্ট
- নির্ধারিত
- সহযোগী
- ক্রীড়াবিদ
- বৈশিষ্ট্যাবলী
- স্বয়ংক্রিয়
- ডেস্কটপ AWS
- ব্যাকআপ
- বাস্কেটবল
- আগে
- সুবিধা
- সর্বোত্তম
- সেরা অভ্যাস
- কালো
- ব্লগ
- শরীর
- বক্স
- নির্মাণ করা
- ভবন
- কল
- ধারণক্ষমতা
- যত্ন
- পেশা
- মামলা
- মধ্য
- রক্ষক
- পরিবর্তন
- পছন্দ
- ক্লায়েন্ট
- মেঘ
- কোড
- সংগ্রহ
- সংগ্রাহক
- মিলিত
- উপাদান
- গনা
- কম্পিউটার
- কনফিগারেশন
- সংযোগ
- পরামর্শকারী
- ভোক্তা
- কনজিউমার্স
- আধার
- কন্টেনারগুলি
- ধারণ
- চলতে
- নিয়ন্ত্রণ
- তুল্য
- মূল
- অনুরূপ
- সৃষ্টি
- নির্মিত
- সৃষ্টি
- তৈরি করা হচ্ছে
- সৃষ্টি
- পরিচয়পত্র
- সংকটপূর্ণ
- কঠোর
- বর্তমান
- এখন
- প্রথা
- ক্রেতা
- গ্রাহকদের
- কাটিং-এজ
- উপাত্ত
- ডেটাবেস
- ডাটাবেস
- দিন
- নিবেদিত
- গভীর
- বিতরণ
- স্থাপন
- মোতায়েন
- বিস্তৃতি
- স্থাপন
- নকশা
- পরিকল্পিত
- বিস্তারিত
- বিশদ
- বিস্তারিত
- সনাক্তকরণ
- বিকাশ
- বিকাশকারী
- ডেভেলপারদের
- উন্নয়ন
- বিভিন্ন
- ভেদ করা
- সরাসরি
- Director
- আবিষ্কার
- প্রদর্শন
- ডকশ্রমিক
- না
- ডোমেইনের
- নিচে
- সময়
- সহজে
- ইমেইল
- শেষপ্রান্ত
- শক্তি
- ইঞ্জিন
- প্রকৌশলী
- প্রকৌশল
- পরিবেশ
- ঘটনা
- উদাহরণ
- উত্তেজিত
- বিদ্যমান
- আশা
- অভিজ্ঞতা
- অন্বেষণ করুণ
- বৈশিষ্ট্য
- পরিশেষে
- আর্থিক
- অর্থনৈতিক সেবা সমূহ
- প্রথম
- ফিট
- ফ্লিট
- নমনীয়তা
- নমনীয়
- দৃষ্টি নিবদ্ধ করা
- অনুসরণ করা
- অনুসরণ
- অনুসরণ
- বিন্যাস
- দূরদর্শী
- ফ্রেম
- ফ্রেমওয়ার্ক
- ক্রিয়া
- কার্মিক
- কার্যকারিতা
- ক্রিয়াকলাপ
- ভবিষ্যৎ
- উত্পাদন করা
- উৎপাদিত
- প্রজন্ম
- দান
- লক্ষ্য
- ভাল
- জিপিইউ
- স্নাতক
- গ্রুপ
- গ্রুপের
- হাতল
- হ্যান্ডলিং
- হার্ডওয়্যারের
- স্বাস্থ্য
- শুনেছি
- সাহায্য
- সাহায্য
- সাহায্য
- এখানে
- ঊর্ধ্বতন
- কিভাবে
- HTTPS দ্বারা
- মানবীয়
- পরিচয়
- ভাবমূর্তি
- বাস্তবায়ন
- বাস্তবায়ন
- গুরুত্বপূর্ণ
- অন্তর্ভুক্ত করা
- অন্তর্ভুক্ত
- সুদ্ধ
- স্বতন্ত্র
- শিল্প
- শিল্প
- পরিকাঠামো
- উদ্ভাবনী
- ইনপুট
- সন্নিবেশ
- ইনস্টল
- সংহত
- ইন্টিগ্রেশন
- ইন্টেল
- বুদ্ধিমত্তা
- মিথষ্ক্রিয়া
- ইন্টারফেস
- IT
- কাজ
- জবস
- যাত্রা
- চাবি
- গবেষণাগার
- শুরু করা
- চালু করা
- বিশালাকার
- শিক্ষা
- উচ্চতা
- লাইব্রেরি
- লাইন
- তালিকা
- বোঝাই
- অবস্থান
- অবস্থানগুলি
- মেশিন
- মেশিন লার্নিং
- প্রণীত
- বজায় রাখা
- মুখ্য
- তৈরি করে
- এক
- পরিচালনা করা
- পরিচালিত
- ব্যবস্থাপনা
- উত্পাদন
- মানচিত্র
- ম্যাপিং
- উল্লিখিত
- পদ্ধতি
- ছন্দোবিজ্ঞান
- সর্বনিম্ন
- মিশন
- ML
- মোবাইল
- মোবাইল অ্যাপ্লিকেশন
- মডেল
- মডেল
- মডুলার
- অধিক
- সেতু
- বহু
- নাম
- এন বি এ
- প্রয়োজনীয়
- চাহিদা
- সংখ্যা
- অলিম্পিকে
- প্রর্দশিত
- পরিচালনা করা
- অপ্টিমাইজ
- পছন্দ
- ক্রম
- অন্যান্য
- নিজের
- অক্সফোর্ড
- প্যাকেজ
- অংশ
- বিশেষ
- বিশেষত
- অংশীদারদের
- পাসিং
- কামুক
- প্যাটার্ন
- শতকরা হার
- কর্মক্ষমতা
- করণ
- পরিপ্রেক্ষিত
- টুকরা
- মাচা
- প্ল্যাটফর্ম
- কেলি
- কবিতা
- পয়েন্ট
- সম্ভব
- ক্ষমতা
- ক্ষমতাশালী
- প্রস্তুত করা
- আগে
- প্রাথমিক
- নীতি
- অগ্রাধিকার
- প্রক্রিয়া
- প্রসেস
- প্রক্রিয়াজাতকরণ
- প্রসেসর
- উৎপাদন করা
- উত্পাদনের
- পণ্য
- পেশাদারী
- প্রকল্প
- প্রদান
- উপলব্ধ
- উদ্দেশ্য
- পরিসর
- কাঁচা
- প্রকৃত সময়
- চেনা
- নথি
- রেকর্ড
- সংক্রান্ত
- বিশ্বাসযোগ্য
- অনুরোধ
- প্রয়োজন
- প্রয়োজনীয়
- আবশ্যকতা
- প্রয়োজন
- সংস্থান
- Resources
- প্রতিক্রিয়া
- ফলাফল
- চালান
- দৌড়
- নিরাপত্তা
- সান
- স্কেলেবিলিটি
- মাপযোগ্য
- স্কেল
- আরোহী
- SDK
- নিরাপদ
- অংশ
- Serverless
- সেবা
- সেবা
- সেট
- বিন্যাস
- আকৃতি
- শেয়ারিং
- খোল
- প্রদর্শিত
- অনুরূপ
- একভাবে
- সহজ
- আয়তন
- So
- সফটওয়্যার
- একটি পরিষেবা হিসাবে সফ্টওয়্যার
- সফ্টওয়্যার প্রকৌশল
- সমাধান
- সলিউশন
- কিছু
- কেউ
- বিশেষজ্ঞ
- স্পেসিফিকেশনের
- স্পীড
- বিজ্ঞাপন
- গাদা
- পর্যায়
- মান
- মান
- শুরু
- শুরু
- শুরু
- রাষ্ট্র
- রাষ্ট্র-এর-শিল্প
- অবস্থা
- স্টোরেজ
- দোকান
- প্রবাহ
- স্ট্রিমিং
- পেশ
- পরবর্তীকালে
- গ্রীষ্ম
- সমর্থন
- সমর্থন
- পদ্ধতি
- গ্রহণ
- টীম
- প্রযুক্তিঃ
- পরীক্ষামূলক
- অতএব
- দ্বারা
- টাই
- সময়
- আজ
- একসঙ্গে
- টোকিও
- পথ
- অনুসরণকরণ
- ধরনের
- সাধারণত
- শীর্ষ
- বিশ্ববিদ্যালয়
- অক্সফোর্ড বিশ্ববিদ্যালয়
- আনলক
- আপডেট
- ব্যবহার
- ব্যবহারকারী
- ব্যবহার
- মূল্য
- বৈচিত্র্য
- বিভিন্ন
- উল্লম্ব
- ভিডিও
- Videos
- দৃষ্টি
- ওয়েব
- ওয়েব সার্ভিস
- হু
- ছাড়া
- হয়া যাই ?
- কাজ করছে
- কাজ
- বছর