Bagikan melalui


Tempat menyimpan dan menulis file untuk eksperimen Azure Machine Learning

BERLAKU UNTUK: Python SDK 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 Anda menjalankan pekerjaan pelatihan pada target komputasi, pekerjaan tersebut 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 stateless, masing-masing tidak memiliki afinitas terhadap pekerjaan yang berjalan setelah selesai.

Tempat menyimpan file input

Sebelum dapat memulai eksperimen pada target komputasi atau komputer lokal, Anda harus memastikan bahwa file yang diperlukan tersedia untuk target komputasi tersebut. Misalnya, file dependensi dan file data yang perlu dijalankan 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 2.000 file.

Untuk alasan ini, kami merekomendasikan:

  • Menyimpan file Anda di himpunan data Azure Pembelajaran Mesin. Menggunakan himpunan data mencegah masalah latensi eksperimen, dan memiliki keuntungan mengakses data dari target komputasi jarak jauh. Azure Pembelajaran Mesin menangani autentikasi dan pemasangan himpunan data. 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.

Ini memiliki batas total 300 MB dan/atau 2.000 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 2.000 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'
Ini mungkin memakan waktu beberapa menit tergantung 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
Notebook Jupyter Buat .amlignore file atau pindahkan buku catatan Anda ke subdirektori baru, kosong, dan jalankan kode Anda lagi.

Tempat menulis file

Karena isolasi eksperimen pelatihan, perubahan pada file yang terjadi selama pekerjaan belum tentu bertahan di luar lingkungan Anda. Jika skrip Anda memodifikasi file lokal untuk dihitung, perubahan tidak dipertahankan untuk pekerjaan eksperimen Anda berikutnya, dan tidak disebarluaskan kembali ke komputer klien secara otomatis. 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 tetap sebagai artefak dalam riwayat pekerjaan. Perhatikan jumlah dan ukuran file yang ditulis ke folder ini, karena latensi mungkin terjadi ketika 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