Athrun Data Intelligence


Preparación

Databricks ha unido fuerzas con el Fundación Virtud a través de Databricks for Good, una iniciativa de colchoneta que brinda servicios profesionales gratuitos para impulsar el impacto social. A través de esta asociación, Virtue Foundation avanzará en su empresa de convidar atención médica de calidad en todo el mundo mediante la optimización de una infraestructura de datos de vanguardia.

Estado flagrante del maniquí de datos

La Virtue Foundation utiliza fuentes de datos estáticas y dinámicas para conectar a los médicos con oportunidades de voluntariado. Para asegurar que los datos se mantengan actualizados, el equipo de datos de la ordenamiento implementó canales de recuperación de datos basados ​​en API. Si correctamente la linaje de información básica, como nombres de organizaciones, sitios web, números de teléfono y direcciones, está automatizada, los detalles especializados, como especialidades médicas y regiones de actividad, requieren un esfuerzo manual significativo. Esta dependencia de procesos manuales limita la escalabilidad y reduce la frecuencia de las actualizaciones. Por otra parte, el formato tabular del conjunto de datos presenta desafíos de usabilidad para los usuarios principales de la Fundación, como médicos e investigadores académicos.

Estado deseado del maniquí de datos

En epítome, Virtue Foundation tiene como objetivo asegurar que sus conjuntos de datos principales estén constantemente actualizados, sean precisos y fácilmente accesibles. Para hacer verdad esta visión, los servicios profesionales de Databricks diseñaron y construyeron los siguientes componentes.

Como se muestra en el diagrama precursor, utilizamos un clásico bloque de medallón para orquestar y procesar nuestros datos. Nuestras fuentes de datos incluyen una variedad de API y entradas basadas en la web, que primero ingerimos en una zona de aterrizaje de bronce a través de procesos Spark por lotes. Luego, estos datos sin procesar se refinan en una capa plateada, donde limpiamos y extraemos metadatos mediante procesos incrementales de Spark, generalmente implementados con transmisión estructurada.

Una vez procesados, los datos se envían a dos sistemas de producción. En el primero, creamos un conjunto de datos tabulares sólidos que contiene información esencial sobre hospitales, ONG y entidades relacionadas, incluida su ubicación, información de contacto y especialidades médicas. En el segundo, implementamos una canalización de ingesta basada en LangChain que fragmenta e indexa de forma incremental datos de texto sin formato en una búsqueda vectorial de Databricks.

Desde la perspectiva del becario, estos conjuntos de datos procesados ​​son accesibles a través de vfmatch.org y están integrados en un chatbot de gestación aumentada de recuperación (RAG), alojado en Databricks AI Playground, lo que proporciona a los usuarios una potente aparejo de exploración de datos interactiva.

Opciones de diseño interesantes

La gran mayoría de este esquema aprovechó técnicas ETL normalizado; sin confiscación, hubo algunas técnicas intermedias y avanzadas que resultaron valiosas en esta implementación.

Sincronización CDC bidireccional de MongoDB

La Virtue Foundation utiliza MongoDB como capa de servicio para su sitio web. Conectar Databricks a una colchoneta de datos externa como MongoDB puede ser arduo conveniente a limitaciones de compatibilidad: es posible que ciertas operaciones de Databricks no sean totalmente compatibles con MongoDB y al contrario, lo que complica el flujo de transformaciones de datos entre plataformas.

Para solucionar esto, implementamos una sincronización bidireccional que nos brinda control total sobre cómo se fusionan los datos de la capa plateada en MongoDB. Esta sincronización mantiene dos copias idénticas de los datos, por lo que los cambios en una plataforma se reflejan en la otra según la frecuencia de activación de la sincronización. En un nivel detención, hay dos componentes:

  1. Sincronizando MongoDB con Databricks: Usando MongoDB cambiar flujoscapturamos cualquier aggiornamento realizada en MongoDB desde la última sincronización. Con el streaming estructurado en Databricks, aplicamos una merge explicación en el interior forEachBatch() para perseverar las tablas de Databricks actualizadas con estos cambios.
  2. Sincronización de ladrillos de datos con MongoDB: Siempre que se producen actualizaciones en el costado de Databricks, las capacidades de procesamiento incremental de la transmisión estructurada nos permiten dirigir estos cambios a MongoDB. Esto garantiza que MongoDB permanezca sincronizado y refleje con precisión los datos más recientes, que luego se entregan a través del sitio web vfmatch.org.

Esta configuración bidireccional garantiza que los datos fluyan sin problemas entre Databricks y MongoDB, manteniendo uno y otro sistemas actualizados y eliminando silos de datos.

Gracias Alan Reese por poseer esta habitación!

Upsert basado en GenAI

Para activar la integración de datos, implementamos un enfoque basado en GenAI para extraer y fusionar información hospitalaria a partir de bloques de texto de sitios web. Este proceso implica dos pasos esencia:

  1. Extrayendo información: Primero, utilizamos GenAI para extraer detalles críticos del hospital a partir de texto no estructurado en varios sitios web. Esto se hace con una simple llamamiento a Meta’s llama-3.1-70B sobre puntos finales del maniquí fundamental de Databricks.
  2. Creación y fusión de claves primarias: Una vez extraída la información, generamos una esencia primaria basada en una combinación de ciudad, país y nombre de entidad. Luego utilizamos umbrales de distancia de incrustación para determinar si la entidad coincide en la colchoneta de datos de producción.

Tradicionalmente, esto habría requerido técnicas de coincidencia difusa y conjuntos de reglas complejos. Sin confiscación, al combinar la distancia de integración con reglas deterministas simples, por ejemplo, coincidencia exacta por país, pudimos crear una opción que es efectiva y relativamente simple de construir y perseverar.

Para la iteración flagrante del producto, utilizamos los siguientes criterios coincidentes:

  1. Código del país coincidencia exacta.
  2. Estado/Región o Ciudad coincidencia aproximada, que permite ligeras diferencias en la ortografía o el formato.
  3. Nombre de la entidad incorporando similitud de coseno, permitiendo variaciones comunes en la representación del nombre, por ejemplo, “St. John” y “Saint Johns”. Tenga en cuenta que todavía incluimos un puertas de distancia ajustable para determinar si un humano debe revisar el cambio antaño de fusionarse.

Gracias Patricio Leahey ¡Por la increíble idea de diseño y por implementarla de principio a fin!

Implementaciones adicionales

Como se mencionó, la infraestructura más amplia sigue la bloque y las prácticas normalizado de Databricks. Aquí hay un desglose de los componentes esencia y los miembros del equipo que lo hicieron posible:

  • Ingestión de fuente de datos: Utilizamos solicitudes de API basadas en Python y Spark por lotes para una ingesta de datos válido. Muchas gracias a Niranjan Sarvi ¡Por liderar este esfuerzo!
  • Medallón ETL: La bloque Medallion funciona con transmisión estructurada y linaje de entidades basada en LLM, lo que enriquece nuestros datos en cada capa. agradecimiento singular a Martina Desender ¡Por su invaluable trabajo en este componente!
  • Ingestión de tabla de origen RAG: Para completar nuestra tabla de origen de gestación aumentada de recuperación (RAG), utilizamos agentes LangChain, transmisión estructurada y Databricks. Felicitaciones a Renuka Naidu ¡Por construir y optimizar este ambiente crucial!
  • Tienda de vectores: Para el almacenamiento de datos vectorizados, implementamos Databricks Vector Search y la infraestructura DLT de soporte. Muchas gracias a Theo Randolph ¡Por diseñar y construir la traducción original de este componente!

Compendio

A través de nuestra colaboración con Virtue Foundation, estamos demostrando el potencial de los datos y la IA para crear un impacto universal duradero en la atención médica. Desde la ingesta de datos y la linaje de entidades hasta la recuperación-generación aumentada, cada etapa de este esquema es un paso con destino a la creación de un mercado de datos enriquecido, automatizado e interactivo. Nuestros esfuerzos combinados están preparando el tablado para un futuro basado en datos en el que los conocimientos sobre atención médica sean accesibles para quienes más los necesitan.

Si tiene ideas sobre compromisos similares con otras organizaciones sin fines de beneficio globales, háganoslo asimilar en (correo electrónico protegido).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *