شعار زيفيرنت

بناء نموذج ML في AWS Sagemaker

التاريخ:

الصورة: https://sagemaker-examples.readthedocs.io/en/latest/index.html

 

يعد تعلم العمود الفقري أكثر المجالات إثارة وتعطيلًا في العصر الحالي. أصبح الذكاء الاصطناعي / التعلم الآلي من الابتكارات. الهدف الرئيسي لنظام الذكاء الاصطناعي هو حل مشاكل العالم الحقيقي حيث تهتم الشركات بالربحية والاستدامة وصورة العلامة التجارية وهيكل التكلفة والعملاء والامتثال. سيتم تبني منتجات وحلول الذكاء الاصطناعي بسهولة من قبل الشركات والمؤسسات عندما يتم دمج ذلك مع نظام المؤسسة الأوسع ويمكن للمنظمات التي تواجه المستهلك استخدامه لإثراء تجارب عملائها. ستتناول هذه المقالة بشكل أساسي نموذج التعلم الآلي في AWS Sagemaker.

تعرض البنية التي لا تحتوي على خادم نقطة نهاية استدلال وقت التشغيل المتاحة لبرامج العميل التي تعمل على أجهزة المستهلك. REST هو نهج مصمم جيدًا وصديق للويب ويستخدم لدمج نقطة نهاية الاستدلال مع تطبيق المؤسسة الأوسع.

سأصف الكود خطوة بخطوة وأقوم بإعداد نموذج ML في AWS ساجيماكر باستخدام بنية بدون خادم.

الرحلة من POC إلى الإنتاج معقدة وتستغرق وقتًا طويلاً. AWS Sagemaker عبارة عن نظام أساسي متقدم للتعلم الآلي يقدم مجموعة واسعة من القدرات لإدارة كميات كبيرة من البيانات لتدريب النموذج واختيار أفضل خوارزمية لتدريبه وإدارة قابلية التوسع وقدرة البنية التحتية أثناء التدريب ، ثم نشره & مراقبة النموذج في بيئة الإنتاج.

دعونا نبني بيان المشكلة والحل.

المشكلة

عندما نتحدث عن القيمة المستندة إلى البيانات لأنظمة التعلم الآلي ، فإن تحليل العملاء يجذب دائمًا اهتمام الجميع. هناك تحول كبير في صناعة الهاتف المحمول بسبب الحجم الكبير للعملاء ومقدمي الخدمات المختلفين.

لدى مشغلي الهاتف المحمول سجلات تاريخية انتهى بها الأمر للعملاء في نهاية المطاف إلى الاضطراب واستمرت في استخدام الخدمة. ترك العملاء يؤثر على إيرادات الأعمال بشكل سيء. ومن ثم ، تريد شركة الجوّال توقع هؤلاء العملاء مسبقًا حتى يمكن الاحتفاظ بهم بخصم / عروض إضافية وما إلى ذلك.

الحلول

سأقوم ببناء نموذج XGBOOST مع مجموعة بيانات العملاء. البيانات هي البيانات التاريخية. تحتوي مجموعة البيانات على سلوك العميل وتفاصيل المعاملة التي ستساعد الخوارزمية على اكتشاف النمط والتنبؤ بتضخم العميل. يتم الكشف عن العميل المتوقع على أنه "تمخض" و "غير ممخض". سنرسل التنبؤ إلى نظام العميل عبر AWS API Gateway ليستخدمه فريق عمليات الأعمال مرة أخرى. سيستخدم فريق التشغيل هذه البيانات جنبًا إلى جنب مع بيانات CRM الأخرى ويحاول الاحتفاظ بالعميل الذي يكون تنبؤاته عالية.

هدف

  • أنشئ نموذجًا للتعلم الآلي باستخدام حاوية Sagemaker-XGBOOST التي تقدمها AWS Machine Learning Service.
  • انشر نموذج Customer Churn باستخدام نقطة نهاية Sagemaker بحيث يمكن دمجه باستخدام بوابة AWS API مع نظام CRM للمؤسسة.

الرسالة

سيتم تنفيذ الحل باستخدام AWS Sagemaker-XGBOOST-Container من مثيل Notebook. ثم يتم استدعاء نقطة النهاية بواسطة دالة Lambda. ستقوم AWS API Gateway باستدعاء Lambda عندما يرسل نظام العميل طلب POST مع بيانات الاختبار لاكتشاف الاضطراب أو عدم الاضطراب.

سنستخدم هنا مجموعة بيانات عامة churn.txt والمتاحة في مجلد بيانات نموذج Sagemaker. يمكن الوصول إلى المجلد من مثيل دفتر ملاحظات Sagemaker كما هو موضح أدناه.

نموذج ML في AWS Sagemaker

الصورة التي أنشأها المؤلف

 

نموذج ML في AWS Sagemaker

Iبركه: https://aws.amazon.com/blogs/machine-learning/call-an-amazon-sagemaker-model-endpoint-using-amazon-api-gateway-and-aws-lambda/

قم بإنشاء مثيل Sagemaker Notebook

ابدأ مثيل الكمبيوتر الدفتري من وحدة تحكم Sagemaker.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

قم بإنشاء مثيل الكمبيوتر الدفتري باستخدام الإعداد الافتراضي. تأكد من استخدام مثيل المستوى المجاني (ml.t2.medium) لتجنب التكاليف العرضية للمشروع التجريبي.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

نموذج ML في AWS Sagemaker

الصورة: من صنع المؤلف

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

ثم افتح نسخة دفتر الملاحظات من خلال النقر على مكتبة jupyter. في Jupyter ، اختر New ثم اختر conda_python3.

لأغراض العرض التوضيحي ، أستخدم الكمبيوتر الدفتري الخاص بالعميل المتوفر في مثال Sagemaker. وترد تفاصيل الكود أدناه. يمكنك استخدام نفس الكود لإجراء المزيد من معالجة البيانات وتطبيق مناهج مختلفة ومقارنة النتائج المختلفة.

ومع ذلك ، ينصب التركيز هنا على بناء نقطة نهاية الاستدلال باستخدام بنية بدون خادم.

كوكب المشتري

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

تحضير البيانات

قم باستيراد مكتبات sagemaker ، وقم بإنشاء مثيل جلسة sagemaker. يتم استيراد boto3 لاستخدام خدمات AWS الأخرى في مثيل الكمبيوتر الدفتري.

تم تعيين حاوية العرض التوضيحي s3 على حاوية جلسة صانع sagemaker الافتراضية. يتم تعيين المجلد الموجود داخل الحاوية بواسطة بادئة تقوم بتخزين مجموعات بيانات القطار والتحقق من الصحة.

import sagemaker sess = sagemaker.Session () bucket = sess.default_bucket () بادئة = "sagemaker / DEMO-xgboost-churn" # تحديد دور IAM استيراد boto3 استيراد re من sagemaker import get_execution_role role = get_execution_role ()

استيراد مكتبات أخرى.

الاستيراد

يتوفر ملف curn.txt في المجلد التجريبي Sagemker ويمكن نسخه باستخدام الأمر أدناه في دفتر الملاحظات.

! aws s3 cp s3: //sagemaker-sample-files/datasets/tabular/synthetic/churn.txt ./

الإخراج - >>

تنزيل: s3: //sagemaker-sample-files/datasets/tabular/synthetic/churn.txt to ./churn.txt

اقرأ الملف

churn = pd.read_csv ("./ churn.txt") pd.set_option ("display.max_columns" ، 500) زبد

بايثون

الأعمدة

فهرس

لنبدأ في استكشاف البيانات:

جداول التردد لكل ميزة فئوية

للعمود في churn.select_dtypes (تتضمن = ["كائن"]). الأعمدة: عرض (pd.crosstab (index = churn [عمود] ، أعمدة = "٪ ملاحظات" ، تسوية = "أعمدة")) # مدرج تكراري لكل رقم عرض الميزات (churn.describe ())٪ matplotlib inline hist = churn.hist (الصناديق = 30 ، Sharey = True ، figsize = (10، 10))
إخراج العينة

يتم عرض عينة الإخراج أعلاه ، وسوف تظهر جميع الأعمدة في التنسيق أعلاه.

churn = churn.drop ("Phone"، axis = 1) churn ["Area Code"] = churn ["Area Code"]. astype (كائن)

