Bangun solusi untuk pengklasifikasi lesi kulit dengan visi komputer menggunakan Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Bangun solusi untuk pengklasifikasi lesi kulit visi komputer menggunakan Amazon SageMaker Pipelines

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:

hyperparameters = {
        "num_layers": 18,
        "use_pretrained_model": 1,
        "augmentation_type": 'crop_color_transform',
        "image_shape": '3,224,224', 
        "num_classes": 7,
        "num_training_samples": 29311, 
        "mini_batch_size": 8,
        "epochs": 5, 
        "learning_rate": 0.00001,
        "precision_dtype": 'float32'
    }

    estimator_config = {
        "hyperparameters": hyperparameters,
        "image_uri": training_image,
        "role": role,
        "instance_count": 1,
        "instance_type": "ml.p3.2xlarge",
        "volume_size": 100,
        "max_run": 360000,
        "output_path": "s3://{bucket}/{base_job_prefix}/training_jobs",
    }
    
    image_classifier = sagemaker.estimator.Estimator(**estimator_config)

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:

  1. Di Studio, pilih Proyek menu di Sumber daya SageMaker menu.
    Bangun solusi untuk pengklasifikasi lesi kulit dengan visi komputer menggunakan Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.
    Pada halaman proyek, Anda dapat meluncurkan template SageMaker MLOps yang telah dikonfigurasi sebelumnya.
  2. Pilih Template MLOps untuk pembuatan model, pelatihan, dan penerapan.
  3. Pilih Pilih template proyek.
    Bangun solusi untuk pengklasifikasi lesi kulit dengan visi komputer menggunakan Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.
  4. Masukkan nama proyek dan deskripsi singkat.
  5. Pilih Buat proyek.

Proyek ini membutuhkan waktu beberapa menit untuk dibuat.

Siapkan kumpulan datanya

Untuk menyiapkan kumpulan data, lakukan langkah-langkah berikut:

  1. Pergi ke DataVerse Harvard.
  2. Pilih Akses Kumpulan Data, dan tinjau lisensi Creative Commons Attribution-NonCommercial 4.0 International Public License.
  3. Jika Anda menerima lisensi, pilih Format Asli Zip dan unduh file ZIP.
  4. 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).
  5. Anda dapat mengaktifkan akses logging dan enkripsi untuk praktik terbaik keamanan.
  6. Unggah dataverse_files.zip ke ember.
  7. Simpan jalur bucket S3 untuk digunakan nanti.
  8. 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:

  1. Buat folder di dalam ember default.
  2. Pastikan peran eksekusi Studio memiliki akses ke bucket default serta bucket yang berisi set data.
  3. Dari daftar proyek, pilih salah satu yang baru saja Anda buat.
  4. pada Repositori tab, pilih hyperlink untuk mengkloning secara lokal Komitmen Kode AWS repositori ke instance Studio lokal Anda.
    Bangun solusi untuk pengklasifikasi lesi kulit dengan visi komputer menggunakan Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.
  5. Arahkan ke folder pipelines direktori di dalam sagemaker--modelbuild direktori dan ganti nama abalone direktori ke skin.
  6. Buka codebuild-buildspec.yml file di sagemaker--modelbuild direktori dan ubah jalur pipa yang dijalankan dari run-pipeline โ€”module-name pipelines.abalone.pipeline (baris 15) sebagai berikut:
    run-pipeline --module-name pipelines.skin.pipeline 

  7. Simpan file.
  8. Ganti file pipelines.py, preprocess.py, dan evaluate.py di direktori pipelines dengan file dari Repositori GitHub.
    Bangun solusi untuk pengklasifikasi lesi kulit dengan visi komputer menggunakan Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.
  9. Perbarui preprocess.py file (baris 183-186) dengan lokasi S3 (SKIN_CANCER_BUCKET) dan nama folder (SKIN_CANCER_BUCKET_PATH) tempat Anda mengunggah dataverse_files.zip Arsip:
    1. skin_cancer_bucket=โ€โ€
    2. skin_cancer_bucket_path=โ€โ€
    3. skin_cancer_files=โ€โ€
    4. 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.

Bangun solusi untuk pengklasifikasi lesi kulit dengan visi komputer menggunakan Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

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.

Bangun solusi untuk pengklasifikasi lesi kulit dengan visi komputer menggunakan Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

  1. Untuk melakukan perubahan, navigasikan ke bagian Git di panel kiri.
  2. Tahap semua perubahan yang relevan. Anda tidak perlu melacak -checkpoint mengajukan. Anda dapat menambahkan entri ke .gitignore file dengan *checkpoint.* untuk mengabaikan mereka.
  3. Lakukan perubahan dengan memberikan ringkasan serta nama dan alamat email Anda.
  4. Dorong perubahan.
  5. Arahkan kembali ke proyek dan pilih Jaringan pipa bagian.
  6. 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/CD codebuild-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).
  7. Ketika pipa selesai, kembali ke halaman proyek dan pilih Kelompok model tab untuk memeriksa metadata yang dilampirkan ke artefak model.
  8. Jika semuanya terlihat bagus, pilih Update Status tab dan secara manual menyetujui model. Default ModelApprovalStatus diatur ke PendingManualApproval. Jika model kami memiliki akurasi lebih dari 60%, model tersebut ditambahkan ke registri model, tetapi tidak diterapkan hingga persetujuan manual selesai.
  9. 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.
  10. Untuk menyebarkan titik akhir ke dalam produksi, di CodePipeline konsol, pilih sagemaker--modeldeploy pipa yang sedang berjalan.
  11. 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.

Bangun solusi untuk pengklasifikasi lesi kulit dengan visi komputer menggunakan Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Membersihkan

Anda dapat dengan mudah membersihkan semua sumber daya yang dibuat oleh proyek SageMaker.

  1. Di panel navigasi di Studio, pilih Sumber daya SageMaker.
  2. Pilih Proyek dari menu tarik-turun dan pilih proyek Anda.
  3. pada tindakan menu, pilih Delete untuk menghapus semua sumber daya terkait.

Bangun solusi untuk pengklasifikasi lesi kulit dengan visi komputer menggunakan Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

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

Bangun solusi untuk pengklasifikasi lesi kulit dengan visi komputer menggunakan Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai. 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.

Bangun solusi untuk pengklasifikasi lesi kulit dengan visi komputer menggunakan Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.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.

Bangun solusi untuk pengklasifikasi lesi kulit dengan visi komputer menggunakan Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.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.

Bangun solusi untuk pengklasifikasi lesi kulit dengan visi komputer menggunakan Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.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.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS