قم بإنشاء نموذج تعلم الآلة تلقائيًا

مع Amazon SageMaker Autopilot

تعد ‏Amazon SageMaker‏ خدمة مدارة بالكامل لمنح المطورين وعلماء البيانات القدرة على بناء نماذج تعلم الآلة (ML) والتدريب عليها ونشرها بسرعة.

في هذا البرنامج التعليمي، تقوم بإنشاء نماذج تعلم الآلة تلقائيًا دون كتابة سطر التعليمات! أنت تستخدم ‏Amazon SageMaker Autopilot‏، وهي إمكانية AutoML تقوم بإنشاء أفضل نماذج تعلم الآلة للتصنيف والتراجع بشكل تلقائي، بينما يسمح بالتحكم والظهور الكاملين.

في هذا البرنامج التعليمي، تتعلم كيفية:

  1. إنشاء حساب AWS
  2. إعداد Amazon SageMaker Studio للوصول إلى Amazon SageMaker Autopilot
  3. تنزيل مجموعة بيانات عامة باستخدام Amazon SageMaker Studio
  4. إنشاء تجربة تدريب مع Amazon SageMaker Studio
  5. اكتشاف المراحل المختلفة لتجربة التدريب
  6. تحديد ونشر النموذج الأفضل أداءً من تجربة التدريب
  7. التنبؤ بنموذجك الذي تم نشره

بالنسبة لهذا البرنامج التعليمي، أنت تتولى دور المطور الذي يعمل في أحد البنوك. لقد طُلب منك تطوير نموذج لتعلم الآلة يتنبأ بما إذا كان أحد العملاء سوف يسجل للحصول على شهادة إيداع (CD). سيتم تدريب النموذج على مجموعة بيانات تسويقية تحتوي على معلومات حول التركيبة السكانية للعميل، واستجاباته لفعاليات التسويق، وبعض العوامل الخارجية الأخرى.

تمت تسمية هذه البيانات لتيسير الرجوع إليها وتوفير الراحة لك، وهناك عمود في مجموعة البيانات يحدّد ما إذا كان العميل مسجلاً في أحد المنتجات التي يقدمها البنك أم لا. نسخة من مجموعة البيانات هذه متاحة للجمهور من مستودع تعلم الآلة (ML) برعاية جامعة كاليفورنيا، إيرفاين.
حول هذا البرنامج التعليمي
الوقت 10 دقائق                                           
التكلفة أقل من 10 USD
حالة الاستخدام تعلم الآلة
المنتجات Amazon SageMaker
الجمهور مطور
المستوى مبتدئ
آخر تحديث 12 مايو 2020

الخطوة 1. إنشاء حساب AWS

تكلفة ورشة العمل هذه أقل من 10 USD. للمزيد من المعلومات، راجع تسعير Amazon SageMaker Studio‏.

الخطوة 2. إعداد Amazon SageMaker Studio

استكمل الخطوات التالية لتلتحق بـ Amazon SageMaker Studio من أجل الوصول إلى Amazon SageMaker Autopilot.

ملاحظة: للمزيد من المعلومات، راجع البدء مع Amazon SageMaker Studio‏ في وثائق Amazon SageMaker.


أ. تسجيل الدخول إلى وحدة تحكم Amazon SageMaker‏

ملاحظة: في الزاوية العليا اليمنى، تأكد من تحديد منطقة AWS يتوفر فيها Amazon SageMaker Studio. للحصول على قائمة من المناطق، راجع الالتحاق بـ Amazon SageMaker Studio‏.


ب. في لوحة التنقل لدى ‏Amazon SageMaker‏، اختر ‏Amazon SageMaker Studio‏.
 
ملاحظة: إذا كنت تستخدم Amazon SageMaker Studio لأول مرة، يجب أن تستكمل عملية الالتحاق بـ Studio ‏. عند الالتحاق، يمكنك أن تختار استخدام إما AWS Single Sign-On (AWS SSO) أو AWS Identity and Access Management (IAM) لطرق المصادقة. عندما تستخدم مصادقة IAM، تستطيع اختيار البدء السريع أو إجراءات الإعداد القياسية. إذا لم تكن متأكدًا بشأن الخيار الذي ستختاره، راجع الالتحاق بـ Amazon SageMaker Studio‏ واطلب المساعدة من مسؤول تكنولوجيا المعلومات لديك. من أجل البساطة، يستخدم هذا البرنامج التعليمي إجراء البدء السريع.

جـ. في مربع بدء الاستخدام، اختر البدء السريع وحدد اسم المستخدم.

