إعادة تدريب نموذج التعلم الآلي ونشره
ينطبق على:
استوديو التعلم الآلي (كلاسيكي)
Azure التعلم الآلي
هام
سينتهي دعم Machine Learning Studio (classic) في 31 أغسطس 2024. نوصي بالانتقال إلى zure Machine Learning بحلول ذلك التاريخ.
ابتداء من 1 ديسمبر 2021، لن تتمكن من إنشاء موارد Machine Learning Studio (classic). خلال 31 أغسطس 2024، يمكنك الاستمرار في استخدام موارد Machine Learning Studio (classic) الموجودة.
- يمكنك الاطلاع على معلومات عن نقل مشاريع التعلم الآلي من ML Studio (classic) إلى Azure Machine Learning.
- تعرف على المزيد حول Azure Machine Learning
يتم الآن استبعاد وثائق ML Studio (classic) وقد لا يتم تحديثها في المستقبل.
تعد إعادة التدريب إحدى الطرق لضمان بقاء نماذج التعلم الآلي دقيقة وتستند إلى البيانات الأكثر صلة المتاحة. توضح هذه المقالة كيفية إعادة تدريب نموذج تعلم الآلة ونشره كخدمة ويب جديدة في Studio (كلاسيكي). إذا كنت تبحث عن إعادة تدريب خدمة ويب كلاسيكية، فقم بعرض هذه المقالة الإرشادية.
تفترض هذه المقالة أن لديك بالفعل خدمة ويب تنبؤية تم نشرها. إذا لم يكن لديك بالفعل خدمة ويب تنبؤية، فتعرف على كيفية نشر خدمة ويب Studio (كلاسيكية) هنا.
ستتبع الخطوات التالية لإعادة تدريب خدمة ويب جديدة للتعلم الآلي ونشرها:
- نشر خدمة ويب لإعادة التدريب
- تدريب نموذج جديد باستخدام خدمة الويب الخاصة بإعادة التدريب
- تحديث تجربتك التنبؤية الحالية لاستخدام النموذج الجديد
ملاحظة
تستخدم هذه المقالة الوحدة النمطية Azure Az PowerShell، وهي الوحدة النمطية PowerShell الموصى بها للتفاعل مع Azure. لبدء استخدام الوحدة النمطية Az PowerShell، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
نشر خدمة ويب إعادة التدريب
تتيح لك خدمة الويب لإعادة التدريب إعادة تدريب النموذج باستخدام مجموعة جديدة من المعلمات، مثل البيانات الجديدة، وحفظه لوقت لاحق. عند توصيل إخراج خدمة ويببنموذج قطار، تقوم تجربة التدريب بإخراج نموذج جديد لتستخدمه.
اتبع الخطوات التالية لنشر خدمة ويب لإعادة التدريب:
الاتصال وحدة إدخال خدمة ويب إلى إدخال البيانات الخاصة بك. عادة ما تريد التأكد من معالجة بيانات الإدخال الخاصة بك بنفس طريقة معالجة بيانات التدريب الأصلية.
الاتصال وحدة إخراج خدمة ويب إلى إخراجنموذج القطار الخاص بك.
إذا كان لديك وحدة نمطية "نموذج التقييم"، يمكنك توصيل وحدة نمطية "إخراج خدمة ويب " لإخراج نتائج التقييم
تشغيل تجربتك.
بعد تشغيل تجربتك، يجب أن يكون سير العمل الناتج مشابها للصورة التالية:

الآن ، يمكنك نشر تجربة التدريب كخدمة ويب لإعادة التدريب تقوم بإخراج نموذج مدرب ونتائج تقييم النموذج.
في أسفل لوحة التجربة، انقر على إعداد خدمة ويب
حدد نشر خدمة ويب [جديد]. يتم فتح مدخل التعلم الآلي "خدمات ويب" إلى صفحة "نشر خدمة ويب".
اكتب اسما لخدمة الويب واختر خطة دفع.
حدد نشر.
إعادة تدريب النموذج
في هذا المثال، نستخدم C# لإنشاء تطبيق إعادة التدريب. يمكنك أيضا استخدام نموذج التعليمات البرمجية Python أو R لإنجاز هذه المهمة.
اتبع الخطوات التالية للاتصال بواجهات برمجة تطبيقات إعادة التدريب:
- إنشاء تطبيق وحدة تحكم C# في Visual Studio: تطبيق Visual>C#>Project>DesktopConsole> الكلاسيكي الجديد (Windows).NET Framework).
- سجل الدخول إلى مدخل خدمات ويب التعلم الآلي.
- انقر على خدمة الويب التي تعمل معها.
- انقر على استهلاك.
- في أسفل صفحة الاستهلاك ، في القسم نموذج التعليمات البرمجية ، انقر فوق الدفعة.
- انسخ نموذج التعليمات البرمجية C# لتنفيذ الدفعات والصقه في ملف .cs البرنامج. تأكد من بقاء مساحة الاسم سليمة.
إضافة حزمة NuGet Microsoft.AspNet.WebApi.Client، كما هو محدد في التعليقات. لإضافة المرجع إلى Microsoft.WindowsAzure.Storage.dll، قد تحتاج إلى تثبيت مكتبة العميل لخدمات تخزين Azure.
تعرض لقطة الشاشة التالية الصفحة "استهلاك" في مدخل "خدمات ويب التعلم الآلي".

تحديث إعلان apikey
حدد موقع إعلان apikey :
const string apiKey = "abc123"; // Replace this with the API key for the web service
في قسم معلومات الاستهلاك الأساسية من صفحة الاستهلاك ، حدد موقع المفتاح الأساسي، وانسخه إلى إعلان apikey .
تحديث معلومات تخزين Azure
يقوم نموذج التعليمات البرمجية ل BES بتحميل ملف من محرك أقراص محلي (على سبيل المثال، "C:\temp\CensusInput.csv") إلى Azure Storage، ومعالجته، وكتابة النتائج مرة أخرى إلى Azure Storage.
- تسجيل الدخول إلى مدخل Azure
- في عمود التنقل الأيمن، انقر على مزيد من الخدمات، وابحث عن حسابات التخزين، وحدده.
- من قائمة حسابات التخزين، حدد حسابا لتخزين النموذج المعاد تدريبه.
- في عمود التنقل الأيمن، انقر على مفاتيح الوصول.
- انسخ مفتاح الوصول الأساسي واحفظه.
- في عمود التنقل الأيمن، انقر على نقاط الظهور.
- حدد حاوية موجودة، أو قم بإنشاء حاوية جديدة واحفظ الاسم.
حدد موقع تعريفات StorageAccountNameوStorageAccountKeyوStorageContainerName ، وقم بتحديث القيم التي قمت بحفظها من البوابة الإلكترونية.
const string StorageAccountName = "mystorageacct"; // Replace this with your Azure storage account name
const string StorageAccountKey = "a_storage_account_key"; // Replace this with your Azure Storage key
const string StorageContainerName = "mycontainer"; // Replace this with your Azure Storage container name
يجب عليك أيضا التأكد من توفر ملف الإدخال في الموقع الذي تحدده في التعليمة البرمجية.
تحديد موقع الإخراج
عند تحديد موقع الإخراج في طلب الحمولة، يجب تحديد امتداد الملف المحدد في RelativeLocation ك ilearner.
Outputs = new Dictionary<string, AzureBlobDataReference>() {
{
"output1",
new AzureBlobDataReference()
{
ConnectionString = storageConnectionString,
RelativeLocation = string.Format("{0}/output1results.ilearner", StorageContainerName) /*Replace this with the location you want to use for your output file and a valid file extension (usually .csv for scoring results or .ilearner for trained models)*/
}
},
فيما يلي مثال على مخرجات إعادة التدريب:

تقييم نتائج إعادة التدريب
عند تشغيل التطبيق، يتضمن الإخراج عنوان URL والرمز المميز لتوقيعات الوصول المشتركة الضرورية للوصول إلى نتائج التقييم.
يمكنك الاطلاع على نتائج أداء النموذج المعاد تدريبه من خلال الجمع بين BaseLocationوRelativeLocationوSasBlobToken من نتائج الإخراج للمخرجات2 ولصق عنوان URL الكامل في شريط عنوان المستعرض.
افحص النتائج لتحديد ما إذا كان النموذج المدرب حديثا يؤدي أداء أفضل من النموذج الحالي.
احفظ BaseLocation و RelativeLocation و SasBlobToken من نتائج الإخراج.
تحديث التجربة التنبؤية
تسجيل الدخول إلى Azure Resource Manager
أولا، قم بتسجيل الدخول إلى حساب Azure الخاص بك من داخل بيئة PowerShell باستخدام cmdlet الاتصال-AzAccount.
الحصول على كائن تعريف خدمة ويب
بعد ذلك، احصل على كائن تعريف خدمة ويب عن طريق استدعاء cmdlet Get-AzMlWebService .
$wsd = Get-AzMlWebService -Name 'RetrainSamplePre.2016.8.17.0.3.51.237' -ResourceGroupName 'Default-MachineLearning-SouthCentralUS'
لتحديد اسم مجموعة الموارد لخدمة ويب موجودة، قم بتشغيل cmdlet Get-AzMlWebService بدون أي معلمات لعرض خدمات الويب في اشتراكك. حدد موقع خدمة ويب، ثم انظر إلى معرف خدمة ويب الخاص بها. اسم مجموعة الموارد هو العنصر الرابع في المعرف، بعد عنصر resourceGroups مباشرة. في المثال التالي، اسم مجموعة الموارد هو Default-MachineLearning-SouthCentralUS.
Properties : Microsoft.Azure.Management.MachineLearning.WebServices.Models.WebServicePropertiesForGraph
Id : /subscriptions/<subscription ID>/resourceGroups/Default-MachineLearning-SouthCentralUS/providers/Microsoft.MachineLearning/webServices/RetrainSamplePre.2016.8.17.0.3.51.237
Name : RetrainSamplePre.2016.8.17.0.3.51.237
Location : South Central US
Type : Microsoft.MachineLearning/webServices
Tags : {}
بدلا من ذلك، لتحديد اسم مجموعة الموارد لخدمة ويب موجودة، قم بتسجيل الدخول إلى مدخل التعلم الآلي Web Services. حدد خدمة الويب. اسم مجموعة الموارد هو العنصر الخامس من عنوان URL لخدمة ويب، بعد عنصر resourceGroups مباشرة. في المثال التالي، اسم مجموعة الموارد هو Default-MachineLearning-SouthCentralUS.
https://services.azureml.net/subscriptions/<subscription ID>/resourceGroups/Default-MachineLearning-SouthCentralUS/providers/Microsoft.MachineLearning/webServices/RetrainSamplePre.2016.8.17.0.3.51.237
تصدير كائن تعريف خدمة ويب ك JSON
لتعديل تعريف النموذج المدرب لاستخدام النموذج المدرب حديثا، يجب أولا استخدام cmdlet تصدير AzMlWebService لتصديره إلى ملف بتنسيق JSON.
Export-AzMlWebService -WebService $wsd -OutputFile "C:\temp\mlservice_export.json"
تحديث المرجع إلى نقطة ilearner
في الأصول، حدد موقع [النموذج المدرب]، وقم بتحديث قيمة uri في عقدة locationInfo باستخدام عنوان URI الخاص بنقطة ilearner. يتم إنشاء عنوان URI عن طريق الجمع بين BaseLocation و RelativeLocation من إخراج استدعاء إعادة تدريب BES.
"asset3": {
"name": "Retrain Sample [trained model]",
"type": "Resource",
"locationInfo": {
"uri": "https://mltestaccount.blob.core.windows.net/azuremlassetscontainer/baca7bca650f46218633552c0bcbba0e.ilearner"
},
"outputPorts": {
"Results dataset": {
"type": "Dataset"
}
}
},
استيراد JSON إلى كائن تعريف خدمة ويب
استخدم cmdlet استيراد AzMlWebService لتحويل ملف JSON المعدل مرة أخرى إلى كائن تعريف خدمة ويب الذي يمكنك استخدامه لتحديث التجربة الإرشادية.
$wsd = Import-AzMlWebService -InputFile "C:\temp\mlservice_export.json"
تحديث خدمة الويب
وأخيرا، استخدم cmdlet تحديث AzMlWebService لتحديث التجربة التنبؤية.
Update-AzMlWebService -Name 'RetrainSamplePre.2016.8.17.0.3.51.237' -ResourceGroupName 'Default-MachineLearning-SouthCentralUS'
الخطوات التالية
لمعرفة المزيد حول كيفية إدارة خدمات الويب أو تتبع عمليات تشغيل التجارب المتعددة، راجع المقالات التالية: