You can integrate MongoDB with MLflow to store your MLflow tracking and model registry data in MongoDB. MLflow is an open-source platform for managing the lifecycle of machine learning and GenAI applications. The mlflow-mongodb integration works with Atlas, MongoDB Enterprise Advanced, and MongoDB Community Edition deployments that run MongoDB 8.0 or later. This page shows how to configure MLflow to use MongoDB, log a run, register a model, and capture traces from a GenAI application.
Overview
El paquete mlflow-mongodb es un complemento de MLflow que se ejecuta dentro de su servidor MLflow. El complemento almacena únicamente los siguientes metadatos de MLflow en MongoDB:
Seguimiento de datos: experimentos, ejecuciones, parámetros, métricas, modelos registrados y trazas. Un experimento agrupa ejecuciones relacionadas. Una ejecución registra una única ejecución de su código, incluyendo sus parámetros y métricas. Una traza registra los pasos de una aplicación GenAI, como las llamadas a LLM y a herramientas.
Los artefactos son los archivos que generan las ejecuciones, como archivos de modelo, imágenes y cargas útiles de seguimiento. MLflow escribe los artefactos en un almacén de artefactos independiente, no en MongoDB. Este tutorial almacena los artefactos en el disco local del servidor MLflow. Para implementaciones en producción, configure un almacén de artefactos como Amazon S3.
Puedes configurar el almacén de seguimiento y el registro de modelos de forma independiente. Por ejemplo, un almacén puede usar MongoDB mientras que el otro usa un backend de MLflow diferente. Este tutorial utiliza MongoDB para ambos almacenes.
Requisitos previos
Antes de comenzar, asegúrate de tener lo siguiente:
Una implementación de MongoDB que ejecuta la versión 8.0 o posterior.
Un usuario de base de datos con acceso de lectura y escritura a la base de datos que almacena sus datos de MLflow.
Acceso a la red desde su servidor MLflow hasta la implementación.
Python 3.11 a 3.14.
MLflow 3.5 o una versión posterior 3.x.
Nota
Los pasos de configuración varían según el tipo de implementación:
Atlas: Crea un usuario de base de datos. Luego, agrega la dirección IP de tu servidor MLflow a la lista de acceso de tu proyecto.
Edición Enterprise Advanced y Community: Cree un usuario con el rol
readWriteen la base de datos que almacena sus datos de MLflow. Asegúrese de que su servidor MLflow pueda conectarse al host y puerto de la implementación.
Instalar y configurar
El siguiente procedimiento instala el paquete mlflow-mongodb e inicia un servidor MLflow que almacena datos en MongoDB:
Prepara tu cadena de conexión.
El complemento requiere el nombre de la base de datos que almacena sus datos de MLflow en la ruta de la cadena de conexión. Reemplace los marcadores de posición en las siguientes cadenas de conexión con sus valores:
mongodb+srv://<db_username>:<db_password>@<cluster-host>/<database>?retryWrites=true&w=majorityPara encontrar su cadena de conexión de Atlas, consulte Conectarse a un clúster mediante bibliotecas cliente.
mongodb://<db_username>:<db_password>@<host>:<port>/<database>?retryWrites=true&w=majorityPara obtener más información sobre las cadenas de conexión autogestionadas, consulte Cadenas de conexión.
Inicie el servidor MLflow.
Ejecute los siguientes comandos para iniciar el servidor. Reemplace <connection-string> con la cadena de conexión del paso anterior:
export TRACKING_STORE_URI="<connection-string>"export REGISTRY_STORE_URI="<connection-string>"export MLFLOW_BIND_HOST="127.0.0.1"export MLFLOW_BIND_PORT="5000"
mlflow server \ --backend-store-uri "${TRACKING_STORE_URI}" \ --registry-store-uri "${REGISTRY_STORE_URI}" \ --host "${MLFLOW_BIND_HOST}" \ --port "${MLFLOW_BIND_PORT}"MLflow almacena los artefactos en el directorio mlartifacts del servidor. Para ver la interfaz de usuario de MLflow, abra http://127.0.0.1:5000 en su navegador.
Registra una carrera
El siguiente procedimiento registra una ejecución que almacena un parámetro, una métrica y un artefacto:
Crea el archivo de ejemplo.
El siguiente ejemplo crea un experimento llamado mongodb-backend-demo y luego inicia una ejecución llamando al método mlflow.start_run(). La ejecución registra los siguientes elementos:
model_typeparameteraccuracyMétricarun-summary.txtartefacto
Los ejemplos de este tutorial se conectan al servidor mediante el método mlflow.set_tracking_uri(). Para conectar clientes MLflow sin modificar el código del cliente, establezca la variable de entorno MLFLOW_TRACKING_URI en http://127.0.0.1:5000.
Guarda el siguiente código en un archivo llamado log_run.py:
import mlflow
mlflow.set_tracking_uri("http://127.0.0.1:5000")mlflow.set_experiment("mongodb-backend-demo")
with mlflow.start_run() as run: mlflow.log_param("model_type", "example") mlflow.log_metric("accuracy", 0.92) mlflow.log_text("Hello from the MongoDB backend", "run-summary.txt") print("run_id:", run.info.run_id)Visualiza la ejecución en la interfaz de usuario de MLflow.
En tu navegador, ve a http://127.0.0.1:5000 y abre el experimento mongodb-backend-demo. En la pestaña Runs, selecciona la ejecución para ver sus parámetros, métricas y artefactos. La ejecución en la interfaz de usuario de MLflow se parece a la siguiente imagen:

Registro de modelos
Para registrar un modelo, utilice uno de los siguientes métodos:
Pase el argumento
registered_model_namecuando registre un modelo utilizando un métodolog_model(), comomlflow.pyfunc.log_model().Llama al método
mlflow.register_model()y pasa la URI de un modelo que se haya registrado en una ejecución, como por ejemploruns:/<run-id>/model.
Cada vez que registres un modelo con un nombre existente, MLflow creará una nueva versión de ese modelo. Para administrar las versiones, usa los métodos MlflowClient, como set_registered_model_alias() y set_model_version_tag().
Crea el archivo de ejemplo.
El siguiente ejemplo llama al método log_model() y registra el modelo como mongodb-backend-demo-model. A continuación, el código establece el alias y la etiqueta. Guarda el archivo como register_model.py:
import mlflowfrom mlflow import MlflowClientfrom mlflow.pyfunc import PythonModel
mlflow.set_tracking_uri("http://127.0.0.1:5000")mlflow.set_experiment("mongodb-backend-demo")
class EchoModel(PythonModel): def predict(self, context, model_input): return model_input
with mlflow.start_run(): mlflow.pyfunc.log_model( name="model", python_model=EchoModel(), registered_model_name="mongodb-backend-demo-model", )
client = MlflowClient()client.set_registered_model_alias("mongodb-backend-demo-model", "mongo-verified", 1)client.set_model_version_tag("mongodb-backend-demo-model", 1, "validated_by", "doc-test")Visualice el modelo en la interfaz de usuario de MLflow.
En tu navegador, ve a http://127.0.0.1:5000, haz clic en Registered Models y selecciona mongodb-backend-demo-model para ver sus versiones, alias y etiquetas. La nueva versión del modelo en la interfaz de usuario de MLflow se parece a la siguiente imagen:

Rastreo y observabilidad de GenAI
MLflow Tracing registra las entradas, salidas y la duración de cada paso en su aplicación o agente LLM. Cuando utiliza MongoDB para el almacenamiento de seguimiento, MLflow guarda los seguimientos y sus intervalos en MongoDB.
Habilitar el rastreo.
Para habilitar el rastreo, utilice uno de los siguientes métodos:
Llama al método
mlflow.<flavor>.autolog()para rastrear las llamadas a un marco o proveedor compatible, como OpenAI o LangChain. Para obtener más información, consulta la sección de Rastreo automático en la documentación de MLflow.Agregue el decorador
@mlflow.tracea las funciones que desea rastrear.
El siguiente ejemplo utiliza el decorador @mlflow.trace para rastrear una función que llama a un agente. Guarde el archivo como trace_agent.py:
import mlflow
mlflow.set_tracking_uri("http://127.0.0.1:5000")mlflow.set_experiment("agent-traces")
mlflow.tracedef call_agent(prompt: str) -> str: # Replace this line with your actual LLM or agent call return f"Echo: {prompt}"
call_agent("Summarize this document")Nota
El almacenamiento y la recuperación de trazas dependen de la versión de MLflow. Los clientes de MLflow 3.5 suben cargas útiles completas de trazas al almacén de artefactos del experimento. MongoDB almacena los intervalos. En MLflow 3.6 y versiones posteriores, los clientes recuperan las trazas directamente de MongoDB. Las métricas de traza agregadas requieren MLflow 3.9 o posterior.
Próximos pasos
Para obtener más información sobre los conceptos y las características de MLflow, consulte la siguiente documentación de MLflow:
Obtén más información
Para aprender más sobre los conceptos de este tutorial, consulta los siguientes recursos:
