Создайте решение для классификатора поражений кожи компьютерного зрения с помощью Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Создайте решение для классификатора поражений кожи компьютерного зрения с помощью Amazon SageMaker Pipelines.

Конвейеры Amazon SageMaker — это служба непрерывной интеграции и непрерывной доставки (CI/CD), предназначенная для сценариев использования машинного обучения (ML). Вы можете использовать его для создания, автоматизации и управления сквозными рабочими процессами машинного обучения. Он решает задачу организации каждого этапа процесса машинного обучения, который требует времени, усилий и ресурсов. Чтобы облегчить его использование, доступно несколько шаблонов, которые вы можете настроить в соответствии со своими потребностями.

Полностью управляемые услуги анализа изображений и видео также ускорили внедрение решений компьютерного зрения. AWS предлагает предварительно обученный и полностью управляемый сервис AWS AI под названием Апостол которые можно интегрировать в приложения компьютерного зрения с помощью вызовов API и не требуют опыта машинного обучения. Вам просто нужно предоставить изображение API распознавания Amazon и он может идентифицировать необходимые объекты по заранее заданным меткам. Также возможно предоставить специальные метки, соответствующие вашему сценарию использования, и создать индивидуальную модель компьютерного зрения практически без накладных расходов на опыт машинного обучения.

В этом посте мы решаем конкретную проблему компьютерного зрения: классификацию поражений кожи и используем Pipelines, настраивая существующий шаблон и адаптируя его к этой задаче. Точная классификация поражений кожи может помочь в ранней диагностике раковых заболеваний. Однако в медицинской сфере это непростая задача, поскольку между различными видами поражений кожи существует большое сходство. Конвейеры позволяют нам воспользоваться преимуществами множества существующих моделей и алгоритмов и создать сквозной производственный конвейер с минимальными усилиями и временем.

Обзор решения

В этом посте мы создаем сквозной конвейер с использованием Pipelines для классификации дерматоскопических изображений распространенных пигментных поражений кожи. Мы используем Студия Amazon SageMaker шаблон проекта Шаблон MLOps для построения, обучения и развертывания моделей и код в следующем Репозиторий GitHub. Получившаяся архитектура показана на следующем рисунке.

Для этого конвейера мы используем набор данных HAM10000 («Человек против машины с 10000 10,015 обучающих изображений»), который состоит из XNUMX XNUMX дерматоскопических изображений. Задача — многоклассовая классификация в области компьютерного зрения. Этот набор данных отражает шесть наиболее важных диагностических категорий в области пигментных поражений: актинический кератоз и интраэпителиальную карциному или болезнь Боуэна (akiec), базально-клеточная карцинома (bcc), доброкачественные кератоподобные поражения (солнечные лентиго или себорейные кератозы и плоский лишайподобные кератозы, bkl), дерматофиброма (df), меланома (mel), меланоцитарные невусы (nv) и сосудистых поражений (ангиомы, ангиокератомы, гноеродные гранулемы и кровоизлияния, vasc).

В качестве формата входных данных модели мы используем RecordIO формат. Это компактный формат, в котором данные изображений хранятся вместе для непрерывного чтения и, следовательно, для более быстрого и эффективного обучения. Кроме того, одной из проблем использования набора данных HAM10000 является дисбаланс классов. Следующая таблица иллюстрирует распределение классов.

Класс акиец BCC бкл df мед nv сосудистый
Количество изображений 327 514 1099 115 1113 6705 142
Всего 10015

Чтобы решить эту проблему, мы дополняем набор данных, используя случайные преобразования (такие как обрезка, переворот, зеркальное отображение и вращение), чтобы все классы содержали примерно одинаковое количество изображений.

На этом этапе предварительной обработки используются MXNet и OpenCV, поэтому используется предварительно созданный образ контейнера MXNet. Остальные зависимости устанавливаются с помощью requirements.txt файл. Если вы хотите создать и использовать собственный образ, см. Создавайте проекты Amazon SageMaker с конвейерами CI/CD для создания образов..

На этапе обучения мы используем оценщик, доступный из встроенного образа SageMaker Scikit Docker для классификации изображений, и устанавливаем следующие параметры:

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)

Дополнительные сведения об образе контейнера см. Алгоритм классификации изображений.

Создать проект Студии

Подробные инструкции по настройке Studio см. Подключение к домену Amazon SageMaker с помощью быстрой настройки. Чтобы создать свой проект, выполните следующие шаги:

  1. В Студии выберите Проекты меню на Ресурсы SageMaker .
    Создайте решение для классификатора поражений кожи компьютерного зрения с помощью Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
    На странице проектов вы можете запустить предварительно настроенный шаблон SageMaker MLOps.
  2. Выберите Шаблон MLOps для построения моделей, обучения и развертывания.
  3. Выберите Выберите шаблон проекта.
    Создайте решение для классификатора поражений кожи компьютерного зрения с помощью Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  4. Введите название проекта и краткое описание.
  5. Выберите Создать проект.

Создание проекта занимает несколько минут.

Подготовьте набор данных

Чтобы подготовить набор данных, выполните следующие шаги:

  1. Перейдите на Гарвардский источник данных.
  2. Выберите Доступ к набору данныхи ознакомьтесь с лицензией Creative Commons Attribution-NonCommercial 4.0 International Public License.
  3. Если вы принимаете лицензию, выберите Оригинальный формат ZIP и загрузите ZIP-файл.
  4. Создать Простой сервис хранения Amazon (Amazon S3) и выберите имя, начинающееся с sagemaker (это позволяет SageMaker получить доступ к корзине без каких-либо дополнительных разрешений).
  5. Вы можете включить ведение журнала доступа и шифрование в целях обеспечения безопасности.
  6. Загрузите dataverse_files.zip к ведру.
  7. Сохраните путь к корзине S3 для дальнейшего использования.
  8. Запишите имя сегмента, в котором вы сохранили данные, и имена всех последующих папок, чтобы использовать их позже.

Подготовьтесь к предварительной обработке данных

Поскольку на этапе предварительной обработки мы используем MXNet и OpenCV, мы используем предварительно созданный образ Docker MXNet и устанавливаем оставшиеся зависимости с помощью requirements.txt файл. Для этого вам нужно скопировать его и вставить под pipelines/skin в sagemaker--modelbuild хранилище. Кроме того, добавьте MANIFEST.in файл на том же уровне, что и setup.py, чтобы сообщить Python о необходимости включения requirements.txt файл. Для получения дополнительной информации о МАНИФЕСТ.в, Ссылаться на Включение файлов в исходные дистрибутивы с помощью MANIFEST.in. Оба файла можно найти в папке Репозиторий GitHub.

Изменение шаблона конвейеров

Чтобы обновить шаблон Pipelines, выполните следующие действия:

  1. Создайте папку внутри корзины по умолчанию.
  2. Убедитесь, что роль выполнения Studio имеет доступ к сегменту по умолчанию, а также к сегменту, содержащему набор данных.
  3. Из списка проектов выберите тот, который вы только что создали.
  4. На Хранилища вкладке выберите гиперссылки для локального клонирования AWS CodeCommit репозитории в ваш локальный экземпляр Studio.
    Создайте решение для классификатора поражений кожи компьютерного зрения с помощью Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  5. Перейдите в pipelines каталог внутри sagemaker--modelbuild каталог и переименуйте его abalone каталог для skin.
  6. Откройте приложение codebuild-buildspec.yml подать в sagemaker--modelbuild каталог и измените путь конвейера выполнения с run-pipeline —module-name pipelines.abalone.pipeline (строка 15) на следующее:
    run-pipeline --module-name pipelines.skin.pipeline 

  7. Сохраните файл.
  8. Замените файлы pipelines.py, preprocess.py, и evaluate.py в каталоге конвейеров с файлами из Репозиторий GitHub.
    Создайте решение для классификатора поражений кожи компьютерного зрения с помощью Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  9. Обновите preprocess.py файл (строки 183-186) с расположением S3 (SKIN_CANCER_BUCKET) и имя папки (SKIN_CANCER_BUCKET_PATH), куда вы загрузили dataverse_files.zip архив:
    1. skin_cancer_bucket=””
    2. skin_cancer_bucket_path=””
    3. skin_cancer_files=””
    4. skin_cancer_files_ext=””

В предыдущем примере набор данных будет храниться в папке s3://monai-bucket-skin-cancer/skin_cancer_bucket_prefix/dataverse_files.zip.

Создайте решение для классификатора поражений кожи компьютерного зрения с помощью Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Запуск запуска конвейера

Отправка зафиксированных изменений в репозиторий CodeCommit (выполняется на вкладке системы управления версиями Studio) запускает новый конвейер, поскольку Amazon EventBridge мониторы событий для коммитов. Мы можем отслеживать выполнение, выбрав конвейер внутри проекта SageMaker. На следующем снимке экрана показан пример успешно запущенного конвейера.

Создайте решение для классификатора поражений кожи компьютерного зрения с помощью Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

  1. Чтобы зафиксировать изменения, перейдите в раздел Git на левой панели.
  2. Внесите все необходимые изменения. Вам не нужно следить за -checkpoint файл. Вы можете добавить запись в .gitignore файл с *checkpoint.* игнорировать их.
  3. Подтвердите изменения, предоставив сводную информацию, а также свое имя и адрес электронной почты.
  4. Нажмите на изменения.
  5. Вернитесь в проект и выберите Трубопроводы .
  6. Если вы выберете текущие конвейеры, отобразятся этапы конвейера.
    Это позволяет отслеживать шаг, который выполняется в данный момент. Появление конвейера может занять несколько минут. Чтобы конвейер начал работать, необходимо выполнить шаги, определенные в CI/CD. codebuild-buildspec.yml должны успешно работать. Чтобы проверить статус этих шагов, вы можете использовать Сборка кода AWS. Для получения дополнительной информации см. AWS CodeBuild (AMS SSPS).
  7. Когда конвейер будет завершен, вернитесь на страницу проекта и выберите Модельные группы вкладка, чтобы проверить метаданные, прикрепленные к артефактам модели.
  8. Если все выглядит хорошо, выберите Состояние обновления вкладку и утвердите модель вручную. По умолчанию ModelApprovalStatus на PendingManualApproval. Если наша модель имеет точность более 60 %, она добавляется в реестр моделей, но не развертывается до тех пор, пока не будет завершено ручное утверждение.
  9. Перейдите в Endpoints на консоли SageMaker, где вы можете увидеть создаваемую промежуточную конечную точку. Через несколько минут конечная точка появится в списке с InService Статус.
  10. Чтобы развернуть конечную точку в рабочей среде, на CodePipeline консоль, выберите sagemaker--modeldeploy трубопровод, который находится в стадии разработки.
  11. В конце DeployStaging на этапе вам необходимо вручную утвердить развертывание.

После этого шага вы увидите, как производственная конечная точка развертывается на SageMaker. Endpoints страница. Через некоторое время конечная точка отобразится как InService.

Создайте решение для классификатора поражений кожи компьютерного зрения с помощью Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Убирать

Вы можете легко очистить все ресурсы, созданные проектом SageMaker.

  1. На панели навигации Studio выберите Ресурсы SageMaker.
  2. Выберите Проекты из раскрывающегося меню и выберите свой проект.
  3. На Действия Меню, выберите Удалить удалить все связанные ресурсы.

Создайте решение для классификатора поражений кожи компьютерного зрения с помощью Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Результаты и следующие шаги

Мы успешно использовали Pipelines для создания комплексной структуры MLOps для классификации поражений кожи с использованием встроенной модели на основе набора данных HAM10000. Для параметров, представленных в репозитории, на тестовом наборе мы получили следующие результаты.

Метрика Точность Вспоминать Счет F1
Значение 0.643 0.8 0.713

Вы можете работать над повышением производительности модели путем точной настройки ее гиперпараметров, добавления дополнительных преобразований для увеличения данных или использования других методов, таких как метод синтетической передискретизации меньшинства (SMOTE) или генеративно-состязательные сети (GAN). Кроме того, вы можете использовать собственную модель или алгоритм для обучения, используя встроенные образы SageMaker Docker или адаптируя собственный контейнер для работы с SageMaker. Для получения более подробной информации см. Использование контейнеров Docker с SageMaker.

Вы также можете добавить дополнительные функции в свой конвейер. Если вы хотите включить мониторинг, вы можете выбрать Шаблон MLOps для построения моделей, обучения, развертывания и мониторинга шаблон при создании проекта SageMaker. Полученная архитектура имеет дополнительный этап мониторинга. Или, если у вас есть сторонний репозиторий Git, вы можете использовать его, выбрав Шаблон MLOps для построения, обучения и развертывания моделей в сторонних репозиториях Git с использованием Jenkins. проект и предоставление информации как для построения моделей, так и для репозиториев развертывания моделей. Это позволяет вам использовать любой существующий код и экономит время и усилия при интеграции между SageMaker и Git. Однако для этого варианта AWS CodeStar подключение требуется.

Заключение

В этом посте мы показали, как создать комплексный рабочий процесс машинного обучения с помощью Studio и автоматизированных конвейеров. Рабочий процесс включает в себя получение набора данных, его сохранение в месте, доступном для модели машинного обучения, настройку образа контейнера для предварительной обработки, а затем изменение стандартного кода для размещения такого изображения. Затем мы показали, как запустить конвейер, шаги, которые выполняет конвейер, и как они работают. Мы также обсудили, как отслеживать производительность модели и развертывать ее в конечной точке.

Большую часть этих задач мы выполнили в Studio, которая действует как всеобъемлющая ML IDE и ускоряет разработку и развертывание таких моделей.

Это решение не привязано к задаче классификации скинов. Вы можете расширить его для любой задачи классификации или регрессии, используя любой из встроенных алгоритмов SageMaker или предварительно обученных моделей.


Об авторах

Создайте решение для классификатора поражений кожи компьютерного зрения с помощью Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай. Марием Ктири — консультант по искусственному интеллекту и машинному обучению в AWS Professional Services Globals и член команды здравоохранения и биологических наук (HCLS). Она увлечена созданием решений ML для различных проблем и всегда стремится использовать новые возможности и инициативы. Она живет в Мюнхене, Германия, и любит путешествовать и открывать для себя другие части света.

Создайте решение для классификатора поражений кожи компьютерного зрения с помощью Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Ясин Заафури — консультант по искусственному интеллекту и машинному обучению в отделе профессиональных услуг AWS. Он помогает корпоративным клиентам по всему миру создавать и развертывать решения AI/ML в облаке для решения своих бизнес-задач. В свободное время он любит играть, смотреть спортивные состязания и путешествовать по миру.

Создайте решение для классификатора поражений кожи компьютерного зрения с помощью Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Фотинос Кириакидес является инженером AI/ML в сфере профессиональных услуг в AWS. Он с энтузиазмом использует эту технологию для повышения ценности клиентов и достижения бизнес-результатов. База в Лондоне, в свободное время он любит бегать и исследовать окрестности.

Создайте решение для классификатора поражений кожи компьютерного зрения с помощью Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Анна Запаищикова был консультантом ProServe в области искусственного интеллекта и машинного обучения и членом Amazon Healthcare TFC. Она увлечена технологиями и тем влиянием, которое они могут оказать на здравоохранение. Ее опыт работы связан с созданием MLOps и решений на основе искусственного интеллекта для решения проблем клиентов в различных областях, таких как страхование, автомобилестроение и здравоохранение.

Отметка времени:

Больше от Машинное обучение AWS