Una guía paso a paso para ajustar MedGemma para la clasificación de tumores de mama
Aviso legal Esta guía es solo para fines informativos y educativos y no reemplaza el consejo, diagnóstico o tratamiento médico profesional. MedGemma no debe usarse sin la validación, adaptación y modificación significativa por parte de desarrolladores para su caso de uso específico. Las salidas generadas por MedGemma no están destinadas a informar directamente diagnósticos clínicos, decisiones de manejo de pacientes, recomendaciones de tratamiento ni otras aplicaciones clínicas directas. Todos los resultados deben considerarse preliminares y requerir verificación independiente, correlación clínica e investigación adicional mediante metodologías de I D establecidas.
Resumen y objetivo En esta guía paso a paso reescribimos y traducimos el proceso para ajustar MedGemma con el objetivo de clasificar imágenes histopatológicas de cáncer de mama en ocho clases: cuatro benignas y cuatro malignas. El flujo incluye desde la preparación de datos hasta la evaluación del modelo fine tuned y las lecciones prácticas más importantes, útiles para equipos de datos y desarrolladores que trabajen en proyectos de IA para empresas.
Qué es MedGemma y por qué usarlo MedGemma es una familia de modelos abiertos orientados al ámbito médico, basada en la misma investigación que alimenta los modelos Gemini. Incluye un componente visual preentrenado en imágenes médicas desidentificadas y un componente de lenguaje entrenado en textos médicos. Para muchas tareas predictivas se puede optar solo por el componente visual MedSigLIP, pero aquí empleamos la variante completa de MedGemma para obtener la máxima capacidad predictiva en tareas clínicas complejas.
Datos y hardware Para entrenar usamos el dataset BreakHis, que contiene miles de imágenes de microscopía de tejidos mamarios con distintos aumentos. En el ejemplo práctico se trabajó con imágenes a 100X de la partición Fold 1. El entrenamiento se realizó en una GPU NVIDIA A100 con 40 GB de VRAM ejecutada en Vertex AI Workbench, lo que permitió aprovechar aceleraciones como los Tensor Cores y formatos numéricos modernos para un entrenamiento eficiente.
Lección clave sobre tipos numéricos Mi primer intento con formato float16 resultó en colapso numérico y valores NaN por overflow. La solución fue usar bfloat16 que mantiene el amplio rango numérico del float32 evitando desbordes y haciendo el ajuste estable. En la práctica, para modelos grandes siempre conviene preferir bfloat16 por estabilidad.
Flujo de trabajo resumido Paso 1 Instalación y autenticación Instalar bibliotecas del ecosistema Hugging Face y autenticarse de forma segura. Recomendación de seguridad Nunca incluir tokens o claves en el código. En entornos de producción usar gestores de secretos como Google Secret Manager. Paso 2 Descarga y preparación del dataset Descargar BreakHis, filtrar por magnificación y fold deseados, y crear particiones de entrenamiento y validación. Paso 2.1 Balanceo del conjunto Inicialmente las particiones estaban desbalanceadas entre benigno y maligno. Se aplicó undersampling del mayoritario para obtener conjuntos balanceados 50 50 que evitan sesgos durante el entrenamiento. Paso 2.2 Conversión al formato Hugging Face Convertir las imágenes y etiquetas a un Dataset compatible con Hugging Face facilita el procesamiento por lotes y el uso del SFTTrainer. Paso 3 Ingeniería de prompts Diseñar un prompt que instruya al modelo a devolver únicamente el número de clase facilita la evaluación automatizada. Este prompt se mapea sobre todos los ejemplos para crear ejemplos de entrenamiento en formato chat imagen-texto. Paso 4 Carga del modelo y processor Al cargar MedGemma se configuró torch_dtype en bfloat16 y attn_implementation en sdpa para aprovechar optimizaciones modernas en PyTorch 2.0. El processor prepara tanto imágenes como texto para el modelo, y se ajusta el padding para entrenamiento. Paso 5 Evaluación de línea base Antes de afinar se evaluó el modelo preentrenado para obtener un baseline. Métricas usadas: accuracy y F1 weighted. Resultados de línea base 8 clases accuracy 32.6 por ciento F1 weighted 0.241 Binario accuracy 59.6 por ciento F1 para la clase maligno 0.639
Few shot versus fine tuning Una alternativa al fine tuning es few shot, que consiste en añadir ejemplos en la prompt sin cambiar pesos del modelo. Few shot es útil cuando se usa un modelo cerrado vía API, pero como MedGemma es un modelo abierto pudimos fine tunearlo para convertirlo en un especialista del dominio, aprovechando el dataset de varias centenas de imágenes para aprender patrones más profundos.
Paso 6 Fine tuning con LoRA Para ahorrar memoria y acelerar el proceso se usó Low Rank Adaptation LoRA que congela los pesos base y entrena adaptadores pequeños. Configuración práctica recomendada rank 8, lora alpha 16 y lora dropout 0.1. Se empleó recolección de gradientes, checkpointing y un optimizador eficiente para grandes modelos. Es importante usar un collate_fn que prepare imágenes y texto y etiquete tokens de imagen como ignorados en la función de pérdida. Consejo práctico Si el entrenamiento se interrumpe se puede reanudar desde un checkpoint usando resume from checkpoint en el trainer, lo cual ahorra tiempo y recursos.
Duración del entrenamiento y resultado El ajuste en una A100 40GB duró en el ejemplo alrededor de 80 minutos y la pérdida de validación mostró una disminución sostenida durante el entrenamiento. Paso 7 Evaluación final y fusión de adaptadores Tras el entrenamiento se cargaron los adaptadores LoRA, se fusionaron con el modelo base y se reutilizó el processor guardado para evaluar.
Resultados finales 8 clases accuracy 87.2 por ciento F1 weighted 0.865 Binario accuracy 99.0 por ciento F1 para la clase maligno 0.991 Estos números muestran una mejora dramática tras el fine tuning, pasando de un comportamiento apenas mejor que el azar a un clasificador especialista altamente preciso.
Buenas prácticas y consideraciones éticas Siempre verificar y validar modelos con datos independientes, considerar riesgos de implementación clínica, y cumplir con normativas aplicables en salud. Todas las salidas de modelos de IA en medicina deben interpretarse como apoyo y requerir confirmación por profesionales de salud.
Cómo Q2BSTUDIO puede ayudar Q2BSTUDIO es una empresa de desarrollo de software y aplicaciones a medida especializada en inteligencia artificial, ciberseguridad y servicios cloud. Ofrecemos soluciones completas que van desde la creación de software a medida hasta despliegues escalables en la nube y pipelines de inteligencia de negocio. Si busca integrar soluciones de IA en su empresa o desarrollar un proyecto de software a medida visite nuestra página de servicios de inteligencia artificial en servicios de inteligencia artificial y si su objetivo es crear aplicaciones o software multiplataforma a medida puede conocer más en desarrollo de aplicaciones y software a medida.
Servicios y palabras clave Incluimos experiencia en aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA y power bi para impulsar proyectos desde la ideación hasta la producción. También ofrecemos auditorías de seguridad y pentesting para garantizar que las soluciones de IA y cloud se implementen con las mejores prácticas de protección.
Próximos pasos y recursos adicionales En una próxima entrega mostraremos cómo trasladar este flujo de trabajo a un entorno de producción con Cloud Run jobs y cómo calcular la VRAM necesaria para distintos tamaños de modelos. Para reproducir este ejemplo puede consultar el Finetune Notebook y adaptar las recomendaciones al hardware disponible. Si desea asesoría personalizada para llevar un proyecto similar a producción, el equipo de Q2BSTUDIO puede ayudar con diseño de arquitectura, integración continua, despliegue en AWS o Azure y monitorización postdespliegue.
Créditos y referencias Agradecimientos al equipo de MedGemma por las revisiones técnicas y a los autores del dataset BreakHis. Artículo científico de referencia F A Spanhol et al A dataset for breast cancer histopathological image classification IEEE Transactions on Biomedical Engineering 2016.
Comentarios