Pipa Amazon SageMaker adalah layanan continuous integration dan continuous delivery (CI/CD) yang dirancang untuk kasus penggunaan machine learning (ML). Anda dapat menggunakannya untuk membuat, mengotomatisasi, dan mengelola alur kerja ML ujung ke ujung. Ini mengatasi tantangan mengatur setiap langkah proses ML, yang membutuhkan waktu, tenaga, dan sumber daya. Untuk memudahkan penggunaannya, tersedia beberapa template yang dapat Anda sesuaikan dengan kebutuhan Anda.
Layanan analisis gambar dan video yang terkelola sepenuhnya juga telah mempercepat penerapan solusi Computer vision. AWS menawarkan layanan AI AWS pra-terlatih dan terkelola sepenuhnya yang disebut Rekognisi Amazon yang dapat diintegrasikan ke dalam aplikasi visi komputer menggunakan panggilan API dan tidak memerlukan pengalaman ML. Anda hanya perlu memberikan gambar ke API Rekognisi Amazon dan dapat mengidentifikasi objek yang diperlukan sesuai dengan label yang telah ditentukan. Dimungkinkan juga untuk memberikan label khusus khusus untuk kasus penggunaan Anda dan membangun model visi komputer yang disesuaikan dengan sedikit atau tanpa kebutuhan overhead untuk keahlian ML.
Dalam posting ini, kami membahas masalah visi komputer tertentu: klasifikasi lesi kulit, dan menggunakan Pipelines dengan menyesuaikan template yang ada dan menyesuaikannya dengan tugas ini. Klasifikasi lesi kulit yang akurat dapat membantu diagnosis dini penyakit kanker. Namun, ini adalah tugas yang menantang di bidang medis, karena ada kesamaan yang tinggi antara berbagai jenis lesi kulit. Pipeline memungkinkan kami memanfaatkan berbagai model dan algoritme yang ada, dan membangun pipeline produksi ujung ke ujung dengan sedikit usaha dan waktu.
Ikhtisar solusi
Dalam posting ini, kami membangun pipa end-to-end menggunakan Pipelines untuk mengklasifikasikan gambar dermatoskopik dari lesi kulit berpigmen umum. Kami menggunakan Studio Amazon SageMaker template proyek Template MLOps untuk membangun, melatih, dan menerapkan model dan kode di bawah ini Repositori GitHub. Arsitektur yang dihasilkan ditunjukkan pada gambar berikut.
Untuk pipeline ini, kami menggunakan kumpulan data HAM10000 (โHuman Against Machine with 10000 training imagesโ), yang terdiri dari 10,015 gambar dermatoskopik. Tugas yang dihadapi adalah klasifikasi multi-kelas di bidang visi komputer. Dataset ini menggambarkan enam kategori diagnostik paling penting dalam bidang lesi berpigmen: keratosis aktinik dan karsinoma intraepitel atau penyakit Bowen (akiec
), karsinoma sel basal (bcc
), lesi seperti keratosis jinak (solar lentigines atau keratosis seboroik dan lichen-planus seperti keratosis, bkl
), dermatofibroma (df
), melanoma (mel
), nevus melanositik (nv
), dan lesi vaskular (angioma, angiokeratoma, granuloma piogenik dan perdarahan, vasc
).
Untuk format input model, kami menggunakan RecordIO
format. Ini adalah format ringkas yang menyimpan data gambar bersama-sama untuk pembacaan terus-menerus dan oleh karena itu pelatihan lebih cepat dan lebih efisien. Selain itu, salah satu tantangan dalam menggunakan dataset HAM10000 adalah ketidakseimbangan kelas. Tabel berikut menggambarkan distribusi kelas.
Kelas | akiec | bcc | bkl | df | mel | nv | vasc |
Jumlah gambar | 327 | 514 | 1099 | 115 | 1113 | 6705 | 142 |
Total | 10015 |
Untuk mengatasi masalah ini, kami menambah dataset menggunakan transformasi acak (seperti cropping, flipping, mirroring, dan rotate) untuk memiliki semua kelas dengan jumlah gambar yang kira-kira sama.
Langkah prapemrosesan ini menggunakan MXNet dan OpenCV, oleh karena itu menggunakan gambar penampung MXNet yang sudah dibuat sebelumnya. Sisa dependensi diinstal menggunakan a requirements.txt
mengajukan. Jika Anda ingin membuat dan menggunakan gambar khusus, lihat Buat proyek Amazon SageMaker dengan pipeline CI/CD pembuatan gambar.
Untuk langkah pelatihan, kami menggunakan estimator yang tersedia dari gambar Scikit Docker bawaan SageMaker untuk klasifikasi gambar dan mengatur parameter sebagai berikut:
Untuk detail lebih lanjut tentang gambar kontainer, lihat Algoritma Klasifikasi Gambar.
Buat proyek Studio
Untuk petunjuk terperinci tentang cara menyiapkan Studio, lihat Onboard ke Domain Amazon SageMaker Menggunakan Pengaturan cepat. Untuk membuat proyek Anda, selesaikan langkah-langkah berikut:
- Di Studio, pilih Proyek menu di Sumber daya SageMaker menu.
Pada halaman proyek, Anda dapat meluncurkan template SageMaker MLOps yang telah dikonfigurasi sebelumnya. - Pilih Template MLOps untuk pembuatan model, pelatihan, dan penerapan.
- Pilih Pilih template proyek.
- Masukkan nama proyek dan deskripsi singkat.
- Pilih Buat proyek.
Proyek ini membutuhkan waktu beberapa menit untuk dibuat.
Siapkan kumpulan datanya
Untuk menyiapkan kumpulan data, lakukan langkah-langkah berikut:
- Pergi ke DataVerse Harvard.
- Pilih Akses Kumpulan Data, dan tinjau lisensi Creative Commons Attribution-NonCommercial 4.0 International Public License.
- Jika Anda menerima lisensi, pilih Format Asli Zip dan unduh file ZIP.
- Buat Layanan Penyimpanan Sederhana Amazon (Amazon S3) ember dan pilih nama yang dimulai dengan
sagemaker
(ini memungkinkan SageMaker mengakses bucket tanpa izin tambahan apa pun). - Anda dapat mengaktifkan akses logging dan enkripsi untuk praktik terbaik keamanan.
- Unggah
dataverse_files.zip
ke ember. - Simpan jalur bucket S3 untuk digunakan nanti.
- Catat nama keranjang tempat Anda menyimpan data, dan nama folder berikutnya, untuk digunakan nanti.
Bersiaplah untuk pra-pemrosesan data
Karena kami menggunakan MXNet dan OpenCV dalam langkah prapemrosesan kami, kami menggunakan image Docker MXNet yang telah dibuat sebelumnya dan menginstal dependensi yang tersisa menggunakan requirements.txt
mengajukan. Untuk melakukannya, Anda perlu menyalinnya dan menempelkannya di bawah pipelines/skin
dalam sagemaker--modelbuild
gudang. Selain itu, tambahkan MANIFEST.in
file pada tingkat yang sama dengan setup.py
, untuk memberi tahu Python agar menyertakan requirements.txt
mengajukan. Untuk informasi lebih lanjut tentang MANIFEST.di, mengacu pada Menyertakan file dalam distribusi sumber dengan MANIFEST.in. Kedua file tersebut dapat ditemukan di Repositori GitHub.
Ubah template Pipeline
Untuk memperbarui template Pipelines, selesaikan langkah-langkah berikut:
- Buat folder di dalam ember default.
- Pastikan peran eksekusi Studio memiliki akses ke bucket default serta bucket yang berisi set data.
- Dari daftar proyek, pilih salah satu yang baru saja Anda buat.
- pada Repositori tab, pilih hyperlink untuk mengkloning secara lokal Komitmen Kode AWS repositori ke instance Studio lokal Anda.
- Arahkan ke folder
pipelines
direktori di dalamsagemaker--modelbuild
direktori dan ganti namaabalone
direktori keskin
. - Buka
codebuild-buildspec.yml
file disagemaker--modelbuild
direktori dan ubah jalur pipa yang dijalankan darirun-pipeline โmodule-name pipelines.abalone.pipeline
(baris 15) sebagai berikut: - Simpan file.
- Ganti file
pipelines.py
,preprocess.py
, dan evaluate.py
di direktori pipelines dengan file dari Repositori GitHub. - Perbarui
preprocess.py
file (baris 183-186) dengan lokasi S3 (SKIN_CANCER_BUCKET
) dan nama folder (SKIN_CANCER_BUCKET_PATH
) tempat Anda mengunggahdataverse_files.zip
Arsip:skin_cancer_bucket=โโ
skin_cancer_bucket_path=โโ
skin_cancer_files=โโ
skin_cancer_files_ext=โโ
Dalam contoh sebelumnya, kumpulan data akan disimpan di bawah s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip
.
Memicu jalur pipa
Mendorong perubahan yang dikomit ke repositori CodeCommit (dilakukan pada tab kontrol sumber Studio) memicu proses pipeline baru, karena Jembatan Acara Amazon pemantau acara untuk komit. Kita dapat memantau proses dengan memilih jalur pipa di dalam proyek SageMaker. Tangkapan layar berikut menunjukkan contoh saluran yang berhasil dijalankan.
- Untuk melakukan perubahan, navigasikan ke bagian Git di panel kiri.
- Tahap semua perubahan yang relevan. Anda tidak perlu melacak
-checkpoint
mengajukan. Anda dapat menambahkan entri ke.gitignore
file dengan*checkpoint.*
untuk mengabaikan mereka. - Lakukan perubahan dengan memberikan ringkasan serta nama dan alamat email Anda.
- Dorong perubahan.
- Arahkan kembali ke proyek dan pilih Jaringan pipa bagian.
- Jika Anda memilih pipeline yang sedang berlangsung, langkah-langkah dari pipeline akan muncul.
Ini memungkinkan Anda untuk memantau langkah yang sedang berjalan. Mungkin perlu beberapa menit agar saluran pipa muncul. Agar pipeline mulai berjalan, langkah-langkah yang ditentukan dalam CI/CDcodebuild-buildspec.yml
harus berjalan dengan sukses. Untuk memeriksa status langkah-langkah ini, Anda dapat menggunakan Pembuatan Kode AWS. Untuk informasi lebih lanjut, lihat AWS CodeBuild (AMS SSPS). - Ketika pipa selesai, kembali ke halaman proyek dan pilih Kelompok model tab untuk memeriksa metadata yang dilampirkan ke artefak model.
- Jika semuanya terlihat bagus, pilih Update Status tab dan secara manual menyetujui model. Default
ModelApprovalStatus
diatur kePendingManualApproval
. Jika model kami memiliki akurasi lebih dari 60%, model tersebut ditambahkan ke registri model, tetapi tidak diterapkan hingga persetujuan manual selesai. - Arahkan ke folder Titik akhir halaman di konsol SageMaker, tempat Anda dapat melihat titik akhir pementasan sedang dibuat. Setelah beberapa menit, titik akhir terdaftar dengan
InService
status. - Untuk menyebarkan titik akhir ke dalam produksi, di
CodePipeline
konsol, pilihsagemaker--modeldeploy
pipa yang sedang berjalan. - Di akhir
DeployStaging
fase, Anda harus menyetujui penerapan secara manual.
Setelah langkah ini, Anda dapat melihat titik akhir produksi diterapkan di SageMaker Titik akhir halaman. Setelah beberapa saat, titik akhir menunjukkan sebagai InService
.
Membersihkan
Anda dapat dengan mudah membersihkan semua sumber daya yang dibuat oleh proyek SageMaker.
- Di panel navigasi di Studio, pilih Sumber daya SageMaker.
- Pilih Proyek dari menu tarik-turun dan pilih proyek Anda.
- pada tindakan menu, pilih Delete untuk menghapus semua sumber daya terkait.
Hasil dan langkah selanjutnya
Kami berhasil menggunakan Pipelines untuk membuat kerangka kerja MLOps ujung ke ujung untuk klasifikasi lesi kulit menggunakan model bawaan pada kumpulan data HAM10000. Untuk parameter yang disediakan dalam repositori, kami memperoleh hasil berikut pada set pengujian.
metrik | Ketelitian | Mengingat kembali | Skor F1 |
Nilai | 0.643 | 0.8 | 0.713 |
Anda dapat bekerja lebih jauh untuk meningkatkan kinerja model dengan menyempurnakan hyperparameternya, menambahkan lebih banyak transformasi untuk augmentasi data, atau menggunakan metode lain, seperti Synthetic Minority Oversampling Technique (SMOTE) atau Generative Adversarial Networks (GANs). Selanjutnya, Anda dapat menggunakan model atau algoritme Anda sendiri untuk pelatihan dengan menggunakan gambar Docker SageMaker bawaan atau mengadaptasi wadah Anda sendiri untuk bekerja di SageMaker. Untuk detail lebih lanjut, lihat Menggunakan wadah Docker dengan SageMaker.
Anda juga dapat menambahkan fitur tambahan ke saluran Anda. Jika Anda ingin menyertakan pemantauan, Anda dapat memilih Template MLOps untuk pembuatan model, pelatihan, penerapan, dan pemantauan template saat membuat proyek SageMaker. Arsitektur yang dihasilkan memiliki langkah pemantauan tambahan. Atau jika Anda sudah memiliki repositori Git pihak ketiga, Anda dapat menggunakannya dengan memilih Template MLOps untuk pembuatan model, pelatihan, dan penerapan dengan repositori Git pihak ketiga menggunakan Jenkins proyek dan menyediakan informasi untuk pembuatan model dan repositori penerapan model. Ini memungkinkan Anda untuk menggunakan kode apa pun yang ada dan menghemat waktu atau upaya Anda dalam integrasi antara SageMaker dan Git. Namun, untuk opsi ini, a AWS Kode Bintang koneksi diperlukan.
Kesimpulan
Dalam postingan ini, kami menunjukkan cara membuat alur kerja ML end-to-end menggunakan Studio dan Pipeline otomatis. Alur kerjanya termasuk mendapatkan set data, menyimpannya di tempat yang dapat diakses oleh model ML, mengonfigurasi gambar container untuk prapemrosesan, lalu memodifikasi kode boilerplate untuk mengakomodasi gambar tersebut. Kemudian kami menunjukkan cara memicu pipeline, langkah-langkah yang diikuti pipeline, dan cara kerjanya. Kami juga membahas cara memantau kinerja model dan menerapkan model ke titik akhir.
Kami melakukan sebagian besar tugas ini di dalam Studio, yang bertindak sebagai ML IDE yang mencakup semua, dan mempercepat pengembangan dan penerapan model tersebut.
Solusi ini tidak terikat pada tugas klasifikasi kulit. Anda dapat memperluasnya ke tugas klasifikasi atau regresi apa pun menggunakan algoritme bawaan SageMaker atau model yang telah dilatih sebelumnya.
Tentang penulis
Mariem Kthiri adalah konsultan AI/ML di AWS Professional Services Globals dan merupakan bagian dari tim Health Care and Life Science (HCLS). Dia bersemangat membangun solusi ML untuk berbagai masalah dan selalu bersemangat untuk memanfaatkan peluang dan inisiatif baru. Dia tinggal di Munich, Jerman dan tertarik untuk bepergian dan menemukan bagian lain dunia.
Yasin Zaafouri adalah konsultan AI/ML dalam Layanan Profesional di AWS. Dia memungkinkan pelanggan perusahaan global untuk membangun dan menerapkan solusi AI/ML di cloud untuk mengatasi tantangan bisnis mereka. Di waktu luangnya, ia menikmati bermain dan menonton olahraga dan berkeliling dunia.
Fotinos Kyriakides adalah Insinyur AI/ML dalam Layanan Profesional di AWS. Dia bersemangat menggunakan teknologi untuk memberikan nilai kepada pelanggan dan mencapai hasil bisnis. Berbasis di London, di waktu luangnya dia suka berlari dan menjelajah.
Anna Zapaishchikova adalah Konsultan ProServe di AI/ML dan anggota Amazon Healthcare TFC. Dia bersemangat tentang teknologi dan dampaknya terhadap perawatan kesehatan. Latar belakangnya adalah membangun solusi MLOps dan AI untuk masalah pelanggan di berbagai domain seperti asuransi, otomotif, dan perawatan kesehatan.
- AI
- ai seni
- generator seni ai
- punya robot
- Amazon SageMaker
- kecerdasan buatan
- sertifikasi kecerdasan buatan
- kecerdasan buatan dalam perbankan
- robot kecerdasan buatan
- robot kecerdasan buatan
- perangkat lunak kecerdasan buatan
- Pembelajaran Mesin AWS
- blockchain
- konferensi blockchain
- kecerdasan
- kecerdasan buatan percakapan
- konferensi kripto
- dall's
- belajar mendalam
- google itu
- Mesin belajar
- plato
- plato ai
- Kecerdasan Data Plato
- Permainan Plato
- Data Plato
- permainan plato
- skala ai
- sintaksis
- zephyrnet.dll