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
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
Sebuah
model-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.py
model-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
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
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
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.json
File 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.json
file sampel
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_definitions
Array 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_objective
Objek 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
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.