Bagikan melalui


Integrasi Git untuk Azure Machine Learning

Git adalah sistem kontrol versi populer yang memungkinkan Anda untuk berbagi dan berkolaborasi pada proyek Anda. Artikel ini menjelaskan bagaimana Azure Pembelajaran Mesin dapat berintegrasi dengan repositori Git lokal untuk melacak repositori, cabang, dan informasi penerapan saat ini sebagai bagian dari pekerjaan pelatihan.

Azure Pembelajaran Mesin sepenuhnya mendukung repositori Git untuk melacak pekerjaan. Anda dapat mengkloning repositori langsung ke sistem file ruang kerja bersama Anda, menggunakan Git di stasiun kerja lokal Anda, atau menggunakan Git dari integrasi berkelanjutan dan alur penyebaran berkelanjutan (CI/CD).

Saat Anda mengirimkan pekerjaan pelatihan Azure Pembelajaran Mesin yang memiliki file sumber dari repositori Git lokal, informasi tentang repositori dilacak sebagai bagian dari pekerjaan pelatihan. Karena informasi berasal dari repositori Git lokal, informasi tersebut tidak terkait dengan repositori pusat tertentu. Repositori Anda dapat dikloning dari layanan apa pun yang kompatibel dengan Git, seperti GitHub, GitLab, Bitbucket, atau Azure DevOps.

Tip

Anda dapat menggunakan Visual Studio Code untuk berinteraksi dengan Git melalui antarmuka pengguna grafis. Untuk menyambungkan ke instans komputasi jarak jauh Azure Pembelajaran Mesin dengan 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 Visual Studio Code dan Bekerja dengan GitHub di Visual Studio Code.

Repositori Git dalam sistem file ruang kerja

Azure Pembelajaran Mesin menyediakan sistem file bersama untuk semua pengguna di ruang kerja. Cara terbaik untuk mengkloning repositori Git ke dalam berbagi file ini adalah dengan membuat instans komputasi dan membuka terminal. Di terminal, Anda memiliki akses ke klien Git lengkap dan dapat mengkloning dan bekerja dengan Git dengan menggunakan Git CLI. Untuk informasi selengkapnya, lihat Git CLI.

Anda dapat mengkloning repositori Git apa pun yang dapat Anda autentikasi, seperti repositori GitHub, Azure Repos, atau BitBucket. Yang terbaik adalah mengkloning repositori ke direktori pengguna Anda, sehingga pengguna lain tidak bertabrakan langsung di cabang kerja Anda.

Ada beberapa perbedaan antara kloning ke sistem file lokal instans komputasi atau kloning ke sistem file bersama, dipasang sebagai direktori ~/cloudfiles/code/ . Secara umum, kloning ke sistem file lokal memberikan performa yang lebih baik daripada mengkloning ke sistem file yang dipasang. Namun, jika Anda menghapus dan membuat ulang instans komputasi, sistem file lokal hilang, sementara sistem file bersama yang dipasang disimpan.

Mengkloning repositori Git dengan SSH

Anda dapat mengkloning repositori dengan menggunakan protokol Secure Shell (SSH). Untuk menggunakan SSH, Anda perlu mengautentikasi akun Git Anda dengan SSH dengan menggunakan kunci SSH.

Membuat dan menyimpan kunci SSH baru

Untuk membuat kunci SSH baru, Anda bisa masuk ke halaman Notebook studio Azure Pembelajaran Mesin, membuka terminal, dan menjalankan perintah berikut, mengganti alamat email Anda.

ssh-keygen -t ed25519 -C "your_email@example.com"

Perintah mengembalikan output berikut:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/azureuser/.ssh/id_ed25519):

Pastikan lokasi dalam output sebelumnya adalah /home/azureuser/.ssh, atau ubah ke lokasi tersebut, lalu tekan Enter.

Yang terbaik adalah menambahkan frase sandi ke kunci SSH Anda untuk keamanan tambahan. Pada perintah berikut, masukkan frase sandi aman.

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

Saat Anda menekan Enter, ssh-keygen perintah menghasilkan kunci SSH baru dengan alamat email yang disediakan sebagai label. File kunci disimpan pada instans komputasi, dan hanya dapat diakses oleh pemilik instans komputasi.

Menambahkan kunci publik ke akun Git Anda

Anda perlu menambahkan kunci SSH publik ke akun Git Anda. Untuk mendapatkan kunci, jalankan perintah berikut di jendela terminal Anda. Jika file kunci Anda memiliki nama yang berbeda, ganti id_ed25519.pub dengan nama file kunci publik Anda.

cat ~/.ssh/id_ed25519.pub

Perintah menampilkan konten file kunci publik Anda. Salin output-nya.

Tip

Untuk menyalin dan menempel di jendela terminal, gunakan pintasan keyboard ini, tergantung pada sistem operasi Anda:

  • Windows: Ctrl+C atau Ctrl+Insert untuk menyalin, Ctrl+V atau Ctrl+Shift+V untuk menempelkan.
  • MacOS: Cmd+C untuk disalin dan Cmd+V untuk ditempelkan.

Beberapa browser mungkin tidak mendukung izin papan klip dengan benar.

Tambahkan kunci SSH ke akun Git Anda dengan menggunakan instruksi berikut, tergantung pada layanan Git Anda:

Kloning repositori Git dengan SSH

Untuk mengkloning repositori Git, salin URL kloning Git SSH dari repositori. Di terminal Anda, jalankan git clone diikuti oleh URL kloning Git SSH. Contohnya:

git clone git@example.com:GitUser/azureml-example.git

SSH mungkin menampilkan sidik jari SSH server dan meminta Anda untuk memverifikasinya, seperti dalam contoh berikut.

The authenticity of host 'github.com (000.00.000.0)' can't be established.
ECDSA key fingerprint is SHA256:0000000000000000000/00000000/00000000.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

SSH menampilkan sidik jari ini ketika terhubung ke host yang tidak dikenal untuk melindungi Anda dari serangan man-in-the-middle. Anda harus memverifikasi bahwa sidik jari cocok dengan salah satu sidik jari di halaman kunci umum SSH. Setelah Anda menerima sidik jari host, SSH tidak meminta Anda lagi kecuali sidik jari berubah.

SSH menampilkan respons seperti contoh berikut:

Cloning into 'azureml-example'...
Warning: Permanently added 'github.com,000.00.000.0' (ECDSA) to the list of known hosts.
Enter passphrase for key '/home/azureuser/.ssh/id_ed25519': 

Setelah Anda memasukkan frase sandi Anda, Git mengkloning repositori 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. git Jika perintah tersedia di lingkungan pengembangan Anda, proses pengunggahan memeriksa apakah file sumber disimpan di repositori Git.

Jika demikian, proses mengunggah repositori Git, cabang, dan informasi penerapan saat ini sebagai bagian dari pekerjaan pelatihan. Informasi disimpan dalam properti pekerjaan pelatihan berikut untuk pekerjaan yang menggunakan estimator, alur pembelajaran mesin, atau eksekusi skrip.

Properti Perintah Git untuk mendapatkan nilai Deskripsi
azureml.git.repository_uri atau mlflow.source.git.repoURL git ls-remote --get-url URI tempat repositori DIkloning.
azureml.git.branch atau mlflow.source.git.branch git symbolic-ref --short HEAD Cabang aktif ketika pekerjaan dikirimkan.
azureml.git.commit atau 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 atau penerapan kotor, jika tidak false.

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

Tip

Untuk memeriksa apakah git perintah tersedia di lingkungan pengembangan Anda, jalankan git --version perintah di antarmuka baris perintah. Jika Git diinstal dan di jalur Anda, Anda menerima respons yang mirip git version 2.43.0dengan . Untuk informasi tentang menginstal Git di lingkungan pengembangan Anda, lihat situs web Git.

Lihat informasi Git

Informasi Git disimpan sebagai kode JSON di properti untuk pekerjaan pelatihan. Informasi Git yang dicatat dapat mencakup properti berikut:

"azureml.git.repository_uri": "git@github.com:azure/<repo-name>",
"azureml.git.branch": "<branch-name>",
"azureml.git.commit": "<commit-id>",
"azureml.git.dirty": "<True/False>",
"mlflow.source.git.repoURL": "git@github.com:azure/<repo-name>",
"mlflow.source.git.branch": "<branch-name>",
"mlflow.source.git.commit": "<commit-id>",

Anda dapat melihat informasi ini dengan menggunakan portal Azure, Python SDK, atau Azure CLI.

Portal Azure

Di ruang kerja Anda di studio Azure Pembelajaran Mesin, pilih pekerjaan Anda dari halaman Pekerjaan. Di bagian Properti dari halaman Gambaran Umum pekerjaan, pilih JSON Mentah di bawah Lihat semua properti.

Di JSON, cari properti Git, misalnya:

    "properties": {
        "mlflow.source.git.repoURL": "git@github.com:azure/azureml-examples",
        "mlflow.source.git.branch": "main",
        "mlflow.source.git.commit": "0000000000000000000000000000000000000000",
        "azureml.git.dirty": "False",
        ...
    },

Python SDK V2

Setelah Anda mengirimkan eksekusi pelatihan, objek Pekerjaan dikembalikan. Atribut properties objek ini berisi informasi Git yang dicatat. Misalnya, Anda dapat menjalankan perintah berikut untuk mengambil hash penerapan:

job.properties["mlflow.source.git.commit"]

Azure CLI V2

Anda dapat menjalankan az ml job show perintah dengan --query argumen untuk menampilkan informasi Git. Misalnya, kueri berikut mengambil mlflow.source.git.commit nilai properti:

az ml job show --name my-job-id --query "{GitCommit:properties.azureml.git.commit} --resource-group my-resource-group --workspace-name my-workspace"