یہ بلاگ پوسٹ Jonathan Lee، Nelson Leung، Paul Min، اور Troy Squillaci نے Intel سے مل کر لکھا ہے۔
In حصہ 1 اس پوسٹ میں، ہم نے تبادلہ خیال کیا کہ Intel®3DAT کے ساتھ کس طرح تعاون کیا گیا۔ AWS مشین لرننگ پروفیشنل سروسز (MLPS) توسیع پذیر AI SaaS ایپلیکیشن بنانے کے لیے۔ 3DAT معیاری ویڈیو سے 1,000 سے زیادہ بائیو مکینکس ڈیٹا پوائنٹس کو پہچاننے، ٹریک کرنے اور ان کا تجزیہ کرنے کے لیے کمپیوٹر وژن اور AI کا استعمال کرتا ہے۔ یہ صارفین کو بھرپور اور طاقتور بائیو مکینکس سے چلنے والی مصنوعات بنانے کی اجازت دیتا ہے، جیسا کہ تفصیلی کارکردگی کے ڈیٹا اور سہ جہتی تصورات کے ساتھ ویب اور موبائل ایپلیکیشنز۔
اس پوسٹ کے حصہ 2 میں، ہم فن تعمیر کے ہر مرحلے میں گہرائی میں ڈوبتے ہیں۔ ہم 3DAT ڈیزائن کی ضروریات کو پورا کرنے کے لیے استعمال ہونے والی AWS خدمات کو دریافت کرتے ہیں، بشمول Amazon Kinesis ڈیٹا اسٹریمز اور ایمیزون لچکدار کبیرنیٹس سروس (Amazon EKS)، اس سافٹ ویئر کے لیے ضروری پوز تخمینہ ماڈلز کو بطور سروس (SaaS) ایپلیکیشن کے طور پر تعینات کرنے کے لیے۔
فن تعمیر کا جائزہ
MLPS ٹیم کا بنیادی ہدف 2D اور 3D پوز تخمینہ ماڈل پائپ لائنوں کو تیار کرنا اور ایک فعال اور توسیع پذیر ایپلی کیشن بنانا تھا۔ مندرجہ ذیل خاکہ حل کے فن تعمیر کی وضاحت کرتا ہے۔
مکمل فن تعمیر کو پانچ بڑے اجزاء میں تقسیم کیا گیا ہے:
- یوزر ایپلیکیشن انٹرفیس پرتیں۔
- ڈیٹا بیس
- ورک فلو آرکیسٹریشن
- اسکیل ایبل پوز تخمینہ تخمینہ جنریشن
- آپریشنل نگرانی
آئیے ہر جزو، ان کے تعاملات، اور ڈیزائن کے انتخاب کے پیچھے دلیل پر تفصیل سے چلتے ہیں۔
یوزر ایپلیکیشن انٹرفیس پرتیں۔
مندرجہ ذیل خاکہ ایپلی کیشن انٹرفیس کی تہوں کو دکھاتا ہے جو صارف کو ایپلیکیشن اور اس کے وسائل تک رسائی اور کنٹرول فراہم کرتی ہے۔
یہ رسائی پوائنٹس مختلف گاہک کے افراد کی بنیاد پر استعمال کے مختلف معاملات کی حمایت کرتے ہیں۔ مثال کے طور پر، ایک ایپلیکیشن صارف CLI کے ذریعے جاب جمع کرا سکتا ہے، جب کہ ایک ڈویلپر Python SDK کا استعمال کرتے ہوئے ایک ایپلیکیشن بنا سکتا ہے اور اپنی ایپلی کیشنز میں پوز تخمینہ ذہانت کو ایمبیڈ کر سکتا ہے۔ CLI اور SDK کو ماڈیولر اجزاء کے طور پر بنایا گیا ہے — دونوں پرتیں API پرت کے ریپرز ہیں، جو ایمیزون API گیٹ وے API کالوں کو حل کرنے کے لیے اور منسلک AWS Lambda فنکشنز، جو ہر API کال سے وابستہ بیک اینڈ منطق کا خیال رکھتے ہیں۔ یہ پرتیں Intel OTG ٹیم کے لیے ایک اہم جز تھیں کیونکہ اس سے صارفین کا ایک وسیع مرکز کھلتا ہے جو اس SaaS ایپلیکیشن کو مؤثر طریقے سے استعمال کر سکتے ہیں۔
API پرت
حل میں نو APIs کا ایک بنیادی سیٹ ہے، جو اس پلیٹ فارم پر کام کرنے والی اشیاء کی اقسام سے مطابقت رکھتا ہے۔ ہر API میں ایک Python فائل ہوتی ہے جو API کی کارروائیوں کی وضاحت کرتی ہے جو چلائی جا سکتی ہیں۔ نئی اشیاء کی تخلیق خود بخود ایک آبجیکٹ ID ترتیب وار تفویض کی جاتی ہے۔ ان اشیاء کی صفات کو میں محفوظ اور ٹریک کیا جاتا ہے۔ ایمیزون ارورہ سرور لیس اس ID کا استعمال کرتے ہوئے ڈیٹا بیس۔ لہذا، API ایکشنز ان فنکشنز سے منسلک ہوتے ہیں جن کی وضاحت مرکزی فائل میں کی گئی ہے جس میں ارورہ ڈیٹا بیس سے استفسار کرنے کے لیے بیک اینڈ منطق شامل ہے۔ یہ پسدید منطق Boto3 کا استعمال کرتی ہے۔ ایمیزون آر ڈی ایس ڈیٹا سروس کلائنٹ ڈیٹا بیس کلسٹر تک رسائی حاصل کرنے کے لیے۔
ایک استثناء ہے۔ /job
API، جس میں a create_job
وہ طریقہ جو ایک نئی پروسیسنگ جاب بنانے کے لیے ویڈیو جمع کرانے کو سنبھالتا ہے۔ یہ طریقہ شروع ہوتا ہے۔ AWS اسٹیپ فنکشنز کام چلانے کے لیے ورک فلو منطق۔ میں گزر کر a job_id
، یہ طریقہ Boto3 استعمال کرتا ہے۔ سٹیپ فنکشنز کلائنٹ فون کرنے کے لئے start_execution
ایک مخصوص کے لئے طریقہ stateMachineARN
(ایمیزون ریسورس کا نام)۔
آٹھ آبجیکٹ APIs میں طریقے اور اسی طرح کی رسائی کا نمونہ ہے جیسا کہ مندرجہ ذیل جدول میں خلاصہ کیا گیا ہے۔
طریقہ کی قسم | فنکشن کا نام | Description |
حاصل کریں | list_[object_name]s |
ڈیٹا بیس اور ڈسپلے سے اس قسم کی تمام اشیاء کو منتخب کرتا ہے۔ |
POST | create_[object] |
ڈیٹا بیس میں مطلوبہ ان پٹ کے ساتھ ایک نیا آبجیکٹ ریکارڈ داخل کرتا ہے۔ |
حاصل کریں | get_[object] |
ڈیٹابیس اور ڈسپلے سے آبجیکٹ ID کی بنیاد پر آبجیکٹ کی خصوصیات کو منتخب کرتا ہے۔ |
رکھ | update_[object] |
مطلوبہ آدانوں کے ساتھ موجودہ آبجیکٹ ریکارڈ کو اپ ڈیٹ کرتا ہے۔ |
DELETE | delete_[object] |
آبجیکٹ ID کی بنیاد پر ڈیٹا بیس سے موجودہ آبجیکٹ ریکارڈ کو حذف کرتا ہے۔ |
نو APIs کی تفصیلات درج ذیل ہیں:
- /صارف - صارف کسی ایسے شخص کی شناخت ہے جو اس درخواست میں ملازمتیں جمع کرانے کا مجاز ہے۔ صارف کی تخلیق کے لیے صارف کا نام، صارف ای میل، اور گروپ ID کی ضرورت ہوتی ہے جس سے صارف تعلق رکھتا ہے۔
- /user_group - صارف گروپ صارفین کا مجموعہ ہے۔ ہر صارف گروپ کو ایک پروجیکٹ اور ایک پائپ لائن پیرامیٹر سیٹ سے میپ کیا جاتا ہے۔ مختلف درجات رکھنے کے لیے (بنیادی وسائل اور پائپ لائن پیرامیٹرز کے لحاظ سے)، صارفین کو صارف گروپوں میں تقسیم کیا جاتا ہے۔ ہر صارف صرف ایک صارف گروپ سے تعلق رکھ سکتا ہے۔ صارف گروپ کی تخلیق کے لیے پروجیکٹ ID، پائپ لائن پیرامیٹر سیٹ ID، صارف گروپ کا نام، اور صارف گروپ کی تفصیل درکار ہوتی ہے۔ نوٹ کریں کہ صارف گروپ AWS اکاؤنٹ میں بیان کردہ صارف کے کردار سے مختلف ہیں۔ مؤخر الذکر ان کے رسائی کے کرداروں کی بنیاد پر مختلف سطح تک رسائی فراہم کرنے کے لیے استعمال کیا جاتا ہے (مثال کے طور پر منتظم)۔
- /پروجیکٹ - ایک پروجیکٹ کو بنیادی ڈھانچے کے وسائل کے مختلف سیٹوں کو ایک ساتھ گروپ کرنے کے لیے استعمال کیا جاتا ہے۔ ایک پروجیکٹ سنگل سے وابستہ ہے۔
project_cluster_url
(ارورہ کلسٹر) صارفین، نوکریوں، اور دیگر میٹا ڈیٹا کو ریکارڈ کرنے کے لیے، aproject_queue_arn
(Kinesis Data Streams ARN)، اور ایک کمپیوٹ رن ٹائم ماحول (فی الحال Cortex کے ذریعے کنٹرول کیا جاتا ہے) فریم بیچز پر انفرنس چلانے یا ویڈیوز پر پوسٹ پروسیسنگ کے لیے استعمال کیا جاتا ہے۔ ہر صارف گروپ ایک پروجیکٹ سے وابستہ ہے، اور یہ طریقہ کار یہ ہے کہ صارفین کے مختلف گروپس کے لیے تاخیر اور کمپیوٹ پاور کے لحاظ سے مختلف درجات کو کیسے فعال کیا جاتا ہے۔ پروجیکٹ کی تخلیق کے لیے پروجیکٹ کا نام، پروجیکٹ کلسٹر یو آر ایل، اور پروجیکٹ کیو اے آر این کی ضرورت ہوتی ہے۔ - /پائپ لائن - ایک پائپ لائن پروسیسنگ کنٹینرز کی ایک ترتیب کے لیے واحد کنفیگریشن کے ساتھ منسلک ہے جو Cortex کے ذریعے مربوط Amazon EKS انفرنس جنریشن کلسٹر میں ویڈیو پروسیسنگ کرتی ہے (مزید تفصیلات کے لیے ویڈیو پروسیسنگ انفرنس جنریشن پر سیکشن دیکھیں)۔ عام طور پر، یہ تین کنٹینرز پر مشتمل ہوتا ہے: پری پروسیسنگ اور ڈی کوڈنگ، آبجیکٹ کا پتہ لگانا، اور پوز کا تخمینہ۔ مثال کے طور پر، ڈی کوڈ اور آبجیکٹ کا پتہ لگانے کا مرحلہ 2D اور 3D پائپ لائنوں کے لیے ایک جیسا ہے، لیکن HRNet یا 3DMPPE کا استعمال کرتے ہوئے آخری کنٹینر کو تبدیل کرنے سے 2D بمقابلہ 3D پروسیسنگ پائپ لائنز کے لیے پیرامیٹر سیٹ ہو جاتا ہے۔ آپ ممکنہ پائپ لائنوں کی وضاحت کرنے کے لیے نئی کنفیگریشنز تشکیل دے سکتے ہیں جو پروسیسنگ کے لیے استعمال کی جا سکتی ہیں، اور اس کے لیے کارٹیکس ریپو میں ایک نئی ازگر فائل کی ضرورت ہوتی ہے جس میں ماڈل اینڈ پوائنٹس کال کی ترتیب کی تفصیل ہوتی ہے جو اس پائپ لائن کی وضاحت کرتی ہے (ویڈیو پروسیسنگ انفرنس جنریشن پر سیکشن دیکھیں۔ )۔ پائپ لائن اینڈ پوائنٹ کورٹیکس اینڈ پوائنٹ ہے جسے ایک فریم پر کارروائی کرنے کے لیے کہا جاتا ہے۔ پائپ لائن کی تخلیق کے لیے پائپ لائن کا نام، پائپ لائن کی تفصیل اور پائپ لائن کا اختتامی نقطہ درکار ہوتا ہے۔
- /pipeline_parameter_set - ایک پائپ لائن پیرامیٹر سیٹ کسی خاص پائپ لائن کے لیے متعدد پیرامیٹرز (ایک پائپ لائن کنفیگریشن رن ٹائم) کا ایک لچکدار JSON مجموعہ ہے، اور جب متعدد پائپ لائن کنفیگریشن رن ٹائمز کی ضرورت ہوتی ہے تو مستقبل کی تخصیص کے لیے لچک فراہم کرنے کے لیے شامل کیا جاتا ہے۔ صارف گروپوں کو ایک مخصوص پائپ لائن پیرامیٹر سیٹ کے ساتھ منسلک کیا جا سکتا ہے، اور اس کا مقصد فی صارف گروپ اور فی پائپ لائن پیرامیٹرز کے مختلف گروپوں کا ہونا ہے۔ یہ انٹیل OTG کے لیے حسب ضرورت بنانے کے لیے ایک اہم اضافہ تھا جو پورٹیبلٹی کو سپورٹ کرتا ہے کیونکہ مختلف صارفین، خاص طور پر ISVs، ایپلیکیشن کا استعمال شروع کرتے ہیں۔
- /pipeline_parameters - پائپ لائن پیرامیٹرز کا ایک مجموعہ پائپ لائن پیرامیٹر سیٹ کا ایک انسٹی ٹیشن ہے۔ اس سے یہ پائپ لائن پیرامیٹر کی 1:بہت سے نقشہ سازی پائپ لائن پیرامیٹرز پر سیٹ کرتا ہے۔ اس API کو پائپ لائن کے پیرامیٹرز کے سیٹ کے ساتھ منسلک کرنے کے لیے ایک پائپ لائن ID کی ضرورت ہوتی ہے جو پائپ لائن میں پائپ لائن پیرامیٹرز کی 1:1 میپنگ کے لیے پائپ لائن کی تخلیق کو قابل بناتا ہے۔ اس API کو درکار دیگر ان پٹ ایک پائپ لائن پیرامیٹر سیٹ ID، پائپ لائن پیرامیٹرز ویلیو، اور پائپ لائن پیرامیٹرز کا نام ہیں۔
- /ویڈیو - ایک ویڈیو آبجیکٹ کو انفرادی ویڈیوز کی وضاحت کرنے کے لیے استعمال کیا جاتا ہے جو ملازمت کے دوران جمع کردہ .zip پیکج کو بناتے ہیں۔ جمع کرانے کے بعد اس فائل کو متعدد ویڈیوز میں تقسیم کیا گیا ہے۔ ایک ویڈیو سے متعلق ہے۔
job_id
اس کام کے لیے جہاں .zip پیکج جمع کرایا جاتا ہے، اور ایمیزون سادہ اسٹوریج سروس (ایمیزون S3) خام الگ شدہ ویڈیوز کے مقام اور ہر ویڈیو کے پوسٹ پروسیسنگ نتائج کے لیے راستے۔ ویڈیو آبجیکٹ میں ویڈیو پروگریس فیصد بھی ہوتا ہے، جو اس ویڈیو کے انفرادی فریم بیچز کی پروسیسنگ کے دوران مسلسل اپ ڈیٹ ہوتا ہے، ساتھ ہی ساتھ مکمل یا مکمل نہ ہونے کے لیے ویڈیو اسٹیٹس کا جھنڈا بھی ہوتا ہے۔ ویڈیو بنانے کے لیے نوکری کی شناخت، ویڈیو کا راستہ، ویڈیو کے نتائج کا راستہ، ویڈیو کی ترقی کا فیصد، اور ویڈیو کی حیثیت کی ضرورت ہوتی ہے۔ - /frame_batch اے
frame_batch
آبجیکٹ فریموں کا ایک منی بیچ ہے جو ایک ویڈیو کے نمونے لے کر بنایا گیا ہے۔ ویڈیو کو باقاعدہ سائز کے فریم بیچوں میں الگ کرنا تاخیر کو ٹیون کرنے کے لیے ایک لیور فراہم کرتا ہے اور متوازی اور تھرو پٹ کو بڑھاتا ہے۔ یہ دانے دار اکائی ہے جو کائنیسس ڈیٹا اسٹریمز کے ذریعے اندازہ لگانے کے لیے چلائی جاتی ہے۔ فریم بیچ کی تخلیق کے لیے ویڈیو ID، فریم بیچ اسٹارٹ نمبر، فریم بیچ اینڈ نمبر، فریم بیچ ان پٹ پاتھ، فریم بیچ کے نتائج کا راستہ، اور فریم بیچ اسٹیٹس کی ضرورت ہوتی ہے۔ - /نوکری۔ - یہ تعامل API پروسیسنگ کام شروع کرنے کے لیے فائل جمع کرانے کے لیے استعمال کیا جاتا ہے۔ یہ API دوسرے آبجیکٹ APIs سے مختلف فنکشن رکھتا ہے کیونکہ یہ ویڈیو پروسیسنگ بیک اینڈ سٹیپ فنکشنز ورک فلو کوآرڈینیشن اور Amazon EKS کلسٹر کے ساتھ تعامل کا سیدھا راستہ ہے۔ اس API کو صارف ID، پروجیکٹ ID، پائپ لائن ID، پائپ لائن پیرامیٹر سیٹ ID، ملازمت کے پیرامیٹرز، اور ملازمت کی حیثیت درکار ہے۔ جاب کے پیرامیٹرز میں، ایک ان پٹ فائل کا راستہ بیان کیا گیا ہے، جو ایمیزون S3 میں وہ مقام ہے جہاں پر کارروائی کی جانے والی ویڈیوز کا .zip پیکیج واقع ہے۔ فائل اپ لوڈ کے ساتھ ہینڈل کیا جاتا ہے۔
upload_handler
طریقہ، جو صارف کے لیے فائل رکھنے کے لیے ایک S3 یو آر ایل تیار کرتا ہے۔ ایک WORKFLOW_STATEMACHINE_ARN ایک ماحولیاتی متغیر ہے جو کو منتقل کیا جاتا ہے۔create_job
API یہ بتانے کے لیے کہ کام شروع کرنے کے لیے ان پٹ فائل پاتھ کے ساتھ ویڈیو .zip پیکیج کہاں جمع کیا جاتا ہے۔
مندرجہ ذیل جدول API کے افعال کا خلاصہ کرتا ہے۔
طریقہ کی قسم | فنکشن | Description |
حاصل کریں | list_jobs |
ڈیٹا بیس اور ڈسپلے سے تمام ملازمتوں کا انتخاب کرتا ہے۔ |
POST | create_ job |
صارف ID، پروجیکٹ ID، پائپ لائن ID، پائپ لائن پیرامیٹر سیٹ ID، ملازمت کے نتائج کا راستہ، ملازمت کے پیرامیٹرز، اور ملازمت کی حیثیت کے ساتھ ایک نیا جاب ریکارڈ داخل کرتا ہے۔ |
حاصل کریں | get_ job |
ڈیٹا بیس اور ڈسپلے سے جاب آئی ڈی کی بنیاد پر جاب کے اوصاف کا انتخاب کرتا ہے۔ |
حاصل کریں | upload_handler |
.zip فائل اپ لوڈ کے مقام کے طور پر ایک طے شدہ S3 URL تیار کرتا ہے۔ S3 بالٹی کا نام درکار ہے اور درخواست/زپ فائل کی قسم کی توقع کرتا ہے۔ |
Python SDK پرت
APIs کی بنیاد پر، ٹیم نے ایک Python SDK کلائنٹ لائبریری کو ایک ریپر کے طور پر بنایا تاکہ ڈویلپرز کے لیے API کے طریقوں تک رسائی کو آسان بنایا جا سکے۔ انہوں نے اوپن سورس استعمال کیا۔ شاعری، جو Python پیکیجنگ اور انحصار کے انتظام کو سنبھالتا ہے۔ انہوں نے ایک پیدا کیا۔ client.py
فائل جس میں Python کا استعمال کرتے ہوئے ہر ایک API کو لپیٹنے کے فنکشنز شامل ہیں۔ requests
API درخواستوں اور مستثنیات کو ہینڈل کرنے کے لئے لائبریری۔
ڈویلپرز کے لیے Intel 3DAT SDK لانچ کرنے کے لیے، انہیں پوئٹری پیکج کو انسٹال اور بنانے کی ضرورت ہے۔ پھر، وہ ایک سادہ ازگر کی درآمد شامل کر سکتے ہیں۔ intel_3dat_sdk
کسی بھی ازگر کوڈ پر۔
کلائنٹ کو استعمال کرنے کے لیے، آپ API اینڈ پوائنٹ کی وضاحت کرتے ہوئے کلائنٹ کی ایک مثال بنا سکتے ہیں:
اس کے بعد آپ کلائنٹ کو انفرادی طریقوں جیسے کہ کال کرنے کے لیے استعمال کر سکتے ہیں۔ create_pipeline
طریقہ (مندرجہ ذیل کوڈ کو دیکھیں)، پائپ لائن کا نام اور پائپ لائن کی تفصیل جیسے مناسب دلائل کو لے کر۔
CLI پرت
اسی طرح، ٹیم نے APIs پر بنایا تاکہ صارفین کے لیے ایک کمانڈ لائن انٹرفیس بنایا جا سکے جو Python کوڈ لکھنے کی ضرورت کے بغیر سیدھے سادے انٹرفیس کے ساتھ API کے طریقوں تک رسائی حاصل کرنا چاہتے ہیں۔ انہوں نے اوپن سورس ازگر پیکج استعمال کیا۔ کلک کریں (کمانڈ لائن انٹرفیس تخلیق کٹ)۔ اس فریم ورک کے فوائد میں کمانڈز کی صوابدیدی نیسٹنگ، خودکار ہیلپ پیج جنریشن، اور رن ٹائم پر ذیلی کمانڈز کی سست لوڈنگ کی حمایت ہے۔ اسی میں client.py
فائل کی طرح SDK میں، ہر SDK کلائنٹ کا طریقہ کلک کا استعمال کرتے ہوئے لپیٹ دیا گیا تھا اور مطلوبہ طریقہ کے دلائل کو کمانڈ لائن جھنڈوں میں تبدیل کر دیا گیا تھا۔ SDK کمانڈ کو کال کرتے وقت فلیگ ان پٹ استعمال کیے جاتے ہیں۔
CLI شروع کرنے کے لیے، آپ استعمال کر سکتے ہیں۔ CLI configure
کمانڈ. آپ کو اختتامی نقطہ URL کے لیے کہا جاتا ہے:
اب آپ API طریقوں سے متعلق مختلف کمانڈز کو کال کرنے کے لیے CLI استعمال کر سکتے ہیں، مثال کے طور پر:
ڈیٹا بیس
ڈیٹا بیس کے طور پر، یہ ایپلیکیشن MYSQL کے ساتھ ڈیٹا بیس انجن کے طور پر ہر ایک API کے ساتھ وابستہ میٹا ڈیٹا کو ذخیرہ کرنے کے لیے Aurora Serverless کا استعمال کرتی ہے۔ Aurora Serverless ڈیٹابیس سروس کا انتخاب جب ممکن ہو سرور کے بغیر AWS خدمات کو استعمال کرکے بنیادی ڈھانچے کے اوور ہیڈ کو کم سے کم کرنے کے لیے ڈیزائن کے اصول کی پابندی کرتا ہے۔ مندرجہ ذیل خاکہ اس فن تعمیر کو واضح کرتا ہے۔
۔ بغیر سرور انجن موڈ وقفے وقفے سے استعمال کے پیٹرن کو پورا کرتا ہے کیونکہ یہ ایپلیکیشن نئے صارفین تک پہنچتی ہے اور کام کا بوجھ اب بھی غیر یقینی ہے۔ ڈیٹا بیس کے اختتامی نقطہ کو شروع کرتے وقت، ایک مخصوص DB مثال کے سائز کی ضرورت نہیں ہے، صرف کلسٹر کی گنجائش کے لیے کم سے کم اور زیادہ سے زیادہ حد۔ Aurora Serverless روٹر فلیٹ کی مناسب فراہمی کو سنبھالتی ہے اور وسائل کے درمیان کام کے بوجھ کو تقسیم کرتی ہے۔ Aurora Serverless کم از کم 1 دن سے لے کر 35 دن تک خود بخود بیک اپ برقرار رکھتا ہے۔ ٹیم نے ڈیفالٹ کو 35 کی زیادہ سے زیادہ قیمت پر سیٹ کر کے حفاظت کے لیے بہتر بنایا۔
اس کے علاوہ، ٹیم نے استعمال کیا ڈیٹا API Aurora Serverless کلسٹر تک رسائی کو ہینڈل کرنے کے لیے، جس کے لیے مستقل کنکشن کی ضرورت نہیں ہے، اور اس کے بجائے AWS SDKs کے ساتھ ایک محفوظ HTTP اینڈ پوائنٹ اور انضمام فراہم کرتا ہے۔ یہ خصوصیت استعمال کرتا ہے۔ AWS سیکرٹس مینیجر ڈیٹا بیس کی اسناد کو ذخیرہ کرنے کے لیے تاکہ واضح طور پر اسناد کو پاس کرنے کی ضرورت نہ ہو۔ نو APIs سے مطابقت رکھنے والے نو جدولوں میں سے ہر ایک کے لیے .sql فائلوں میں CREATE TABLE اسکرپٹ لکھے گئے تھے۔ چونکہ اس ڈیٹا بیس میں سسٹم میں موجود تمام میٹا ڈیٹا اور اشیاء کی حالت موجود تھی، اس لیے API کے طریقے مناسب SQL کمانڈز کا استعمال کرتے ہوئے چلائے گئے تھے (مثال کے طور پر select * from Job
کے لئے list_jobs
API) اور کو پاس کر دیا۔ execute_statement
ڈیٹا API میں ایمیزون آر ڈی ایس کلائنٹ سے طریقہ۔
ورک فلو آرکیسٹریشن
ایپلیکیشن کی فنکشنل ریڑھ کی ہڈی کو کام کے بہاؤ کو مربوط کرنے کے لیے Step Functions کا استعمال کرتے ہوئے ہینڈل کیا گیا، جیسا کہ درج ذیل خاکہ میں دکھایا گیا ہے۔
ریاستی مشین چار لیمبڈا فنکشنز کی ایک ترتیب پر مشتمل ہوتی ہے، جو اس وقت شروع ہوتی ہے جب کوئی کام جمع کرایا جاتا ہے۔ create_job
سے طریقہ job
API یوزر آئی ڈی، پروجیکٹ آئی ڈی، پائپ لائن آئی ڈی، پائپ لائن پیرامیٹر سیٹ آئی ڈی، جاب کے نتائج کا پاتھ، جاب کے پیرامیٹرز، اور جاب اسٹیٹس کی ضرورت ہے۔ آپ سب سے پہلے ویڈیو فائلوں کا زپ پیکج اپ لوڈ کر سکتے ہیں۔ upload_handler
ایک تجویز کردہ S3 URL بنانے کے لیے job API سے طریقہ۔ جاب جمع کرانے کے دوران، فائل کا مقام بتانے کے لیے ان پٹ فائل کا راستہ جاب کے پیرامیٹرز سے گزر جاتا ہے۔ اس سے ورک فلو اسٹیٹ مشین کا چلنا شروع ہوتا ہے، چار اہم مراحل کو متحرک کرتا ہے:
- ابتدائی لیمبڈا فنکشن
- جمع کرنے والا لیمبڈا فنکشن
- مکمل چیک لیمبڈا فنکشن
- کلکٹر لیمبڈا فنکشن
ابتدائی لیمبڈا فنکشن
Initializer کا بنیادی کام .zip پیکیج کو انفرادی ویڈیو فائلوں میں الگ کرنا اور انہیں جمع کرانے والے کے لیے تیار کرنا ہے۔ سب سے پہلے، .zip فائل ڈاؤن لوڈ کی جاتی ہے، اور پھر ہر انفرادی فائل، بشمول ویڈیو فائلوں کو، ان زپ اور نکالا جاتا ہے۔ ویڈیوز، ترجیحی طور پر .mp4 فارمیٹ میں، S3 بالٹی میں واپس اپ لوڈ کیے جاتے ہیں۔ کا استعمال کرتے ہوئے create_video
میں طریقہ video
API، ایک ویڈیو آبجیکٹ ویڈیو پاتھ کے ساتھ بطور ان پٹ بنایا جاتا ہے۔ یہ ہر ویڈیو پر ڈیٹا Aurora ڈیٹا بیس میں داخل کرتا ہے۔ فائل کی کوئی دوسری قسم، جیسے JSON فائلز، کو میٹا ڈیٹا سمجھا جاتا ہے اور اسی طرح اپ لوڈ کیا جاتا ہے، لیکن کوئی ویڈیو آبجیکٹ نہیں بنایا جاتا ہے۔ نکالی گئی فائلوں اور ویڈیو فائلوں کے ناموں کی فہرست کو اگلے مرحلے پر منتقل کیا جاتا ہے۔
جمع کرنے والا لیمبڈا فنکشن
Submitter فنکشن ویڈیو فائلوں کو لیتا ہے جو انیشیلائزر کے ذریعہ نکالا گیا تھا اور تصویر کے طور پر ویڈیو فریموں کے چھوٹے بیچ بناتا ہے۔ پروڈکشن میں زیادہ تر موجودہ کمپیوٹر وژن ماڈلز کو امیجز پر تربیت دی گئی ہے اس لیے جب ویڈیو پر کارروائی کی جاتی ہے، تو وہ ماڈل کا اندازہ لگانے سے پہلے تصویر کے فریموں میں الگ ہو جاتے ہیں۔ جدید ترین پوز تخمینے کے ماڈل کا استعمال کرتے ہوئے یہ موجودہ حل مختلف نہیں ہے—سبمیٹر سے فریم بیچز کو کنیسس ڈیٹا اسٹریمز کو منتقل کیا جاتا ہے تاکہ انفرنس جنریشن مرحلہ شروع کیا جا سکے۔
سب سے پہلے، ویڈیو فائل لیمبڈا فنکشن کے ذریعہ ڈاؤن لوڈ کی جاتی ہے۔ فریم کی شرح اور فریموں کی تعداد کا استعمال کرتے ہوئے شمار کیا جاتا ہے۔ FileVideoStream
سے ماڈیول imutils.video
پروسیسنگ لائبریری. فریموں کو ایک مخصوص منی بیچ سائز کے مطابق نکالا اور گروپ کیا جاتا ہے، جو اس پائپ لائن کے اہم ٹیون ایبل پیرامیٹرز میں سے ایک ہے۔ Python اچار کی لائبریری کا استعمال کرتے ہوئے، ڈیٹا کو سیریلائز کر کے Amazon S3 پر اپ لوڈ کیا جاتا ہے۔ اس کے بعد، ایک فریم بیچ آبجیکٹ بنایا جاتا ہے اور میٹا ڈیٹا کا اندراج ارورہ ڈیٹا بیس میں بنایا جاتا ہے۔ یہ لیمبڈا فنکشن ڈوکر فائل کا استعمال کرتے ہوئے بنایا گیا تھا جس پر انحصار ہے۔ opencv-python
, numpy
، اور imutils
لائبریریاں۔
مکمل چیک لیمبڈا فنکشن
Completion Check فنکشن Aurora ڈیٹا بیس سے استفسار کرتا رہتا ہے کہ اس موجودہ کام کے لیے .zip پیکج میں ہر ویڈیو کے لیے، کتنے فریم بیچ مکمل شدہ حالت میں ہیں۔ جب تمام ویڈیوز کے لیے تمام فریم بیچز مکمل ہو جائیں، تب یہ چیک کا عمل مکمل ہو جاتا ہے۔
کلکٹر لیمبڈا فنکشن
کلکٹر فنکشن صارفین کے مرحلے کے دوران ہر فریم پر انجام پانے والے انفرنسز کے نتائج لیتا ہے اور انہیں ایک فریم بیچ اور ایک ویڈیو میں یکجا کرتا ہے۔ مشترکہ ضم شدہ ڈیٹا کو پھر S3 بالٹی میں اپ لوڈ کیا جاتا ہے۔ اس کے بعد فنکشن کسی بھی پوسٹ پروسیسنگ کمپیوٹیشن کو انجام دینے کے لیے ایک خاص ML پائپ لائن کے لیے Cortex postprocessing API کو طلب کرتا ہے، اور ویڈیو کے ذریعے مجموعی نتائج کو آؤٹ پٹ بالٹی میں شامل کرتا ہے۔ ان میں سے بہت سے میٹرکس کو فریموں میں شمار کیا جاتا ہے، جیسے کہ رفتار، سرعت، اور مشترکہ زاویہ، لہذا اس حساب کو مجموعی ڈیٹا پر انجام دینے کی ضرورت ہے۔ اہم آؤٹ پٹس میں باڈی کلیدی پوائنٹس کا ڈیٹا (CSV فارمیٹ میں جمع)، BMA کیلکولیشنز (جیسے ایکسلریشن)، اور امیج فائل میں ہر فریم میں شامل کلیدی پوائنٹس کا بصری اوورلے شامل ہیں۔
اسکیل ایبل پوز تخمینہ تخمینہ جنریشن
پروسیسنگ انجن جو ایم ایل انفرنس کی اسکیلنگ کو طاقت دیتا ہے اس مرحلے میں ہوتا ہے۔ اس میں تین اہم ٹکڑے شامل ہیں، جن میں سے ہر ایک کے اپنے کنکرنسی لیورز ہوتے ہیں جنہیں لیٹنسی ٹریڈ آفس کے لیے بنایا جا سکتا ہے (مندرجہ ذیل خاکہ دیکھیں)۔
یہ فن تعمیر تاخیر سے حاصل ہونے والے فوائد کی جانچ کرنے کے ساتھ ساتھ مستقبل کے لیے لچک کی اجازت دیتا ہے جب ایپلیکیشن تک رسائی حاصل کرنے والے اختتامی صارف حصوں کے مختلف مرکبات کے ساتھ کام کا بوجھ تبدیل ہو سکتا ہے۔
Kinesis ڈیٹا اسٹریمز
ٹیم نے Kinesis ڈیٹا اسٹریمز کا انتخاب کیا کیونکہ یہ عام طور پر سٹریمنگ ڈیٹا کو ہینڈل کرنے کے لیے استعمال ہوتا ہے، اور اس معاملے میں یہ ایک اچھا فٹ ہے کیونکہ یہ فریم بیچز کو اسی طرح سے ہینڈل کر سکتا ہے تاکہ اسکیل ایبلٹی اور ہم آہنگی فراہم کی جا سکے۔ Submitter Lambda فنکشن میں، Kinesis Boto3 کلائنٹ استعمال کیا جاتا ہے، کے ساتھ put_record
ایک واحد فریم بیچ سے وابستہ میٹا ڈیٹا میں گزرنے کا طریقہ، جیسے کہ فریم بیچ ID، فریم بیچ شروع ہونے والا فریم، فریم بیچ کا اختتامی فریم، تصویر کی شکل، فریم کی شرح، اور ویڈیو ID۔
ہم نے مختلف جاب کی قطار اور Kinesis ڈیٹا سٹریم کنفیگریشنز کی وضاحت کی ہے تاکہ تھرو پٹ کی سطحیں متعین کی جائیں جو مختلف صارف گروپوں کی ترجیحی سطح سے منسلک ہوں۔ پروسیسنگ پاور کی مختلف سطحوں تک رسائی کو پروجیکٹ کی قطار ARN سے گزر کر منسلک کیا جاتا ہے جب ایک نیا پروجیکٹ بناتے وقت project
API اس کے بعد صارف گروپ کی تخلیق کے دوران ہر صارف گروپ کو ایک خاص پروجیکٹ سے منسلک کیا جاتا ہے۔ میں تین ڈیفالٹ اسٹریم کنفیگریشنز کی وضاحت کی گئی ہے۔ AWS سرور لیس ایپلیکیشن ماڈل (AWS SAM) انفراسٹرکچر ٹیمپلیٹ:
- سٹینڈرڈ -
JobStreamShardCount
- ترجیح -
PriorityJobStreamShardCount
- اعلی ترجیح -
HighPriorityJobStreamShardCount
ٹیم نے ہر سٹریم کی پروسیسنگ پاور میں فرق کرنے یا سسٹم کی تاخیر کو ٹیون کرنے کے لیے چند مختلف لیور استعمال کیے، جیسا کہ مندرجہ ذیل جدول میں خلاصہ کیا گیا ہے۔
لیور | Description | پہلے سے طے شدہ قیمت |
تیز | ایک شارڈ کنیسیس ڈیٹا اسٹریمز کا مقامی ہے۔ یہ ادخال کے لیے تھرو پٹ کی بنیادی اکائی ہے۔ ڈیفالٹ 1MB/sec ہے، جو 1,000 ڈیٹا ریکارڈز فی سیکنڈ کے برابر ہے۔ | 2 |
KinesisBatchSize |
کنزیومر لیمبڈا فنکشن کو استعمال کرنے سے پہلے ریکارڈز کی زیادہ سے زیادہ تعداد جو کنیسس ڈیٹا اسٹریمز ایک ہی بیچ میں بازیافت کرتی ہے۔ | 1 |
KinesisParallelizationFactor |
ہر شارڈ سے بیک وقت پروسیس ہونے والے بیچوں کی تعداد۔ | 1 |
بڑھا ہوا فین آؤٹ | ڈیٹا صارفین جنہوں نے فین آؤٹ ایکٹیویٹ کو بڑھایا ہے ان کے پاس صارفین کے درمیان تھرو پٹ کا اشتراک کرنے کے بجائے فی صارف (جیسے ڈیفالٹ 1MB/sec) ایک وقف شدہ ادخال تھرو پٹ ہے۔ | بند |
کنزیومر لیمبڈا فنکشن
Kinesis ڈیٹا سٹریمز کے نقطہ نظر سے، ڈیٹا کنزیومر ایک AWS سروس ہے جو ڈیٹا سٹریم شارڈ سے ڈیٹا حاصل کرتی ہے کیونکہ ڈیٹا سٹریم میں تیار ہوتا ہے۔ یہ ایپلیکیشن کنزیومر لیمبڈا فنکشن کا استعمال کرتی ہے، جسے ڈیٹا اسٹریم کیو سے پیغامات بھیجے جانے پر استعمال کیا جاتا ہے۔ ہر کنزیومر فنکشن درج ذیل مراحل کو انجام دے کر ایک فریم بیچ پر کارروائی کرتا ہے۔ سب سے پہلے، Cortex پروسیسر API کو ہم وقت سازی سے کال کی جاتی ہے، جو آخری نقطہ ہے جو ماڈل انفرنس پائپ لائن کی میزبانی کرتا ہے (مزید تفصیلات کے لیے Amazon EKS کے ساتھ Cortex کے حوالے سے اگلا سیکشن دیکھیں)۔ نتائج Amazon S3 میں محفوظ کیے جاتے ہیں، اور پروسیس شدہ فریم بیچ کی حیثیت کو تبدیل کرکے ڈیٹا بیس میں اپ ڈیٹ کیا جاتا ہے۔ Complete
. Cortex کلسٹر سے کسی بھی 504 غلطیوں کو ہینڈل کرنے کے لیے دوبارہ کوشش کرنے والے لوپ کے ساتھ Cortex API کال کو منظم کرنے کے لیے ایرر ہینڈلنگ کو بنایا گیا ہے، جس میں دوبارہ کوششوں کی تعداد 5 پر سیٹ کی گئی ہے۔
ML تخمینہ کے لیے Cortex کے ساتھ Amazon EKS
ٹیم نے Amazon EKS کا استعمال کیا، AWS میں ایک منظم Kubernetes سروس، ML تخمینہ کے لیے کمپیوٹ انجن کے طور پر۔ ایمیزون ای کے ایس کو ایم ایل اینڈ پوائنٹس کی میزبانی کے لیے استعمال کرنے کے لیے ڈیزائن کا انتخاب کیا گیا تھا، جس سے اپ اسٹریم کبرنیٹس کو چلانے کی لچک ملتی ہے جس کے ذریعے AWS میں مکمل طور پر انتظام کیا جاتا ہے۔ اے ڈبلیو ایس فارگیٹ، یا آن پریمیسس ہارڈ ویئر کے ذریعے ایمیزون ای کے ایس کہیں بھی. یہ انٹیل OTG کی طرف سے مطلوبہ فعالیت کا ایک اہم حصہ تھا، جس نے اس ایپلیکیشن کو خصوصی آن پریمیسس ہارڈویئر سے منسلک کرنے کا اختیار فراہم کیا، مثال کے طور پر۔
تین ایم ایل ماڈل جو انفرنس پائپ لائنز کی تعمیر کے لیے بلڈنگ بلاکس تھے ایک حسب ضرورت یولو ماڈل (آبجیکٹ کا پتہ لگانے کے لیے)، ایک حسب ضرورت HRNet ماڈل (2D پوز تخمینہ کے لیے)، اور ایک 3DMPPE ماڈل (3D پوز تخمینہ کے لیے) (پچھلا دیکھیں مزید تفصیلات کے لیے ایم ایل سیکشن)۔ انہوں نے اوپن سورس استعمال کیا۔ پرانتستا ایم ایل انفرنس پائپ لائن اینڈ پوائنٹس کی تعیناتی اور انتظام کو سنبھالنے کے لیے لائبریری، اور ایمیزون ای کے ایس کلسٹرز کی لانچنگ اور تعیناتی۔ ان میں سے ہر ایک ماڈل کو ڈوکر کنٹینرز میں پیک کیا گیا تھا — ماڈل فائلوں کو ایمیزون S3 میں محفوظ کیا گیا تھا اور ماڈل کی تصاویر کو اس میں محفوظ کیا گیا تھا۔ ایمیزون لچکدار کنٹینر رجسٹری (ایمیزون ای سی آر) — اور کارٹیکس ریئل ٹائم APIs کے طور پر تعینات۔ CPU اور GPU پر چلنے والے ماڈل کنٹینرز کے ورژن کمپیوٹ ہارڈویئر کی قسم کے لیے لچک فراہم کرنے کے لیے بنائے گئے تھے۔ مستقبل میں، اگر اضافی ماڈلز یا ماڈل پائپ لائنز کو شامل کرنے کی ضرورت ہے، تو وہ آسانی سے اضافی Cortex Realtime APIs بنا سکتے ہیں۔
اس کے بعد انہوں نے Cortex Realtime ماڈل APIs کو Cortex Realtime پائپ لائن APIs میں اکٹھا کر کے انفرنس پائپ لائنز کی تعمیر کی۔ ایک واحد ریئل ٹائم پائپ لائن API ریئل ٹائم ماڈل APIs کی ترتیب کو کال کرنے پر مشتمل ہے۔ کنزیومر لیمبڈا کے افعال کا علاج pipeline
API کو بلیک باکس کے طور پر، ایک ہی API کال کا استعمال کرتے ہوئے کسی تصویر کے لیے حتمی نتیجہ نکالنے کے لیے۔ دو پائپ لائنیں بنائی گئیں: ایک 2D پائپ لائن اور ایک 3D پائپ لائن۔
2D پائپ لائن ایک ڈی کوڈنگ پری پروسیسنگ مرحلہ، ایتھلیٹ کو تلاش کرنے اور باؤنڈنگ بکس تیار کرنے کے لیے کسٹم یولو ماڈل کا استعمال کرتے ہوئے آبجیکٹ کا پتہ لگانا، اور آخر میں پوز کے تخمینہ کے لیے 2D کلیدی پوائنٹس بنانے کے لیے ایک حسب ضرورت HRNet ماڈل کو یکجا کرتی ہے۔
3D پائپ لائن ایک ڈی کوڈنگ پری پروسیسنگ مرحلہ، ایتھلیٹ کو تلاش کرنے اور باؤنڈنگ بکس تیار کرنے کے لیے اپنی مرضی کے مطابق یولو ماڈل کا استعمال کرتے ہوئے آبجیکٹ کا پتہ لگانے، اور آخر میں پوز کے تخمینے کے لیے 3D کلیدی پوائنٹس بنانے کے لیے 3DMPPE ماڈل کو یکجا کرتی ہے۔
فریموں کے بیچ پر انفرنس پیدا کرنے کے بعد، ہر پائپ لائن میں ایک علیحدہ پوسٹ پروسیسنگ ریئل ٹائم کورٹیکس اینڈ پوائنٹ بھی شامل ہوتا ہے جو تین اہم نتائج پیدا کرتا ہے:
- ایک واحد CSV فائل میں مجموعی باڈی کلیدی پوائنٹس ڈیٹا
- BMA کیلکولیشنز (جیسے ایکسلریشن)
- تصویری فائل میں ہر فریم میں شامل کلیدی پوائنٹس کا بصری اوورلے
کلکٹر لیمبڈا فنکشن ان پوسٹ پروسیسنگ آؤٹ پٹس کو تیار کرنے کے لیے کسی خاص ویڈیو سے وابستہ مناسب میٹا ڈیٹا، جیسے کہ فریم IDs اور پوز تخمینہ تخمینہ آؤٹ پٹس کے S3 مقامات، کو اینڈ پوائنٹ پر جمع کرتا ہے۔
Cortex کو Amazon EKS کے ساتھ مربوط کرنے کے لیے ڈیزائن کیا گیا ہے، اور اسے صرف ایک کلسٹر کنفیگریشن فائل اور کوبرنیٹس کلسٹر لانچ کرنے کے لیے ایک سادہ کمانڈ کی ضرورت ہے:
پرفارمنس ٹیوننگ کے لیے ایک اور لیور کمپیوٹ کلسٹرز کے لیے مثال کی ترتیب تھی۔ M5 اور G4dn مثالوں کے مختلف مکسز کے ساتھ تین درجے بنائے گئے تھے، جنہیں کلسٹر کا نام، علاقہ، اور مثال کی ترتیب اور مکس جیسی خصوصیات کے ساتھ .yaml فائلوں کے طور پر کوڈ کیا گیا تھا۔ M5 مثالیں کم لاگت والے CPU پر مبنی ہیں اور G4dn زیادہ لاگت والے GPU پر مبنی ہیں تاکہ کچھ لاگت/کارکردگی کی تجارت فراہم کی جا سکے۔
آپریشنل نگرانی
آپریشنل لاگنگ کے معیارات کو برقرار رکھنے کے لیے، تمام لیمبڈا فنکشنز میں لاگز کو ریکارڈ کرنے اور انجیسٹ کرنے کے لیے کوڈ شامل ہے ایمیزون کائنیسس ڈیٹا فائر ہوز. مثال کے طور پر، Submitter Lambda فنکشن سے پروسیس ہونے والے ہر فریم بیچ کو ٹائم اسٹیمپ، ایکشن کے نام، اور Lambda فنکشن ریسپانس JSON کے ساتھ لاگ کیا جاتا ہے اور Amazon S3 میں محفوظ کیا جاتا ہے۔ مندرجہ ذیل خاکہ فن تعمیر میں اس قدم کی وضاحت کرتا ہے۔
تعیناتی
AWS SAM، AWS میں سرور لیس ایپلی کیشنز بنانے کے لیے ایک اوپن سورس فریم ورک کا استعمال کرتے ہوئے تعیناتی کو سنبھالا جاتا ہے۔ AWS SAM بنیادی ڈھانچے کے ڈیزائن کو قابل بناتا ہے، بشمول فنکشنز، APIs، ڈیٹا بیس، اور ایونٹ سورس میپنگز کو کوڈفائیڈ اور آسانی سے نئے AWS ماحول میں تعینات کیا جا سکتا ہے۔ تعیناتی کے دوران، AWS SAM نحو کا ترجمہ کیا جاتا ہے۔ AWS کلاؤڈ فارمیشن بنیادی ڈھانچے کی فراہمی کو سنبھالنے کے لئے۔
A template.yaml
فائل میں ٹیون ایبل پیرامیٹرز کے ساتھ انفراسٹرکچر کی وضاحتیں شامل ہیں، جیسا کہ کائنیسس ڈیٹا اسٹریمز لیٹنسی لیور جس کی تفصیل پچھلے حصوں میں ہے۔ اے samconfig.toml
فائل میں تعیناتی کے پیرامیٹرز شامل ہیں جیسے اسٹیک کا نام، S3 بالٹی کا نام جہاں ایپلیکیشن فائلز جیسے لیمبڈا فنکشن کوڈ کو محفوظ کیا جاتا ہے، اور لاگت سے باخبر رہنے کے لیے وسائل کے ٹیگز۔ سادہ کمانڈز کے ساتھ ایک deploy.sh شیل اسکرپٹ وہی ہے جو پورے ٹیمپلیٹ کو بنانے اور تعینات کرنے کے لیے درکار ہے:
صارف کے کام کا بہاؤ
خلاصہ یہ کہ انفراسٹرکچر کے تعینات ہونے کے بعد، آپ شروع کرنے کے لیے اس ورک فلو کی پیروی کر سکتے ہیں:
- کلائنٹ لائبریری کا استعمال کرتے ہوئے ایک Intel 3DAT کلائنٹ بنائیں۔
- ایک پائپ لائن کی ایک نئی مثال بنانے کے لیے API کا استعمال کریں جس کی پروسیسنگ کی ضرورت ہے، جیسے کہ 3D پوز تخمینہ کے لیے۔
- کلسٹر ARN اور Kinesis قطار ARN میں گزرتے ہوئے، ایک پروجیکٹ کی ایک نئی مثال بنائیں۔
- پائپ لائن پیرامیٹر سیٹ کی ایک نئی مثال بنائیں۔
- پائپ لائن پیرامیٹرز کی ایک نئی مثال بنائیں جو پائپ لائن پیرامیٹر سیٹ پر نقشہ بنائے۔
- ایک نیا صارف گروپ بنائیں جو پروجیکٹ ID اور پائپ لائن پیرامیٹر سیٹ ID سے وابستہ ہو۔
- ایک نیا صارف بنائیں جو صارف گروپ سے وابستہ ہو۔
- جاب API میں اپ لوڈ فنکشن کے ذریعے تیار کردہ S3 یو آر ایل کا استعمال کرتے ہوئے Amazon S3 پر ویڈیوز کی زپ فائل اپ لوڈ کریں۔
- ایک جمع کرو
create_job
API کال، نوکری کے پیرامیٹرز کے ساتھ جو ویڈیو فائلوں کے مقام کی وضاحت کرتی ہے۔ یہ پروسیسنگ کا کام شروع کرتا ہے۔
نتیجہ
ایپلیکیشن اب لائیو ہے اور کھلاڑیوں اور کوچوں کے ساتھ یکساں طور پر جانچنے کے لیے تیار ہے۔ Intel OTG کمپیوٹر ویژن کا استعمال کرتے ہوئے جدید پوز تخمینہ لگانے والی ٹیکنالوجی کو مختلف صارفین کے لیے قابل رسائی بنانے کے لیے پرجوش ہے، جس میں ڈویلپرز سے لے کر ایتھلیٹس تک سافٹ ویئر وینڈر پارٹنرز شامل ہیں۔
AWS ٹیم ML Solutions Lab کے ساتھ آئیڈییشن اور دریافت کے مرحلے سے لے کر AWS ML ProServe کے ساتھ سختی اور تعیناتی کے مرحلے تک، Intel OTG جیسے صارفین کی مدد کرنے کے لیے پرجوش ہے۔ ہم سب اس موسم گرما میں 2021 کے ٹوکیو اولمپکس کو قریب سے دیکھیں گے تاکہ ان تمام پیشرفت کا تصور کیا جا سکے جو ML کھیلوں میں کھول سکتا ہے۔
آج ہی شروع کریں! اس پوسٹ میں مذکور خدمات کے ساتھ اپنے استعمال کے معاملے کو دریافت کریں۔ AWS مینجمنٹ کنسول.
مصنفین کے بارے میں
ہان مین سین ڈیاگو، CA میں واقع AWS میں ایک سینئر مینیجر- مشین لرننگ اور AI ہے۔ اس نے نارتھ ویسٹرن یونیورسٹی سے انجینئرنگ میں پی ایچ ڈی کی ہے اور مینوفیکچرنگ، مالیاتی خدمات اور توانائی میں گاہکوں کو مشورہ دینے والے مینجمنٹ کنسلٹنٹ کے طور پر کئی سالوں کا تجربہ ہے۔ آج وہ AWS پر مشین لرننگ اور AI سلوشنز تیار کرنے اور لاگو کرنے کے لیے مختلف صنعتوں کے صارفین کے ساتھ پرجوش طریقے سے کام کر رہا ہے۔ وہ NBA کی پیروی کرنے اور اپنے فارغ وقت میں باسکٹ بال کھیلنے سے لطف اندوز ہوتا ہے۔
ایمان کامیبی AWS پروفیشنل سروسز کے ساتھ ایم ایل انجینئر ہے۔ اس نے AWS صارفین کی ایک وسیع رینج کے ساتھ کام کیا ہے تاکہ دوبارہ قابل بھروسہ اور قابل بھروسہ ML پائپ لائنوں کو ترتیب دینے کے بہترین طریقوں کو آگے بڑھایا جا سکے۔
جوناتھن لی Intel میں سپورٹس پرفارمنس ٹیکنالوجی، اولمپک ٹیکنالوجی گروپ کے ڈائریکٹر ہیں۔ انہوں نے UCLA میں انڈرگریڈ کے طور پر اور آکسفورڈ یونیورسٹی میں اپنے گریجویٹ کام کے دوران صحت کے لیے مشین لرننگ کے اطلاق کا مطالعہ کیا۔ اس کے کیریئر نے صحت اور انسانی کارکردگی کے لیے الگورتھم اور سینسر کی ترقی پر توجہ مرکوز کی ہے۔ اب وہ انٹیل میں 3D ایتھلیٹ ٹریکنگ پروجیکٹ کی قیادت کرتا ہے۔
نیلسن لیونگ انٹیل میں اسپورٹس پرفارمنس CoE میں پلیٹ فارم آرکیٹیکٹ ہے، جہاں وہ اتھلیٹ کی کارکردگی کو بڑھانے والے جدید پروڈکٹس کے لیے اینڈ ٹو اینڈ آرکیٹیکچر کی تعریف کرتا ہے۔ وہ مختلف Intel شراکت داروں تک ان مشین لرننگ سلوشنز کے نفاذ، تعیناتی اور پروڈکٹائزیشن کی بھی رہنمائی کرتا ہے۔
ٹرائے اسکویلاسی Intel میں DecSecOps انجینئر ہے جہاں وہ DevOps بہترین طریقوں کے ذریعے صارفین کو پیشہ ورانہ سافٹ ویئر حل فراہم کرتا ہے۔ وہ مختلف ڈومینز میں توسیع پذیر پلیٹ فارمز میں AI سلوشنز کو ضم کرنے سے لطف اندوز ہوتا ہے۔
پال من Amazon Web Services (AWS) میں ایک ایسوسی ایٹ سلوشنز آرکیٹیکٹ انٹرن ہے، جہاں وہ مختلف صنعتوں کے صارفین کو ان کے مشن کو آگے بڑھانے اور ان کے کلاؤڈ کو اپنانے میں تیزی لانے میں مدد کرتا ہے۔ اس سے پہلے انٹیل میں، اس نے 3D ایتھلیٹ ٹریکنگ کلاؤڈ SDK تیار کرنے میں مدد کے لیے سافٹ ویئر انجینئرنگ انٹرن کے طور پر کام کیا۔ کام سے باہر، پال گولف کھیلنا پسند کرتا ہے اور اسے گاتے ہوئے سنا جا سکتا ہے۔
- سکے سمارٹ۔ یورپ کا بہترین بٹ کوائن اور کرپٹو ایکسچینج۔
- پلیٹو بلاک چین۔ Web3 Metaverse انٹیلی جنس۔ علم میں اضافہ۔ مفت رسائی۔
- کرپٹو ہاک۔ Altcoin ریڈار. مفت جانچ.
- ماخذ: https://aws.amazon.com/blogs/machine-learning/the-intel3d-athlete-tracking-3dat-scalable-architecture-deploys-pose-estimation-models-using-amazon-kinesis-data-streams- and-amazon-eks/
- "
- &
- 000
- 100
- 2021
- 3d
- ہمارے بارے میں
- رفتار کو تیز تر
- تک رسائی حاصل
- قابل رسائی
- کے مطابق
- اکاؤنٹ
- کے پار
- عمل
- اعمال
- اس کے علاوہ
- ایڈیشنل
- منتظم
- منہ بولابیٹا بنانے
- AI
- یلگورتم
- تمام
- ایمیزون
- ایمیزون ویب سروسز
- کے درمیان
- اے پی آئی
- APIs
- درخواست
- ایپلی کیشنز
- مناسب
- فن تعمیر
- دلائل
- تفویض
- ایسوسی ایٹ
- کھلاڑیوں
- اوصاف
- خودکار
- AWS
- بیک اپ
- باسکٹ بال
- اس سے پہلے
- فوائد
- BEST
- بہترین طریقوں
- سیاہ
- بلاگ
- جسم
- باکس
- تعمیر
- عمارت
- فون
- اہلیت
- پرواہ
- کیریئر کے
- مقدمات
- مرکزی
- چیمپئن
- تبدیل
- انتخاب
- کلائنٹس
- بادل
- کوڈ
- مجموعہ
- کلیکٹر
- مل کر
- جزو
- کمپیوٹنگ
- کمپیوٹر
- ترتیب
- کنکشن
- کنسلٹنٹ
- صارفین
- صارفین
- کنٹینر
- کنٹینر
- پر مشتمل ہے
- جاری ہے
- کنٹرول
- محدد
- کور
- اسی کے مطابق
- تخلیق
- بنائی
- پیدا
- تخلیق
- مخلوق
- اسناد
- اہم
- اہم
- موجودہ
- اس وقت
- اپنی مرضی کے
- گاہک
- گاہکوں
- جدید
- اعداد و شمار
- ڈیٹا بیس
- ڈیٹا بیس
- دن
- وقف
- گہرے
- فراہم کرتا ہے
- تعیناتی
- تعینات
- تعیناتی
- تعینات کرتا ہے
- ڈیزائن
- ڈیزائن
- تفصیل
- تفصیلی
- تفصیلات
- کھوج
- ترقی
- ڈیولپر
- ڈویلپرز
- ترقی
- مختلف
- فرق کرنا
- براہ راست
- ڈائریکٹر
- دریافت
- دکھاتا ہے
- میں Docker
- نہیں کرتا
- ڈومینز
- نیچے
- کے دوران
- آسانی سے
- ای میل
- اختتام پوائنٹ
- توانائی
- انجن
- انجینئر
- انجنیئرنگ
- ماحولیات
- واقعہ
- مثال کے طور پر
- بہت پرجوش
- موجودہ
- امید ہے
- تجربہ
- تلاش
- نمایاں کریں
- آخر
- مالی
- مالیاتی خدمات
- پہلا
- فٹ
- فلیٹ
- لچک
- لچکدار
- توجہ مرکوز
- پر عمل کریں
- کے بعد
- مندرجہ ذیل ہے
- فارمیٹ
- آگے بڑھنا
- فریم
- فریم ورک
- تقریب
- فنکشنل
- فعالیت
- افعال
- مستقبل
- پیدا
- پیدا کرنے والے
- نسل
- دے
- مقصد
- اچھا
- GPU
- چلے
- گروپ
- گروپ کا
- ہینڈل
- ہینڈلنگ
- ہارڈ ویئر
- صحت
- سنا
- مدد
- مدد
- مدد کرتا ہے
- یہاں
- اعلی
- کس طرح
- HTTPS
- انسانی
- شناختی
- تصویر
- پر عملدرآمد
- نفاذ
- اہم
- شامل
- شامل ہیں
- سمیت
- انفرادی
- صنعتوں
- صنعت
- انفراسٹرکچر
- جدید
- ان پٹ
- داخل کرتا ہے
- انسٹال
- ضم
- انضمام
- انٹیل
- انٹیلی جنس
- بات چیت
- انٹرفیس
- IT
- ایوب
- نوکریاں
- سفر
- کلیدی
- لیب
- شروع
- شروع
- لیڈز
- سیکھنے
- سطح
- لائبریری
- لائن
- لسٹ
- لوڈ کر رہا ہے
- محل وقوع
- مقامات
- مشین
- مشین لرننگ
- بنا
- برقرار رکھنے کے
- اہم
- بناتا ہے
- آدمی
- انتظام
- میں کامیاب
- انتظام
- مینوفیکچرنگ
- نقشہ
- تعریفیں
- ذکر کیا
- طریقوں
- پیمائش کا معیار
- کم سے کم
- مشن
- ML
- موبائل
- موبائل ایپلی کیشنز
- ماڈل
- ماڈل
- ماڈیولر
- زیادہ
- سب سے زیادہ
- ایک سے زیادہ
- نام
- NBA
- ضروری
- ضروریات
- تعداد
- اولمپکس
- کھولتا ہے
- کام
- اصلاح
- اختیار
- حکم
- دیگر
- خود
- آکسفورڈ
- پیکج
- حصہ
- خاص طور پر
- خاص طور پر
- شراکت داروں کے
- پاسنگ
- جذباتی
- پاٹرن
- فیصد
- کارکردگی
- کارکردگی کا مظاہرہ
- نقطہ نظر
- ٹکڑا
- پلیٹ فارم
- پلیٹ فارم
- کھیل
- شاعری
- پوائنٹس
- ممکن
- طاقت
- طاقتور
- تیار
- پچھلا
- پرائمری
- اصول
- ترجیح
- عمل
- عمل
- پروسیسنگ
- پروسیسر
- پیدا
- پیداوار
- حاصل
- پیشہ ورانہ
- منصوبے
- فراہم
- فراہم کرتا ہے
- مقصد
- رینج
- خام
- حقیقی وقت
- تسلیم
- ریکارڈ
- ریکارڈ
- کے بارے میں
- قابل اعتماد
- درخواستوں
- کی ضرورت
- ضرورت
- ضروریات
- کی ضرورت ہے
- وسائل
- وسائل
- جواب
- نتائج کی نمائش
- رن
- چل رہا ہے
- سیفٹی
- سان
- اسکیل ایبلٹی
- توسیع پذیر
- پیمانے
- سکیلنگ
- sdk
- محفوظ بنانے
- حصوں
- بے سرور
- سروس
- سروسز
- مقرر
- قائم کرنے
- شکل
- اشتراک
- شیل
- دکھایا گیا
- اسی طرح
- اسی طرح
- سادہ
- سائز
- So
- سافٹ ویئر کی
- ایک خدمت کے طور پر سافٹ ویئر
- سافٹ ویئر انجینئرنگ
- حل
- حل
- کچھ
- کسی
- خصوصی
- وضاحتیں
- تیزی
- اسپورٹس
- ڈھیر لگانا
- اسٹیج
- معیار
- معیار
- شروع کریں
- شروع
- شروع ہوتا ہے
- حالت
- ریاستی آرٹ
- درجہ
- ذخیرہ
- ذخیرہ
- سٹریم
- محرومی
- جمع کرائی
- بعد میں
- موسم گرما
- حمایت
- کی حمایت کرتا ہے
- کے نظام
- لینے
- ٹیم
- ٹیکنالوجی
- ٹیسٹنگ
- لہذا
- کے ذریعے
- TIE
- وقت
- آج
- مل کر
- ٹوکیو
- ٹریک
- ٹریکنگ
- اقسام
- عام طور پر
- ucla
- یونیورسٹی
- آکسفورڈ یونیورسٹی
- انلاک
- اپ ڈیٹ کریں
- استعمال کی شرائط
- صارفین
- استعمال کرنا۔
- قیمت
- مختلف اقسام کے
- مختلف
- عمودی
- ویڈیو
- ویڈیوز
- نقطہ نظر
- ویب
- ویب خدمات
- ڈبلیو
- بغیر
- کام
- کام کیا
- کام کر
- سال