Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Cara yang baik untuk memulai pengembangan model kustom adalah dengan mengikuti contoh toolkit Neptunus ML
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 Neptunus ML.
Jika modul Python Anda memiliki dependensi eksternal tambahan, Anda dapat menyertakan dependensi tambahan ini dengan membuat requirements.txt
file di direktori modul Anda. Paket yang tercantum dalam requirements.txt
file kemudian akan diinstal sebelum skrip pelatihan Anda dijalankan.
Minimal, modul Python yang mengimplementasikan model kustom Anda harus berisi yang berikut:
Titik masuk skrip pelatihan
Titik masuk skrip transformasi
Sebuah
model-hpo-configuration.json
file
Pengembangan skrip pelatihan model khusus di Neptunus ML
Skrip pelatihan model kustom Anda harus berupa skrip Python yang dapat dieksekusi seperti contoh toolkit Neptunus ML. train.py
model-hpo-configuration.json
file. Nilai hyperparameter termasuk dalam rentang hyperparameter yang valid jika hyperparameter dapat disetel, atau mengambil nilai hyperparameter default jika tidak dapat disetel.
Skrip pelatihan Anda dijalankan pada instance pelatihan SageMaker AI menggunakan sintaks seperti ini:
python3
(script entry point)
--(1st parameter)
(1st value)
--(2nd parameter)
(2nd value)
(...)
Untuk semua tugas, Neptunus AutoTrainer ML mengirimkan beberapa parameter yang diperlukan ke skrip pelatihan Anda selain hiperparameter yang Anda tentukan, dan skrip Anda harus dapat menangani parameter tambahan ini agar berfungsi dengan baik.
Parameter tambahan yang diperlukan ini agak berbeda menurut tugas:
Untuk klasifikasi simpul atau regresi simpul
-
task
— Jenis tugas yang digunakan secara internal oleh Neptunus ML. Untuk klasifikasi node ininode_class
, dan untuk regresi simpul itu.node_regression
-
model
— Nama model yang digunakan secara internal oleh Neptunus ML, yangcustom
dalam hal ini. -
name
— Nama tugas yang digunakan secara internal oleh Neptunus ML, yangnode_class-custom
untuk klasifikasi simpul dalam kasus ini, dan untuk regresi simpul.node_regression-custom
-
target_ntype
— Nama tipe node untuk klasifikasi atau regresi. -
property
— Nama properti node untuk klasifikasi atau regresi.
Untuk prediksi tautan
-
task
— Jenis tugas yang digunakan secara internal oleh Neptunus ML. Untuk prediksi tautan, inilink_predict
. -
model
— Nama model yang digunakan secara internal oleh Neptunus ML, yangcustom
dalam hal ini. -
name
— Nama tugas yang digunakan secara internal oleh Neptunus ML, yanglink_predict-custom
dalam kasus ini.
Untuk klasifikasi tepi atau regresi tepi
-
task
— Jenis tugas yang digunakan secara internal oleh Neptunus ML. Untuk klasifikasi tepi iniedge_class
, dan untuk regresi tepi memang demikian.edge_regression
-
model
— Nama model yang digunakan secara internal oleh Neptunus ML, yangcustom
dalam hal ini. -
name
— Nama tugas yang digunakan secara internal oleh Neptunus ML, yangedge_class-custom
untuk klasifikasi tepi dalam kasus ini,edge_regression-custom
dan untuk regresi tepi. -
target_etype
— Nama tipe tepi untuk klasifikasi atau regresi. -
property
— Nama properti tepi 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 Neptunus ML untuk menentukan lokasi data grafik yang diproses, lokasi di mana parameter model harus disimpan, dan perangkat GPU apa yang tersedia pada instance pelatihan. Lihat contoh skrip pelatihan train.py
Model kustom mengubah pengembangan skrip di Neptunus ML
Skrip transformasi diperlukan untuk memanfaatkan alur kerja inkremental Neptunus ML untuk 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 Neptunus MLkit.
Skrip berjalan pada instance pelatihan SageMaker AI dengan sintaks seperti ini:
python3
(your transform script entry point)
Skrip transformasi Anda akan membutuhkan berbagai 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 Neptunus ML yang dapat dipanggil skrip Anda. Lihat contoh skrip transform.py
Skrip harus menyimpan penyematan simpul, pemetaan ID simpul, dan artefak lain yang diperlukan untuk penerapan model untuk setiap tugas. Lihat dokumentasi artefak model untuk informasi lebih lanjut tentang artefak model yang diperlukan untuk tugas ML Neptunus yang berbeda.
model-hpo-configuration.json
File kustom di Neptunus ML
model-hpo-configuration.json
File mendefinisikan hyperparameters untuk model kustom Anda. Ini dalam format yang sama dengan model-hpo-configuration.json
file yang digunakan dengan model bawaan Neptunus ML, dan lebih diutamakan daripada versi yang dibuat secara otomatis oleh Neptunus ML dan diunggah ke lokasi data yang Anda proses.
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 dapat disetel, dan mengaturnya sebagai, tier-1
tier-2
, atau tier-3
param. Hyperparameter akan disetel jika jumlah total pekerjaan pelatihan yang dikonfigurasi memungkinkan untuk menyetel hiperparameter di tingkatnya. Untuk parameter yang tidak dapat disetel, Anda harus memberikan nilai default dan menambahkan hyperparameter ke fixed-param
bagian file. Lihat contoh model-hpo-configuration.json
file contoh
Anda juga harus memberikan definisi metrik yang akan digunakan pekerjaan HyperParameter Optimasi SageMaker AI untuk mengevaluasi model kandidat yang dilatih. Untuk melakukan ini, Anda menambahkan objek eval_metric
JSON ke model-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 dalam eval_metric
objek mencantumkan objek definisi metrik untuk setiap metrik yang Anda ingin SageMaker AI ekstrak dari instance pelatihan. Setiap objek definisi metrik memiliki Name
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 halaman SageMaker AI HyperParameter Tuning untuk detail selengkapnya tentang cara menentukan metrik.
tuning_objective
Objek eval_metric
kemudian memungkinkan Anda untuk menentukan metrik mana yang metric_definitions
harus digunakan sebagai metrik evaluasi yang berfungsi sebagai metrik objektif untuk optimasi hyperparameter. Nilai untuk MetricName
harus sesuai dengan nilai a Name
dalam salah satu definisi dimetric_definitions
. Nilai untuk Type
harus berupa “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 bagian model-hpo-configuration.json
file ini dapat mengakibatkan kegagalan pekerjaan API pelatihan model Neptunus ML, karena SageMaker pekerjaan Tuning HyperParameter AI tidak akan dapat memilih model terbaik.
Pengujian lokal implementasi model kustom Anda di Neptunus ML
Anda dapat menggunakan lingkungan Conda toolkit Neptunus ML untuk menjalankan kode Anda secara lokal untuk menguji dan memvalidasi model Anda. Jika Anda mengembangkan instance Notebook Neptunus, maka lingkungan Conda ini akan diinstal sebelumnya pada instance Notebook Neptunus. Jika Anda mengembangkan pada instance yang berbeda, maka Anda harus mengikuti instruksi penyiapan 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
flag 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 menguji implementasi model Anda secara interaktif dan berulang. Selama pelatihan model di lingkungan pelatihan produksi Neptunus ML, parameter ini dihilangkan.