Tempat menyimpan dan menulis file untuk eksperimen Azure Machine Learning

BERLAKU UNTUK:SDK Python azureml v1

Dalam artikel ini, Anda mempelajari tempat menyimpan file input, dan tempat menulis file output dari eksperimen Anda untuk mencegah kesalahan batas penyimpanan dan latensi eksperimen.

Saat meluncurkan pekerjaan pelatihan pada target komputasi, pekerjaan tersebut akan diisolasi dari lingkungan luar. Tujuan dari desain ini adalah untuk memastikan reproduktifitas dan portabilitas eksperimen. Jika Anda menjalankan skrip yang sama dua kali, pada target komputasi yang sama atau lainnya, Anda akan menerima hasil yang sama. Dengan desain ini, Anda dapat memperlakukan target komputasi sebagai sumber daya komputasi tanpa status, masing-masing tidak memiliki afinitas terhadap tugas yang dijalankan setelah selesai.

Tempat menyimpan file input

Sebelum Anda dapat memulai eksperimen pada target komputasi atau komputer lokal Anda, Anda harus memastikan bahwa file yang diperlukan tersedia untuk target komputasi tersebut, seperti file dependensi dan file data yang perlu dijalankan oleh kode Anda.

Pekerjaan pelatihan Azure Machine Learning menjalankan skrip dengan menyalin seluruh direktori sumber. Jika Anda memiliki data sensitif yang tidak ingin Anda unggah, gunakan file .ignore atau jangan sertakan dalam direktori sumber. Sebagai gantinya, akses data Anda menggunakan datastore.

Batas penyimpanan untuk rekam jepret eksperimen adalah 300 MB dan/atau 2000 file.

Untuk alasan ini, kami merekomendasikan:

  • Menyimpan file Anda di himpunan data Azure Pembelajaran Mesin. Hal ini mencegah masalah latensi eksperimen, dan memiliki keuntungan mengakses data dari target komputasi jarak jauh, yang berarti autentikasi dan penginstalan dikelola oleh Azure Machine Learning. Pelajari lebih lanjut tentang cara menentukan himpunan data sebagai sumber data input dalam skrip pelatihan Anda dengan Melatih dengan himpunan data.

  • Jika Anda hanya memerlukan beberapa file data dan skrip dependensi serta tidak dapat menggunakan datastore, tempatkan file dalam direktori folder yang sama dengan skrip pelatihan Anda. Tentukan folder ini sebagai source_directory Anda langsung di skrip pelatihan, atau dalam kode yang memanggil skrip pelatihan Anda.

Batas penyimpanan rekam jepret eksperimen

Untuk eksperimen, Azure Machine Learning secara otomatis membuat snapshot eksperimen kode Anda berdasarkan direktori yang direkomendasikan saat mengonfigurasi pekerjaan. Untuk alur, direktori dikonfigurasi untuk setiap langkah.

Hal ini memiliki batas total 300 MB dan/atau 2000 file. Jika Anda melebihi batas ini, Anda akan melihat kesalahan berikut:

While attempting to take snapshot of .
Your total snapshot size exceeds the limit of 300.0 MB

Untuk mengatasi kesalahan ini, simpan file eksperimen Anda di datastore. Jika Anda tidak dapat menggunakan datastore, tabel di bawah ini menawarkan kemungkinan solusi alternatif.

Deskripsi eksperimen Solusi batas penyimpanan
Kurang dari 2000 file & tidak dapat menggunakan datastore Mengesampingkan batas ukuran rekam jepret dengan
azureml._restclient.snapshots_client.SNAPSHOT_MAX_SIZE_BYTES = 'insert_desired_size' dan azureml._restclient.constants.SNAPSHOT_MAX_SIZE_BYTES = 'insert_desired_size'
Hal ini mungkin memakan waktu beberapa menit bergantung pada jumlah dan ukuran file.
Harus menggunakan direktori skrip tertentu Untuk mencegah file yang tidak perlu disertakan dalam cuplikan, buat file abaikan (.gitignore atau .amlignore) di direktori. Tambahkan file dan direktori untuk dikecualikan ke file ini. Untuk informasi selengkapnya tentang sintaks yang digunakan di dalam file ini, lihat sintaks dan pola untuk .gitignore. File .amlignore menggunakan sintaks yang sama. Jika kedua file ada, file .amlignore digunakan dan file .gitignore tidak digunakan.
Alur Gunakan subdirektori yang berbeda untuk masing-masing langkah
Buku catatan Jupyter Buat file .amlignore atau pindahkan buku catatan Anda ke subdirektori baru yang kosong dan jalankan kembali kode Anda.

Tempat menulis file

Karena ada isolasi eksperimen pelatihan, perubahan pada file yang terjadi selama pekerjaan tidak harus tetap berada di luar lingkungan Anda. Jika skrip Anda memodifikasi file lokal untuk dikomputasi, perubahan tersebut tidak akan dipertahankan untuk pekerjaan eksperimen berikutnya, dan secara otomatis perubahan tersebut tidak diterapkan kembali ke komputer klien. Oleh karena itu, perubahan yang dibuat selama pekerjaan eksperimen pertama tidak akan dan tidak boleh memengaruhi perubahan pada eksperimen kedua.

Saat menulis perubahan, sebaiknya tulis file ke penyimpanan melalui himpunan data Azure Machine Learning dengan objek OutputFileDatasetConfig. Lihat cara membuat OutputFileDatasetConfig.

Jika tidak, tulis file ke folder ./outputs dan/atau ./logs.

Penting

Dua folder, output dan log, menerima perlakuan khusus oleh Azure Machine Learning. Selama pelatihan, saat Anda menulis file ke folder ./outputs dan ./logs, file tersebut akan secara otomatis diunggah ke riwayat pekerjaan, sehingga Anda memiliki akses ke file tersebut setelah pekerjaan selesai.

  • Untuk output seperti pesan status atau hasil penilaian, tulis file ke ./outputs folder, sehingga file akan disimpan sebagai artefak dalam riwayat pekerjaan. Perhatikan jumlah dan ukuran file yang ditulis ke folder, karena latensi dapat terjadi saat konten diunggah ke riwayat pekerjaan. Jika latensi menjadi perhatian, sebaiknya tulis file ke datastore.

  • Untuk menyimpan file tertulis sebagai log dalam riwayat pekerjaan, tulis file ke folder ./logs. Log diunggah secara real time, sehingga metode ini cocok untuk streaming pembaruan langsung dari pekerjaan jarak jauh.

Langkah berikutnya