د. من أجل دور التنفيذ، اختر إنشاء IAM role‏. في مربع الحوار الذي يظهر، اختر أي حاوية S3‏ واختر إنشاء دور.

يقوم Amazon SageMaker بإنشاء دور مزود بالأذونات المطلوبة ويعينه للمثيل الخاص بك.  


هـ. انقر على إرسال.

الخطوة 3. تنزيل مجموعة البيانات

استكمل الخطوات التالية لتنزيل مجموعة البيانات واكتشافها.

ملاحظة: للمزيد من المعلومات، راجع جولة Amazon SageMaker Studio‏ في وثائق Amazon SageMaker.


أ. في لوحة التحكم لدى Amazon SageMaker Studio‏، اختر فتح Studio‏.

ب. في ‏JupyterLab‏، من قائمة الملف، اختر جديد، ثم دفتر. في مربع تحديد النواة، اختر ‏Python 3 (علوم البيانات).
 

جـ. لتنزيل التعليمات البرمجية واستخراجها، انسخ والصق التعليمات البرمجية التالية في خانة التعليمات البرمجية واختر تشغيل.
 
ملاحظة: أثناء عمل التعليمات البرمجية، تظهر علامة * بين قوسين معقوفين. بعد بضع ثوانٍ، تكتمل عملية تنفيذ التعليمات البرمجية ويتم استبدال علامة * برقم.
%%sh
apt-get install -y unzip
wget https://sagemaker-sample-data-us-west-2.s3-us-west-2.amazonaws.com/autopilot/direct_marketing/bank-additional.zip
unzip -o bank-additional.zip

د. انسخ والصق التعليمات البرمجية التالية إلى خانة التعليمات البرمجية الجديدة واختر تشغيل.

تقوم مجموعة بيانات CSV بتحميل أول عشرة أسطر وعرضهم.

import pandas as pd
data = pd.read_csv('./bank-additional/bank-additional-full.csv')
data[:10]

تسمى أحد أعمدة مجموعة البيانات ‏y‏، وتمثل تسمية كل عينة: هل قبِل هذا العميل العرض أم لم يقبله؟

هذه هي الخطوة حيث يبدأ علماء البيانات في استكشاف البيانات وإنشاء ميزات جديدة وما إلى ذلك. مع ‏Amazon SageMaker Autopilot‏، أنت لا تحتاج إلى أن تقوم بأي من هذه الخطوات. أنت ببساطة تقوم بتحميل بيانات مجدولة في ملف تكون القيم فيه مفصولة بفاصلات (على سبيل المثال، من جدول بيانات أو قاعدة بيانات)، وتختار العمود المستهدف للتنبؤ به، ويقوم Autopilot ببناء نموذج تنبؤي من أجلك.


د. انسخ والصق التعليمات البرمجية التالية إلى خانة التعليمات البرمجية الجديدة واختر تشغيل.

تقوم هذه الخطوة بتحميل مجموعة بيانات CSV إلى إحدى حاويات ‏Amazon S3‏. أنت لا تحتاج إلى إنشاء حاوية Amazon S3؛ يقوم Amazon SageMaker تلقائيًا بإنشاء حاوية افتراضية في حسابك عندما تقوم بتحميل البيانات.

import sagemaker

prefix = 'sagemaker/tutorial-autopilot/input'
sess   = sagemaker.Session()

uri = sess.upload_data(path="./bank-additional/bank-additional-full.csv", key_prefix=prefix)
print(uri)

لقد انتهيت! تعرض مخرجات التعليمات البرمجية عنوان URL الخاص بحاوية S3 كما في المثال التالي:

s3://sagemaker-us-east-2-ACCOUNT_NUMBER/sagemaker/tutorial-autopilot/input/bank-additional-full.csv

تتبع عنوان URL الخاص بـ S3 المطبوع على دفترك. ستحتاجه في الخطوة التالية.

الخطوة 4. إنشاء تجربة SageMaker Autopilot

والآن وبعد أن قمت بتنزيل مجموعة البيانات الخاصة بك وعرضها في Amazon S3، تستطيع إنشاء تجربة Amazon SageMaker Autopilot. التجربة هي مجموعة من مهمات المعالجة والتدريب المتعلقة بنفس مشروع تعلم الآلة.

استكمل الخطوات التالية لإنشاء تجربة جديدة.

ملاحظة: للمزيد من المعلومات، راجع إنشاء تجربة Amazon SageMaker Autopilot في SageMaker Studio‏ في وثائق Amazon SageMaker.


أ. في لوحة التنقل اليسرى من ‏Amazon SageMaker Studio‏ظن اختر التجارب (يرمز إلى الأيقونة برمز القارورة)، ثم اختر إنشاء تجربة.


ب. املأ حقول إعدادات المهمة كالتالي:

  • اسم التجربة: ‏tutorial-autopilot‏
  • موقع S3 للبيانات المدخلة: عنوان URL الخاص بـ S3 الذي قمت بطباعته أعلاه
    (e.g. s3://sagemaker-us-east-2-123456789012/sagemaker/tutorial-autopilot/input/bank-additional-full.csv)
  • اسم السمة المستهدف: ‏y‏
  • موقع S3 للبيانات المخرجة: s3://sagemaker-us-east-2-[ACCOUNT-NUMBER]/sagemaker/tutorial-autopilot/output
    (تأكد من استبدال [ACCOUNT-NUMBER] برقم الحساب الخاص بك)

جـ. اترك جميع الإعدادات الأخرى كإعدادات افتراضية واختر إنشاء تجربة.

تمت العملية بنجاح! يؤدي هذا إلى بدء تجربة Amazon SageMaker Autopilot! ستولد هذه العملية نموذجًا بالإضافة إلى إحصائيات تستطيع عرضها في الوقت الفعلي أثناء عمل التجربة. بعد أن تكتمل التجربة، تستطيع أن تعرض الفترات التجريبية وتقوم بالفرز حسب المقياس الموضوعي وتضغط بزر الماوس الأيمن لنشر النموذج من أجل استخدامه في بيئات أخرى.

الخطوة 5. استكشاف مراحل SageMaker Autopilot

بينما تعمل تجربتك، تستطيع التعرف على المراحل المختلفة لتجربة SageMaker Autopilot واستكشافها.  

يوفر هذا القسم المزيد من التفاصيل حول مراحل تجربة SageMaker Autopilot:

  1. تحليل البيانات
  2. هندسة الميزات
  3. ضبط النماذج

ملاحظة: للمزيد من المعلومات، راجع مخرجات دفتر SageMaker Autopilot‏.


تحليل البيانات

تحدد مرحلة تحليل البيانات نوع المشكلة ليتم حلها (تراجع خطي، تصنيف ثنائي، تصنيف متعدد الفئات). ثم تأتي بعشر مسارات مرشحة. يجمع المسار بين مرحلة معالجة البيانات (تناول القيم الناقصة، هندسة الميزات الجديدة، إلخ.) وبين مرحلة التدريب على النموذج باستخدام لوغاريتم تعلم الآلة الذي يتطابق مع نوع المشكلة. بمجرد استكمال هذه المرحلة، تنتقل المهمة إلى هندسة الميزات.  


هندسة الميزات

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

  • يحتوي دفتر استكشاف البيانات على معلومات وإحصائيات بخصوص مجموعة البيانات.
  • يحتوي دفتر إنشاء المرشح على تعريف المسارات العشرة. في الواقع، هذا دفتر قابل للتشغيل: تستطيع إعادة إنتاج ما تقوم به مهمة AutoPilot بالضبط، وفهم كيفية إنشاء النماذج المختلفة، وحتى الاستمرار في تعديلها إذا أردت.

مع هذين الدفترين، يمكنك فهم كيفية معالجة البيانات بالتفصيل، وكيف يتم إنشاء النماذج وتحسينها. هذه الشفافية ميزة مهمة في Amazon SageMaker Autopilot.


ضبط النماذج

في مرحلة ضبط النماذج، لكل مسار مرشح ومجموعة بياناته المعالَجة، يطلق SageMaker Autopilot ‏مهمة تحسين المعلمة الفائقة؛ تستكشف وظائف التدريب المرتبطة نطاقًا واسعًا من قيم المعلمات الفائقة ومقاربتها بسرعة بالنماذج عالية الأداء.

بمجرد استكمال هذه المرحلة، تكتمل وظيفة SageMaker Autopilot. يمكنك أن تطلع على جميع المهمات وتستكشفها في SageMaker Studio.

الخطوة 6. نشر أفضل نموذج

والآن وبعد أن اكتملت تجربتك، تستطيع اختيار نموذج الضبط الأفضل ونشر النموذج على نقطة نهاية يديرها Amazon SageMaker.

اتبع الخطوات التالية لاختيار مهمة الضبط الأفضل ونشر النموذج.

ملاحظة: للمزيد من المعلومات، راجع اختيار ونشر أفضل نموذج.


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


ب. حدد مهمة الضبط الأفضل (مميزة بنجمة) واختر نشر النموذج


جـ. في مربع نشر النموذج، حدد اسمًا لنقطة النهاية الخاصة بك (مثل ‏tutorial-autopilot-best-model‏) واترك جميع الإعدادات في شكلها الافتراضي. اختر نشر النموذج.

تم نشر النموذج الخاص بك إلى نقطة نهاية HTTPS يديرها Amazon SageMaker.


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

الخطوة 7. التنبؤ بالنموذج الخاص بك

والآن وبعد أن تم نشر النموذج الخاص بك، تستطيع التنبؤ بأول 2000 عينة من مجموعة البيانات. لهذا الغرض، أنت تستخدم واجهة برمجة تطبيقات invoke_endpoint‏ في ‏boto3 SDK‏. في العملية، تقوم بإحصاء مقاييس مهمة لتعلم الآلة: الدقة والإتقان والاسترجاع ونتيجة F1‏.

اتبع هذه الخطوات لتتنبأ بالنموذج الخاص بك.

ملاحظة: للمزيد من المعلومات، راجع إدارة تعلم الآلة باستخدام تجارب Amazon SageMaker‏.


في دفتر Jupyter الخاص بك، انسخ والصق التعليمات البرمجية التالية واختر تشغيل.

import boto3, sys

ep_name = 'tutorial-autopilot-best-model'
sm_rt = boto3.Session().client('runtime.sagemaker')

tn=tp=fn=fp=count=0

with open('bank-additional/bank-additional-full.csv') as f:
    lines = f.readlines()
    for l in lines[1:2000]:   # Skip header
        l = l.split(',')      # Split CSV line into features
        label = l[-1]         # Store 'yes'/'no' label
        l = l[:-1]            # Remove label
        l = ','.join(l)       # Rebuild CSV line without label
                
        response = sm_rt.invoke_endpoint(EndpointName=ep_name, 
                                         ContentType='text/csv',       
                                         Accept='text/csv', Body=l)

        response = response['Body'].read().decode("utf-8")
        #print ("label %s response %s" %(label,response))

        if 'yes' in label:
            # Sample is positive
            if 'yes' in response:
                # True positive
                tp=tp+1
            else:
                # False negative
                fn=fn+1
        else:
            # Sample is negative
            if 'no' in response:
                # True negative
                tn=tn+1
            else:
                # False positive
                fp=fp+1
        count = count+1
        if (count % 100 == 0):   
            sys.stdout.write(str(count)+' ')
            
print ("Done")

accuracy  = (tp+tn)/(tp+tn+fp+fn)
precision = tp/(tp+fp)
recall    = tn/(tn+fn)
f1        = (2*precision*recall)/(precision+recall)

print ("%.4f %.4f %.4f %.4f" % (accuracy, precision, recall, f1))

يجب أن ترى المخرجات التالية.

100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 Done
0.9830 0.6538 0.9873 0.7867

تعد هذه المخرجات مؤشرًا للتقدم يوضح عدد العينات التي تم التنبؤ بها!

الخطوة 8. التنظيف

في هذه الخطوة، تقوم بإنهاء الموارد التي استخدمتها في هذا البرنامج التدريب.

مهم: يؤدي إنهاء الموارد التي لا ينشط استخدامها إلى خفض التكاليف ويعد من أفضل الممارسات. سوف يؤدي عدم إنهاء مواردك إلى فرض تكلفة على حسابك.


احذف نقطة النهاية الخاصة بك: في دفتر Jupyter الخاص بك، انسخ والصق التعليمات البرمجية التالية واختر تشغيل.

sess.delete_endpoint(endpoint_name=ep_name)

إذا أرت أن تقوم بتنظيف جميع عناصر التدريب (النماذج، مجموعات البيانات المعالَجة، إلخ.)، انسخ والصق التعليمات البرمجية التالية في خانة التعليمات البرمجية الخاصة بك واختر تشغيل.

ملاحظة: تأكد من استبدال ACCOUNT-NUMBER برقم حسابك.

%%sh
aws s3 rm --recursive s3://sagemaker-us-east-2-ACCOUNT_NUMBER/sagemaker/tutorial-autopilot/

تهانينا

أنت أنشأت نموذج لتعلم الآلة بأفضل دقة تلقائيًا باستخدام Amazon SageMaker Autopilot.

هل كان هذا البرنامج التعليمي مفيدًا؟

تعلم المزيد عن أعطال Amazon SageMaker Autopilot

إذا كنت تريد معرفة المزيد، اقرأ منشور المدونة أو راجع سلسلة فيديوهات Autopilot‏.