تكامل Git ل Azure التعلم الآلي

Git هو نظام شائع للتحكم في الإصدار يسمح لك بمشاركة مشاريعك والتعاون فيها.

يدعم Azure التعلم الآلي بشكل كامل مستودعات Git لتعقب العمل - يمكنك استنساخ المستودعات مباشرة على نظام ملفات مساحة العمل المشتركة، أو استخدام Git على محطة العمل المحلية، أو استخدام Git من مسار CI/CD.

عند إرسال مهمة إلى Azure التعلم الآلي، إذا تم تخزين ملفات المصدر في مستودع git محلي، فسيتم تعقب معلومات حول المستودع كجزء من عملية التدريب.

نظرا لأن Azure التعلم الآلي يتعقب المعلومات من مستودع git محلي، فهي غير مرتبطة بأي مستودع مركزي محدد. يمكن استنساخ مستودعك من GitHub أو GitLab أو Bitbucket أو Azure DevOps أو أي خدمة أخرى متوافقة مع git.

تلميح

استخدم Visual Studio Code للتفاعل مع Git من خلال واجهة مستخدم رسومية. للاتصال بمثيل حساب عن بعد في Azure التعلم الآلي باستخدام Visual Studio Code، راجع الاتصال إلى مثيل حساب Azure التعلم الآلي في التعليمات البرمجية Visual Studio (معاينة)

لمزيد من المعلومات حول ميزات التحكم في إصدار Visual Studio Code، راجع استخدام التحكم بالإصدار في VS Codeوالعمل مع GitHub في VS Code.

استنساخ مستودعات Git في نظام ملفات مساحة العمل

يوفر Azure التعلم الآلي نظام ملفات مشترك لجميع المستخدمين في مساحة العمل. لاستنساخ مستودع Git في مشاركة الملف هذه، نوصي بإنشاء مثيل & حساب افتح محطة طرفية. بمجرد فتح المحطة الطرفية، يمكنك الوصول إلى عميل Git كامل ويمكنك استنساخ Git والعمل معه عبر تجربة Git CLI.

نوصي باستنساخ المستودع في دليل المستخدمين بحيث لا يقوم الآخرون بإجراء تضاربات مباشرة على فرع العمل الخاص بك.

تلميح

هناك فرق في الأداء بين الاستنساخ إلى نظام الملفات المحلي لمثيل الحساب أو الاستنساخ إلى نظام الملفات المحملة (الذي تم تحميله كدليل ~/cloudfiles/code ). بشكل عام، سيكون الاستنساخ إلى نظام الملفات المحلي أداء أفضل من نظام الملفات المحمل. ومع ذلك، يتم فقدان نظام الملفات المحلي إذا قمت بحذف وإعادة إنشاء مثيل الحساب. يتم الاحتفاظ بنظام الملفات المحملة إذا قمت بحذف وإعادة إنشاء مثيل الحساب.

يمكنك استنساخ أي مستودع Git يمكنك المصادقة عليه (GitHub وAzure Repos وBitBucket وما إلى ذلك)

لمزيد من المعلومات حول الاستنساخ، راجع الدليل حول كيفية استخدام Git CLI.

مصادقة حساب Git الخاص بك باستخدام SSH

إنشاء مفتاح SSH جديد

  1. افتح نافذة المحطة الطرفية في علامة تبويب دفتر ملاحظات التعلم الآلي Azure.

  2. الصق النص أدناه، واستبداله في عنوان بريدك الإلكتروني.

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

يؤدي هذا إلى إنشاء مفتاح ssh جديد، باستخدام البريد الإلكتروني المتوفر كتسمية.

> Generating public/private rsa key pair.
  1. عندما تتم مطالبتك ب "أدخل ملفا لحفظ المفتاح فيه"، اضغط على مفتاح الإدخال Enter. هذا يقبل موقع الملف الافتراضي.

  2. تحقق من أن الموقع الافتراضي هو '/home/azureuser/.ssh' واضغط على enter. وإلا حدد الموقع '/home/azureuser/.ssh'.

تلميح

تأكد من حفظ مفتاح SSH في '/home/azureuser/.ssh'. يتم حفظ هذا الملف على مثيل الحساب يمكن الوصول إليه فقط من قبل مالك مثيل الحساب

> Enter a file in which to save the key (/home/azureuser/.ssh/id_rsa): [Press enter]
  1. في المطالبة، اكتب عبارة مرور آمنة. نوصي بإضافة عبارة مرور إلى مفتاح SSH الخاص بك لمزيد من الأمان
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

إضافة المفتاح العام إلى حساب Git

  1. في نافذة المحطة الطرفية، انسخ محتويات ملف المفتاح العام. إذا قمت بإعادة تسمية المفتاح، فاستبدل id_rsa.pub باسم ملف المفتاح العام.
cat ~/.ssh/id_rsa.pub

تلميح

