HeadlinesBriefing favicon HeadlinesBriefing.com

De modelo a servicio: ML útil con FastAPI

Towards Data Science •
×

Hace unos meses, intenté desafiarme a mí mismo a emprender un viaje para pasar de un背景 de análisis de datos a ingeniería de datos. Hasta ahora he construido un total de dos proyectos reales impactantes que realmente me enseñaron algo útil. Construí un pipeline ET L de Git Hub que extrae repositorios de Git Hub y los carga en una base de datos SQLite — esto se ejecutaba en un horario usando Git Hub Actions.

También construí un pipeline RSS que extrae artículos de feeds RSS y los almacena en una base de datos Kestra — orquestado por Kestra para ejecutarse en un horario por hora. Ahora que he entendido ET L hasta cierto punto, quería probar algo nuevo. Quería seguir practicando todo lo que he aprendido en el pasado mientras construyo algo nuevo.

Siempre me había fascinado el campo del aprendizaje automático, pero nunca tuve el valor de entrar porque pensaba que tenía matemáticas complejas. Ya no. Recientemente, construí un modelo de predicción de churn para una empresa de telecomunicaciones ficticia que llamo Northline Mobile (P.

D. Estoy usando una empresa ficticia porque entiendo las cosas mejor con escenarios del mundo real). Le proporcioné datos de 7043 clientes, indicándole si se habían inscrito en un contrato de 1 año o planes mensuales, duración del cliente, cargos mensuales, complementos, etc. Además, le dije quién eventualmente dejó Northline Mobile.

Validé cruzadamente el modelo con clientes que aún no había visto. Alcanzó una precisión del 81%. Esto me enseñó todo lo que implica construir un modelo.

Obviamente no entendí todo el código complejo, porque prefiero interfaces intuitivas de arrastrar y soltar en lugar de código complejo. Pero entendí los bloques de construcción esenciales para construir un modelo; lo explicaré más a continuación con una arquitectura simplificada. Así que construir este modelo se sintió como una victoria desde la perspectiva del aprendizaje automático; mi modelo funcionaba.

Pero todavía había un problema: todavía no era realmente útil. Asumiendo que un empleado de Northline que necesitaba una predicción viene a mí, tendría que abrir Jupyter, cargar el notebook correcto, ejecutar las celdas en el orden correcto y hacer una llamada manual a predict_churn(). Sí, el modelo existe, pero yo era el único que sabía cómo usarlo.

Nadie más en Northline podía simplemente enviar información sobre un cliente al modelo y recuperar una predicción y tampoco podía comunicarse con ninguna otra aplicación. Este artículo cubrirá esto. Recientemente aprendí que hay una diferencia entre tener un modelo y tener un servicio.

Si un modelo solo está en un notebook, solo la persona que lo construyó puede usarlo. Pero convertirlo en un servicio hace posible que todos lo usen, otros equipos, aplicaciones, paneles y sistemas que no necesitan saber o preocuparse cómo se hace la predicción. Resulta que construir el modelo de aprendizaje automático fue la parte más fácil, pero hacerlo útil es otro elemento crucial que vale la pena explorar.

Lo que "Hecho" significaba antes de la APIAquí está aproximadamente cómo se veía construir el modelo: Eso es prácticamente todo. Nada demasiado sofisticado. Al final de eso, tenía un clasificador de churn entrenado, un pipeline de preprocesamiento que limpiaba y codificaba los datos sin procesar, y números de evaluación con los que estaba cómodo (más sobre esos números en breve, no son perfectos y no voy a pretender que lo sean).

Pero como dije. Asumiendo que el equipo de retención de Northline construye un panel, y quieren que marque automáticamente a los clientes en riesgo. Su panel no puede razonablemente abrir mi notebook de Jupyter y ejecutar mis celdas.

Necesita algo completamente diferente. Algo como esto: Ese es el cambio que cubre este artículo. Una rápida advertencia, sin embargo: este no es un tutorial de Fast API.

Fast API es simplemente la herramienta que usé para exponer el modelo como...