Segmentación de tumores cerebrales a escala con AWS Inferentia

Las imágenes médicas son una herramienta importante para el diagnóstico y la localización de enfermedades. Durante la última década, las colecciones de imágenes médicas han crecido rápidamente y los depósitos abiertos como The Cancer Imaging Archive e Imaging Data Commons han democratizado el acceso a estos vastos datos de imágenes. Las herramientas computacionales como el aprendizaje automático (ML) y la inteligencia artificial (AI) han surgido como una opción efectiva y viable para el análisis rápido de estos datos de imágenes. Se han desarrollado muchos algoritmos para diferentes tipos de análisis de imágenes. Estos incluyen clasificación, segmentación y localización, por nombrar algunos. Sin embargo, el desarrollo del algoritmo y el entrenamiento del modelo ML requerido es solo una pieza del rompecabezas ML/AI más grande.

La implementación rentable y de alto rendimiento del modelo también es vital. Además, para que un modelo sea útil a escala, debe implementarse para la inferencia en un entorno confiable y escalable.

En esta publicación, analizamos un posible enfoque del uso de tecnologías nativas de AWS para implementar algoritmos de aprendizaje automático a escala para un caso de uso de imágenes médicas. Hablamos sobre la segmentación de un tumor a partir de resonancias magnéticas cerebrales y cubrimos la arquitectura de la solución, la infraestructura informática y los resultados.

Descripción general de la solución

La solución propuesta en esta publicación se basa en un U-red modelo usando el popular Keras marco y con un conjunto de datos de muestra de los populares Kaggle plataforma de competencia.

Luego, el modelo U-net entrenado se procesa a través del SDK de AWS Neuron para que pueda optimizarse para apuntar a las instancias Inf1 de Amazon EC2, con AWS Inferentia, el primer acelerador de aprendizaje automático de AWS optimizado para la inferencia.

La solución utiliza una arquitectura elástica administrada con almacenamiento rápido para garantizar que se mantenga un alto rendimiento en cada capa de la solución. El siguiente diagrama describe la arquitectura general.

La idea central de la arquitectura propuesta gira en torno a un clúster elástico de contenedores impulsados ​​por AWS Inferentia que se ejecutan en Amazon Elastic Container Service (Amazon ECS) y sirven un modelo U-net optimizado a través de AWS Neuron SDK.

Los nodos de inferencia: AWS Inferentia

AWS ofrece varias formas de implementar un modelo de aprendizaje profundo en la nube. Una opción utiliza AWS Inferentia, que es un chip de inferencia ML de alto rendimiento diseñado por AWS.

AWS Inferentia ofrece hasta un 80 % menos de costo por inferencia y un rendimiento hasta 2,3 veces mayor que las instancias comparables de Amazon Elastic Compute Cloud (Amazon EC2) basadas en GPU de la generación actual. Con las instancias Inf1, puede ejecutar aplicaciones de inferencia de ML a gran escala para una variedad de casos de uso de imágenes médicas. El SDK de AWS Neuron optimiza los modelos para su implementación en instancias con tecnología de AWS Inferentia.

AWS Neuron consta de un compilador, tiempo de ejecución y herramientas de creación de perfiles que ayudan a optimizar el rendimiento de las cargas de trabajo para AWS Inferentia.

Con AWS Neuron, los desarrolladores pueden implementar modelos de redes neuronales utilizando marcos populares como PyTorch o TensorFlow en instancias EC2 Inf1 basadas en AWS Inferentia.

El flujo de trabajo para implementar un modelo de aprendizaje profundo entrenado en un nodo de inferencia acelerado de AWS Inferentia consta de los siguientes pasos:

  1. Entrenar un modelo de red neuronal.
  2. Procese el modelo entrenado a través del Compilador de AWS Neuron para generar un modelo neuronal entrenado optimizado para AWS Inferentia.
  3. Utilizar el Tiempo de ejecución de AWS Neuron para cargar el modelo optimizado de AWS Inferentia en instancias EC2 Inf1 y ejecutar solicitudes de inferencia.

Inferencia a escala: una arquitectura elástica para AWS Inferentia

La elasticidad de la arquitectura está determinada por una función de AWS Lambda y una cola de Amazon Simple Queue Service (Amazon SQS) que recibe solicitudes de segmentaciones iniciadas simplemente cargando el volumen que debe segmentarse en un depósito de Amazon Simple Storage Service (Amazon S3).

El clúster de AWS Inferentia ECS se alimenta de un sistema de archivos Amazon FSx for Lustre de alto rendimiento, que acelera las cargas de trabajo informáticas con almacenamiento compartido que proporciona latencias inferiores a un milisegundo, hasta cientos de GB/s de rendimiento y millones de IOPS.

El siguiente diagrama describe la arquitectura que permite que el clúster de AWS Inferentia sea elástico y se escale dinámicamente según la cantidad de solicitudes de inferencia enviadas a todo el sistema.

En esta arquitectura, un actor empuja un volumen de imagen a un depósito S3. Una vez que el volumen de la imagen se carga en el depósito S3, se activa una función Lambda mediante la notificación de eventos integrada de Amazon S3.

Esta función coloca la clave S3 del volumen de la imagen en una cola de solicitudes implementada a través de Amazon SQS. Al mismo tiempo, le indica al clúster de AWS Inferentia ECS que inicie una nueva tarea para procesar el volumen de la imagen cargada.

Para complementar esta arquitectura, otra función de Lambda obtiene la profundidad de la cola de SQS y usa este valor para modular el tamaño del clúster de ECS, agregando o eliminando nodos según la profundidad de la cola.

Para garantizar que el clúster de ECS se pueda alimentar constantemente con datos, se coloca un sistema de archivos FSx for Lustre de alto rendimiento frente al clúster de ECS. Aquí, mediante la integración automatizada de FSx for Lustre con Amazon S3, los datos cargados en la zona de aterrizaje del depósito S3 se ponen a disposición automáticamente en el sistema de archivos FSx for Lustre y están listos para ser consumidos por el clúster de ECS.

Resultados de inferencia

Las siguientes imágenes de muestra muestran los resultados de una tarea de clasificación de tumores cerebrales (segmentación multiclase) realizada con la arquitectura descrita en esta publicación.

La siguiente figura muestra los resultados de referencia de AWS Inferentia frente a la GPU NVIDIA Tesla V100-SXM2-16GB.

Conclusión

Las imágenes médicas son una herramienta importante para el diagnóstico y la localización de enfermedades. Con la creciente demanda de diagnóstico de varias modalidades, por ejemplo de unidades de emergenciala necesidad de herramientas automatizadas para aislar y apoyar a radiólogos y médicos en el diagnóstico de diversas patologías es cada vez más importante.

En esta publicación, exploramos el uso de tipos de instancias EC2 Inf1 con aceleración de AWS Inferentia para crear una arquitectura de inferencia elástica que pueda admitir la demanda de inferencia en constante aumento y mantener los costos bajo control.

Para obtener más información sobre cómo AWS está acelerando la innovación en el cuidado de la salud, visite AWS for Health.


Sobre el Autor

Carlos Benedetto es el arquitecto de soluciones sénior para imágenes médicas y atención médica en Amazon Web Services en Europa, Medio Oriente y África. Su trabajo se centra en ayudar a los clientes de imágenes médicas y atención médica a resolver problemas comerciales mediante el aprovechamiento de la tecnología. Benedetto tiene más de 15 años de experiencia en tecnología e imágenes médicas y ha trabajado para empresas como Canon Medical Research y Vital Images. Benedetto recibió su maestría summa cum laude en Ingeniería de Software de la Universidad de Palermo, Italia.

Fuente del artículo

Deja un comentario