Amazon SageMaker Pipelines لوکل موڈ PlatoBlockchain Data Intelligence کے ساتھ لاگت اور ترقی کا وقت کم کریں۔ عمودی تلاش۔ عی

ایمیزون سیج میکر پائپ لائنز لوکل موڈ کے ساتھ لاگت اور ترقی کا وقت کم کریں۔

مضبوط اور دوبارہ قابل استعمال مشین لرننگ (ML) پائپ لائنز بنانا ایک پیچیدہ اور وقت طلب عمل ہو سکتا ہے۔ ڈویلپرز عام طور پر مقامی طور پر اپنی پروسیسنگ اور ٹریننگ اسکرپٹس کی جانچ کرتے ہیں، لیکن پائپ لائنز کو خود عام طور پر کلاؤڈ میں ٹیسٹ کیا جاتا ہے۔ تجربے کے دوران ایک مکمل پائپ لائن بنانا اور چلانا ترقیاتی لائف سائیکل میں ناپسندیدہ اوور ہیڈ اور لاگت کا اضافہ کرتا ہے۔ اس پوسٹ میں، ہم آپ کو استعمال کرنے کا طریقہ بتاتے ہیں۔ ایمیزون سیج میکر پائپ لائنز لوکل موڈ ML پائپ لائنوں کو مقامی طور پر چلانے کے لیے پائپ لائن کی ڈیولپمنٹ اور رن ٹائم دونوں کو کم کرتے ہوئے لاگت کو کم کرنا۔ مقامی طور پر پائپ لائن کی مکمل جانچ ہونے کے بعد، آپ اسے آسانی سے دوبارہ چلا سکتے ہیں۔ ایمیزون سیج میکر کوڈ کی تبدیلیوں کی صرف چند لائنوں کے ساتھ وسائل کو منظم کیا۔

ایم ایل لائف سائیکل کا جائزہ

ML میں نئی ​​ایجادات اور ایپلی کیشنز کے لیے ایک اہم محرک ڈیٹا کی دستیابی اور مقدار کے ساتھ ساتھ سستے کمپیوٹ آپشنز ہیں۔ کئی ڈومینز میں، ML نے کلاسیکل بڑے ڈیٹا اور تجزیاتی تکنیکوں کے ساتھ پہلے ناقابل حل مسائل کو حل کرنے کے قابل ثابت کیا ہے، اور ڈیٹا سائنس اور ML پریکٹیشنرز کی مانگ میں مسلسل اضافہ ہو رہا ہے۔ بہت اعلیٰ سطح سے، ML لائف سائیکل بہت سے مختلف حصوں پر مشتمل ہوتا ہے، لیکن ML ماڈل کی تعمیر عام طور پر درج ذیل عمومی مراحل پر مشتمل ہوتی ہے:

  1. ڈیٹا کی صفائی اور تیاری (فیچر انجینئرنگ)
  2. ماڈل ٹریننگ اور ٹیوننگ
  3. ماڈل کی تشخیص
  4. ماڈل کی تعیناتی (یا بیچ ٹرانسفارم)

ڈیٹا کی تیاری کے مرحلے میں، ڈیٹا کو لوڈ کیا جاتا ہے، مالش کیا جاتا ہے، اور ان پٹ کی قسم، یا خصوصیات میں تبدیل کیا جاتا ہے، جس کی ایم ایل ماڈل توقع کرتا ہے۔ اعداد و شمار کو تبدیل کرنے کے لیے اسکرپٹ لکھنا عام طور پر ایک تکراری عمل ہے، جہاں تیز رفتار فیڈ بیک لوپس ترقی کو تیز کرنے کے لیے اہم ہیں۔ فیچر انجینئرنگ اسکرپٹس کی جانچ کرتے وقت مکمل ڈیٹاسیٹ استعمال کرنا عام طور پر ضروری نہیں ہوتا ہے، یہی وجہ ہے کہ آپ مقامی موڈ کی خصوصیت سیج میکر پروسیسنگ کا۔ یہ آپ کو مقامی طور پر چلانے اور چھوٹے ڈیٹاسیٹ کا استعمال کرتے ہوئے کوڈ کو بار بار اپ ڈیٹ کرنے کی اجازت دیتا ہے۔ جب حتمی کوڈ تیار ہو جاتا ہے، تو اسے ریموٹ پروسیسنگ جاب میں جمع کر دیا جاتا ہے، جو مکمل ڈیٹا سیٹ کا استعمال کرتا ہے اور SageMaker کے زیر انتظام مثالوں پر چلتا ہے۔

ترقی کا عمل ماڈل ٹریننگ اور ماڈل کی تشخیص کے مراحل دونوں کے لیے ڈیٹا کی تیاری کے مرحلے جیسا ہے۔ ڈیٹا سائنسدان استعمال کرتے ہیں۔ مقامی موڈ کی خصوصیت SageMaker ٹریننگ کا مقامی طور پر چھوٹے ڈیٹاسیٹس کے ساتھ تیزی سے اعادہ کرنے کے لیے، SageMaker کے زیر انتظام ML-آپٹمائزڈ مثالوں کے کلسٹر میں تمام ڈیٹا استعمال کرنے سے پہلے۔ یہ ترقی کے عمل کو تیز کرتا ہے اور تجربہ کے دوران SageMaker کے زیر انتظام ML مثالوں کو چلانے کی لاگت کو ختم کرتا ہے۔

جیسے جیسے کسی تنظیم کی ML پختگی بڑھتی ہے، آپ استعمال کر سکتے ہیں۔ ایمیزون سیج میکر پائپ لائنز ML پائپ لائنز بنانے کے لیے جو ان مراحل کو ایک ساتھ سلائی کرتے ہیں، مزید پیچیدہ ML ورک فلو تخلیق کرتے ہیں جو ML ماڈلز کو پراسیس کرتے ہیں، تربیت دیتے ہیں اور ان کا جائزہ لیتے ہیں۔ سیج میکر پائپ لائنز ایم ایل ورک فلو کے مختلف مراحل کو خودکار کرنے کے لیے مکمل طور پر منظم سروس ہے، بشمول ڈیٹا لوڈنگ، ڈیٹا ٹرانسفارمیشن، ماڈل ٹریننگ اور ٹیوننگ، اور ماڈل کی تعیناتی۔ کچھ عرصہ پہلے تک، آپ مقامی طور پر اپنے اسکرپٹس کو تیار اور جانچ سکتے تھے لیکن آپ کو اپنی ایم ایل پائپ لائنز کو کلاؤڈ میں ٹیسٹ کرنا پڑتا تھا۔ اس نے ایم ایل پائپ لائنوں کے بہاؤ اور شکل کو ایک سست اور مہنگا عمل بنا دیا۔ اب، SageMaker Pipelines کے اضافی لوکل موڈ فیچر کے ساتھ، آپ اپنی ML پائپ لائنز کو اسی طرح اعادہ اور جانچ سکتے ہیں جس طرح آپ اپنی پروسیسنگ اور ٹریننگ اسکرپٹس کو جانچتے اور دہراتے ہیں۔ آپ پائپ لائن کے نحو اور افعال کی توثیق کرنے کے لیے ڈیٹا کے ایک چھوٹے سب سیٹ کا استعمال کرتے ہوئے اپنی مقامی مشین پر اپنی پائپ لائنوں کو چلا اور جانچ سکتے ہیں۔

سیج میکر پائپ لائنز

سیج میکر پائپ لائنز سادہ یا پیچیدہ ایم ایل ورک فلو کو چلانے کے لیے ایک مکمل خودکار طریقہ فراہم کرتی ہے۔ سیج میکر پائپ لائنز کے ساتھ، آپ استعمال میں آسان Python SDK کے ساتھ ML ورک فلو بنا سکتے ہیں، اور پھر اس کا استعمال کرتے ہوئے اپنے ورک فلو کا تصور اور نظم کر سکتے ہیں۔ ایمیزون سیج میکر اسٹوڈیو. آپ کی ڈیٹا سائنس ٹیمیں SageMaker پائپ لائنز میں آپ کے تخلیق کردہ ورک فلو مراحل کو ذخیرہ اور دوبارہ استعمال کر کے زیادہ موثر اور تیز تر ہو سکتی ہیں۔ آپ پہلے سے تعمیر شدہ ٹیمپلیٹس بھی استعمال کر سکتے ہیں جو آپ کے ML ماحول میں ماڈلز بنانے، جانچنے، رجسٹر کرنے اور تعینات کرنے کے لیے انفراسٹرکچر اور ریپوزٹری کی تخلیق کو خودکار کرتے ہیں۔ یہ ٹیمپلیٹس خود بخود آپ کی تنظیم کے لیے دستیاب ہیں، اور استعمال کرتے ہوئے فراہم کیے گئے ہیں۔ AWS سروس کیٹلاگ مصنوعات.

SageMaker Pipelines ML میں مسلسل انضمام اور مسلسل تعیناتی (CI/CD) کے طریقوں کو لاتی ہے، جیسے کہ ترقی اور پیداوار کے ماحول کے درمیان برابری برقرار رکھنا، ورژن کنٹرول، آن ڈیمانڈ ٹیسٹنگ، اور اینڈ ٹو اینڈ آٹومیشن، جو آپ کو ML کی پیمائش کرنے میں مدد کرتا ہے۔ تنظیم DevOps پریکٹیشنرز جانتے ہیں کہ CI/CD تکنیکوں کے استعمال کے کچھ اہم فوائد میں دوبارہ قابل استعمال اجزاء کے ذریعے پیداواری صلاحیت میں اضافہ اور خودکار جانچ کے ذریعے معیار میں اضافہ شامل ہے، جو آپ کے کاروباری مقاصد کے لیے تیز تر ROI کا باعث بنتا ہے۔ یہ فوائد اب MLOps پریکٹیشنرز کو ML ماڈلز کی تربیت، جانچ، اور تعیناتی کو خودکار کرنے کے لیے SageMaker پائپ لائنز کا استعمال کر کے دستیاب ہیں۔ مقامی موڈ کے ساتھ، اب آپ پائپ لائن میں استعمال کے لیے اسکرپٹ تیار کرتے ہوئے بہت زیادہ تیزی سے اعادہ کر سکتے ہیں۔ نوٹ کریں کہ مقامی پائپ لائن مثالیں سٹوڈیو IDE کے اندر دیکھی یا چلائی نہیں جا سکتیں۔ تاہم، مقامی پائپ لائنوں کے لیے دیکھنے کے اضافی اختیارات جلد ہی دستیاب ہوں گے۔

SageMaker SDK ایک عمومی مقصد فراہم کرتا ہے۔ مقامی موڈ کی ترتیب جو ڈویلپرز کو اپنے مقامی ماحول میں معاون پروسیسرز اور تخمینہ لگانے والوں کو چلانے اور جانچنے کی اجازت دیتا ہے۔ آپ متعدد AWS سے تعاون یافتہ فریم ورک امیجز (TensorFlow, MXNet, Chainer, PyTorch، اور Scikit-Learn) کے ساتھ ساتھ ان تصاویر کے ساتھ مقامی موڈ ٹریننگ کا استعمال کر سکتے ہیں جو آپ خود فراہم کرتے ہیں۔

سیج میکر پائپ لائنز، جو آرکیسٹریٹڈ ورک فلو اسٹیپس کا ڈائریکٹڈ ایسکلک گراف (ڈی اے جی) بناتی ہے، بہت سی سرگرمیوں کو سپورٹ کرتی ہے جو ایم ایل لائف سائیکل کا حصہ ہیں۔ مقامی موڈ میں، درج ذیل اقدامات معاون ہیں:

  • کام کے مراحل پر کارروائی ہو رہی ہے۔ - ڈیٹا پروسیسنگ کے کام کے بوجھ کو چلانے کے لیے SageMaker پر ایک آسان، منظم تجربہ، جیسے فیچر انجینئرنگ، ڈیٹا کی توثیق، ماڈل کی تشخیص، اور ماڈل کی تشریح۔
  • تربیتی ملازمت کے اقدامات - ایک تکراری عمل جو کسی ماڈل کو تربیتی ڈیٹا سیٹ سے مثالیں پیش کرکے پیشین گوئیاں کرنا سکھاتا ہے۔
  • ہائپر پیرامیٹر ٹیوننگ جابز - انتہائی درست ماڈل تیار کرنے والے ہائپر پیرامیٹر کا جائزہ لینے اور اسے منتخب کرنے کا ایک خودکار طریقہ
  • مشروط چلانے کے اقدامات - ایک ایسا قدم جو پائپ لائن میں شاخوں کو مشروط طور پر چلاتا ہے۔
  • ماڈل مرحلہ - CreateModel دلائل کا استعمال کرتے ہوئے، یہ مرحلہ تبدیلی کے مراحل یا بعد میں ایک اختتامی نقطہ کے طور پر تعیناتی میں استعمال کے لیے ایک ماڈل بنا سکتا ہے۔
  • ملازمت کے مراحل کو تبدیل کریں۔ - ایک بیچ ٹرانسفارم جاب جو بڑے ڈیٹاسیٹس سے پیشین گوئیاں پیدا کرتا ہے، اور جب مستقل اختتامی نقطہ کی ضرورت نہیں ہے تو اندازہ لگاتا ہے۔
  • ناکام اقدامات - ایک ایسا قدم جو پائپ لائن کے رن کو روکتا ہے اور رن کو ناکام کے طور پر نشان زد کرتا ہے۔

حل جائزہ

ہمارا حل مقامی وضع میں SageMaker پائپ لائنز بنانے اور چلانے کے لیے ضروری اقدامات کو ظاہر کرتا ہے، جس کا مطلب ہے کہ ورک فلو کے مراحل کو لوڈ کرنے اور چلانے کے لیے مقامی CPU، RAM، اور ڈسک کے وسائل کا استعمال کرنا۔ آپ کا مقامی ماحول لیپ ٹاپ پر چل رہا ہو سکتا ہے، VSCode یا PyCharm جیسے مشہور IDEs کا استعمال کرتے ہوئے، یا اسے کلاسک نوٹ بک مثالوں کا استعمال کرتے ہوئے SageMaker کے ذریعے ہوسٹ کیا جا سکتا ہے۔

مقامی موڈ ڈیٹا سائنسدانوں کو قدموں کو ایک ساتھ سلائی کرنے کی اجازت دیتا ہے، جس میں پروسیسنگ، تربیت، اور تشخیصی کام شامل ہو سکتے ہیں، اور پورے ورک فلو کو مقامی طور پر چلا سکتے ہیں۔ جب آپ مقامی طور پر جانچ کر لیتے ہیں، تو آپ سیج میکر کے زیر انتظام ماحول میں پائپ لائن کو تبدیل کر کے دوبارہ چلا سکتے ہیں۔ LocalPipelineSession کے ساتھ اعتراض PipelineSession، جو ایم ایل لائف سائیکل میں مستقل مزاجی لاتا ہے۔

اس نوٹ بک کے نمونے کے لیے، ہم ایک معیاری عوامی طور پر دستیاب ڈیٹاسیٹ کا استعمال کرتے ہیں۔ UCI مشین لرننگ ابالون ڈیٹاسیٹ. مقصد ایک ایم ایل ماڈل کو تربیت دینا ہے تاکہ اس کی جسمانی پیمائش سے ابالون گھونگھے کی عمر کا تعین کیا جاسکے۔ بنیادی طور پر، یہ ایک رجعت کا مسئلہ ہے۔

اس نوٹ بک کے نمونے کو چلانے کے لیے درکار تمام کوڈ GitHub پر دستیاب ہے۔ amazon-sagemaker-مثالیں۔ ذخیرہ اس نوٹ بک کے نمونے میں، ہر پائپ لائن ورک فلو مرحلہ آزادانہ طور پر بنایا جاتا ہے اور پھر پائپ لائن بنانے کے لیے ایک ساتھ وائرڈ کیا جاتا ہے۔ ہم مندرجہ ذیل اقدامات بناتے ہیں:

  • پروسیسنگ مرحلہ (فیچر انجینئرنگ)
  • تربیتی مرحلہ (ماڈل ٹریننگ)
  • پروسیسنگ مرحلہ (ماڈل کی تشخیص)
  • حالت کا مرحلہ (ماڈل کی درستگی)
  • ماڈل مرحلہ بنائیں (ماڈل)
  • تبدیلی کا مرحلہ (بیچ ٹرانسفارم)
  • رجسٹر ماڈل مرحلہ (ماڈل پیکج)
  • ناکام مرحلہ (رن ناکام)

درج ذیل خاکہ ہماری پائپ لائن کی وضاحت کرتا ہے۔

Amazon SageMaker Pipelines لوکل موڈ PlatoBlockchain Data Intelligence کے ساتھ لاگت اور ترقی کا وقت کم کریں۔ عمودی تلاش۔ عی

شرائط

اس پوسٹ پر عمل کرنے کے لیے، آپ کو درج ذیل کی ضرورت ہے:

ان شرائط کے مکمل ہونے کے بعد، آپ نمونہ نوٹ بک چلا سکتے ہیں جیسا کہ درج ذیل حصوں میں بیان کیا گیا ہے۔

اپنی پائپ لائن بنائیں

