Pelatihan tambahan dengan Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Pelatihan tambahan dengan Amazon SageMaker JumpStart

Pada bulan Desember 2020, AWS mengumumkan ketersediaan umum Amazon SageMaker JumpStart, kemampuan Amazon SageMaker yang membantu Anda memulai pembelajaran mesin (ML) dengan cepat dan mudah. SageMaker JumpStart menyediakan penyetelan halus sekali klik dan penerapan berbagai model terlatih di seluruh tugas ML populer, serta pilihan solusi end-to-end 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.

Semua konten JumpStart sebelumnya hanya tersedia melalui Studio Amazon SageMaker, yang menyediakan a antarmuka grafis yang ramah pengguna untuk berinteraksi dengan fitur tersebut. Baru-baru ini, kami juga mengumumkan peluncuran mudah digunakan API JumpStart sebagai perpanjangan dari SageMaker Python SDK, memungkinkan Anda menerapkan secara terprogram dan menyempurnakan banyak pilihan model pra-terlatih yang didukung JumpStart pada kumpulan data Anda sendiri. Peluncuran ini membuka penggunaan kemampuan JumpStart dalam alur kerja kode Anda, pipeline MLOps, dan di mana pun Anda berinteraksi dengan SageMaker melalui SDK.

Dalam postingan ini, kami dengan senang hati mengumumkan bahwa semua model JumpStart yang dapat dilatih sekarang mendukung pelatihan inkremental. Pelatihan inkremental memungkinkan Anda untuk melatih model yang telah Anda sempurnakan menggunakan kumpulan data yang diperluas yang berisi pola dasar yang tidak diperhitungkan dalam proses penyempurnaan sebelumnya, yang mengakibatkan performa model yang buruk. Pelatihan tambahan menghemat waktu dan sumber daya karena Anda tidak perlu melatih ulang model dari awal. Jika Anda ingin langsung masuk ke kode JumpStart API yang kami jelaskan di posting ini, Anda bisa merujuk ke buku catatan sampel.

Ikhtisar JumpStart

JumpStart adalah produk multi-segi yang mencakup berbagai kemampuan untuk membantu Anda memulai ML dengan cepat di SageMaker. Pada saat penulisan, JumpStart memungkinkan Anda untuk melakukan hal berikut:

  • Terapkan model terlatih untuk tugas ML umum โ€“ JumpStart memungkinkan Anda menangani tugas ML umum tanpa upaya pengembangan dengan menyediakan penerapan model yang mudah dilatih sebelumnya pada kumpulan data besar yang tersedia untuk umum. Komunitas riset ML telah berupaya keras untuk membuat sebagian besar model yang dikembangkan baru-baru ini tersedia untuk umum; JumpStart menghosting koleksi lebih dari 300 model, mencakup 15 tugas ML paling populer seperti deteksi objek, klasifikasi teks, dan pembuatan teks, memudahkan pemula untuk menggunakannya. Model ini diambil dari hub model populer, seperti TensorFlow, PyTorch, Hugging Face, dan MXNet Hub.
  • Sempurnakan model yang telah dilatih sebelumnya โ€“ JumpStart memungkinkan Anda menyempurnakan model pra-terlatih tanpa perlu menulis algoritme pelatihan Anda sendiri. Di ML, kemampuan untuk mentransfer pengetahuan yang dipelajari dalam satu domain ke domain lain disebut belajar transfer. Anda dapat menggunakan pembelajaran transfer untuk menghasilkan model yang akurat pada kumpulan data Anda yang lebih kecil, dengan biaya pelatihan yang jauh lebih rendah daripada biaya pelatihan model aslinya. JumpStart juga menyertakan algoritme pelatihan populer berdasarkan LightGBM, CatBoost, XGBoost, dan Scikit-pelajari yang dapat Anda latih dari awal untuk regresi dan klasifikasi tabular.
  • Gunakan solusi yang dibuat sebelumnya โ€“ JumpStart menyediakan 17 solusi untuk kasus penggunaan ML umum seperti perkiraan permintaan dan aplikasi industri dan keuangan, yang dapat Anda terapkan hanya dengan beberapa klik. Solusi adalah aplikasi ML end-to-end yang menyatukan berbagai layanan AWS untuk menyelesaikan kasus penggunaan bisnis tertentu. Mereka menggunakan Formasi AWS Cloud template dan arsitektur referensi untuk penerapan cepat, yang berarti dapat disesuaikan sepenuhnya.
  • Gunakan contoh buku catatan untuk algoritme SageMaker โ€“ SageMaker menyediakan rangkaian algoritme bawaan untuk membantu ilmuwan data dan praktisi ML memulai pelatihan dan menerapkan model ML dengan cepat. JumpStart menyediakan contoh buku catatan yang dapat Anda gunakan untuk menerapkan algoritme ini dengan cepat.
  • Tinjau video dan blog pelatihan โ€“ JumpStart juga menyediakan banyak posting blog dan video yang mengajari Anda cara menggunakan berbagai fungsi dalam SageMaker.

