Pengembangan model khusus di Neptune ML* - Amazon Neptune

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pengembangan model khusus di Neptune ML*

Cara yang baik untuk memulai pengembangan model khusus adalah dengan mengikuti contoh toolkit Neptune MLuntuk menyusun dan menulis modul pelatihan Anda. Toolkit Neptune MLjuga mengimplementasikan komponen model grafik termodulasi di modelzoo yang dapat Anda tumpukan dan gunakan untuk membuat model kustom Anda.

Selain itu, toolkit menyediakan fungsi utilitas yang membantu Anda menghasilkan artefak yang diperlukan selama pelatihan model dan transformasi model. Anda dapat mengimpor paket Python ini dalam implementasi kustom Anda. Setiap fungsi atau modul yang disediakan dalam toolkit juga tersedia di lingkungan pelatihan Neptune ML.

Jika modul Python Anda memiliki dependensi eksternal tambahan, Anda dapat menyertakan dependensi tambahan ini dengan membuatrequirements.txt file di direktori modul Anda. Paket yang tercantum dalamrequirements.txt file kemudian akan diinstal sebelum skrip latihan Anda dijalankan.

Minimal, modul Python yang mengimplementasikan model kustom Anda perlu berisi yang berikut:

  • Titik entri skrip pelatihan

  • Titik entri skrip transformasi

  • Sebuahmodel-hpo-configuration.json file

Pengembangan skrip pelatihan model khusus di Neptune

Skrip pelatihan model kustom Anda harus berupa skrip Python yang dapat dieksekusi seperti train.pycontoh toolkit Neptune ML's. Ini harus menerima nama hyperparameter dan nilai-nilai sebagai argumen baris perintah. Selama pelatihan model, nama hyperparameter diperoleh darimodel-hpo-configuration.json file. Nilai hyperparameter baik jatuh dalam kisaran hyperparameter valid jika hyperparameter merdu, atau mengambil nilai hyperparameter default jika tidak merdu.

Skrip pelatihan Anda dijalankan pada instance SageMaker pelatihan menggunakan sintaks seperti ini:

python3 (script entry point) --(1st parameter) (1st value) --(2nd parameter) (2nd value) (...)

Untuk semua tugas, Neptune AutoTrainer MLmengirimkan beberapa parameter yang diperlukan ke skrip pelatihan Anda selain hyperparameter yang Anda tentukan, dan skrip Anda harus dapat menangani parameter tambahan ini agar dapat berfungsi dengan baik.

Parameter tambahan yang diperlukan ini agak bervariasi berdasarkan tugas:

Untuk klasifikasi simpul atau regresi simpul
  • task- Jenis tugas yang digunakan secara internal oleh Neptune ML. Untuk klasifikasi simpul ininode_class, dan untuk regresi simpul itunode_regression.

  • model- Nama model yang digunakan secara internal oleh Neptune ML. yangcustom dalam kasus ini.

  • name- Nama tugas yang digunakan secara internal oleh Neptune ML, yaitunode_class-custom untuk klasifikasi node dalam kasus ini, dannode_regression-custom untuk regresi simpul.

  • target_ntype- Nama tipe node untuk klasifikasi atau regresi.

  • property- Nama properti simpul untuk klasifikasi atau regresi.

Prediksi link untuk prediksi link lagi
  • task- Jenis tugas yang digunakan secara internal oleh Neptune ML. Untuk prediksi tautan, inilink_predict.

  • model- Nama model yang digunakan secara internal oleh Neptune ML. yangcustom dalam kasus ini.

  • name— Nama tugas yang digunakan secara internal oleh Neptune ML. yanglink_predict-custom dalam kasus ini.

Untuk klasifikasi tepi atau regresi tepi
  • task- Jenis tugas yang digunakan secara internal oleh Neptune ML. Untuk klasifikasi tepi iniedge_class, dan untuk regresi tepi ituedge_regression.

  • model- Nama model yang digunakan secara internal oleh Neptune ML. yangcustom dalam kasus ini.

  • name- Nama tugas yang digunakan secara internal oleh Neptune ML, yangedge_class-custom untuk klasifikasi tepi dalam kasus ini, danedge_regression-custom untuk regresi tepi.

  • target_etype- Nama tipe tepi untuk klasifikasi atau regresi.

  • property- Nama properti edge untuk klasifikasi atau regresi.

Script Anda harus menyimpan parameter model, serta artefak lain yang akan diperlukan untuk pada akhir pelatihan.

Anda dapat menggunakan fungsi utilitas toolkit Neptune MLuntuk menentukan lokasi data grafik yang diproses, lokasi di mana parameter model harus disimpan, dan perangkat GPU apa yang tersedia pada instance pelatihan. Lihat skrip pelatihan sampel train.py untuk contoh cara menggunakan fungsi utilitas ini.

Model kustom mengubah pengembangan skrip di Neptune

Skrip transformasi diperlukan untuk memanfaatkan alur kerja inkremental Neptune MLuntuk inferensi model pada grafik yang berkembang tanpa melatih ulang model. Bahkan jika semua artefak yang diperlukan untuk penerapan model dihasilkan oleh skrip pelatihan, Anda masih perlu menyediakan skrip transformasi jika Anda ingin menghasilkan model yang diperbarui tanpa melatih ulang model.

catatan

Inferensi induktif waktu nyata saat ini tidak didukung untuk model khusus.

Skrip transformasi model kustom Anda harus berupa skrip Python yang dapat dieksekusi seperti skrip contoh transform.py toolkit Neptune ML's. Karena skrip ini dipanggil selama pelatihan model tanpa argumen baris perintah, setiap argumen baris perintah yang diterima skrip harus memiliki default.

Skrip berjalan pada instance SageMaker pelatihan dengan sintaks seperti ini:

python3 (your transform script entry point)

Skrip transformasi Anda akan membutuhkan berbagai potongan informasi, seperti:

  • Lokasi data grafik yang diproses.

  • Lokasi di mana parameter model disimpan dan di mana artefak model baru harus disimpan.

  • Perangkat yang tersedia pada instance.

  • Hyperparameter yang menghasilkan model terbaik.

Input ini diperoleh dengan menggunakan fungsi utilitas Neptune MLyang dapat dipanggil skrip Anda. Lihat contoh skrip transform.py toolkit untuk contoh cara melakukannya.

Script harus menyimpan embeddings node, pemetaan ID node, dan artefak lain yang diperlukan untuk penerapan model untuk setiap tugas. Lihat dokumentasi artefak model untuk informasi selengkapnya tentang artefak model yang diperlukan untuk tugas Neptune ML yang berbeda.

Kustomisasimodel-hpo-configuration.json file dalam Neptune ML*

model-hpo-configuration.jsonFile mendefinisikan hyperparameters untuk model kustom Anda. Ini dalam format yang sama denganmodel-hpo-configuration.json file yang digunakan dengan model bawaan Neptune ML, dan lebih diutamakan daripada versi yang dihasilkan secara otomatis oleh Neptune ML. dan diunggah ke lokasi data yang diproses.

Ketika Anda menambahkan hyperparameter baru ke model Anda, Anda juga harus menambahkan entri untuk hyperparameter dalam file ini sehingga hyperparameter diteruskan ke skrip pelatihan Anda.

Anda harus menyediakan rentang untuk hyperparameter jika Anda ingin merdu, dan mengaturnya sebagaitier-1,tier-2, atautier-3 param. Hyperparameter akan disetel jika jumlah total pekerjaan pelatihan yang dikonfigurasi memungkinkan penyetelan hyperparameter di tingkatannya. Untuk parameter yang tidak dapat disetel, Anda harus memberikan nilai default dan menambahkan hyperparameter kefixed-param bagian file. Lihat contoh model-hpo-configuration.jsonfile sampel toolkit untuk contoh cara melakukannya.

Anda juga harus memberikan definisi metrik yang akan digunakan pekerjaan SageMaker HyperParameter Optimasi untuk mengevaluasi model kandidat yang dilatih. Untuk melakukan ini, Anda menambahkan objekeval_metric JSON kemodel-hpo-configuration.json file seperti ini:

"eval_metric": { "tuning_objective": { "MetricName": "(metric_name)", "Type": "Maximize" }, "metric_definitions": [ { "Name": "(metric_name)", "Regex": "(metric regular expression)" } ] },

metric_definitionsArray dalameval_metric objek mencantumkan objek definisi metrik untuk setiap metrik yang SageMaker ingin Anda ekstrak dari instance pelatihan. Setiap objek definisi metrik memilikiName kunci yang memungkinkan Anda memberikan nama untuk metrik (seperti “akurasi”, “f1", dan seterusnya)Regex Kunci ini memungkinkan Anda memberikan string ekspresi reguler yang cocok dengan cara metrik tertentu dicetak dalam log pelatihan. Lihat halamanSageMaker HyperParameter Tuning untuk detail selengkapnya tentang cara menentukan metrik.

tuning_objectiveObjek dieval_metric kemudian memungkinkan Anda untuk menentukan metrik mana yangmetric_definitions harus digunakan sebagai metrik evaluasi yang berfungsi sebagai metrik objektif untuk optimasi hyperparameter. Nilai untukMetricName harus sesuai dengan nilaiName di salah satu definisi dimetric_definitions. Nilai untukType harus “Maksimalkan” atau “Minimalkan” tergantung pada apakah metrik harus ditafsirkan sebagai greater-is-better (seperti “akurasi”) atau less-is-better (seperti "mean-squared-error”.

Kesalahan di bagianmodel-hpo-configuration.json file ini dapat mengakibatkan kegagalan pekerjaan API pelatihan model Neptune ML, karena pekerjaan SageMaker HyperParameter Tuning tidak akan dapat memilih model terbaik.

Pengujian lokal implementasi model kustom Anda di Neptune

Anda dapat menggunakan lingkungan Conda toolkit Neptune MLuntuk menjalankan kode Anda secara lokal untuk menguji dan memvalidasi model Anda. Jika Anda mengembangkan instance Neptune Notebook, maka lingkungan Conda ini akan diinstal sebelumnya pada instance Neptune Notebook. Jika Anda mengembangkan pada instance yang berbeda, maka Anda harus mengikuti petunjuk pengaturan lokal di toolkit Neptune ML.

Lingkungan Conda secara akurat mereproduksi lingkungan tempat model Anda akan berjalan saat Anda memanggil API pelatihan model. Semua contoh skrip pelatihan dan skrip transformasi memungkinkan Anda untuk meneruskan--local bendera baris perintah untuk menjalankan skrip di lingkungan lokal agar mudah debugging. Ini adalah praktik yang baik saat mengembangkan model Anda sendiri karena memungkinkan Anda untuk secara interaktif dan berulang menguji implementasi model Anda. Selama pelatihan model di lingkungan pelatihan produksi Neptune ML, parameter ini dihilangkan.