اس نوٹ بک کے نمونے میں، ہم استعمال کرتے ہیں۔ سیج میکر اسکرپٹ موڈ زیادہ تر ML عملوں کے لیے، جس کا مطلب ہے کہ ہم سرگرمی کو انجام دینے اور اس کوڈ کا حوالہ دینے کے لیے اصل Python کوڈ (اسکرپٹس) فراہم کرتے ہیں۔ اسکرپٹ موڈ SageMaker پروسیسنگ کے اندر طرز عمل کو کنٹرول کرنے کے لیے زبردست لچک فراہم کرتا ہے جس سے آپ کو اپنے کوڈ کو اپنی مرضی کے مطابق بنانے کی اجازت دیتا ہے جبکہ SageMaker کے پہلے سے بنائے گئے کنٹینرز جیسے XGBoost یا Scikit-Learn کا فائدہ اٹھاتے ہوئے بھی۔ کسٹم کوڈ کو میجک کمانڈ سے شروع ہونے والے سیلز کا استعمال کرتے ہوئے ازگر کی اسکرپٹ فائل میں لکھا جاتا ہے۔ %%writefile، مندرجہ ذیل کی طرح:

%%writefile code/evaluation.py

مقامی موڈ کا بنیادی فعال کنندہ ہے۔ LocalPipelineSession آبجیکٹ، جو ازگر SDK سے فوری بنایا گیا ہے۔ درج ذیل کوڈ سیگمنٹ دکھاتے ہیں کہ مقامی موڈ میں سیج میکر پائپ لائن کیسے بنائی جائے۔ اگرچہ آپ مقامی پائپ لائن کے بہت سے مراحل کے لیے مقامی ڈیٹا پاتھ کو ترتیب دے سکتے ہیں، لیکن Amazon S3 تبدیلی کے ذریعے ڈیٹا آؤٹ پٹ کو ذخیرہ کرنے کے لیے ڈیفالٹ مقام ہے۔ نیا LocalPipelineSession اس پوسٹ میں بیان کردہ SageMaker ورک فلو API کالوں میں سے بہت سے میں آبجیکٹ Python SDK کو منتقل کیا جاتا ہے۔ نوٹ کریں کہ آپ استعمال کرسکتے ہیں۔ local_pipeline_session S3 ڈیفالٹ بالٹی اور موجودہ ریجن کے نام کے حوالہ جات کی بازیافت کے لیے متغیر۔

from sagemaker.workflow.pipeline_context import LocalPipelineSession

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

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

پائپ لائن کے انفرادی مراحل بنانے سے پہلے، ہم پائپ لائن کے ذریعے استعمال ہونے والے کچھ پیرامیٹرز سیٹ کرتے ہیں۔ ان میں سے کچھ پیرامیٹرز سٹرنگ لٹریلز ہیں، جبکہ دیگر SDK کے ذریعہ فراہم کردہ خصوصی شمار شدہ اقسام کے طور پر بنائے گئے ہیں۔ شمار شدہ ٹائپنگ اس بات کو یقینی بناتی ہے کہ پائپ لائن کو درست ترتیبات فراہم کی جائیں، جیسے کہ یہ، جو ConditionLessThanOrEqualTo مزید نیچے قدم:

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

ڈیٹا پروسیسنگ مرحلہ بنانے کے لیے، جو یہاں فیچر انجینئرنگ انجام دینے کے لیے استعمال ہوتا ہے، ہم استعمال کرتے ہیں۔ SKLearnProcessor ڈیٹاسیٹ کو لوڈ اور تبدیل کرنے کے لیے۔ ہم پاس کرتے ہیں۔ local_pipeline_session کلاس کنسٹرکٹر کے لیے متغیر، جو ورک فلو سٹیپ کو لوکل موڈ میں چلانے کی ہدایت کرتا ہے:

from sagemaker.sklearn.processing import SKLearnProcessor

framework_version = "1.0-1"

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

اگلا، ہم اپنا پہلا اصل پائپ لائن مرحلہ بناتے ہیں، a ProcessingStep آبجیکٹ، جیسا کہ SageMaker SDK سے درآمد کیا گیا ہے۔ پروسیسر کے دلائل کو کال سے واپس کر دیا جاتا ہے۔ SKLearnProcessor run() طریقہ۔ یہ ورک فلو مرحلہ نوٹ بک کے اختتام کی طرف دوسرے مراحل کے ساتھ ملا کر پائپ لائن کے اندر آپریشن کے ترتیب کی نشاندہی کرتا ہے۔

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

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

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

اگلا، ہم SageMaker SDK کا استعمال کرتے ہوئے پہلے ایک معیاری تخمینہ لگانے والے کو شروع کر کے تربیتی مرحلہ قائم کرنے کے لیے کوڈ فراہم کرتے ہیں۔ ہم وہی پاس کرتے ہیں۔ local_pipeline_session تخمینہ لگانے والے کے لیے متغیر، جس کا نام xgb_train ہے، بطور sagemaker_session دلیل. چونکہ ہم ایک XGBoost ماڈل کو تربیت دینا چاہتے ہیں، ہمیں مندرجہ ذیل پیرامیٹرز بشمول فریم ورک اور کئی ورژن کے پیرامیٹرز کی وضاحت کر کے ایک درست امیج URI بنانا چاہیے:

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

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

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

