Integrasi Git untuk Azure Machine Learning

Git adalah sistem kontrol versi populer yang memungkinkan Anda untuk berbagi dan berkolaborasi pada proyek Anda.

Azure Machine Learning sepenuhnya mendukung repositori Git untuk melacak pekerjaan - Anda dapat mengkloning repositori langsung ke sistem file ruang kerja bersama, menggunakan Git di stasiun kerja lokal Anda, atau menggunakan Git dari alur CI/CD.

Saat mengirimkan pekerjaan ke Azure Machine Learning, jika file sumber disimpan di repositori git lokal, maka informasi tentang repo dilacak sebagai bagian dari proses pelatihan.

Karena Azure Machine Learning melacak informasi dari repo git lokal, itu tidak terkait dengan repositori pusat tertentu. Repositori Anda dapat dikloning dari GitHub, GitLab, Bitbucket, Azure DevOps, atau layanan kompatibel dengan git lainnya.

Tip

Gunakan Visual Studio Code untuk berinteraksi dengan Git melalui antarmuka pengguna grafis. Untuk menyambungkan ke instans komputasi jarak jauh Azure Pembelajaran Mesin menggunakan Visual Studio Code, lihat Meluncurkan Visual Studio Code yang terintegrasi dengan Azure Pembelajaran Mesin (pratinjau)

Untuk informasi selengkapnya tentang fitur kontrol versi Visual Studio Code, lihat Menggunakan Kontrol Versi di VS Code dan Bekerja dengan GitHub di VS Code.

Kloning repositori Git ke dalam sistem file ruang kerja Anda

Azure Machine Learning menyediakan sistem file bersama untuk semua pengguna di ruang kerja. Untuk mengkloning repositori Git ke dalam berbagi file ini, sebaiknya buat instans komputasi & buka terminal. Setelah terminal dibuka, Anda memiliki akses ke klien Git penuh dan dapat mengkloning serta bekerja dengan Git melalui pengalaman Git CLI.

Kami menyarankan agar Anda mengkloning repositori ke direktori pengguna Anda sehingga orang lain tidak akan membuat tabrakan langsung di cabang kerja Anda.

Tip

Ada perbedaan performa antara kloning ke sistem file lokal instans komputasi atau kloning ke sistem file yang dipasang (dipasang sebagai direktori ~/cloudfiles/code). Secara umum, mengkloning ke sistem file lokal akan menghasilkan performa lebih baik dibandingkan mengkloning ke sistem file yang dipasang. Namun, sistem file lokal akan hilang jika Anda menghapus dan membuat ulang instans komputasi. Sistem file yang dipasang akan disimpan jika Anda menghapus dan membuat ulang instans komputasi.

Anda dapat mengkloning repositori Git apa pun yang dapat Anda autentikasi (GitHub, Azure Repos, BitBucket, dll.)

Untuk informasi selengkapnya tentang kloning, lihat panduan tentang cara menggunakan Git CLI.

Mengautentikasi Akun Git Anda dengan SSH

Menghasilkan kunci SSH baru

  1. Buka jendela terminal di Tab Azure Machine Learning Notebook.

  2. Tempelkan teks di bawah ini, substitusi di alamat email Anda.

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

Ini membuat kunci ssh baru, menggunakan email yang disediakan sebagai label.

> Generating public/private rsa key pair.
  1. Saat Anda diminta untuk "Masukkan file untuk menyimpan kunci" tekan Enter. Ini akan menerima lokasi berkas default.

  2. Pastikan bahwa lokasi defaultnya adalah '/home/azureuser/.ssh' lalu tekan enter. Jika tidak, tentukan lokasi '/home/azureuser/.ssh'.

Tip

Pastikan kunci SSH disimpan dalam '/home/azureuser/.ssh'. File ini disimpan pada instans komputasi hanya dapat diakses oleh pemilik Instans Komputasi

> Enter a file in which to save the key (/home/azureuser/.ssh/id_rsa): [Press enter]
  1. Pada perintah, ketik frase sandi aman. Sebaiknya Anda menambahkan frase sandi ke kunci SSH Anda untuk keamanan tambahan
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

Menambahkan kunci publik ke Akun Git

  1. Di jendela terminal Anda, salin konten file kunci publik Anda. Jika Anda mengganti nama kunci, ganti id_rsa.pub dengan nama file kunci publik.
cat ~/.ssh/id_rsa.pub

Tip

Salin dan Tempel di Terminal

  • Windows: Ctrl-Insert untuk menyalin dan menggunakan Ctrl-Shift-v atau Shift-Insert untuk menempelkan.
  • Mac OS: Cmd-c untuk menyalin dan Cmd-v untuk menempelkan.
  • FireFox/IE mungkin tidak mendukung izin clipboard dengan benar.
  1. Pilih dan salin output kunci SSH ke clipboard Anda.
  2. Selanjutnya, ikuti langkah-langkah untuk menambahkan kunci SSH ke jenis akun pilihan Anda:

Kloning repositori Git dengan SSH

  1. Salin URL kloning SSH Git dari repo Git.

  2. Tempelkan url ke perintah git clone di bawah ini, untuk menggunakan URL repo SSH Git Anda. Ini akan terlihat seperti:

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

Anda akan melihat respons seperti:

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 mungkin menampilkan sidik jari SSH server dan meminta Anda untuk memverifikasinya. Anda harus memverifikasi bahwa sidik jari yang ditampilkan cocok dengan salah satu sidik jari di halaman kunci publik SSH.

SSH menampilkan sidik jari ini ketika terhubung ke host yang tidak dikenal untuk melindungi Anda dari serangan man-in-the-middle. Setelah Anda menerima sidik jari host, SSH tidak akan meminta Anda lagi kecuali sidik jari berubah.

  1. Ketika ditanya apakah Anda ingin terus tersambung, ketik yes. Git akan mengkloning repo dan menyiapkan remote asal untuk terhubung dengan SSH untuk perintah Git di masa mendatang.

Kode trek yang berasal dari repositori Git

Saat Anda mengirimkan pekerjaan pelatihan dari Python SDK atau CLI Machine Learning, file yang diperlukan untuk melatih model diunggah ke ruang kerja Anda. Jika perintah git tersedia di lingkungan pengembangan Anda, proses pengunggahan menggunakannya untuk memeriksa apakah file disimpan di repositori git. Jika demikian, maka informasi dari repositori git Anda juga diunggah sebagai bagian dari pekerjaan pelatihan. Informasi ini disimpan dalam properti berikut ini untuk pekerjaan pelatihan:

Properti Perintah Git digunakan untuk mendapatkan nilai Deskripsi
azureml.git.repository_uri git ls-remote --get-url URI tempat repositori Anda dikloning.
mlflow.source.git.repoURL git ls-remote --get-url URI tempat repositori Anda dikloning.
azureml.git.branch git symbolic-ref --short HEAD Cabang aktif ketika pekerjaan dikirimkan.
mlflow.source.git.branch git symbolic-ref --short HEAD Cabang aktif ketika pekerjaan dikirimkan.
azureml.git.commit git rev-parse HEAD Hash penerapan dari kode yang dikirimkan untuk pekerjaan tersebut.
mlflow.source.git.commit git rev-parse HEAD Hash penerapan dari kode yang dikirimkan untuk pekerjaan tersebut.
azureml.git.dirty git status --porcelain . True, jika cabang/komit kotor; jika tidak, false.

Informasi ini dikirim untuk pekerjaan yang menggunakan estimator, alur pembelajaran mesin, atau eksekusi skrip.

Jika file pelatihan Anda tidak terletak di repositori git pada lingkungan pengembangan Anda, atau perintah git tidak tersedia, maka tidak ada informasi terkait git yang dilacak.

Tip

Untuk memeriksa apakah perintah git tersedia di lingkungan pengembangan Anda, buka sesi shell, prompt perintah, PowerShell atau antarmuka baris perintah lainnya dan ketik perintah berikut ini:

git --version

Jika dipasang, dan di jalur, Anda menerima respons yang mirip dengan git version 2.4.1. Untuk informasi selengkapnya tentang memasang git pada lingkungan pengembangan Anda, lihat situs web Git.

Lihat informasi yang dicatat dalam log

Informasi git disimpan di properti untuk pekerjaan pelatihan. Anda dapat menampilkan informasi ini dengan menggunakan portal Azure atau SDK Python.

Portal Azure

  1. Dari portal Microsoft studio, pilih ruang kerja Anda.
  2. Pilih Pekerjaan, kemudian pilih salah satu eksperimen Anda.
  3. Pilih salah satu pekerjaan dari kolom Nama tampilan.
  4. Pilih Output + logs, lalu perluas logs dan entri azureml. Pilih tautan yang diawali dengan ###_azure.

Informasi yang dicatat dalam log berisi teks yang mirip dengan JSON berikut:

"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"
}

Lihat Properti

Setelah mengirimkan eksekusi pelatihan, objek Pekerjaan dikembalikan. Atribut properties obyek ini memuat informasi git yang dicatat dalam log. Misalnya, kode berikut mengambil hash commit:

BERLAKU UNTUK: Python SDK azure-ai-ml v2 (saat ini)

job.properties["azureml.git.commit"]

Langkah berikutnya