Xây dựng giải pháp phân loại tổn thương da thị giác trên máy tính bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Xây dựng giải pháp cho máy tính phân loại tổn thương da thị giác bằng cách sử dụng Amazon SageMaker Pipelines

Đường ống Amazon SageMaker là dịch vụ tích hợp liên tục và phân phối liên tục (CI/CD) được thiết kế cho các trường hợp sử dụng máy học (ML). Bạn có thể sử dụng nó để tạo, tự động hóa và quản lý quy trình công việc ML từ đầu đến cuối. Nó giải quyết thách thức trong việc sắp xếp từng bước của quy trình ML, vốn đòi hỏi thời gian, công sức và nguồn lực. Để thuận tiện cho việc sử dụng, có sẵn nhiều mẫu mà bạn có thể tùy chỉnh theo nhu cầu của mình.

Các dịch vụ phân tích hình ảnh và video được quản lý hoàn toàn cũng đã đẩy nhanh việc áp dụng các giải pháp Thị giác máy tính. AWS cung cấp dịch vụ AWS AI được đào tạo trước và được quản lý toàn phần có tên là Nhận thức lại Amazon có thể được tích hợp vào các ứng dụng thị giác máy tính bằng lệnh gọi API và không yêu cầu kinh nghiệm ML. Bạn chỉ cần cung cấp hình ảnh cho API nhận dạng lại của Amazon và nó có thể xác định các đối tượng cần thiết theo nhãn được xác định trước. Bạn cũng có thể cung cấp nhãn tùy chỉnh dành riêng cho trường hợp sử dụng của mình và xây dựng mô hình thị giác máy tính tùy chỉnh mà không cần hoặc không cần nhiều chi phí về chuyên môn ML.

Trong bài đăng này, chúng tôi giải quyết một vấn đề cụ thể về thị giác máy tính: phân loại tổn thương da và sử dụng Đường ống bằng cách tùy chỉnh mẫu hiện có và điều chỉnh mẫu đó cho phù hợp với nhiệm vụ này. Phân loại tổn thương da chính xác có thể giúp chẩn đoán sớm bệnh ung thư. Tuy nhiên, đây là một nhiệm vụ đầy thách thức trong lĩnh vực y tế vì có sự tương đồng cao giữa các loại tổn thương da khác nhau. Quy trình cho phép chúng tôi tận dụng nhiều mô hình và thuật toán hiện có, đồng thời thiết lập quy trình sản xuất từ ​​đầu đến cuối với nỗ lực và thời gian tối thiểu.

Tổng quan về giải pháp

Trong bài đăng này, chúng tôi xây dựng một quy trình từ đầu đến cuối bằng cách sử dụng Pipelines để phân loại hình ảnh soi da của các tổn thương sắc tố da phổ biến. Chúng tôi sử dụng Xưởng sản xuất Amazon SageMaker mẫu dự án Mẫu MLOps để xây dựng, đào tạo và triển khai các mô hình và đoạn mã sau Kho GitHub. Kiến trúc kết quả được thể hiện trong hình dưới đây.

Đối với quy trình này, chúng tôi sử dụng bộ dữ liệu HAM10000 (“Con người chống lại máy móc với 10000 hình ảnh đào tạo”), bao gồm 10,015 hình ảnh soi da. Nhiệm vụ trước mắt là phân loại nhiều lớp trong lĩnh vực thị giác máy tính. Bộ dữ liệu này mô tả sáu loại chẩn đoán quan trọng nhất trong lĩnh vực tổn thương sắc tố: dày sừng quang hóa và ung thư biểu mô nội mô hoặc bệnh Bowen (akiec), ung thư biểu mô tế bào đáy (bcc), các tổn thương lành tính giống như chứng dày sừng (lăng nhăn mặt trời hoặc dày sừng tiết bã và lichen-planus giống như dày sừng, bkl), u xơ da (df), khối u ác tính (mel), nốt ruồi hắc tố (nv), và các tổn thương mạch máu (u mạch, u mạch sừng, u hạt sinh mủ và xuất huyết, vasc).

Đối với định dạng đầu vào của mô hình, chúng tôi sử dụng RecordIO định dạng. Đây là một định dạng nhỏ gọn lưu trữ dữ liệu hình ảnh cùng nhau để đọc liên tục và do đó việc đào tạo nhanh hơn và hiệu quả hơn. Ngoài ra, một trong những thách thức khi sử dụng bộ dữ liệu HAM10000 là sự mất cân bằng giữa các lớp. Bảng sau minh họa sự phân bổ lớp.

Lớp akiec bcc bkl df mel nv vasc
Số lượng hình ảnh 327 514 1099 115 1113 6705 142
Tổng số: 10015

Để giải quyết vấn đề này, chúng tôi tăng cường tập dữ liệu bằng cách sử dụng các phép biến đổi ngẫu nhiên (chẳng hạn như cắt xén, lật, phản chiếu và xoay) để có tất cả các lớp có số lượng hình ảnh gần như nhau.

Bước tiền xử lý này sử dụng MXNet và OpenCV, do đó nó sử dụng hình ảnh vùng chứa MXNet được tạo sẵn. Phần phụ thuộc còn lại được cài đặt bằng cách sử dụng requirements.txt tài liệu. Nếu bạn muốn tạo và sử dụng một hình ảnh tùy chỉnh, hãy tham khảo Tạo các dự án Amazon SageMaker với đường ống CI / CD xây dựng hình ảnh.

Đối với bước đào tạo, chúng tôi sử dụng công cụ ước tính có sẵn từ hình ảnh Scikit Docker tích hợp của SageMaker để phân loại hình ảnh và đặt các tham số như sau:

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)

Để biết thêm chi tiết về hình ảnh container, hãy tham khảo Thuật toán phân loại hình ảnh.

Tạo dự án Studio

Để biết hướng dẫn chi tiết về cách thiết lập Studio, hãy tham khảo Tích hợp vào miền Amazon SageMaker bằng cách sử dụng thiết lập nhanh. Để tạo dự án của bạn, hãy hoàn thành các bước sau:

  1. Trong Studio, chọn Dự án menu trên Tài nguyên của SageMaker đơn.
    Xây dựng giải pháp phân loại tổn thương da thị giác trên máy tính bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.
    Trên trang dự án, bạn có thể khởi chạy mẫu MLOps SageMaker được cấu hình sẵn.
  2. Chọn Mẫu MLOps để xây dựng, đào tạo và triển khai mô hình.
  3. Chọn Chọn mẫu dự án.
    Xây dựng giải pháp phân loại tổn thương da thị giác trên máy tính bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.
  4. Nhập tên dự án và mô tả ngắn.
  5. Chọn Tạo dự án.

Dự án mất một vài phút để được tạo ra.

Chuẩn bị tập dữ liệu

Để chuẩn bị tập dữ liệu, hãy hoàn thành các bước sau:

  1. Truy cập Dữ liệu Harvard.
  2. Chọn Truy cập tập dữ liệuvà xem xét giấy phép Giấy phép Công cộng Quốc tế Creative Commons Ghi công-Phi thương mại 4.0.
  3. Nếu bạn chấp nhận giấy phép, hãy chọn Zip định dạng gốc và tải xuống tệp ZIP.
  4. tạo một Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) và chọn tên bắt đầu bằng sagemaker (điều này cho phép SageMaker truy cập nhóm mà không cần bất kỳ quyền bổ sung nào).
  5. Bạn có thể kích hoạt tính năng ghi nhật ký truy cập và mã hóa để có các biện pháp bảo mật tốt nhất.
  6. Tải lên dataverse_files.zip vào xô.
  7. Lưu đường dẫn nhóm S3 để sử dụng sau.
  8. Ghi lại tên của nhóm bạn đã lưu trữ dữ liệu và tên của bất kỳ thư mục tiếp theo nào để sử dụng sau này.

Chuẩn bị tiền xử lý dữ liệu