النسخ واللصق في المحطة الطرفية

  • Windows: Ctrl-Insert للنسخ والاستخدام Ctrl-Shift-v أو Shift-Insert اللصق.
  • Mac OS: Cmd-c للنسخ واللصق Cmd-v .
  • قد لا يدعم FireFox/IE أذونات الحافظة بشكل صحيح.
  1. حدد وانسخ إخراج المفتاح في الحافظة.

استنساخ مستودع Git باستخدام SSH

  1. انسخ SSH Git clone URL من مستودع Git.

  2. الصق عنوان URL في git clone الأمر أدناه، لاستخدام عنوان URL لمرجع SSH Git. سيبدو هذا شيئا مثل:

git clone git@example.com:GitUser/azureml-example.git
Cloning into 'azureml-example'...

سترى استجابة مثل:

The authenticity of host 'example.com (192.30.255.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.255.112' (RSA) to the list of known hosts.

قد يعرض SSH بصمة SSH الخاصة بالخادم ويطلب منك التحقق منها. يجب التحقق من أن بصمة الإصبع المعروضة تطابق إحدى بصمات الأصابع في صفحة المفاتيح العامة SSH.

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

  1. عند سؤالك عما إذا كنت تريد متابعة الاتصال، اكتب yes. سيقوم Git باستنساخ المستودع وإعداد جهاز التحكم عن بعد الأصل للاتصال ب SSH لأوامر Git المستقبلية.

تعقب التعليمات البرمجية التي تأتي من مستودعات Git

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

الخاصية الأمر Git المستخدم للحصول على القيمة الوصف
azureml.git.repository_uri git ls-remote --get-url معرف الموارد المنتظم (URI) الذي تم استنساخ المستودع منه.
mlflow.source.git.repoURL git ls-remote --get-url معرف الموارد المنتظم (URI) الذي تم استنساخ المستودع منه.
azureml.git.branch git symbolic-ref --short HEAD الفرع النشط عند إرسال التشغيل.
mlflow.source.git.branch git symbolic-ref --short HEAD الفرع النشط عند إرسال التشغيل.
azureml.git.commit git rev-parse HEAD تجزئة الالتزام للتعليمات البرمجية التي تم إرسالها للتشغيل.
mlflow.source.git.commit git rev-parse HEAD تجزئة الالتزام للتعليمات البرمجية التي تم إرسالها للتشغيل.
azureml.git.dirty git status --porcelain . True، إذا كان الفرع/التثبيت قذرا؛ خلاف ذلك، false.

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

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

تلميح

للتحقق مما إذا كان الأمر git متوفرا في بيئة التطوير الخاصة بك، افتح جلسة عمل shell أو موجه الأوامر أو PowerShell أو واجهة سطر أوامر أخرى واكتب الأمر التالي:

git --version

إذا تم تثبيته، وفي المسار، تتلقى استجابة مشابهة ل git version 2.4.1. لمزيد من المعلومات حول تثبيت git على بيئة التطوير الخاصة بك، راجع موقع Git على الويب.

عرض المعلومات المسجلة

يتم تخزين معلومات git في خصائص تشغيل التدريب. يمكنك عرض هذه المعلومات باستخدام مدخل Microsoft Azure أو Python SDK.

مدخل Azure

  1. من مدخل الاستوديو، حدد مساحة العمل الخاصة بك.
  2. حدد التجارب، ثم حدد إحدى تجاربك.
  3. حدد أحد عمليات التشغيل من عمود RUN NUMBER .
  4. حدد Outputs + logs، ثم قم بتوسيع السجلات وإدخالاتazureml . حدد الارتباط الذي يبدأ ب ###_azure.

تحتوي المعلومات المسجلة على نص مشابه ل JSON التالي:

"properties": {
    "_azureml.ComputeTargetType": "batchai",
    "ContentSnapshotId": "5ca66406-cbac-4d7d-bc95-f5a51dd3e57e",
    "azureml.git.repository_uri": "git@github.com:azure/machinelearningnotebooks",
    "mlflow.source.git.repoURL": "git@github.com:azure/machinelearningnotebooks",
    "azureml.git.branch": "master",
    "mlflow.source.git.branch": "master",
    "azureml.git.commit": "4d2b93784676893f8e346d5f0b9fb894a9cf0742",
    "mlflow.source.git.commit": "4d2b93784676893f8e346d5f0b9fb894a9cf0742",
    "azureml.git.dirty": "True",
    "AzureML.DerivedImageName": "azureml/azureml_9d3568242c6bfef9631879915768deaf",
    "ProcessInfoFile": "azureml-logs/process_info.json",
    "ProcessStatusFile": "azureml-logs/process_status.json"
}

Python SDK

بعد إرسال تشغيل تدريب، يتم إرجاع كائن Run . properties تحتوي سمة هذا الكائن على معلومات git المسجلة. على سبيل المثال، تسترد التعليمات البرمجية التالية تجزئة التثبيت:

run.properties['azureml.git.commit']

الخطوات التالية