مثال کے طور پر، ہم اختیاری طور پر اضافی تخمینہ لگانے والے طریقوں کو کال کر سکتے ہیں۔ set_hyperparameters()، تربیتی کام کے لیے ہائپر پیرامیٹر کی ترتیبات فراہم کرنے کے لیے۔ اب جب کہ ہمارے پاس ایک تخمینہ کنندہ کنفیگر ہو چکا ہے، ہم اصل تربیتی مرحلہ بنانے کے لیے تیار ہیں۔ ایک بار پھر، ہم درآمد کرتے ہیں TrainingStep SageMaker SDK لائبریری سے کلاس:

from sagemaker.workflow.steps import TrainingStep

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

اگلا، ہم ماڈل کی تشخیص کرنے کے لیے ایک اور پروسیسنگ مرحلہ بناتے ہیں۔ یہ ایک تخلیق کرکے کیا جاتا ہے۔ ScriptProcessor مثال اور گزرنا local_pipeline_session ایک پیرامیٹر کے طور پر اعتراض:

from sagemaker.processing import ScriptProcessor

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

تربیت یافتہ ماڈل کی تعیناتی کو فعال کرنے کے لیے، یا تو a سیج میکر ریئل ٹائم اینڈ پوائنٹ یا بیچ کو تبدیل کرنے کے لیے، ہمیں ایک بنانے کی ضرورت ہے۔ Model ماڈل نمونے، مناسب تصویر URI، اور اختیاری طور پر ہمارے حسب ضرورت انفرنس کوڈ کو پاس کرکے اعتراض کریں۔ پھر ہم اسے پاس کرتے ہیں۔ Model ایک پر اعتراض ModelStep، جسے مقامی پائپ لائن میں شامل کیا جاتا ہے۔ درج ذیل کوڈ دیکھیں:

from sagemaker.model import Model

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

from sagemaker.workflow.model_step import ModelStep

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

اگلا، ہم ایک بیچ ٹرانسفارم سٹیپ بناتے ہیں جہاں ہم فیچر ویکٹر کا ایک سیٹ جمع کرتے ہیں اور اندازہ لگاتے ہیں۔ ہمیں پہلے ایک بنانے کی ضرورت ہے۔ Transformer اعتراض کریں اور پاس کریں۔ local_pipeline_session اس کا پیرامیٹر۔ پھر ہم ایک بناتے ہیں TransformStep، مطلوبہ دلائل کو پاس کرتے ہوئے، اور اسے پائپ لائن کی تعریف میں شامل کریں:

from sagemaker.transformer import Transformer

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

from sagemaker.workflow.steps import TransformStep

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

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

آخر میں، ہم ورک فلو میں برانچ کنڈیشن شامل کرنا چاہتے ہیں تاکہ ہم صرف بیچ ٹرانسفارم چلائیں اگر ماڈل کی تشخیص کے نتائج ہمارے معیار پر پورا اتریں۔ ہم ایک کا اضافہ کرکے اس مشروط کی نشاندہی کرسکتے ہیں۔ ConditionStep ایک خاص حالت کی قسم کے ساتھ، جیسے ConditionLessThanOrEqualTo. اس کے بعد ہم پائپ لائن کی if/else یا true/false شاخوں کی بنیادی طور پر وضاحت کرتے ہوئے، دو شاخوں کے لیے اقدامات کو شمار کرتے ہیں۔ میں فراہم کردہ if_steps ConditionStep (step_create_model, step_transformجب بھی حالت کا اندازہ ہوتا ہے تو چلایا جاتا ہے۔ True.

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

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

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

مندرجہ ذیل خاکہ اس مشروط شاخ اور اس سے وابستہ اگر/اور اقدامات کی وضاحت کرتا ہے۔ حالت کے مرحلے کے مقابلے میں ماڈل کی تشخیص کے مرحلے کے نتائج کی بنیاد پر صرف ایک شاخ چلائی جاتی ہے۔

Amazon SageMaker Pipelines لوکل موڈ PlatoBlockchain Data Intelligence کے ساتھ لاگت اور ترقی کا وقت کم کریں۔ عمودی تلاش۔ عی

اب جب کہ ہم نے اپنے تمام اقدامات کی وضاحت کر دی ہے، اور بنیادی طبقاتی مثالیں بنائی گئی ہیں، ہم انہیں ایک پائپ لائن میں جوڑ سکتے ہیں۔ ہم کچھ پیرامیٹرز فراہم کرتے ہیں، اور صرف مطلوبہ ترتیب میں اقدامات کی فہرست دے کر آپریشن کے ترتیب کو اہم طور پر بیان کرتے ہیں۔ نوٹ کریں کہ TransformStep یہاں نہیں دکھایا گیا ہے کیونکہ یہ مشروط قدم کا ہدف ہے، اور اسے مرحلہ وار دلیل کے طور پر فراہم کیا گیا تھا۔ ConditionalStep پہلے.

from sagemaker.workflow.pipeline import Pipeline

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

پائپ لائن چلانے کے لیے، آپ کو دو طریقوں کو کال کرنا چاہیے: pipeline.upsert()، جو پائپ لائن کو بنیادی سروس پر اپ لوڈ کرتا ہے، اور pipeline.start()، جو پائپ لائن چلانا شروع کرتا ہے۔ آپ رن کی حیثیت سے پوچھ گچھ کرنے، پائپ لائن کے مراحل کی فہرست بنانے اور مزید بہت سے دوسرے طریقے استعمال کر سکتے ہیں۔ چونکہ ہم نے مقامی موڈ پائپ لائن سیشن کا استعمال کیا ہے، یہ تمام اقدامات مقامی طور پر آپ کے پروسیسر پر چلائے جاتے ہیں۔ شروع کے طریقہ کار کے نیچے سیل آؤٹ پٹ پائپ لائن سے آؤٹ پٹ دکھاتا ہے:

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

آپ کو سیل آؤٹ پٹ کے نچلے حصے میں مندرجہ ذیل کی طرح ایک پیغام دیکھنا چاہئے:

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

منظم وسائل پر واپس جائیں۔

جب ہم اس بات کی تصدیق کر چکے ہیں کہ پائپ لائن غلطیوں کے بغیر چلتی ہے اور ہم پائپ لائن کے بہاؤ اور شکل سے مطمئن ہیں، ہم پائپ لائن کو دوبارہ بنا سکتے ہیں لیکن SageMaker کے زیر انتظام وسائل کے ساتھ اور اسے دوبارہ چلا سکتے ہیں۔ استعمال کرنے کے لئے صرف تبدیلی کی ضرورت ہے۔ PipelineSession کے بجائے اعتراض LocalPipelineSession:

سے sagemaker.workflow.pipeline_context لوکل پائپ لائن سیشن درآمد کریں۔
from sagemaker.workflow.pipeline_context import PipelineSession

local_pipeline_session = لوکل پائپ لائن سیشن ()
pipeline_session = PipelineSession()

یہ سروس کو مطلع کرتا ہے کہ سیج میکر کے زیر انتظام وسائل پر اس سیشن آبجیکٹ کا حوالہ دیتے ہوئے ہر قدم کو چلائے۔ چھوٹی تبدیلی کو دیکھتے ہوئے، ہم مندرجہ ذیل کوڈ سیل میں صرف مطلوبہ کوڈ تبدیلیوں کی وضاحت کرتے ہیں، لیکن اسی تبدیلی کو ہر سیل پر لاگو کرنے کی ضرورت ہوگی local_pipeline_session چیز. تبدیلیاں، تاہم، تمام خلیوں میں یکساں ہیں کیونکہ ہم صرف اس کی جگہ لے رہے ہیں۔ local_pipeline_session کے ساتھ اعتراض pipeline_session اعتراض

from sagemaker.sklearn.processing import SKLearnProcessor

framework_version = "1.0-1"

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

مقامی سیشن آبجیکٹ کو ہر جگہ تبدیل کرنے کے بعد، ہم پائپ لائن کو دوبارہ بناتے ہیں اور اسے SageMaker کے زیر انتظام وسائل کے ساتھ چلاتے ہیں:

from sagemaker.workflow.pipeline import Pipeline

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

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

صاف کرو

اگر آپ اسٹوڈیو کے ماحول کو صاف ستھرا رکھنا چاہتے ہیں، تو آپ SageMaker پائپ لائن اور ماڈل کو حذف کرنے کے لیے درج ذیل طریقے استعمال کر سکتے ہیں۔ مکمل کوڈ نمونے میں پایا جا سکتا ہے۔ نوٹ بک.

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

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

نتیجہ

کچھ عرصہ پہلے تک، آپ سیج میکر پروسیسنگ اور سیج میکر ٹریننگ کی لوکل موڈ فیچر کو مقامی طور پر اپنی پروسیسنگ اور ٹریننگ اسکرپٹس کو سیج میکر کے زیر انتظام وسائل کے ساتھ تمام ڈیٹا پر چلانے سے پہلے استعمال کر سکتے ہیں۔ سیج میکر پائپ لائنز کی نئی لوکل موڈ فیچر کے ساتھ، ایم ایل پریکٹیشنرز اب اسی طریقہ کو لاگو کر سکتے ہیں جب اپنی ایم ایل پائپ لائنوں پر تکرار کرتے ہوئے، مختلف ایم ایل ورک فلو کو ایک ساتھ سلائی کرتے ہیں۔ جب پائپ لائن پیداوار کے لیے تیار ہوتی ہے، تو اسے SageMaker کے زیر انتظام وسائل کے ساتھ چلانے کے لیے کوڈ کی تبدیلیوں کی صرف چند لائنوں کی ضرورت ہوتی ہے۔ اس سے ڈیولپمنٹ کے دوران پائپ لائن چلانے کا وقت کم ہو جاتا ہے، جس کے نتیجے میں تیزی سے ترقی کے چکروں کے ساتھ پائپ لائن کی زیادہ تیزی سے ترقی ہوتی ہے، جبکہ SageMaker کے زیر انتظام وسائل کی لاگت میں کمی آتی ہے۔

مزید جاننے کے لئے، ملاحظہ کریں ایمیزون سیج میکر پائپ لائنز or اپنی ملازمتیں مقامی طور پر چلانے کے لیے SageMaker پائپ لائنز کا استعمال کریں۔.


مصنفین کے بارے میں

Amazon SageMaker Pipelines لوکل موڈ PlatoBlockchain Data Intelligence کے ساتھ لاگت اور ترقی کا وقت کم کریں۔ عمودی تلاش۔ عیپال ہارگیس AWS، Amazon، اور Hortonworks سمیت متعدد کمپنیوں میں مشین لرننگ پر اپنی کوششوں کو فوکس کیا ہے۔ وہ ٹیکنالوجی کے حل تیار کرنے اور لوگوں کو اس سے زیادہ سے زیادہ فائدہ اٹھانے کا طریقہ سکھانے سے لطف اندوز ہوتا ہے۔ AWS میں اپنے کردار سے پہلے، وہ Amazon Exports اور Expansions کے لیے اہم معمار تھے، جس نے amazon.com کو بین الاقوامی خریداروں کے لیے تجربے کو بہتر بنانے میں مدد کی۔ پال صارفین کو حقیقی دنیا کے مسائل حل کرنے کے لیے مشین لرننگ کے اقدامات کو بڑھانے میں مدد کرنا پسند کرتا ہے۔

Amazon SageMaker Pipelines لوکل موڈ PlatoBlockchain Data Intelligence کے ساتھ لاگت اور ترقی کا وقت کم کریں۔ عمودی تلاش۔ عینکلاس پام اسٹاک ہوم، سویڈن میں AWS میں ایک سولیوشن آرکیٹیکٹ ہے، جہاں وہ کلاؤڈ میں کامیاب ہونے میں نورڈکس کے صارفین کی مدد کرتا ہے۔ وہ IoT اور مشین لرننگ کے ساتھ سرور لیس ٹیکنالوجیز کے بارے میں خاص طور پر پرجوش ہے۔ کام سے باہر، نکلاس ایک شوقین کراس کنٹری اسکیئر اور سنو بورڈر کے ساتھ ساتھ ایک ماسٹر انڈے بوائلر ہے۔

Amazon SageMaker Pipelines لوکل موڈ PlatoBlockchain Data Intelligence کے ساتھ لاگت اور ترقی کا وقت کم کریں۔ عمودی تلاش۔ عیکریٹ تھڈاکا سیج میکر سروس SA ٹیم میں کام کرنے والا ایک ML سلوشنز آرکیٹیکٹ ہے۔ AWS میں شامل ہونے سے پہلے، کریٹ نے ابتدائی مرحلے کے AI سٹارٹ اپس میں کام کیا جس کے بعد AI ریسرچ، MLOps اور تکنیکی قیادت میں مختلف کرداروں میں کچھ وقت مشاورت کی۔

ٹائم اسٹیمپ:

سے زیادہ AWS مشین لرننگ