JumpStart menerima pengaturan VPC khusus dan Layanan Manajemen Kunci AWS (AWS KMS) kunci enkripsi, sehingga Anda dapat menggunakan model dan solusi yang tersedia dengan aman dalam lingkungan perusahaan Anda. Anda dapat meneruskan pengaturan keamanan Anda ke JumpStart di dalam Studio atau melalui SageMaker Python SDK.

Klasifikasi gambar

Klasifikasi citra mengacu pada pengklasifikasian citra ke dalam salah satu label kelas dalam dataset pelatihan. Anda dapat menyempurnakan model ke set data apa pun yang terdiri dari gambar milik sejumlah kelas. Model yang tersedia untuk penyempurnaan di JumpStart melampirkan lapisan klasifikasi ke model ekstraktor fitur yang sesuai dan menginisialisasi parameter lapisan ke nilai acak. Dimensi output dari layer klasifikasi ditentukan berdasarkan jumlah kelas pada data input. Langkah fine-tuning menyetel parameter lapisan klasifikasi, sekaligus mempertahankan parameter model ekstraktor fitur tetap beku, dan mengembalikan model yang telah dihaluskan. Tujuannya adalah untuk meminimalkan kesalahan prediksi pada data masukan.

Untuk dataset kami, inputnya adalah direktori dengan sub-direktori sebanyak jumlah kelas. Setiap sub-direktori harus memiliki gambar milik kelas tersebut dalam format .jpg. Direktori masukan akan terlihat seperti hierarki berikut jika data pelatihan berisi gambar dari dua kelas: roses dan dandelion:

input_directory |--roses |--abc.jpg |--def.jpg |--dandelion |--ghi.jpg |--jkl.jpg

Nama folder, class, dan nama file .jpg bisa apa saja.

Kami menyediakan tf_flowers1 dataset sebagai dataset default untuk menyempurnakan model. Kumpulan data ini terdiri dari gambar lima jenis bunga. Dataset telah diunduh dari TensorFlow.

Ikhtisar panduan

Bagian berikut menyediakan demo langkah demi langkah untuk melakukan klasifikasi gambar dengan JumpStart, baik melalui Studio UI maupun JumpStart API.

Kami berjalan melalui langkah-langkah berikut:

  1. Akses JumpStart melalui UI Studio:
    1. Sempurnakan model yang telah dilatih sebelumnya.
    2. Terapkan model yang telah disesuaikan.
    3. Latih model yang telah disempurnakan secara bertahap dan terapkan ulang.
  2. Gunakan JumpStart secara terprogram dengan SageMaker Python SDK:
    1. Sempurnakan model yang telah dilatih sebelumnya.
    2. Terapkan model yang telah disesuaikan.
    3. Latih model yang telah disempurnakan secara bertahap dan terapkan ulang.

Akses JumpStart melalui UI Studio

Di bagian ini, kami mendemonstrasikan cara menyempurnakan dan menerapkan model JumpStart melalui UI Studio. Selain itu, kami menunjukkan cara melatih model secara bertahap yang sebelumnya telah Anda sesuaikan.

Sempurnakan model yang telah dilatih sebelumnya

Video berikut menunjukkan kepada Anda cara menemukan model klasifikasi gambar terlatih di JumpStart dan menyempurnakannya. Halaman model berisi informasi berharga tentang model, cara menggunakannya, format data yang diharapkan, dan beberapa detail penyempurnaan.

Untuk tujuan demonstrasi, kami menyempurnakan model menggunakan kumpulan data yang disediakan secara default, yaitu tf_flowers dataset, terdiri dari varietas bunga yang berbeda. Menyempurnakan set data Anda sendiri melibatkan pemformatan data yang benar (seperti yang dijelaskan pada halaman model), mengunggahnya ke Layanan Penyimpanan Sederhana Amazon (Amazon S3), dan menentukan lokasinya di konfigurasi sumber data.

Kami menggunakan nilai hyperparameter yang sama yang ditetapkan secara default (jumlah zaman, kecepatan pembelajaran, dan ukuran batch). Kami juga menggunakan instans ml.p3.2xlarge yang didukung GPU sebagai instans pelatihan SageMaker kami.

Anda dapat memantau tugas pelatihan Anda langsung di konsol Studio, dan diberi tahu setelah selesai.

Terapkan model yang telah disesuaikan

Setelah pelatihan selesai, Anda dapat menerapkan model yang disempurnakan dari halaman yang sama yang menyimpan detail tugas pelatihan. Untuk menerapkan model kami, kami memilih jenis instans yang berbeda, ml.p2.xlarge. Itu masih memberikan akselerasi GPU yang diperlukan untuk latensi inferensi rendah, tetapi pada titik harga yang lebih rendah. Setelah Anda mengonfigurasi instans hosting SageMaker, pilih Menyebarkan. Mungkin diperlukan waktu 5-10 menit hingga titik akhir persisten Anda aktif dan berjalan.

Kemudian titik akhir Anda beroperasi dan siap menanggapi permintaan inferensi!

Untuk mempercepat waktu Anda menuju inferensi, JumpStart menyediakan buku catatan contoh yang menunjukkan cara menjalankan inferensi pada titik akhir yang baru Anda terapkan. Memilih Buka Buku Catatan bawah Gunakan Titik Akhir dari Studio.

Latih model yang telah disempurnakan secara bertahap dan terapkan

Saat penyempurnaan selesai, Anda dapat melatih model lebih lanjut untuk meningkatkan performa. Langkah ini sangat mirip dengan proses fine-tuning awal, kecuali kita menggunakan model yang sudah fine-tuning sebagai titik awal. Anda boleh menggunakan data baru, tetapi format dataset harus sama (kumpulan kelas yang sama).

Gunakan JumpStart secara terprogram dengan SageMaker SDK

Di bagian sebelumnya, kami menunjukkan cara menggunakan UI JumpStart untuk menyempurnakan, menerapkan, dan melatih model secara bertahap secara interaktif hanya dengan beberapa klik. Anda juga dapat menggunakan model JumpStart dan penyesuaian yang mudah secara terprogram dengan menggunakan API yang terintegrasi ke dalam SageMaker SDK. Kami sekarang membahas contoh singkat tentang bagaimana Anda dapat mereplikasi proses sebelumnya. Semua langkah dalam demo ini tersedia di buku catatan yang disertakan Pengantar JumpStart โ€“ Klasifikasi Gambar.

Sempurnakan model yang telah dilatih sebelumnya

Untuk menyempurnakan model yang dipilih, kita perlu mendapatkan URI model tersebut, serta skrip pelatihan dan gambar penampung yang digunakan untuk pelatihan. Untungnya, ketiga input ini hanya bergantung pada nama model, versi (untuk daftar model yang tersedia, lihat Tabel Model yang Tersedia JumpStart), dan jenis instans yang ingin Anda latih. Ini ditunjukkan dalam cuplikan kode berikut:

from sagemaker import image_uris, model_uris, script_uris model_id, model_version = "pytorch-ic-mobilenet-v2", "1.0.0"
training_instance_type = "ml.p3.2xlarge" # Retrieve the docker image
train_image_uri = image_uris.retrieve( region=None, framework=None, model_id=model_id, model_version=model_version, image_scope="training", instance_type=training_instance_type,
) # Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training") # Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

Kami mengambil kembali model_id sesuai dengan model yang sama yang kami gunakan sebelumnya. IC dalam pengidentifikasi sesuai dengan klasifikasi gambar.

Sekarang Anda dapat menyempurnakan model JumpStart ini pada kumpulan data khusus Anda sendiri menggunakan SageMaker SDK. Kami menggunakan yang sama tf_flowers kumpulan data yang dihosting secara publik di Amazon S3, dengan mudah berfokus pada analisis sentimen. Kumpulan data Anda harus terstruktur untuk penyempurnaan, seperti yang dijelaskan di bagian sebelumnya. Lihat kode contoh berikut:

# URI of your training dataset
training_dataset_s3_path = "s3://jumpstart-cache-prod-us-west-2/training-datasets/tf_flowers/"
training_job_name = name_from_base(f"jumpstart-example-{model_id}-transfer-learning") # Create SageMaker Estimator instance
ic_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,
) # Launch a SageMaker Training job by passing s3 path of the training data
ic_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Kami mendapatkan hyperparameter default yang sama untuk model yang kami pilih seperti yang kami lihat di bagian sebelumnya, menggunakan sagemaker.hyperparameters.retrieve_default(). Kami kemudian membuat instance estimator SageMaker dan memanggil metode .fit untuk mulai menyempurnakan model kami, meneruskannya ke URI Amazon S3 untuk data pelatihan kami. Seperti yang Anda lihat, entry_point skrip yang disediakan bernama transfer_learning.py (sama untuk tugas dan model lain), dan saluran data input diteruskan ke .fit harus diberi nama training.

Menyebarkan model yang disetel dengan baik

Saat pelatihan selesai, Anda dapat menerapkan model yang telah disesuaikan. Untuk melakukannya, yang perlu kita dapatkan hanyalah URI skrip inferensi (kode yang menentukan bagaimana model digunakan untuk inferensi setelah diterapkan) dan URI gambar wadah inferensi, yang menyertakan server model yang sesuai untuk meng-host model yang kita pilih. Lihat kode berikut:

# Retrieve the inference docker container uri
deploy_image_uri = image_uris.retrieve( region=None, framework=None, image_scope="inference", model_id=model_id, model_version=model_version, instance_type=inference_instance_type,
)
# Retrieve the inference script uri
deploy_source_uri = script_uris.retrieve( model_id=model_id, model_version=model_version, script_scope="inference"
) endpoint_name = name_from_base(f"jumpstart-example-FT-{model_id}-") # Use the estimator from the previous step to deploy to a SageMaker endpoint
finetuned_predictor = ic_estimator.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,
)

Setelah beberapa menit, model kami diterapkan dan kami bisa mendapatkan prediksi darinya secara real time!

Selanjutnya, kita memanggil titik akhir untuk memprediksi jenis bunga apa yang ada di gambar contoh. Kami menggunakan query_endpoint dan parse_response fungsi helper, yang didefinisikan dalam lampiran buku catatan.

query_response = finetuned_predictor.predict( img, {"ContentType": "application/x-image", "Accept": "application/json;verbose"} )
model_predictions = json.loads(query_response)
predicted_label = model_predictions["predicted_label"]
display( HTML( f'<img src={image_filename} alt={image_filename} align="left" style="width: 250px;"/>' f"<figcaption>Predicted Label: {predicted_label}</figcaption>" )
)

Latih model yang telah disempurnakan secara bertahap dan terapkan ulang

Kami dapat meningkatkan performa model yang disempurnakan dengan melatihnya lebih lanjut pada gambar baru. Anda dapat menggunakan sejumlah gambar baru atau lama untuk ini, namun format kumpulan data harus tetap sama (rangkaian kelas yang sama). Langkah pelatihan inkremental mirip dengan proses fine-tuning, dengan perbedaan penting: pada fine-tuning awal kita mulai dengan model pra-pelatihan, sedangkan dalam pelatihan inkremental kita mulai dengan model fine-tuned yang sudah ada. Lihat kode berikut:

last_trained_model_path = f"{s3_output_location}/{last_training_job_name}/output/model.tar.gz"
incremental_s3_output_location = f"s3://{output_bucket}/{incremental_output_prefix}/output"incremental_train_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=last_trained_model_path, entry_point="transfer_learning.py", instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=incremental_s3_output_location, base_job_name=incremental_training_job_name,
) incremental_train_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Saat pelatihan selesai, kita dapat menggunakan langkah yang sama seperti yang dijelaskan di bagian sebelumnya untuk menerapkan model.

Kesimpulan

JumpStart adalah kemampuan di SageMaker yang memungkinkan Anda memulai ML dengan cepat. JumpStart menggunakan model terlatih sumber terbuka untuk memecahkan masalah ML umum seperti klasifikasi gambar, deteksi objek, klasifikasi teks, klasifikasi pasangan kalimat, dan menjawab pertanyaan.

Dalam postingan ini, kami menunjukkan kepada Anda cara menyempurnakan dan menerapkan model klasifikasi gambar terlatih. Kami juga menunjukkan cara melatih model yang disempurnakan secara bertahap untuk klasifikasi gambar. Dengan JumpStart, Anda dapat dengan mudah melakukan proses ini tanpa perlu membuat kode. Cobalah solusinya sendiri dan beri tahu kami bagaimana kelanjutannya di komentar. Untuk mempelajari lebih lanjut tentang JumpStart, lihat video AWS re:Invent 2020 Mulai ML dalam hitungan menit dengan Amazon SageMaker JumpStart.

Referensi

  1. Tim TensorFlow, 2019

Tentang Penulis

Pelatihan tambahan dengan Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Dr Vivek Madan adalah Ilmuwan Terapan dengan tim Amazon SageMaker JumpStart. Dia mendapatkan gelar PhD. dari University of Illinois di Urbana-Champaign dan merupakan Post Doctoral Researcher di Georgia Tech. Dia adalah peneliti aktif dalam pembelajaran mesin dan desain algoritme dan telah menerbitkan makalah di konferensi EMNLP, ICLR, COLT, FOCS, dan SODA.

Pelatihan tambahan dengan Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Joรฃo Moura adalah Arsitek Solusi Spesialis AI/ML di Amazon Web Services. Dia sebagian besar berfokus pada kasus penggunaan NLP dan membantu pelanggan mengoptimalkan pelatihan dan penerapan model pembelajaran mendalam. Dia juga merupakan pendukung aktif solusi ML kode rendah dan perangkat keras khusus ML.

Pelatihan tambahan 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, ACL, dan EMNLP.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS