إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
ملحق ML Azure CLI v2 (الحالي)
Python SDK azure-ai-ml v2 (الحالي)
في هذه المقالة، ستتعلم كيفية أتمتة ضبط المعلمات الفائقة الفعال باستخدام SDK للتعلم الآلي من Microsoft Azure v2 وCLI v2 باستخدام فئة SweepJob .
- تحديد مساحة البحث عن المعلمات
- اختر خوارزمية أخذ العينات
- تعيين هدف التحسين
- تكوين نهج إنهاء مبكر
- تعيين حدود مهام المسح
- إرسال التجربة
- تصور وظائف التدريب
- حدد أفضل تكوين
ما المقصود بضبط المعلمة الفائقة؟
المعلمات الفائقة هي إعدادات قابلة للتعديل تتحكم في تدريب النموذج. بالنسبة للشبكات العصبية ، على سبيل المثال ، يمكنك اختيار عدد الطبقات المخفية وعدد العقد لكل طبقة. يعتمد أداء النموذج بشكل كبير على هذه القيم.
ضبط المعلمات الفائقة (أو تحسين المعلمة الفائقة) هو عملية العثور على تكوين المعلمة الفائقة الذي ينتج عنه أفضل أداء. غالبا ما تكون هذه العملية باهظة الثمن من الناحية الحسابية ويدوية.
التعلم الآلي من Microsoft Azure يتيح لك أتمتة ضبط المعلمة الفائقة وتشغيل التجارب بالتوازي لتحسين المعلمات الفائقة.
تعريف مساحة البحث
قم بضبط المعلمات الفائقة عن طريق استكشاف نطاق القيم المحددة لكل المعلمة الفائقة.
يمكن أن تكون المعلمات الفائقة منفصلة أو مستمرة ، ويمكن أن يكون لها توزيع قيمة معبرا عنه بتعبير معلمة.
المعلمات الفائقة المنفصلة
تم تحديد Hypermeter المنفصلة كـ Choice بين القيم المنفصلة.
Choice يمكن أن يكون:
- قيمة واحدة أو أكثر مفصولة بفاصلة
- كائن
range - أي كائن تعسفي
list
from azure.ai.ml.sweep import Choice
command_job_for_sweep = command_job(
batch_size=Choice(values=[16, 32, 64, 128]),
number_of_hidden_layers=Choice(values=range(1,5)),
)
مراجع:
في هذه الحالة ، batch_size يأخذ واحدا من [16 ، 32 ، 64 ، 128] ويأخذ number_of_hidden_layers واحدا من [1 ، 2 ، 3 ، 4].
يمكن أيضًا تحديد Hypermeter المتقدمة التالية باستخدام التوزيع:
-
QUniform(min_value, max_value, q)- إرجاع قيمة مثل الجولة (موحد (min_value، max_value) / q) * q -
QLogUniform(min_value, max_value, q)- إرجاع قيمة مثل الجولة (exp (min_value، max_value)) / q) * q -
QNormal(mu, sigma, q)- إرجاع قيمة مثل round (عادي (mu، sigma) / q) * q -
QLogNormal(mu, sigma, q)- إرجاع قيمة مثل round (exp (Normal (mu، sigma)) / q) * q
المعلمات الفائقة المستمرة
يتم تحديد المعلمات الفائقة المستمرة كتوزيع على نطاق مستمر من القيم:
-
Uniform(min_value, max_value)- إرجاع قيمة موزعة بشكل موحد بين min_value و max_value -
LogUniform(min_value, max_value)- إرجاع قيمة مرسومة وفقًا لـ EXP (موحد (min_value، max_value)) بحيث يتم توزيع اللوغاريتم على قيمة الإرجاع بشكل موحد -
Normal(mu, sigma)- لعرض قيمة حقيقية يتم توزيعها عادةً باستخدام متوسط mu والانحراف المعياري sigma -
LogNormal(mu, sigma)- إرجاع قيمة مرسومة وفقًا لـ EXP (عادي (MU، Sigma)) بحيث يتم توزيع اللوغاريتم على قيمة الإرجاع عادة
مثال على تعريف مساحة المعلمة:
from azure.ai.ml.sweep import Normal, Uniform
command_job_for_sweep = command_job(
learning_rate=Normal(mu=10, sigma=3),
keep_probability=Uniform(min_value=0.05, max_value=0.1),
)
مراجع:
يحدد هذا الرمز مساحة بحث مع معلمتين - learning_rate و keep_probability.
learning_rate لديه توزيع طبيعي مع متوسط القيمة 10 والانحراف المعياري 3.
keep_probability لديه توزيع موحد بقيمة لا تقل عن 0.05 وقيمة أقصى قدرها 0.1.
بالنسبة لواجهة سطر الأوامر (CLI)، استخدم مخطط YAML لمهمة المسح لتحديد مساحة البحث:
search_space:
conv_size:
type: choice
values: [2, 5, 7]
dropout_rate:
type: uniform
min_value: 0.1
max_value: 0.2
أخذ عينات من مساحة الفائقة
حدد طريقة أخذ العينات لمساحة المعلمة الفائقة. يدعم التعلم الآلي من Microsoft Azure:
- أخذ عينات عشوائية
- أخذ عينات الشبكة
- أخذ العينات البايزية
أخذ عينات عشوائية
يدعم أخذ العينات العشوائية المعلمات الفائقة المنفصلة والمستمرة ، ويدعم الإنهاء المبكر للوظائف منخفضة الأداء. يبدأ العديد من المستخدمين بأخذ عينات عشوائية لتحديد المناطق الواعدة ، ثم تحسينها.
في أخذ العينات العشوائية ، يتم رسم القيم بشكل موحد (أو عبر القاعدة العشوائية المحددة) من مساحة البحث المحددة. بعد إنشاء مهمة الأوامر الخاصة بك ، استخدمها sweep لتحديد خوارزمية أخذ العينات.
from azure.ai.ml.entities import CommandJob
from azure.ai.ml.sweep import RandomSamplingAlgorithm, SweepJob, SweepJobLimits
command_job = CommandJob(
inputs=dict(kernel="linear", penalty=1.0),
compute=cpu_cluster,
environment=f"{job_env.name}:{job_env.version}",
code="./scripts",
command="python scripts/train.py --kernel $kernel --penalty $penalty",
experiment_name="sklearn-iris-flowers",
)
sweep = SweepJob(
sampling_algorithm=RandomSamplingAlgorithm(seed=999, rule="sobol", logbase="e"),
trial=command_job,
search_space={"ss": Choice(type="choice", values=[{"space1": True}, {"space2": True}])},
inputs={"input1": {"file": "top_level.csv", "mode": "ro_mount"}}, # type:ignore
compute="top_level",
limits=SweepJobLimits(trial_timeout=600),
)
مراجع:
Sobol
سوبول هو تسلسل شبه عشوائي يحسن ملء الفراغ وقابلية التكاثر. قدم بذرة واضعها rule="sobol"RandomSamplingAlgorithm.
from azure.ai.ml.sweep import RandomSamplingAlgorithm
sweep_job = command_job_for_sweep.sweep(
compute="cpu-cluster",
sampling_algorithm = RandomSamplingAlgorithm(seed=123, rule="sobol"),
...
)
المراجع: RandomSamplingAlgorithm
أخذ عينات الشبكة
يدعم أخذ العينات عبر الشبكة Hypermeter المنفصلة. استخدم أخذ العينات من الشبكة إذا كان بإمكانك وضع ميزانية للبحث الشامل في مساحة البحث. يدعم الإنهاء المبكر للوظائف منخفضة الأداء.
تقوم خطوط الشبكة بأخذ العينات ببحث بسيط في الشبكة عبر جميع القيم الممكنة. لا يمكن استخدام أخذ العينات على شكل شبكة إلا مع choice معلمات تشعبية. على سبيل المثال، المساحة التالية بها ست عينات:
from azure.ai.ml.sweep import Choice
command_job_for_sweep = command_job(
batch_size=Choice(values=[16, 32]),
number_of_hidden_layers=Choice(values=[1,2,3]),
)
sweep_job = command_job_for_sweep.sweep(
compute="cpu-cluster",
sampling_algorithm = "grid",
...
)
المراجع: الاختيار
أخذ العينات البايزية
يختار أخذ العينات البايزية (تحسين بايز) عينات جديدة بناء على النتائج السابقة لتحسين المقياس الأساسي بكفاءة.
يوصى بأخذ عينات بايزية إذا كان لديك موازنة كافية لاستكشاف مساحة المعامل الفائق. للحصول على أفضل النتائج، نوصي بحد أقصى لعدد الوظائف أكبر من أو يساوي 20 ضعف عدد المعلمات الفائقة التي يتم ضبطها.
عدد الوظائف المتزامنة له تأثير على فعالية عملية الضبط. قد يؤدي عدد أقل من الوظائف المتزامنة إلى تقارب أفضل للعينات، نظرًا لأن الدرجة الأصغر من التوازي تزيد من عدد الوظائف التي تستفيد من الوظائف المكتملة سابقًا.
دعامات choiceأخذ العينات البايزية ، uniformوالتوزيعات quniform .
from azure.ai.ml.sweep import Uniform, Choice
command_job_for_sweep = command_job(
learning_rate=Uniform(min_value=0.05, max_value=0.1),
batch_size=Choice(values=[16, 32, 64, 128]),
)
sweep_job = command_job_for_sweep.sweep(
compute="cpu-cluster",
sampling_algorithm = "bayesian",
...
)
مراجع:
تحديد هدف المسح
حدد الهدف من مهمة المسح الخاصة بك عن طريق تحديد المقياس الأساسي و الهدف الذي تريد ضبط المعلمة الفائقة لتحسينه. يتم تقييم كل وظيفة تدريبية للمقياس الأساسي. تستخدم نهج الإنهاء المبكر المقياس الأساسي لتحديد الوظائف منخفضة الأداء.
-
primary_metric: يجب أن يتطابق اسم القياس الأساسي تماماً مع اسم القياس المسجل بواسطة البرنامج النصي للتدريب -
goal: يمكن أن يكون إماMaximizeأوMinimizeويحدد ما إذا كان المقياس الأساسي سيتم تكبيره أم تصغيره عند تقييم الوظائف.
from azure.ai.ml.sweep import Uniform, Choice
command_job_for_sweep = command_job(
learning_rate=Uniform(min_value=0.05, max_value=0.1),
batch_size=Choice(values=[16, 32, 64, 128]),
)
sweep_job = command_job_for_sweep.sweep(
compute="cpu-cluster",
sampling_algorithm = "bayesian",
primary_metric="accuracy",
goal="Maximize",
)
مراجع:
تحدد هذه القيمة الحد الأقصى من "الدقة".
مقاييس السجل لضبط المعلمة الفائقة
يجب أن يسجل البرنامج النصي للتدريب المقياس الأساسي بالاسم الدقيق المتوقع من مهمة المسح.
قم بتسجيل القياس الأساسي في البرنامج النصي التدريبي الخاص بك باستخدام عينة القصاصة البرمجية التالية:
import mlflow
mlflow.log_metric("accuracy", float(val_accuracy))
المراجع: mlflow.log_metric
يحسب البرنامج النصي للتدريب val_accuracy ويسجله باعتباره "دقة" المقياس الأساسي. في كل مرة يتم فيها تسجيل المقياس، يتم استلامه بواسطة خدمة ضبط المعلمات الفائقة. الأمر متروك لك لتحديد مدى تكرار التقارير.
لمزيد من المعلومات حول قيم التسجيل لوظائف التدريب، راجع تمكين التسجيل في وظائف التدريب التعلم الآلي Azure.
حدد نهج الإنهاء المبكر
إنهاء الوظائف ذات الأداء الضعيف مبكرا لتحسين الكفاءة.
يمكنك تكوين المعلمات التالية التي تتحكم في وقت تطبيق السياسة:
-
evaluation_interval: معدل تطبيق النهج. في كل مرة يسجل فيها البرنامج النصي للتدريب، يتم احتساب المقياس الأساسي كفاصل زمني واحد. سيتم تطبيقevaluation_intervalمن 1 النهج في كل مرة يُبلغ فيها البرنامج النصي للتدريب عن المقياس الأساسي. سيتم تطبيقevaluation_intervalمن 2 النهج في كل مرة. إذا لم يتم تحديده، يتم تعيينevaluation_intervalعلى 0 افتراضيًا. -
delay_evaluation: يؤخر أول تقييم للنهج لعدد محدد من الفواصل الزمنية. هذه معلمة اختيارية تتجنب الإنهاء المبكر لوظائف التدريب من خلال السماح بتشغيل جميع التكوينات لأقل عدد من الفواصل الزمنية. إذا تم تحديد ذلك، فإن النهج تطبق كل مضاعف لفترات التقييم التي تزيد عن أو تساوي التأخير في التقييم. إذا لم يتم تحديده، يتم تعيينdelay_evaluationعلى 0 افتراضيًا.
يدعم التعلم الآلي من Microsoft Azure نهج الإنهاء المبكر التالية:
سياسة اللصوص
تستخدم سياسة قطاع الطرق عامل الركود أو المبلغ بالإضافة إلى الفاصل الزمني للتقييم. ينهي الوظيفة عندما يقع مقيارها الأساسي خارج الركود المسموح به من أفضل وظيفة.
حدد معلمات التكوين على النحو المذكور أدناه:
slack_factorأوslack_amount: الفرق المسموح به من أفضل وظيفة.slack_factorهي نسبة.slack_amountهي قيمة مطلقة.على سبيل المثال، راعِ نهج قطاع الطرق المطبق في الفاصل الزمني 10. افترض أن الوظيفة الأفضل أداءً في الفترة 10 التي أبلغت عن مقياس أساسي هي 0.8 بهدف تعظيم المقياس الأساسي. إذا حددت السياسة
slack_factorمن 0.2، فسيتم إنهاء أي وظائف تدريبية يكون أفضل مقياس لها في الفاصل 10 أقل من 0.66 (0.8 / (1+slack_factor)).evaluation_interval: (اختياري) تكرار تطبيق النهجdelay_evaluation: (اختياري) يؤخر تقييم النهج الأول لعدد محدد من الفواصل الزمنية
from azure.ai.ml.sweep import BanditPolicy
sweep_job.early_termination = BanditPolicy(slack_factor = 0.1, delay_evaluation = 5, evaluation_interval = 1)
المراجع: BanditPolicy
في هذا المثال، يتم تطبيق نهج الإنهاء المبكر في كل فاصلة زمنية عند الإبلاغ عن القياسات، بدءاً من فترة التقييم 5. سيتم إنهاء أي وظائف يكون أفضل مقياس لها أقل من (1 / (1 + 0.1) أو 91٪ من أفضل الوظائف أداءً.
نهج الإيقاف الوسيط
الإيقاف الوسيط عبارة عن نهج إنهاء مبكر تستند إلى متوسطات التشغيل للمقاييس الأساسية التي تم الإبلاغ عنها بواسطة الوظائف. يحسب هذا النهج متوسطات التشغيل عبر جميع وظائف التدريب ويوقف الوظائف التي تكون قيمتها القياسية الأساسية أسوأ من متوسط المتوسطات.
يأخذ هذا النهج معلمات التكوين التالية:
-
evaluation_intervalتكرار تطبيق النهج (معلمة اختيارية). -
delay_evaluationتأخير تقييم النهج الأول لعدد محدد من الفواصل الزمنية (معلمة اختيارية).
from azure.ai.ml.sweep import MedianStoppingPolicy
sweep_job.early_termination = MedianStoppingPolicy(delay_evaluation = 5, evaluation_interval = 1)
المراجع: MedianStoppingPolicy
في هذا المثال، يتم تطبيق نهج الإنهاء المبكر في كل فاصل زمني بدءا من الفاصل الزمني للتقييم 5. يتم إيقاف الوظيفة في الفاصل الزمني 5 إذا كان أفضل مقياس أساسي لها أسوأ من متوسط المتوسطات الجارية عبر فواصل زمنية 1:5 عبر جميع وظائف التدريب.
نهج تحديد الاقتطاع
يؤدي تحديد الاقتطاع إلى إلغاء نسبة مئوية من أقل المهام أداء في كل فاصل زمني للتقييم. تتم مقارنة الوظائف باستخدام المقياس الأساسي.
يأخذ هذا النهج معلمات التكوين التالية:
-
truncation_percentage: النسبة المئوية للوظائف الأقل أداء للإنهاء في كل فاصل زمني للتقييم. قيمة عدد صحيح بين 1 و99. -
evaluation_interval: (اختياري) تكرار تطبيق النهج -
delay_evaluation: (اختياري) يؤخر تقييم النهج الأول لعدد محدد من الفواصل الزمنية -
exclude_finished_jobs: يحدد ما إذا كان سيتم استبعاد المهام النهائية عند تطبيق النهج
from azure.ai.ml.sweep import TruncationSelectionPolicy
sweep_job.early_termination = TruncationSelectionPolicy(evaluation_interval=1, truncation_percentage=20, delay_evaluation=5, exclude_finished_jobs=true)
المراجع: TruncationSelectionPolicy
في هذا المثال، يتم تطبيق نهج الإنهاء المبكر في كل فاصل زمني بدءا من الفاصل الزمني للتقييم 5. تنتهي الوظيفة عند الفاصل 5 إذا كان أداؤها في الفترة 5 في أدنى 20٪ من أداء جميع الوظائف في الفاصل 5 وستستبعد الوظائف المنتهية عند تطبيق السياسة.
لا توجد نهج الإنهاء (افتراضي)
إذا لم يتم تحديد نهج، فإن خدمة ضبط المعلمات الفائقة تتيح تنفيذ جميع مهام التدريب حتى الاكتمال.
sweep_job.early_termination = None
المراجع: SweepJob
اختيار نهج الإنهاء المبكر
- بالنسبة للنهج المحافظة التي توفر المدخرات دون إنهاء الوظائف الواعدة، فكر في نهج وقف متوسطة مع
evaluation_interval1 وdelay_evaluation5. هذه هي الإعدادات المحافظة التي يمكن أن توفر ما يقرب من 25٪-35٪ من الوفورات دون أي خسارة على المقياس الأساسي (استنادا إلى بيانات التقييم الخاصة بنا). - للحصول على مدخرات أكثر قوة، استخدم نهج قطاع الطرق مع فترة سماح أصغر مسموح بها أو نهج اختيار الاقتطاع مع نسبة اقتطاع أكبر.
تعيين حدود لمهمة المسح خاصتك
تحكم في ميزانية الموارد الخاصة بك عن طريق تعيين حدود لوظيفة المسح الخاصة بك.
-
max_total_trials: الحد الأقصى لعدد المهام التجريبية. يجب أن يكون عددا صحيحا بين 1 و1000. -
max_concurrent_trials: (اختياري) الحد الأقصى لعدد المهام التجريبية التي يمكن تشغيلها بشكل متزامن. إذا لم يتم تحديده، max_total_trials عدد الوظائف التي يتم تشغيلها بالتوازي. إذا تم تحديده، يجب أن يكون عددا صحيحا بين 1 و1000. -
timeout: الحد الأقصى للوقت بالثوان المسموح بتشغيل مهمة المسح بأكملها. بمجرد الوصول إلى هذا الحد، يلغي النظام مهمة المسح، بما في ذلك جميع تجاربه. -
trial_timeout: الحد الأقصى للوقت بالثواني المسموح بتشغيل كل مهمة تجريبية. بمجرد الوصول إلى هذا الحد، يلغي النظام الإصدار التجريبي.
ملاحظة
إذا تم تحديد كل من max_total_trials والمهلة، تنتهي تجربة ضبط المعلمات الفائقة عند الوصول إلى أول هذين الحدين.
ملاحظة
يتم تحديد عدد الوظائف التجريبية المتزامنة على الموارد المتاحة في هدف الحوسبة المحدد. تأكد من أن هدف الحساب يحتوي على الموارد المتاحة للتزامن المطلوب.
sweep_job.set_limits(max_total_trials=20, max_concurrent_trials=4, timeout=1200)
المراجع: SweepJob.set_limits
تقوم هذه التعليمة البرمجية بتكوين تجربة ضبط المعلمات الفائقة لاستخدام 20 وظيفة تجريبية إجمالية كحد أقصى، وتشغيل أربع مهام تجريبية في كل مرة مع مهلة 1200 ثانية لمهمة المسح بأكملها.
تكوين تجربة ضبط المعلمة الفائقة
من أجل تهيئة تجربة ضبط المعلمات الفائقة، قم بتوفير ما يلي:
- مساحة البحث عن المعلمات الفائقة المحددة
- خوارزمية أخذ العينات
- نهج الإنهاء المبكر
- هدفك
- حدود الموارد
- مهمة القيادة أو مكونها
- كنسجوب
يمكن أن يقوم SweepJob بتشغيل عملية مسح للمعلمات الفائقة في الأمر أو مكون الأمر.
ملاحظة
يجب أن يحتوي هدف الحساب المستخدم فيsweep_job على موارد كافية لتلبية مستوى التزامك. لمزيد من المعلومات حول حساب الأهداف، راجع حساب الأهداف .
قم بتكوين تجربة ضبط المعلمة التشعبية الخاصة بك:
from azure.ai.ml import MLClient
from azure.ai.ml import command, Input
from azure.ai.ml.sweep import Choice, Uniform, MedianStoppingPolicy
from azure.identity import DefaultAzureCredential
# Create your base command job
command_job = command(
code="./src",
command="python main.py --iris-csv ${{inputs.iris_csv}} --learning-rate ${{inputs.learning_rate}} --boosting ${{inputs.boosting}}",
environment="AzureML-lightgbm-3.2-ubuntu18.04-py37-cpu@latest",
inputs={
"iris_csv": Input(
type="uri_file",
path="https://azuremlexamples.blob.core.windows.net/datasets/iris.csv",
),
"learning_rate": 0.9,
"boosting": "gbdt",
},
compute="cpu-cluster",
)
# Override your inputs with parameter expressions
command_job_for_sweep = command_job(
learning_rate=Uniform(min_value=0.01, max_value=0.9),
boosting=Choice(values=["gbdt", "dart"]),
)
# Call sweep() on your command job to sweep over your parameter expressions
sweep_job = command_job_for_sweep.sweep(
compute="cpu-cluster",
sampling_algorithm="random",
primary_metric="test-multi_logloss",
goal="Minimize",
)
# Specify your experiment details
sweep_job.display_name = "lightgbm-iris-sweep-example"
sweep_job.experiment_name = "lightgbm-iris-sweep-example"
sweep_job.description = "Run a hyperparameter sweep job for LightGBM on Iris dataset."
# Define the limits for this sweep
sweep_job.set_limits(max_total_trials=20, max_concurrent_trials=10, timeout=7200)
# Set early stopping on this one
sweep_job.early_termination = MedianStoppingPolicy(
delay_evaluation=5, evaluation_interval=2
)
مراجع:
يتم استدعاء الدالة command_job كدالة حتى تتمكن من تطبيق تعبيرات المعلمات. يتم تكوين الوظيفة sweep باستخدام trialخوارزمية أخذ العينات والهدف والحدود والحساب. يأتي القصاصة البرمجية من نموذج دفتر الملاحظات تشغيل مسح المعلمات الفائقة على أمر أو CommandComponent. في هذه العينة, learning_rate ويتم boosting ضبطها. التوقف المبكر مدفوع ب ، MedianStoppingPolicyالذي يوقف وظيفة يكون مقياسها الأساسي أسوأ من متوسط متوسطات التشغيل عبر جميع الوظائف (راجع مرجع MedianStoppingPolicy).
لمعرفة كيفية تلقي قيم المعلمات وتحليلها وتمريرها إلى البرنامج النصي للتدريب لضبطها، ارجع إلى نموذج التعليمات البرمجية هذا
هام
تؤدي كل مهمة مسح للمعلمات الفائقة إلى إعادة التدريب من البداية، بما في ذلك إعادة بناء النموذج و جميع برامج تحميل البيانات . يمكنك تقليل هذه التكلفة إلى الحد الأدنى باستخدام البنية الأساسية لبرنامج ربط العمليات التجارية للتعلم الآلي من Microsoft Azure أو عملية يدوية للقيام بأكبر قدر ممكن من إعداد البيانات قبل مهام التدريب الخاصة بك.
إرسال تجربة ضبط المعلمة الفائقة
بعد تحديد تكوين ضبط المعلمات الفائقة، أرسل المهمة:
# submit the sweep
returned_sweep_job = ml_client.create_or_update(sweep_job)
# get a URL for the status of the job
returned_sweep_job.services["Studio"].endpoint
مراجع:
تصور وظائف ضبط المعامل الفائق
تصور مهام ضبط المعلمات الفائقة في استوديو التعلم الآلي من Microsoft Azure. لمعرفة التفاصيل، يرجى الاطلاع على عرض سجلات الوظائف في الاستوديو.
مخطط المقاييس : يتتبع هذا التمثيل البصري المقاييس التي تم تسجيلها لكل وظيفة فرعية من hyperdrive خلال مدة ضبط المعلمة الفائقة. يمثل كل سطر وظيفة فرعية، وتقيس كل نقطة قيمة المقياس الأساسية في ذلك التكرار لوقت التشغيل.
مخطط الإحداثيات المتوازية : يوضح هذا التمثيل المرئي الارتباط بين أداء المقياس الأساسي وقيم المعلمات الفائقة الفردية. يكون المخطط تفاعليا عبر حركة المحاور (التحديد والسحب بواسطة تسمية المحور)، وعن طريق تمييز القيم عبر محور واحد (حدد واسحب عموديا على طول محور واحد لتمييز نطاق من القيم المطلوبة). يتضمن مخطط الإحداثيات المتوازية محورا في الجزء الموجود في أقصى اليمين من المخطط الذي يرسم أفضل قيمة قياس مطابقة للمقاييس الفائقة التي تم تعيينها لمثيل الوظيفة هذا. يتم توفير هذا المحور من أجل عرض وسيلة إيضاح التدرج اللوني للمخطط على البيانات بطريقة أكثر قابلية للقراءة.
مخطط مبعثر ثنائي الأبعاد : يوضح هذا التمثيل المرئي الارتباط بين أي معلمتين فرديتين مع القيمة المترية الأساسية المرتبطة بهما.
مخطط مبعثر ثلاثي الأبعاد : هذا التمثيل البصري هو نفسه ثنائي الأبعاد ولكنه يسمح بثلاثة أبعاد للمعلمات الفائقة للارتباط بقيمة المقياس الأساسي. يمكنك أيضا تحديد المخطط واسحبه لإعادة توجيهه لعرض ارتباطات مختلفة في مساحة ثلاثية الأبعاد.
البحث عن أفضل وظيفة تجريبية
بعد اكتمال جميع مهام الضبط ، استرجع أفضل المخرجات التجريبية:
# Download best trial model output
ml_client.jobs.download(returned_sweep_job.name, output_name="model")
مراجع:
يمكنك استخدام CLI لتنزيل جميع المخرجات الافتراضية والمسمية لأفضل وظيفة تجريبية وسجلات مهمة المسح.
az ml job download --name <sweep-job> --all
اختياريا، قم بتنزيل أفضل مخرجات تجريبية فقط:
az ml job download --name <sweep-job> --output-name model