Jalankan penyetelan model otomatis dengan Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Jalankan penyetelan model otomatis dengan Amazon SageMaker JumpStart

Pada bulan Desember 2020, AWS mengumumkan ketersediaan umum Mulai Lompatan Amazon SageMaker, kemampuan Amazon SageMaker yang membantu Anda memulai machine learning (ML) dengan cepat dan mudah. Pada bulan Maret 2022, kami juga mengumumkan dukungan untuk API di JumpStart. JumpStart menyediakan penyetelan satu klik dan penerapan berbagai model terlatih di seluruh tugas ML populer, serta pilihan solusi ujung ke ujung yang memecahkan masalah bisnis umum. Fitur-fitur ini menghilangkan beban berat dari setiap langkah proses ML, membuatnya lebih mudah untuk mengembangkan model berkualitas tinggi dan mengurangi waktu penerapan.

Dalam posting ini, kami mendemonstrasikan cara menjalankan penyetelan model otomatis dengan JumpStart.

Tuning model otomatis SageMaker

Secara tradisional, insinyur ML menerapkan metode coba-coba untuk menemukan kumpulan hyperparameter yang tepat. Percobaan dan kesalahan melibatkan menjalankan beberapa pekerjaan secara berurutan atau paralel sambil menyediakan sumber daya yang diperlukan untuk menjalankan eksperimen.

Dengan Tuning model otomatis SageMaker, insinyur ML dan ilmuwan data dapat melepaskan tugas yang memakan waktu untuk mengoptimalkan model mereka dan membiarkan SageMaker menjalankan eksperimen. SageMaker memanfaatkan elastisitas platform AWS untuk menjalankan beberapa simulasi pelatihan secara efisien dan bersamaan pada kumpulan data dan menemukan hyperparameter terbaik untuk sebuah model.

Penyetelan model otomatis SageMaker menemukan versi model terbaik dengan menjalankan banyak tugas pelatihan pada kumpulan data Anda menggunakan algoritme dan rentang hyperparameter yang Anda tentukan. Kemudian memilih nilai hyperparameter yang menghasilkan model yang berkinerja terbaik, yang diukur dengan a metrik yang Anda pilih.

Penyetelan model otomatis menggunakan a Bayesian (default) atau a acak strategi pencarian untuk menemukan nilai terbaik untuk hyperparameter. Pencarian Bayesian memperlakukan penyetelan hyperparameter seperti a regresi masalah. Saat memilih hyperparameter terbaik untuk pekerjaan pelatihan berikutnya, ia mempertimbangkan semua yang diketahuinya tentang masalah sejauh ini dan memungkinkan algoritme untuk mengeksploitasi hasil yang paling terkenal.

Dalam posting ini, kami menggunakan strategi pencarian Bayesian default untuk mendemonstrasikan langkah-langkah yang terlibat dalam menjalankan penyetelan model otomatis dengan JumpStart menggunakan CahayaGBM Model.

JumpStart saat ini mendukung 10 contoh notebook dengan penyetelan model otomatis. Ini juga mendukung empat algoritma populer untuk pemodelan data tabular. Tugas dan tautan ke buku catatan sampelnya dirangkum dalam tabel berikut.

tugas Model pra-terlatih Mendukung Kumpulan Data Khusus Kerangka yang Didukung Contoh Notebook
Klasifikasi Gambar iya nih iya nih PyTorch, TensorFlow Pengantar JumpStart โ€“ Klasifikasi Gambar
Deteksi Objek iya nih iya nih PyTorch, TensorFlow, MXNet Pengantar JumpStart โ€“ Deteksi Objek
Segmentasi Semantik iya nih iya nih MX Net Pengantar JumpStart โ€“ Semantik Segmentasi
Klasifikasi Teks iya nih iya nih TensorFlow Pengantar JumpStart โ€“ Klasifikasi Teks
Klasifikasi Pasangan Kalimat iya nih iya nih TensorFlow, Memeluk Wajah Pengantar JumpStart โ€“ Klasifikasi Pasangan Kalimat
Menjawab pertanyaan iya nih iya nih PyTorch Pengantar JumpStart โ€“ Menjawab Pertanyaan
Klasifikasi Tabular iya nih iya nih LightGBM, CatBoost, XGBoost, Pembelajar Linear Pengantar JumpStart โ€“ Klasifikasi Tabular โ€“ LightGBM, CatBoost
Pengantar JumpStart โ€“ Klasifikasi Tabular โ€“ XGBoost, Linear Learner
Regresi Tabular iya nih iya nih LightGBM, CatBoost, XGBoost, Pembelajar Linear Pengantar JumpStart โ€“ Regresi Tabular โ€“ LightGBM, CatBoost
Pengantar JumpStart โ€“ Regresi Tabular โ€“ XGBoost, Pembelajar Linier

Ikhtisar solusi

Alur kerja teknis ini memberikan ikhtisar tentang berbagai fitur Amazon Sagemaker dan langkah-langkah yang diperlukan untuk menyetel model JumpStart secara otomatis.

Jalankan penyetelan model otomatis dengan Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Di bagian berikut, kami memberikan panduan langkah demi langkah tentang cara menjalankan penyetelan model otomatis dengan JumpStart menggunakan algoritma LightGBM. Kami menyediakan pendamping buku catatan untuk panduan ini.

Kami berjalan melalui langkah-langkah tingkat tinggi berikut:

  1. Ambil model pra-latihan JumpStart dan wadah gambar.
  2. Atur hyperparameter statis.
  3. Tentukan rentang hyperparameter yang dapat disetel.
  4. Inisialisasi penyetelan model otomatis.
  5. Jalankan pekerjaan penyetelan.
  6. Terapkan model terbaik ke titik akhir.

Ambil model pra-latihan JumpStart dan wadah gambar

Di bagian ini, kami memilih model klasifikasi LightGBM untuk fine-tuning. Kami menggunakan jenis instans ml.m5.xlarge tempat model dijalankan. Kami kemudian mengambil wadah Docker pelatihan, sumber algoritme pelatihan, dan model yang telah dilatih sebelumnya. Lihat kode berikut:

training_instance_type = "ml.m5.xlarge" # Retrieve the docker image
train_image_uri = image_uris.retrieve(
    region=None,
    framework=None,
    model_id=train_model_id,
    model_version=train_model_version,
    image_scope=train_scope,
    instance_type=training_instance_type,
)
# Retrieve the training script
train_source_uri = script_uris.retrieve(
    model_id=train_model_id, model_version=train_model_version, script_scope=train_scope
)
# Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
    model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

Setel hiperparameter statis

Kami sekarang mengambil hyperparameter default untuk model LightGBM ini, seperti yang telah dikonfigurasikan oleh JumpStart. Kami juga menimpa num_boost_round hyperparameter dengan nilai khusus.

# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
    model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values

Tentukan rentang hyperparameter yang dapat disetel

Selanjutnya kita mendefinisikan rentang hyperparameter menjadi dioptimalkan oleh penyetelan model otomatis. Kami mendefinisikan nama hyperparameter seperti yang diharapkan oleh model dan kemudian rentang nilai yang akan dicoba untuk hyperparameter ini. Penyetelan model otomatis menarik sampel (sama dengan max_jobs parameter) dari ruang hyperparameter, menggunakan teknik yang disebut pencarian Bayesian. Untuk setiap sampel hyperparameter yang digambar, tuner membuat tugas pelatihan untuk mengevaluasi model dengan konfigurasi tersebut. Lihat kode berikut:

hyperparameter_ranges = {
    "learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
    "num_boost_round": IntegerParameter(2, 30),
    "early_stopping_rounds": IntegerParameter(2, 30),
    "num_leaves": IntegerParameter(10, 50),
    "feature_fraction": ContinuousParameter(0, 1),
    "bagging_fraction": ContinuousParameter(0, 1),
    "bagging_freq": IntegerParameter(1, 10),
    "max_depth": IntegerParameter(5, 30),
    "min_data_in_leaf": IntegerParameter(5, 50),
}

Inisialisasi penyetelan model otomatis

Kami mulai dengan membuat Penilai objek dengan semua aset yang diperlukan yang menentukan pekerjaan pelatihan, seperti model yang telah dilatih sebelumnya, gambar pelatihan, dan skrip pelatihan. Kami kemudian mendefinisikan Hyperparameter Tuner objek untuk berinteraksi dengan API penyetelan hyperparameter SageMaker.

Grafik HyperparameterTuner menerima sebagai parameter objek Penaksir, metrik target berdasarkan pada mana set hyperparameter terbaik diputuskan, jumlah total pekerjaan pelatihan (max_jobs) untuk memulai pekerjaan penyetelan hyperparameter, dan pekerjaan pelatihan paralel maksimum untuk dijalankan (max_parallel_jobs). Pekerjaan pelatihan dijalankan dengan algoritma LightGBM, dan nilai hyperparameter yang memiliki nilai minimum mlogloss metrik dipilih. Untuk informasi lebih lanjut tentang mengonfigurasi penyetelan model otomatis, lihat Praktik Terbaik untuk Penyetelan Hyperparameter.

# Create SageMaker Estimator instance
tabular_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,
) tuner = HyperparameterTuner(
    estimator=tabular_estimator,
    objective_metric_name="multi_logloss",
    hyperparameter_ranges=hyperparameter_ranges,
    metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
    strategy="Bayesian",
    max_jobs=10,
    max_parallel_jobs=2,
    objective_type="Minimize",
    base_tuning_job_name=training_job_name,
)

Dalam kode sebelumnya, kami memberi tahu tuner untuk menjalankan paling banyak 10 percobaan (max_jobs) dan hanya dua eksperimen bersamaan pada satu waktu (max_parallel_jobs). Kedua parameter ini menjaga biaya dan waktu pelatihan Anda tetap terkendali.

Jalankan pekerjaan penyetelan

Untuk meluncurkan tugas penyetelan SageMaker, kami memanggil metode fit dari objek penyetel hyperparameter dan meneruskan Layanan Penyimpanan Sederhana Amazon (Amazon S3) jalur data pelatihan:

tuner.fit({"training": training_dataset_s3_path}, logs=True)

Saat penyetelan model otomatis mencari hyperparameter terbaik, Anda dapat memantau kemajuannya baik di konsol SageMaker atau di amazoncloudwatch. Saat pelatihan selesai, artefak fine-tuned model terbaik diunggah ke lokasi keluaran Amazon S3 yang ditentukan dalam konfigurasi pelatihan.

Terapkan model terbaik ke titik akhir

Saat pekerjaan penyetelan selesai, model terbaik telah dipilih dan disimpan di Amazon S3. Kami sekarang dapat menerapkan model itu dengan memanggil metode penyebaran dari HyperparameterTuner objek dan meneruskan parameter yang diperlukan, seperti jumlah instance yang akan digunakan untuk titik akhir yang dibuat, jenisnya, gambar yang akan di-deploy, dan skrip yang akan dijalankan:

tuner.deploy(
    initial_instance_count=1,
    instance_type=inference_instance_type,
    entry_point="inference.py",
    image_uri=deploy_image_uri,
    source_dir=deploy_source_uri,
    endpoint_name=endpoint_name,
    enable_network_isolation=True
)

Sekarang kita dapat menguji titik akhir yang dibuat dengan membuat permintaan inferensi. Anda dapat mengikuti sisa proses di samping buku catatan.

Kesimpulan

Dengan penyetelan model otomatis di SageMaker, Anda dapat menemukan versi terbaik model Anda dengan menjalankan tugas pelatihan pada kumpulan data yang disediakan dengan salah satu algoritme yang didukung. Penyetelan model otomatis memungkinkan Anda mengurangi waktu untuk menyetel model dengan secara otomatis mencari konfigurasi hyperparameter terbaik dalam rentang hyperparameter yang Anda tentukan.

Dalam posting ini, kami menunjukkan nilai menjalankan penyetelan model otomatis pada model terlatih JumpStart menggunakan API SageMaker. Kami menggunakan algoritma LightGBM dan menetapkan maksimal 10 tugas pelatihan. Kami juga menyediakan tautan ke buku catatan contoh yang menampilkan kerangka kerja ML yang mendukung pengoptimalan model JumpStart.

Untuk detail lebih lanjut tentang cara mengoptimalkan model JumpStart dengan penyetelan model otomatis, lihat contoh kami buku catatan.


tentang Penulis

Jalankan penyetelan model otomatis dengan Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Doug Mbaya adalah arsitek Solusi Mitra Senior dengan fokus pada data dan analitik. Doug bekerja sama dengan mitra AWS, membantu mereka mengintegrasikan data dan solusi analitik di cloud.

Jalankan penyetelan model otomatis dengan Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Kruthi Jayasimha Rao adalah Arsitek Solusi Mitra di tim Scale-PSA. Kruthi melakukan validasi teknis untuk Mitra yang memungkinkan mereka maju di Jalur Mitra.

Jalankan penyetelan model otomatis dengan Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Giannis Mitropoulos adalah Insinyur Pengembangan Perangkat Lunak untuk SageMaker Penyetelan Model Otomatis.

Jalankan penyetelan model otomatis dengan Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Dr Ashish Khetan adalah Ilmuwan Terapan Senior dengan Mulai Lompatan Amazon SageMaker dan Algoritme bawaan Amazon SageMaker dan membantu mengembangkan algoritme pembelajaran mesin. Dia adalah peneliti aktif dalam pembelajaran mesin dan inferensi statistik dan telah menerbitkan banyak makalah di konferensi NeurIPS, ICML, ICLR, JMLR, dan ACL.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS