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.0
dengan . 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"