Modelo de SciBERT fine-tuneado

Visualización del proceso completo de desarrollo de un modelo de ML, desde la recolección de datos hasta el despliegue en producción.

Flujo Completo del Pipeline

Arquitectura Dual de Pipelines MLSciBERT Fine-tuned + TF-IDF LogisticRegression → StreamlitPipeline 1: SciBERT Fine-tunedAnálisis Exploratorio
Se detectó un desbalance significativo entre las clases, con algunas categorías subrepresentadas. Esta información fue crucial para definir la estrategia de incremento posterior.
División Dataset
El dataset se dividió en tres partes:80% para entrenamiento,10% para validación y 10% para prueba. Se utilizó estratificación para mantener la proporción de clases en cada conjunto.La separación garantizó resultados no sesgados.
Gemini Flash 2.5
Se utilizó la API de Gemini Flash 2.5 para generar datos sintéticos (solamente para el conjunto de entrenamiento) mediante parafraseo de textos subrepresentados. Esto permitió balancear las clases minoritarias.
SciBERT Fine-tuning
Se usò SciBERT,modelo preentrenado específicamente en documentos científicos, como base para el fine-tuning. este se adaptó a nuestro dominio específico al entrenarse. Se ajustaron los hiperparámetros para meel rendimiento en la tarea de clasificación.
Optimización Umbrales
Se optimizaron los umbrales de clasificación utilizando el conjunto de validación para maximizar las métricas F1. Se probaron diferentes combinaciones de umbrales para cada clase de forma sistemática. El proceso incluyó análisis de curvas ROC y precision-recall.
HuggingFace Deploy
El modelo final fue subido a HuggingFace Hub para facilitar su distribución y uso. Se incluyó documentación completa del modelo, métricas de rendimiento y ejemplos de uso. La plataforma permite versionado y seguimiento de cambios. El modelo quedó disponible públicamente para la comunidad científica y aplicaciones downstream.
Pipeline 2: TF-IDF + LogisticRegressionPreparación scispaCy
Se utilizó el modelo en_core_sci_lg de scispaCy para preprocesamiento especializado en textos científicos. El proceso incluyó lematización, eliminación de stopwords y limpieza específica para el dominio médico.
División Multietiqueta
Se aplicó iterative_train_test_split para preservar la distribución de etiquetas multietiqueta. Los datos se organizaron en columnas binarias para cada dominio médico, garantizando representación equilibrada de todas las combinaciones.
TF-IDF Vectorizer
Se implementó vectorización TF-IDF con unigramas y bigramas para capturar patrones textuales relevantes. El vectorizador transformó texto preprocesado en features numéricas, ajustando parámetros como max_features y min_df para optimización.
OneVsRest + LogReg
Se utilizó OneVsRestClassifier con LogisticRegression para clasificación multietiqueta. El modelo se configuró con class_weight='balanced' para manejar desbalance de clases. Se implementó sklearn integrando vectorización y clasificación.
Evaluación y Serialización
Se evaluó el modelo usando métricas F1, precisión y recall por clase. Los resultados se guardaron en results/models/. El modelo y vectorizador se serializaron usando pickle para producción.
Streamlit App
Ambos pipelines convergen en una aplicación Streamlit que permite comparar predicciones simultáneamente. La interfaz unificada facilita el análisis conjunto de ambos enfoques (transformer vs tradicional). Los usuarios pueden evaluar la concordancia entre modelos y seleccionar el más apropiado según el contexto. La aplicación incluye visualizaciones y métricas de confianza para cada predicción.
CONVERGENCIA EN STREAMLIT
Built with v0