Inteligencia de datos generativa

Cree una aplicación de concordancia de frases médicas con BERT y Amazon SageMaker

Fecha:

Determinar la relevancia de una oración en comparación con un documento específico es esencial para muchos tipos diferentes de aplicaciones en diversas industrias. En esta publicación, nos enfocamos en un caso de uso dentro del campo de la salud para ayudar a determinar la precisión de la información sobre la salud del paciente.

Con frecuencia, durante cada visita de un paciente, se crea un nuevo documento con la información de la visita. Esta información a menudo consiste en una transcripción médica dictada por la enfermera o el médico. Dicho documento puede contener una breve descripción (también conocida como reafirmación) que explica los detalles principales de esa visita específica del paciente. En visitas futuras, los médicos pueden confiar en las modificaciones de las visitas anteriores para obtener rápidamente una descripción general del estado general del paciente. Estas reformulaciones también se pueden utilizar durante las transferencias de pacientes. Sin embargo, esto introduce la posibilidad de que se cometan errores durante la transferencia de pacientes a nuevos equipos médicos si las reformulaciones son difíciles de entender o si contienen información inadecuada (Staggers et. Alabama. 2011). Por lo tanto, es importante contar con una descripción precisa del estado del paciente, porque el costo de los errores en tales reformulaciones puede ser alto y puede afectar negativamente la atención general del paciente (García et. Alabama. 2017).

Esta publicación lo guía a través de cómo implementar un modelo de aprendizaje automático (ML) que tiene como objetivo determinar las oraciones principales del documento que mejor coinciden con la reformulación del documento correspondiente; este puede ser un primer paso para garantizar la precisión de los registros de salud del paciente en general al determinar la relevancia de la reformulación. Enfatizamos que este modelo determina las oraciones de mayor rango que coinciden con la reformulación; no genera la reformulación en sí.

Al crear esta solución, nos enfrentamos a un desafío de doble cara. Más allá del desafío técnico de crear realmente un modelo AI / ML, varios componentes circundantes complican el uso de tales modelos en el mundo real. De hecho, el código ML real puede ser una parte muy pequeña del sistema en su conjunto (Sculley y col. 2015). Esto es especialmente cierto en arquitecturas complejas que se implementan con frecuencia en el contexto del espacio de las ciencias de la vida y la salud.

Nos enfocamos en un desafío en particular: crear la capacidad de servir el modelo para que otros (aplicaciones, servicios o personas) puedan usarlo. Por servicio un modelo, queremos otorgar a otros la capacidad de pasar nuevos datos al modelo para que puedan obtener las predicciones que necesitan. Esta publicación proporciona una descripción general amplia del problema, la solución y algunos puntos a tener en cuenta si planea utilizar un enfoque similar en sus propios casos de uso. Una descripción técnica completa, que incluye un archivo Léame y una implementación paso a paso de la arquitectura, está disponible en GitHub. repositorio de código. Para obtener más información sobre los enfoques para servir modelos, consulte Cree, entrene e implemente un modelo de aprendizaje automático con Amazon SageMaker y Contenedores de aprendizaje profundo de AWS en Amazon ECS.

Antecedentes y caso de uso

En el campo médico (así como en otras industrias), los documentos se asocian frecuentemente con un texto de reformulación más corto del documento original. Usamos el término reexpresión, pero de hecho este texto más corto puede ser un resumen, resaltado, descripción u otros metadatos sobre el documento. Por ejemplo, un resumen clínico posterior a la visita que se le da a un paciente resume el contenido de la visita del paciente a un médico.

Con fines ilustrativos, el siguiente es un ejemplo que no está relacionado con la industria médica.

Documento:

El lunes por la mañana, Joshua tomó un gran desayuno con tocino y huevos. Luego fue a dar un paseo rápido. Finalmente, regresó a casa y se sentó en su escritorio.

Reexpresión:

Joshua salió a caminar.

En este ejemplo, la reformulación es solo una nueva redacción de la oración resaltada en el documento completo. Este ejemplo muestra que, aunque el caso de uso en el que nos enfocamos en esta publicación es específico del campo médico, puede usar y modificar este enfoque para muchas otras aplicaciones de análisis de texto.

Ahora echemos un vistazo más de cerca al caso de uso de esta publicación. Usamos datos tomados de MTMuestras (del cual descargamos de Kaggle). Estos datos contienen muchas muestras diferentes de textos médicos transcritos. Incluye documentos con transcripciones en bruto de notas de muestra, así como descripciones más breves de esas notas (que tratamos como reformulaciones).

El siguiente es un ejemplo del conjunto de datos MTSamples.

Documento:

HISTORIA DE LA ENFERMEDAD ACTUAL: Hoy he visto ABC. Es un caballero muy agradable que tiene 42 años y pesa 344 libras. Mide 5'9 ″. Tiene un IMC de 51. Ha tenido sobrepeso durante diez años desde los 33 años, en su nivel más alto pesaba 358 libras, en su nivel más bajo, 260. Está realizando intentos quirúrgicos de pérdida de peso para sentirse bien, recuperarse y comenzar a hacer ejercicio nuevamente. Quiere poder hacer ejercicio y jugar al voleibol. Físicamente, es lento. Se cansa rápidamente. No sale a menudo. Cuando pierde peso, siempre lo recupera y recupera más de lo que perdió. Su mayor pérdida de peso es de 25 libras y pasaron tres meses antes de que lo recuperara. Estuvo seis meses sin beber alcohol y sin ingerir muchas calorías. Ha estado en múltiples programas comerciales de pérdida de peso, incluido Slim Fast durante un mes hace un año y Atkin's Diet durante un mes hace dos años., HISTORIA MÉDICA PASADA: Tiene dificultad para subir escaleras, dificultad para sentarse en los asientos de avión, atarse los zapatos, solía asientos públicos, dificultad para caminar, colesterol alto y presión arterial alta. Tiene asma y dificultad para caminar dos cuadras o dar de ocho a diez pasos. Tiene apnea del sueño y ronca. Es diabético, está tomando medicamentos. Tiene dolor en las articulaciones, dolor de rodilla, dolor de espalda, dolor de pie y tobillo, hinchazón de piernas y pies. Tiene hemorroides., HISTORIA QUIRÚRGICA PASADA:, Incluye cirugía ortopédica o de rodilla., HISTORIA SOCIAL:, Actualmente es soltero. Bebe alcohol de diez a doce tragos a la semana, pero no bebe cinco días a la semana y luego bebe en exceso. Fuma un paquete y medio al día durante 15 años, pero recientemente dejó de fumar durante las últimas dos semanas. HISTORIA FAMILIAR: Obesidad, enfermedades cardíacas y diabetes. Los antecedentes familiares son negativos para hipertensión y accidente cerebrovascular., MEDICAMENTOS ACTUALES :, Incluyen Diovan, Crestor y Tricor., HISTORIA VARIOS / COMIDA:, Dice que un par de amigos suyos han tenido ataques cardíacos y han muerto. Solía ​​beber todos los días, pero dejó de beber hace dos años. Ahora solo bebe los fines de semana. Está en su segunda semana de Chantix, que es un medicamento para dejar de fumar por completo. Al comer, come comida mala. El es soltero. Come cosas como tocino, huevos y queso, hamburguesas con queso, comida rápida, come cuatro veces al día, a las siete de la mañana, al mediodía, a las 9 p.m. y a las 2 a.m. Actualmente pesa 344 libras y 5'9 ″. Su peso corporal ideal es de 160 libras. Tiene 184 libras de sobrepeso. Si perdiera el 70% de su exceso de peso corporal, serían 129 libras y eso lo reduciría a 215. REVISIÓN DE SISTEMAS: Negativo para cabeza, cuello, corazón, pulmones, GI, GU, ortopédico o piel. También es positivo para la gota. Niega dolor en el pecho, ataque cardíaco, enfermedad de las arterias coronarias, insuficiencia cardíaca congestiva, arritmia, fibrilación auricular, marcapasos, embolia pulmonar o ACV. Niega insuficiencia venosa o tromboflebitis. Niega dificultad para respirar, EPOC o enfisema. Niega problemas de tiroides, dolor de cadera, osteoartritis, artritis reumatoide, ERGE, hernia hiatal, enfermedad de úlcera péptica, cálculos biliares, vesícula biliar infectada, pancreatitis, hígado graso, hepatitis, sangrado rectal, pólipos, incontinencia de heces, incontinencia urinaria de esfuerzo o cáncer. Niega celulitis, pseudotumor cerebral, meningitis o encefalitis., EXAMEN FISICO:, Está alerta y orientado x 3. Los nervios craneales II-XII están intactos. El cuello es suave y flexible. Pulmones: presenta sibilancias bilaterales positivas. El corazón tiene un ritmo y una frecuencia regulares. Su abdomen es blando. Le he explicado los riesgos y las posibles complicaciones del bypass gástrico laparoscópico en detalle y estos incluyen sangrado, infección, trombosis venosa profunda, embolia pulmonar, fuga de la gastroyeyunoanastomosis, yeyunoyeyunoanastomosis y posible obstrucción intestinal, entre otras posibles complicaciones. Él entiende. Quiere continuar con el diagnóstico y la evaluación para el bypass gástrico en Y de Roux laparoscópico. Necesitará obtener una carta de aprobación del Dr. XYZ. Necesitará ver a un nutricionista y un trabajador de salud mental. Necesitará una endoscopia superior del Dr. XYZ. Tendrá que ir al Dr. XYZ ya que anteriormente tuvo un estudio del sueño. Necesitaremos otro estudio del sueño. Necesitará pruebas de H. pylori, pruebas de función tiroidea, LFT, hemoglobina glicosilada y azúcar en sangre en ayunas. Una vez realizado esto, lo enviaremos para la aprobación del seguro.

Reexpresión:

Consultar por bypass gástrico laparoscópico.

Aunque el documento de la transcripción en bruto es bastante largo, solo algunas de las oraciones parecen estar relacionadas con la afirmación "Consultar por bypass gástrico laparoscópico". Destacamos dos oraciones dentro del documento que intuitivamente podría pensar que mejor coinciden con la reformulación. El enfoque que implementamos cuantifica las similitudes e informa las oraciones en el documento que mejor se ajustan a la reformulación. Hicimos esto usando un preentrenado BERTI modelo de lenguaje entrenado específicamente en textos clínicos (publicado por Alsentzer et. Alabama. 2019). El modelo en sí está alojado por AbrazandoCara, una plataforma para compartir proyectos de procesamiento de lenguaje natural (NLP) de código abierto. Usamos este modelo para calcular similitudes oración por oración usando el transformar oraciones Biblioteca de Python.

Es importante señalar que en este ejemplo y en esta solución, estamos realizando la clasificación de oraciones sin extraer y detectar explícitamente las entidades médicas. Sin embargo, muchas aplicaciones se basan en extraer y analizar explícitamente diagnósticos, medicamentos y otra información de salud. Para detectar entidades médicas como afecciones médicas, medicamentos y otra información médica en un texto médico, considere usar Amazon Comprende Médico, un servicio elegible de HIPAA creado para extraer información médica de texto médico no estructurado.

Más información sobre este enfoque está disponible en nuestro redacción técnica.

Diagrama de arquitectura

En esta sección, repasaremos el diagrama de arquitectura para esta solución en un nivel muy alto. Para obtener más detalles y ver el marco paso a paso, consulte nuestro redacción técnica.

En la fase de desarrollo y prueba del modelo, utilizamos Estudio Amazon SageMaker. Studio es un potente entorno de desarrollo integrado (IDE) para crear, entrenar, probar e implementar modelos de ML. Debido a que usamos un modelo prediseñado para esta solución, no necesitamos usar toda la capacidad de Studio para entrenar algoritmos a escala. En su lugar, lo usamos con fines de desarrollo e implementación.

Creamos un cuaderno de Jupyter que puede importar a Studio. Este cuaderno lo guía a través de todo el proceso de desarrollo e implementación. Comenzamos escribiendo el código de nuestro modelo en un archivo. Luego, el modelo se construye utilizando un Nginx/Frasco framework, para que se le puedan pasar nuevos datos en el momento de la inferencia. Antes de implementar el modelo, lo empaquetamos como un Contenedor Docker, constrúyelo usando Construcción de código AWSy empújelo para Registro de contenedores elásticos de Amazon (Amazon ECR). Luego implementamos el modelo usando Servicio de contenedor elástico de Amazon (Amazon ECS).

El resultado final es un modelo que puede consultar mediante una simple llamada a la API. Este es un punto importante: la capacidad de consultar modelos a través de una capacidad API es un componente esencial para diseñar interfaces escalables y fáciles de usar. Para más información, ver Implementación de microservicios en AWS.

Después de implementar nuestro modelo, creamos una interfaz gráfica de usuario (usando iluminado) para que se pueda acceder fácilmente a nuestro modelo a través de una página web. Streamlit es una biblioteca de código abierto que se utiliza para crear interfaces para aplicaciones de aprendizaje automático. Después de crear nuestra página web, la implementamos de manera similar a como implementamos nuestro modelo: lo empaquetamos como un contenedor Docker separado, lo construimos usando CodeBuild, lo enviamos a Amazon ECR y lo implementamos usando Amazon ECS.

Al crear e implementar esta página web, brindamos a los usuarios sin experiencia en programación la capacidad de usar nuestro modelo para probar sus propios documentos y reformulaciones. La siguiente captura de pantalla muestra el aspecto de la página web.

Después de que el usuario ingresa su reformulación y el documento correspondiente, se devuelven los cinco resultados principales (las cinco oraciones que mejor coinciden con la declaración). Si implementa la solución completa utilizando nuestro ejemplo original de MTSamples, el resultado final se parece a la siguiente captura de pantalla.

La solución reporta los siguientes resultados:

  • Las cinco primeras oraciones del documento que mejor se ajustan a la reformulación.
  • La distancia de similitud entre cada oración y la reformulación. Una distancia menor significa similitudes más cercanas entre esa oración y la oración de reafirmación.

En este ejemplo, la frase que mejor coincide es "Quiere continuar con el diagnóstico y la evaluación para el bypass gástrico en Y de Roux laparoscópico" con una distancia de 0672. Por lo tanto, este enfoque ha identificado correctamente una oración dentro del documento que coincide con la reformulación.

Limitaciones

Como cualquier algoritmo, este enfoque tiene algunas limitaciones. Por ejemplo, este enfoque no está diseñado para manejar casos en los que la reformulación del documento es en realidad metadatos de alto nivel sobre el documento que no están directamente relacionados con el texto del documento en sí. Puede resolver estos casos de uso utilizando Amazon Comprehend modelos personalizados. Para más información, ver Comprensión personalizada y Creación de un clasificador personalizado con Amazon Comprehend.

Otra limitación de nuestro enfoque es que no maneja explícitamente la negación (palabras como "no", "no" y "niega"), lo que puede cambiar el significado del texto. Servicios de AWS como Amazon Comprehend y Amazon Comprende Médico utilice modelos de aprendizaje profundo para manejar la negación.

Conclusión

En esta publicación, analizamos los pasos de alto nivel para implementar un modelo de PNL prediseñado para analizar textos médicos. Si está interesado en implementar esto usted mismo, consulte nuestro paso a paso redacción técnica.

Referencias

Para obtener más información, consulte las siguientes referencias:


Acerca de los autores

Josué Broyde es un arquitecto de soluciones especializado en IA / ML en el equipo de ciencias biológicas y atención médica global de Amazon Web Services. Trabaja con clientes en la industria de la salud y las ciencias de la vida en todos los niveles del ciclo de vida del aprendizaje automático en varios frentes de AI / ML, incluido el análisis de imágenes y videos médicos, el análisis de datos de sensores de máquinas y la realización del procesamiento en lenguaje natural de textos médicos y de atención médica.

 

claire palmer es arquitecto de soluciones en Amazon Web Services. Ella está en el equipo de desarrollo de cuentas globales, brindando apoyo a los clientes de las ciencias de la salud y la salud. A Claire le apasiona impulsar iniciativas de innovación y desarrollar soluciones que sean seguras y escalables. Tiene su sede en Seattle, Washington y disfruta explorando el PNW en su tiempo libre.

Coinsmart. Mejor Bitcoin-Börse en Europa
Fuente: https://aws.amazon.com/blogs/machine-learning/build-a-medical-sentence-matching-application-using-bert/

punto_img

Información más reciente

punto_img

Habla con nosotros!

¡Hola! ¿Le puedo ayudar en algo?