Vì chúng tôi đang sử dụng MXNet và OpenCV trong bước tiền xử lý nên chúng tôi sử dụng hình ảnh MXNet Docker dựng sẵn và cài đặt các phần phụ thuộc còn lại bằng cách sử dụng requirements.txt tài liệu. Để làm như vậy, bạn cần sao chép nó và dán nó vào pipelines/skin trong sagemaker--modelbuild kho. Ngoài ra, thêm các MANIFEST.in tập tin ở cùng cấp độ với setup.py, để yêu cầu Python đưa vào requirements.txt tài liệu. Để biết thêm thông tin về MANIFEST.in, tham khảo Bao gồm các tệp trong bản phân phối nguồn bằng MANIFEST.in. Cả hai tập tin có thể được tìm thấy trong Kho GitHub.

Thay đổi mẫu Đường ống

Để cập nhật mẫu Quy trình, hãy hoàn thành các bước sau:

  1. Tạo một thư mục bên trong nhóm mặc định.
  2. Đảm bảo vai trò thực thi Studio có quyền truy cập vào nhóm mặc định cũng như nhóm chứa tập dữ liệu.
  3. Từ danh sách dự án, chọn dự án bạn vừa tạo.
  4. trên Kho tab, chọn các siêu liên kết để sao chép cục bộ Cam kết mã AWS kho lưu trữ vào phiên bản Studio cục bộ của bạn.
    Xây dựng giải pháp phân loại tổn thương da thị giác trên máy tính bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.
  5. Điều hướng đến pipelines thư mục bên trong sagemaker--modelbuild thư mục và đổi tên abalone thư mục để skin.
  6. Mở codebuild-buildspec.yml tập tin trong sagemaker--modelbuild thư mục và sửa đổi đường dẫn đường ống chạy từ run-pipeline —module-name pipelines.abalone.pipeline (dòng 15) như sau:
    run-pipeline --module-name pipelines.skin.pipeline 

  7. Lưu tập tin.
  8. Thay thế các tập tin pipelines.py, preprocess.py, và evaluate.py trong thư mục đường ống với các tập tin từ Kho GitHub.
    Xây dựng giải pháp phân loại tổn thương da thị giác trên máy tính bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.
  9. Cập nhật preprocess.py tệp (dòng 183-186) với vị trí S3 (SKIN_CANCER_BUCKET) và tên thư mục (SKIN_CANCER_BUCKET_PATH) nơi bạn đã tải lên dataverse_files.zip lưu trữ:
    1. skin_cancer_bucket=””
    2. skin_cancer_bucket_path=””
    3. skin_cancer_files=””
    4. skin_cancer_files_ext=””

Trong ví dụ trước, tập dữ liệu sẽ được lưu trữ dưới s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip.

Xây dựng giải pháp phân loại tổn thương da thị giác trên máy tính bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Kích hoạt chạy đường ống

Việc đẩy các thay đổi đã cam kết vào kho lưu trữ CodeCommit (được thực hiện trên tab kiểm soát nguồn Studio) sẽ kích hoạt quá trình chạy quy trình mới, bởi vì Sự kiện Amazon giám sát sự kiện cho các cam kết. Chúng tôi có thể theo dõi quá trình chạy bằng cách chọn quy trình bên trong dự án SageMaker. Ảnh chụp màn hình sau đây hiển thị ví dụ về quy trình chạy thành công.

Xây dựng giải pháp phân loại tổn thương da thị giác trên máy tính bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

  1. Để thực hiện các thay đổi, hãy điều hướng đến phần Git ở khung bên trái.
  2. Giai đoạn tất cả các thay đổi có liên quan. Bạn không cần phải theo dõi -checkpoint tài liệu. Bạn có thể thêm một mục vào .gitignore nộp hồ sơ với *checkpoint.* để bỏ qua chúng.
  3. Cam kết các thay đổi bằng cách cung cấp bản tóm tắt cũng như tên và địa chỉ email của bạn.
  4. Đẩy các thay đổi.
  5. Điều hướng trở lại dự án và chọn Đường ống phần.
  6. Nếu bạn chọn các quy trình đang diễn ra, các bước của quy trình sẽ xuất hiện.
    Điều này cho phép bạn theo dõi bước hiện đang chạy. Có thể mất vài phút để quy trình xuất hiện. Để quy trình bắt đầu chạy, các bước được xác định trong CI/CD codebuild-buildspec.yml phải chạy thành công. Để kiểm tra trạng thái của các bước này, bạn có thể sử dụng Xây dựng mã AWS. Để biết thêm thông tin, hãy tham khảo AWS CodeBuild (AMS SSPS).
  7. Khi quy trình hoàn tất, hãy quay lại trang dự án và chọn Nhóm người mẫu tab để kiểm tra siêu dữ liệu được đính kèm với các tạo phẩm mô hình.
  8. Nếu mọi thứ đều ổn, hãy chọn Cập nhật trạng tab và phê duyệt mô hình theo cách thủ công. Mặc định ModelApprovalStatus được thiết lập để PendingManualApproval. Nếu mô hình của chúng tôi có độ chính xác cao hơn 60% thì mô hình đó sẽ được thêm vào sổ đăng ký mô hình nhưng không được triển khai cho đến khi quá trình phê duyệt thủ công hoàn tất.
  9. Điều hướng đến Điểm cuối trên bảng điều khiển SageMaker, nơi bạn có thể thấy điểm cuối theo giai đoạn đang được tạo. Sau vài phút, điểm cuối được liệt kê cùng với InService trạng thái.
  10. Để triển khai điểm cuối vào sản xuất, trên CodePipeline bảng điều khiển, chọn sagemaker--modeldeploy đường ống hiện đang được tiến hành.
  11. Vào cuối của DeployStaging giai đoạn này, bạn cần phải phê duyệt việc triển khai theo cách thủ công.

Sau bước này, bạn có thể thấy điểm cuối sản xuất đang được triển khai trên SageMaker Điểm cuối trang. Sau một thời gian, điểm cuối hiển thị là InService.

Xây dựng giải pháp phân loại tổn thương da thị giác trên máy tính bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Làm sạch

Bạn có thể dễ dàng dọn sạch tất cả tài nguyên do dự án SageMaker tạo ra.

  1. Trong ngăn điều hướng trong Studio, chọn Tài nguyên của SageMaker.
  2. Chọn Dự án từ menu thả xuống và chọn dự án của bạn.
  3. trên Hoạt động menu, chọn Xóa bỏ để xóa tất cả các tài nguyên liên quan.

Xây dựng giải pháp phân loại tổn thương da thị giác trên máy tính bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Kết quả và các bước tiếp theo

Chúng tôi đã sử dụng thành công Pipelines để tạo khung MLOps toàn diện nhằm phân loại tổn thương da bằng mô hình tích hợp trên bộ dữ liệu HAM10000. Đối với các tham số được cung cấp trong kho lưu trữ, chúng tôi thu được kết quả sau trên bộ thử nghiệm.

metric Độ chính xác Nhớ lại Điểm F1
Giá trị 0.643 0.8 0.713

Bạn có thể nỗ lực hơn nữa để cải thiện hiệu suất của mô hình bằng cách tinh chỉnh các siêu tham số của mô hình, thêm nhiều phép biến đổi để tăng cường dữ liệu hoặc sử dụng các phương pháp khác, chẳng hạn như Kỹ thuật lấy mẫu quá mức thiểu số tổng hợp (SMOTE) hoặc Mạng đối thủ sáng tạo (GAN). Hơn nữa, bạn có thể sử dụng mô hình hoặc thuật toán của riêng mình để đào tạo bằng cách sử dụng hình ảnh SageMaker Docker tích hợp sẵn hoặc điều chỉnh vùng chứa của riêng bạn để hoạt động trên SageMaker. Để biết thêm chi tiết, hãy tham khảo Sử dụng vùng chứa Docker với SageMaker.

Bạn cũng có thể thêm các tính năng bổ sung vào quy trình của mình. Nếu bạn muốn bao gồm việc giám sát, bạn có thể chọn Mẫu MLOps để xây dựng, đào tạo, triển khai và giám sát mô hình mẫu khi tạo dự án SageMaker. Kiến trúc kết quả có một bước giám sát bổ sung. Hoặc nếu bạn có kho lưu trữ Git của bên thứ ba hiện có, bạn có thể sử dụng nó bằng cách chọn Mẫu MLOps để xây dựng, đào tạo và triển khai mô hình với kho Git của bên thứ ba bằng Jenkins dự án và cung cấp thông tin cho cả kho xây dựng mô hình và kho triển khai mô hình. Điều này cho phép bạn sử dụng bất kỳ mã hiện có nào và giúp bạn tiết kiệm thời gian hoặc công sức khi tích hợp giữa SageMaker và Git. Tuy nhiên, đối với tùy chọn này, một Ngôi sao mã AWS kết nối là bắt buộc.

Kết luận

Trong bài đăng này, chúng tôi đã trình bày cách tạo quy trình làm việc ML từ đầu đến cuối bằng Studio và Đường ống tự động. Quy trình công việc bao gồm lấy tập dữ liệu, lưu trữ nó ở nơi mà mô hình ML có thể truy cập được, định cấu hình hình ảnh vùng chứa để xử lý trước, sau đó sửa đổi mã soạn sẵn để chứa hình ảnh đó. Sau đó, chúng tôi đã trình bày cách kích hoạt quy trình, các bước mà quy trình tuân theo và cách chúng hoạt động. Chúng tôi cũng thảo luận về cách giám sát hiệu suất của mô hình và triển khai mô hình đến điểm cuối.

Chúng tôi đã thực hiện hầu hết các tác vụ này trong Studio, hoạt động như một IDE ML toàn diện và đẩy nhanh quá trình phát triển cũng như triển khai các mô hình đó.

Giải pháp này không bị ràng buộc bởi nhiệm vụ phân loại da. Bạn có thể mở rộng nó cho bất kỳ nhiệm vụ phân loại hoặc hồi quy nào bằng cách sử dụng bất kỳ thuật toán tích hợp nào của SageMaker hoặc các mô hình được đào tạo trước.


Giới thiệu về tác giả

Xây dựng giải pháp phân loại tổn thương da thị giác trên máy tính bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái. Mariem Kthiri là nhà tư vấn AI/ML tại AWS Professional Services Globals và là thành viên của nhóm Khoa học đời sống và Chăm sóc sức khỏe (HCLS). Cô ấy đam mê xây dựng các giải pháp ML cho nhiều vấn đề khác nhau và luôn mong muốn nắm bắt các cơ hội và sáng kiến ​​mới. Cô sống ở Munich, Đức và thích đi du lịch và khám phá những nơi khác trên thế giới.

Xây dựng giải pháp phân loại tổn thương da thị giác trên máy tính bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Yassine Zaafouri là nhà tư vấn AI/ML trong Dịch vụ chuyên nghiệp tại AWS. Ông cho phép các khách hàng doanh nghiệp toàn cầu xây dựng và triển khai các giải pháp AI/ML trên đám mây để vượt qua các thách thức kinh doanh của họ. Trong thời gian rảnh rỗi, anh thích chơi, xem thể thao và đi du lịch vòng quanh thế giới.

Xây dựng giải pháp phân loại tổn thương da thị giác trên máy tính bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Fotinos Kyriakides là Kỹ sư AI/ML trong Dịch vụ chuyên nghiệp tại AWS. Anh ấy đam mê sử dụng công nghệ để mang lại giá trị cho khách hàng và đạt được kết quả kinh doanh. Đặt trụ sở tại London, khi rảnh rỗi, anh ấy thích chạy bộ và khám phá.

Xây dựng giải pháp phân loại tổn thương da thị giác trên máy tính bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Anna Zapaishchykova là Chuyên gia tư vấn ProServe về AI/ML và là thành viên của Amazon Healthcare TFC. Cô ấy đam mê công nghệ và tác động của nó đối với việc chăm sóc sức khỏe. Nền tảng của cô là xây dựng các giải pháp MLOps và AI hỗ trợ cho các vấn đề của khách hàng trong nhiều lĩnh vực như bảo hiểm, ô tô và chăm sóc sức khỏe.

Dấu thời gian:

Thêm từ Học máy AWS