للعمود في churn.select_dtypes (تشمل = ["الكائن"]).

 if العمود! = "Churn؟": عرض (pd.crosstab (index = churn [عمود] ، أعمدة = churn ["Churn؟"] ، تسوية = "أعمدة")) للعمود في churn.select_dtypes (استبعاد = [" الكائن "]). الأعمدة: طباعة (عمود) hist = churn [[العمود ،" Churn؟ "]]. اصمت (بواسطة =" Churn؟ "، الصناديق = 30) plt.show ()
صحيح | خاطئة
خطأ | صحيح
قطعة
قطعة

لقطات الشاشة أعلاه عبارة عن عينات من الإخراج ، قم بالتمرير لأسفل في قسم الإخراج للتحقق من جميع المرئيات الرسومية.

display (churn.corr ()) pd.plotting.scatter_matrix (churn، figsize = (12، 12)) plt.show ()
الناتج
matplotlib

دعنا نحلل البيانات ونتخذ قرارات بشأن استخراج الميزات:

churn = churn.drop (["شحن نهاري" ، "شحن عشية" ، "شحن ليلي" ، "شحن دولي"] ، المحور = 1)

تطبيق الدمى على هيئة تشفير واحد ساخن لتحويل الميزات الفئوية إلى رقمية.

model_data = pd.get_dummies (churn) model_data = pd.concat ([model_data ["Churn؟ _True."]، model_data.drop (["Churn؟ _False."، "Churn؟ _True."]، محور = 1)] ، المحور = 1)

تدريب النموذج

سنستخدم حاوية XGBoost مسبقة الصنع من Amazon SageMaker لتدريب النموذج. هذه بيئة موزعة وقابلة للتطوير تديرها AWS. بمجرد بناء النموذج ، سنستضيف النموذج كنقطة نهاية للتنبؤ في الوقت الفعلي. سيتم حفظ القطع الأثرية للنموذج في S3.

XGBoost هي خوارزمية فعالة للتعامل مع العلاقات غير الخطية بين الميزات والمتغير الهدف.

ستكون بيانات التدريب إما بتنسيق CSV أو LibSVM لـ SageMaker XGBoost. نحن نستخدم تنسيق CSV. يجب أن يحتوي على متغير توقع في العمود الأول ولن يحتوي على صف رأس.

حدد مواقع حاويات خوارزمية XGBoost.

train_data ، Validation_data ، test_data = np.split (model_data.sample (frac = 1، random_state = 1729) ، [int (0.7 * len (model_data)) ، int (0.9 * len (model_data))] ،) train_data.to_csv ( "train.csv"، header = False، index = False) validation_data.to_csv ("validation.csv"، header = False، index = False)

 

test_data.to_csv ("test.csv"، header = False، index = False)
لين (train_data.columns)

 

boto3.Session (). مورد ("s3"). دلو (دلو). كائن (os.path.join (بادئة ، "train / train.csv")) .upload_file ("train.csv") boto3.Session ( ) .resource ("s3"). Bucket (bucket) .Object (os.path.join (بادئة، "validation / validation.csv")) .upload_file ("validation.csv")

 

container = sagemaker.image_uris.retrieve ("xgboost"، boto3.Session (). region_name، "latest") عرض (حاوية)
القطار | اختبار

يتم حفظ بيانات التدريب في S3. يتم استخدام بيانات التحقق لتقييم النموذج. يتم استخدام بيانات الاختبار للتنبؤ النهائي. يمكنك اختبار lambda و API باستخدام بيانات التحقق أو الاختبار المحفوظة في مجلد s3 المعني كما هو موضح أدناه. أيضًا ، يتم حفظ ملفات csv الخاصة بالتدريب والتحقق من الصحة في مجلد مثيل دفتر sagemaker.

s3_input_train = TrainingInput (

 s3_data = "s3: // {} / {} / train" .format (حاوية ، بادئة) ، content_type = "csv") s3_input_validation = TrainingInput (s3_data = "s3: // {} / {} / التحقق من الصحة /". format (bucket، prefix)، content_type = "csv") print_train_data = "s3: // {} / {} / train" .format (bucket، prefix) print_test_data = "s3: // {} / {} / validation / ".format (bucket، prefix) print (print_train_data) print (print_test_data)
نموذج ML في AWS Sagemaker

يتم استخدام المعلمات الفوقية XGBoost لبناء النماذج المحسّنة.


sess = صانع sagemaker.

xgb = sagemaker.estimator.Estimator (

حاوية،

وظيفة،

example_count = 1 ،

example_type = ”ml.m4.xlarge” ،
output_path = ”s3: // {} / {} / output” .format (دلو ، بادئة) ،
sagemaker_session = sess ،
)
xgb.set_hyperparameters (
max_depth = 5 ،
إيتا = 0.2 ،
جاما = 4 ،
الحد الأدنى لوزن الطفل = 6 ،
عينة فرعية = 0.8 ،
صامت = 0 ،
الهدف = "ثنائي: لوجستي" ،
عدد_العدد = 100 ،
)
xgb.fit ({“train”: s3_input_train، “validation”: s3_input_validation})


.

تعزيز XG

 

ضبط

 

انشر النموذج

ينشر هذا الرمز النموذج على الخادم وينشئ نقطة نهاية SageMaker يمكننا الوصول إليها. قد تستغرق هذه الخطوة بضع دقائق حتى تكتمل. بمجرد تشغيل نقطة نهاية مستضافة ، يمكننا عمل تنبؤات في الوقت الفعلي من النموذج ببساطة عن طريق تقديم طلب HTTP POST عبر AWS API Gateway التي ستستدعي lambda ، وستقوم lambda بإرسال طلب إلى نقطة النهاية والحصول على الاستجابة من نقطة النهاية.

xgb_predictor = xgb.deploy (initial_instance_count = 1، example_type = "ml.m4.xlarge"، مُسلسل = CSVSerializer ())

قم بإنشاء نقطة نهاية النموذج

الآن ستقوم الكود أدناه بنشر النموذج على مثيل وإنشاء نقطة نهاية SageMaker. دعنا ننتظر حتى تأتي نقطة النهاية "InService". ثم يمكننا عمل تنبؤات في الوقت الفعلي إذا نجحنا في بيانات الاختبار عن طريق تقديم طلب HTTP POST عبر AWS API Gateway. ستستدعي API وظيفة lambda. سيرسل Lambda طلبًا إلى نقطة النهاية ويحصل على الرد من نقطة النهاية.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

قم بإنشاء وظيفة Lambda

لامدا

الصورة: تم إنشاؤها بواسطة المؤلف

AWS

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

لقد اخترت دور التنفيذ الجديد لوظيفة lambda هذه. بمجرد الإنشاء ، اختر دور Lambda AWS Identity and Access Management (IAM) وأضف السياسة التالية ، التي تمنح إذن الوظيفة لاستدعاء نقطة نهاية نموذجية:

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

لامدا استدعاء

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

يتم عرض السياسة الجديدة أدناه كمرجع ، ويمكن لصقها مباشرةً في شاشة إرفاق السياسة.

{"الإصدار": "2012-10-17" ، "البيان": [{"Sid": "VisualEditor0" ، "التأثير": "السماح" ، "الإجراء": "sagemaker: InvokeEndpoint" ، "المورد": " * "}]}
نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

يمكنك نسخ وظيفة Lambda من هنا 


استيراد نظام التشغيل
import io import boto3 import json import csv print ("Loading Lambda Function") # grab environment variables ENDPOINT_NAME = os.environ ['ENDPOINT_NAME'] runtime = boto3.client ("runtime.sagemaker") def lambda_handler (الحدث ، السياق): # نحن نحاكي بيانات حمولة مكالمة جديدة = حدث ["الحمولة"] # استدعاء نقطة النهاية: تأكد من استبدال '' # باسم نقطة النهاية الخاصة بك على سبيل المثال 'xgboost-2019-03-22-11-38-32- 449 'response = runtime.invoke_endpoint (EndpointName = ENDPOINT_NAME، ContentType = "text / csv"، Body = payload،) print (response) نتيجة = json.loads (response ["Body"]. read (). decode ()) print (نتيجة) Forecasted_label = {"Forecasted_label": "Churn" إذا كانت النتيجة> 0.80 وإلا "Not Churn"} ترجع متوقع_التسمية

ENDPOINT_NAME هو متغير بيئة يخزن اسم نقطة نهاية نموذج SageMaker ، أضف متغير ENDPOINT_NAME الجديد في شاشة "تحرير متغيرات البيئة" كما هو موضح أدناه. قم بإضافة قيمة بنفس الاسم كنقطة النهاية التي تم إنشاؤها بواسطة Customer Churn Model المنشور في دفتر الملاحظات أعلاه.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

اختبر وظيفة لامدا

قم بتمرير البيانات أدناه لاختبار وظيفة Lambda. يمكن التحقق من تنسيق البيانات من مجموعة بيانات التحقق المحفوظة في حاوية S3 كما هو مذكور في دفتر الملاحظات.

لقد قمت بتنزيل مجموعة بيانات التحقق ، واخترت سجلًا واحدًا من الملف ، وحفظته كملف CSV. ثم فتح ملف CSV باستخدام المفكرة ، وإزالة العمود الأول حيث كان العمود الهدف. انسخ هذا التنسيق والصقه في قسم اختبار وظيفة Lambda كما هو موضح أدناه. بالنسبة لهذه الوظيفة ، يتم عرض تنسيق بيانات الاختبار أدناه.

{

"الحمولة": "62,0,5.072152061,5,6.600411338,2,3.533501079,300,4.395299899,7,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX ، XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX ، XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX ، XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX ، XNUMX "

}

قد يختلف هذا من نموذج إلى آخر. بشكل أساسي ، سيكون تنسيق بيانات الاختبار هو نفسه تنسيق بيانات القطار المستخدم لتدريب النموذج. يمكن إجراء تحليل البيانات في دالة lambda أيضًا.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

تظهر النتيجة تمريرة وإرجاع القيمة المتوقعة على أنها "لا تمخض" كما تم إرجاعها بواسطة نقطة النهاية. يمكننا الاختبار مع السجلات الأخرى من مجموعة بيانات التحقق من الصحة ونتوقع القيم المتوقعة كما تم إرجاعها بواسطة نقطة نهاية النموذج.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

إنشاء Rest API

إنشاء خطوات API:

API

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

1. في وحدة تحكم بوابة API ، اختر REST API

2. اختر بناء.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

3. حدد واجهة برمجة تطبيقات جديدة.

4. للحصول على اسم API - أدخل اسمًا.

5. اترك نوع نقطة النهاية على أنه إقليمي.

6. اختر إنشاء API.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

7. في قائمة الإجراءات ، حدد إنشاء مورد.

8. أدخل اسمًا للمورد - (على سبيل المثال ، PredictCustomerChurn)

9. بعد إنشاء المورد ، في قائمة الإجراءات ، حدد إنشاء طريقة لإنشاء طريقة POST.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

10. بالنسبة لنوع التكامل ، حدد وظيفة Lambda.

11. بالنسبة لوظيفة Lambda ، أدخل الوظيفة التي تم إنشاؤها أعلاه.

12. إضافة إذن إلى وظيفة Lambda - حدد موافق

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

نشر API

عند اكتمال الإعداد ، انشر API إلى مرحلة.

13. في قائمة الإجراءات ، حدد نشر API.

14. خلق مرحلة جديدة.

15. حدد نشر.

نشر API

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

حدد عنوان URL الصحيح لـ Invoke API بعناية. عنوان URL الخاص بالاستدعاء أدناه صحيح لأنه يحتوي على كلا التدريج (على سبيل المثال-العملاء واسم المورد (على سبيل المثال -توقع العملاء)

يتوفر عنوان URL هذا في محرر التدريج ، انقر فوق ارتباط اسم التدريج في الجزء الأيمن (على سبيل المثال-customerChurnAPIStage) ، وقم بتوسيع اسم التدريج ، وقم بتوسيع القائمة إلى المورد ، ثم الطريقة - بريد. انقر فوق POST ثم سيكون عنوان URL الخاص بالاستدعاء مرئيًا على اللوحة اليمنى بعنوان URL الصحيح.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

يرجى الملاحظة: عنوان URL الخاص بالاستدعاء أدناه غير صحيح - يظهر هذا عند نشر API وانتقال التحكم إلى محرر التدريج. إذا نقرنا على ارتباط الاسم التدريجي في الجزء الأيمن (على سبيل المثال - customerChurnAPIStage) ، فإن عنوان URL الخاص بالاستدعاء المعروض في منطقة الجانب الأيمن لا يتضمن اسم المورد.  لا تستخدم هذا لنسخ استدعاء API URL.

استدعاء URL

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

اختبار API

قم بتنفيذ الاختبار باستخدام طريقة API Post من شاشة تنفيذ الطريقة. انقر فوق الاختبار الذي سيفتح شاشة اختبار طريقة ما بعد.

اجتياز بيانات الاختبار في نص الطلب وانقر فوق اختبار. سيتم عرض الرد على اللوحة اليمنى. سيعرض نص الاستجابة قيمة الاستجابة - على سبيل المثال "الخضخضة" هنا.

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من حساب AWS الخاص بالمؤلف حيث تم تنفيذ المشروع. معلومات الحساب مخفية لأغراض أمنية.

 

نظرًا لأنه يتم الآن اختبار Lambda و API ، فلنختبر نقطة النهاية من خارج سحابة AWS - لقد اخترت تطبيق Postman الذي يعمل على الكمبيوتر المحمول الخاص بي.

اختبار API باستخدام ساعي البريد

هنا هو إعداد Postman ، لقد مررت عنوان URL لاستدعاء AWS API على اللوحة اليمنى -> علامة التبويب POST.

ثم الصق نفس بيانات الاختبار بنفس تنسيق JSON مع متغير "الحمولة" في "Body" الاختبار. ثم انقر فوق "إرسال".

سيتم استلام الرد من نقطة نهاية نموذج Sagemaker عبر AWS API ويتم عرضه في الجزء السفلي من شاشة Postman في قسم الاستجابة.

يتم عرض مثالين للاختبار هنا - أحدهما يحتوي على Response = "Churn" والآخر مع "Not Churn".

اختبار

الصورة: لقطة الشاشة مأخوذة من إعداد ساعي البريد المحلي للمؤلف.

 

نموذج ML في AWS Sagemaker

الصورة: لقطة الشاشة مأخوذة من إعداد ساعي البريد المحلي للمؤلف.

 

تنظيف

تنظيف

المرجع: https://aws.amazon.com/blogs/machine-learning/call-an-amazon-sagemaker-model-endpoint-using-amazon-api-gateway-and-aws-lambda/

وفي الختام

يبدأ أي مشروع لعلوم البيانات بعملية تكرارية لهندسة البيانات ، وتطوير النموذج ، وتحسين النموذج ، وتقييم النموذج ، وأخيراً يتم تسليم أفضل نموذج ملائم.

ثم نواجه التحدي الرئيسي لدمج نموذج ML مع تكنولوجيا المعلومات ونظام الأعمال الحالي. يحتاج التبني الناجح للذكاء الاصطناعي إلى تكامل سلس بين سير عمل التعلم الآلي وتطبيق المستهلك. تقدم AWS API Gateway جنبًا إلى جنب مع Sagemaker endpoint و Lambda خدمة تكامل مُدارة تمكننا من بناء أنظمة ML جاهزة للإنتاج من البداية إلى النهاية.

يمكن أن يساعد هذا الدليل التفصيلي خطوة بخطوة في بناء بنية التكامل الأساسية ومن ثم يمكننا بناء مكونات مخالفة أخرى.

1. https://aws.amazon.com/blogs/machine-learning/call-an-amazon-sagemaker-model-endpoint-using-amazon-api-gateway-and-aws-lambda/

2. https://aws.amazon.com/getting-started/hands-on/build-train-deploy-machine-learning-model-sagemaker/

نبذة عن الكاتب

Sarbani Maiti - مستشار أول - الخدمات السحابية | تعلم الآلة | MLOps | البرمجة اللغوية العصبية | AWS Community Builder | مرشد. مساعدة الشركات على الاستفادة من السحابة والذكاء الاصطناعي / تعلم الآلة لبناء حلول قائمة على البيانات وجاهزة للإنتاج. أحب مناقشة البيانات ، ML ، البرمجة اللغوية العصبية ، MLOPS.

https://www.linkedin.com/in/sarbani-maiti-35b89111/

الوسائط الموضحة في هذه المقالة ليست مملوكة لشركة Analytics Vidhya ويتم استخدامها وفقًا لتقدير المؤلف.

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة