Are you sure you want to delete this access key?
Legend |
---|
DVC Managed File |
Git Managed File |
Metric |
Stage File |
External File |
Legend |
---|
DVC Managed File |
Git Managed File |
Metric |
Stage File |
External File |
¡Hola y bienvenido al proyecto Intelligent Credit Scoring Pipeline! 🎉 Soy Jorge, un apasionado de la ciencia de datos, y este proyecto es mi aventura para construir un sistema automatizado que predice puntajes crediticios de forma eficiente y confiable.
Crear un pipeline de MLOps que clasifique a las personas en tres categorías de puntaje crediticio: Poor, Standard y Good. Este sistema busca ayudar a instituciones financieras a evaluar riesgos crediticios rápidamente usando indicadores como ingresos, deudas y más.
data/
# Datos crudos y procesadosmodels/
# Modelos entrenadosgraphics/
# Curvas ROC, matrices de confusión, etc.metrics/
# CSVs de métricas y reportesinforme/
# Reportes EDA en HTMLsrc/
# Código fuenteconfig/
# Configuraciones en YAMLdeployment/
# Archivos para desplegar la API con BentoML y DockerScript | Función |
---|---|
preprocess.py |
Limpieza, codificación y split de los datos |
train.py |
Entrenamiento del modelo con optimización |
evaluate.py |
Evaluación con métricas, gráficas e informes |
run_pipeline.py |
Orquesta la ejecución completa del pipeline |
deployment/save_model_to_bentoml.py |
Registra el modelo en BentoML para despliegue |
deployment/service.py |
Define la API para predicciones |
MLflow Tracking: dagshub.com/JorgeDataScientist/MLOps_CreditScore.mlflow
preprocess.py
.run_pipeline.py
ejecuta todo el flujo secuencial.y_test
y métricas.n_jobs=-1
y n_iter
reducido.Clona el repositorio
git clone https://github.com/JorgeDataScientist/MLOps_CreditScore.git
cd MLOps_CreditScore
Instala dependencias
python -m venv env_pipeline
.\env_pipeline\Scripts\activate
pip install -r requirements.txt
Configura DAGsHub (opcional)
config/versioning_dagshub.yaml
con tu usuario y token.Ejecuta el pipeline
python src/run_pipeline.py
Explora los resultados
graphics/model_1/
metrics/model_1/
informe/model_1/informe.html
Gracias a la comunidad de código abierto por herramientas como scikit-learn, Hydra, MLflow y ydata-profiling. ¡Y gracias a ti por llegar hasta aquí! ¿Tienes ideas o quieres colaborar? 📬 ¡Contáctame en GitHub!
Esta sección detalla cómo desplegar el modelo de scoring crediticio como una API usando BentoML, empaquetarlo en un contenedor Docker, y subirlo a Docker Hub para compartirlo o desplegarlo en otros entornos. También incluye cómo registrar el modelo, listar los modelos guardados, y probar la API localmente.
Asegúrate de tener lo siguiente antes de proceder:
env_pipeline
.docker version
Antes de construir el contenedor Docker, es importante probar la API localmente para asegurarse de que todo funciona correctamente. Aquí están los pasos para hacerlo:
Navega al directorio de despliegue:
cd G:\MLOps Proyecto End_to_End\IntelligentCreditScoringPipeline\deployment
Levanta el servicio localmente con BentoML:
bentoml serve service.py:CreditScoringService --reload
service.py
.Una vez que el servidor esté en funcionamiento, la API estará disponible en:http://127.0.0.1:3000.
Accede a la documentación interactiva de la API a través de FastAPI en el navegador:
Para probar el endpoint /predict
, puedes enviar una solicitud POST con el siguiente JSON:
{
"input_data": {
"Edad": 40,
"Salario_Mensual": 16000,
"Num_Tarjetas_Credito": 2,
"Tasa_Interes": 3,
"Retraso_Pago": 1,
"Num_Pagos_Retrasados": 2,
"Cambio_Limite_Credito": 0,
"Num_Consultas_Credito": 2,
"Deuda_Pendiente": 1000,
"Edad_Historial_Credito": 5,
"Total_Cuota_Mensual": 200,
"Inversion_Mensual": 100,
"Saldo_Mensual": 1000,
"Comportamiento_de_Pago_High_spent_Large_value_payments": 0,
"Comportamiento_de_Pago_High_spent_Medium_value_payments": 0,
"Comportamiento_de_Pago_High_spent_Small_value_payments": 0,
"Comportamiento_de_Pago_Low_spent_Large_value_payments": 0,
"Comportamiento_de_Pago_Low_spent_Medium_value_payments": 1,
"Comportamiento_de_Pago_Low_spent_Small_value_payments": 0,
"Mezcla_Crediticia_Bad": 0,
"Mezcla_Crediticia_Good": 1,
"Mezcla_Crediticia_Standard": 0,
"Pago_Minimo_No": 1,
"Pago_Minimo_Yes": 0,
"Ocupacion_Architect": 0,
"Ocupacion_Developer": 1,
"Ocupacion_Doctor": 0,
"Ocupacion_Engineer": 0,
"Ocupacion_Entrepreneur": 0,
"Ocupacion_Journalist": 0,
"Ocupacion_Lawyer": 0,
"Ocupacion_Manager": 0,
"Ocupacion_Mechanic": 0,
"Ocupacion_Media_Manager": 0,
"Ocupacion_Musician": 0,
"Ocupacion_Scientist": 0,
"Ocupacion_Teacher": 0,
"Ocupacion_Writer": 0,
"debt_to_income": 0.833,
"payment_to_income": 0.033,
"credit_history_ratio": 0.167
}
}
O usa cURL para probarlo:
curl -X POST -H "Content-Type: application/json" -d "{\"input_data\": {\"Edad\": 40, ...}}" http://127.0.0.1:3000/predict
Salida esperada: Un JSON con la predicción, como:
{"predictions": ["Good"]}
Para detener el servidor, presiona Ctrl+C
en la terminal.
bentoml models list
.Una vez que hayas probado la API localmente, es hora de construir el Bento que empaquetará el modelo, el código y las dependencias. Aquí están los pasos:
Entra al directorio de despliegue:
cd G:\MLOps Proyecto End_to_End\IntelligentCreditScoringPipeline\deployment
Configura la codificación UTF-8 en Windows:
set PYTHONUTF8=1
Ejecuta el comando para construir el Bento:
bentoml build
Salida esperada: Un mensaje que confirma que el Bento se construyó correctamente, como:
Successfully built Bento(tag="credit_scoring_service_model_1:mrsbs4i4acecsaib").
Si falla, revisa los logs para identificar el error, como un modelo no encontrado o un conflicto de dependencias. Asegúrate de que el modelo esté registrado correctamente.
Ahora, crea una imagen Docker a partir del Bento generado. Ejecuta:
bentoml containerize credit_scoring_service_model_1:mrsbs4i4acecsaib
Salida esperada:
Successfully built Bento container for "credit_scoring_service_model_1:latest" with tag(s) "credit_scoring_service_model_1:mrsbs4i4acecsaib".
Para verificar que la imagen Docker se ha creado correctamente, ejecuta:
docker images
Salida esperada:
REPOSITORY TAG IMAGE ID CREATED SIZE
credit_scoring_service_model_1 mrsbs4i4acecsaib abc123def456 5 minutes ago 1.2GB
Si la imagen no aparece, asegúrate de que Docker esté corriendo y vuelve a ejecutar bentoml containerize
.
Ahora que tienes la imagen Docker, puedes ejecutar el contenedor y verificar que la API funcione correctamente:
docker run --rm -p 3000:3000 credit_scoring_service_model_1:mrsbs4i4acecsaib
Salida esperada:
2025-04-18TXX:XX:XX+0000 [INFO] [cli] Starting production HTTP BentoServer from "/home/bentoml/bento" listening on http://localhost:3000 (Press CTRL+C to quit)
2025-04-18TXX:XX:XX+0000 [INFO] [:1] Service credit_scoring_service_model_1 initialized
Luego, prueba la API en http://localhost:3000/docs o con cURL.
Una vez que todo esté funcionando, puedes subir la imagen a Docker Hub para compartirla o desplegarla en otros entornos. Aquí están los pasos:
Etiqueta la imagen para tu repositorio en Docker Hub:
docker tag credit_scoring_service_model_1:mrsbs4i4acecsaib <tu_usuario_dockerhub>/credit_scoring_service_model_1:mrsbs4i4acecsaib
Inicia sesión en Docker Hub:
docker login
Sube la imagen:
docker push <tu_usuario_dockerhub>/credit_scoring_service_model_1:mrsbs4i4acecsaib
Salida esperada:
The push refers to repository [docker.io/<tu_usuario_dockerhub>/credit_scoring_service_model_1]
abc123def456: Pushed
mrsbs4i4acecsaib: digest: sha256:xyz789... size: 1234
Verifica en Docker Hub que la imagen se haya subido correctamente.
Si deseas verificar que la imagen funcione correctamente, puedes descargarla y ejecutarla en otro entorno:
Descarga la imagen:
docker pull <tu_usuario_dockerhub>/credit_scoring_service_model_1:mrsbs4i4acecsaib
Ejecuta el contenedor:
docker run --rm -p 3000:3000 <tu_usuario_dockerhub>/credit_scoring_service_model_1:mrsbs4i4acecsaib
¡Y listo! Ahora tienes la API en producción y accesible desde cualquier lugar.
Puedes acceder a mi repositorio del contenedor de tu servicio de scoring crediticio en Docker Hub desde el siguiente enlace:
credit_scoring_service_model_1 en Docker Hub
Problema | Qué Hago |
---|---|
❌ Docker Desktop no responde | Inicia Docker Desktop y verifica con docker version . |
❌ Modelo no encontrado | Ejecuta bentoml models list para confirmar que credit_scoring_model_1 existe. Si no, re-ejecuta save_model_to_bentoml.py . |
❌ Error en bentoml build | Verifica requirements_clean.txt por conflictos. Asegúrate de que bentofile.yaml incluya el modelo correcto. |
❌ Error en bentoml containerize | Confirma que Docker Desktop está corriendo y que el Bento se construyó (bentoml list ). |
❌ Contenedor no inicia | Revisa los logs (docker logs <container_id> ) para errores como modelo faltante o puertos ocupados. |
❌ Error al subir a Docker Hub | Asegúrate de estar autenticado (docker login ) y que el nombre del repositorio sea correcto. |
❌ Terminal bloqueada por contenedor | Abre una nueva terminal o detén el contenedor con docker stop <container_id> . |
❌ API no responde | Verifica los logs del contenedor o del servidor (bentoml serve ). Prueba desde http://localhost:3000/docs . |
Ubicaciones:
C:\Users\<mi_usuario>\.bentoml\bentos\credit_scoring_service_model_1\mrsbs4i4acecsaib\
C:\Users\<mi_usuario>\.bentoml\models\credit_scoring_model_1\
Tags Dinámicos:
mrsbs4i4acecsaib
con el tag generado por bentoml build
.pkfagxy35cdvwaib
con el tag del modelo de bentoml models list
.API en Producción:
http://localhost:3000
(o http://127.0.0.1:3000
para pruebas locales).Escalabilidad:
Siguientes Pasos:
🧡 ¡Con este pipeline, puedo entrenar, evaluar y desplegar un modelo de scoring crediticio de manera automatizada, escalable y profesional! 🚀✨
Press p or to see the previous file or, n or to see the next file
Proyecto MLOps para analizar y predecir puntajes crediticios
https://creditscoringapp-k05t.onrender.comAre you sure you want to delete this access key?
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?