Você pode integrar o MongoDB ao MLflow para armazenar seus dados de registro de modelo e rastreamento do MLflow no MongoDB. O MLflow é uma plataforma de código aberto para gerenciar o ciclo de vida de aplicativos de aprendizado de máquina e GenAI. A integração mlflow-mongodb funciona com sistemas do Atlas, Enterprise Advanced e MongoDB Community Edition que executam o MongoDB 8.0 ou posterior. Esta página mostra como configurar o MLflow para usar o MongoDB, registrar uma execução, registrar um modelo e capturar rastreamentos de um aplicação GenAI.
Visão geral
O pacote mlflow-mongodb é um plugin-in MLflow executado dentro do servidor MLflow. O plugin-in armazena apenas os seguintes metadados do MLflow no MongoDB:
Dadosde rastreamento: experimentos, execuções, parâmetros, métricas, modelos registrados e rastreamentos. Um experimento agrupa execuções relacionadas. Uma execução registra uma execução do seu código, incluindo seus parâmetros e métricas. Um rastreamento registra as etapas de um aplicação GenAI, como chamadas LLM e chamadas de ferramentas.
Artefatos são os arquivos produzidos por suas execuções, como arquivos de modelo, imagens e cargas de rastreamento. O MLflow grava artefatos em um armazenamento de artefatos separado, não no MongoDB. Este tutorial armazena artefatos no disco local do servidor MLflow. Para sistemas de produção, configure um armazenamento de artefatos como o Amazon S3.
Você pode configurar o armazenamento de rastreamento e o armazenamento de registro do modelo de forma independente. Por exemplo, uma loja pode usar o MongoDB enquanto a outra usa um backend do MLflow diferente. Este tutorial usa MongoDB para ambas as lojas.
Pré-requisitos
Antes de começar, certifique-se de ter o seguinte:
Um sistema do MongoDB que executa o MongoDB versão 8.0 ou posterior.
Um usuário de banco de dados com acesso de leitura e gravação ao banco de dados que armazena seus dados do MLflow.
Acesso à rede do seu servidor MLflow para o sistema.
Python 3.11 a 3.14.
MLflow 3.5 ou uma versão 3.x posterior.
Observação
As etapas de configuração diferem de acordo com o tipo de sistema:
Atlas: Crie um usuário de banco de dados. Em seguida, adicione o endereço IP do seu servidor MLflow à lista de acesso do seu projeto.
Enterprise Advanced e Community Edition: crie um usuário com a função
readWriteno banco de dados que armazena seus dados do MLflow. Certifique-se de que seu servidor MLflow possa se conectar ao host e à porta do sistema.
Instalar e Configurar
O procedimento a seguir instala o pacote mlflow-mongodb e inicia um servidor MLflow que armazena dados no MongoDB:
Prepare sua string de conexão.
O plugin requer o nome do banco de dados que armazena seus dados do MLflow no caminho da string de conexão. Substitua os espaços reservados nas seguintes connection strings pelos seus valores:
mongodb+srv://<db_username>:<db_password>@<cluster-host>/<database>?retryWrites=true&w=majorityPara localizar sua string de conexão do Atlas , consulte Conectar-se a um cluster por meio de bibliotecas de clientes.
mongodb://<db_username>:<db_password>@<host>:<port>/<database>?retryWrites=true&w=majorityPara saber mais sobre connection strings autogerenciadas, consulte Connection strings.
Inicie o servidor MLflow.
Execute os seguintes comandos para iniciar o servidor. Substitua <connection-string> pela string de conexão da etapa 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}"O MLflow armazena artefatos no diretório mlartifacts no servidor. Para visualizar a interface do usuário do MLflow, abra http://127.0.0.1:5000 em seu navegador.
Registrar uma execução
O procedimento a seguir registra uma execução que armazena um parâmetro, uma métrica e um artefato:
Crie o arquivo de exemplo .
O exemplo a seguir cria um experimento chamado mongodb-backend-demo e, em seguida, inicia uma execução chamando o método mlflow.start_run(). A execução registra os seguintes itens:
model_typeparameteraccuracyMétricarun-summary.txtartefato
Os exemplos neste tutorial se conectam ao servidor chamando o método mlflow.set_tracking_uri(). Para conectar clientes MLflow sem alterar o código do cliente , defina a variável de ambiente MLFLOW_TRACKING_URI como http://127.0.0.1:5000.
Salve o seguinte código em um arquivo chamado 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)Visualize a execução na interface do usuário do MLflow.
No seu navegador, vá para http://127.0.0.1:5000 e abra a experiência mongodb-backend-demo. Na aba Runs, selecione a execução para visualizar seus parâmetros, métricas e artefatos. A execução na interface do usuário do MLflow é semelhante à seguinte imagem:

Registro de modelo
Para registrar um modelo, use um dos seguintes métodos:
Passe o argumento
registered_model_namequando registrar um modelo usando um métodolog_model(), comomlflow.pyfunc.log_model().Chame o método
mlflow.register_model()e passe o URI de um modelo que foi executado registrado, comoruns:/<run-id>/model.
Cada vez que você registra um modelo com um nome existente, o MLflow cria uma nova versão desse modelo. Para gerenciar versões, use métodos MlflowClient, como set_registered_model_alias() e set_model_version_tag().
Crie o arquivo de exemplo .
O exemplo seguinte chama o método log_model() e registra o modelo como mongodb-backend-demo-model. O código então define o alias e a marcação. Salve o arquivo 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")Visualize o modelo na interface do usuário do MLflow.
No seu navegador, vá até http://127.0.0.1:5000, clique em Registered Models e selecione mongodb-backend-demo-model para visualizar suas versões, aliases e tags. A nova versão do modelo na interface do usuário do MLflow se assemelha à seguinte imagem:

Rastreamento e observabilidade da GenAI
O rastreamento do MLflow registra as entradas, saídas e duração de cada etapa em seu aplicação ou agente LLM. Quando você usa o MongoDB para o armazenamento de rastreamento, o MLflow armazena rastreamentos e seus intervalos no MongoDB.
Habilitar rastreamento.
Para habilitar o rastreamento, use uma das seguintes abordagens:
Chame o método
mlflow.<flavor>.autolog()para rastrear chamadas para uma estrutura ou provedor compatível, como OpenAI ou LangChain. Para saber mais, consulte Rastreamento automático na documentação do MLflow.Adicione o gravador
@mlflow.traceàs funções que você deseja rastrear.
O exemplo a seguir usa o gravador @mlflow.trace para rastrear uma função que chama um agente. Salve o arquivo 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")Observação
O armazenamento e a recuperação de rastreamentos dependem da sua versão do MLflow. Os clientes do MLflow 3.5 carregam cargas úteis de rastreamento completas para o armazenamento de artefatos do experimento. O MongoDB armazena os spans. No MLflow 3.6 e posterior, os clientes recuperam rastreamentos diretamente do MongoDB. As métricas de rastreamento agregadas exigem MLflow 3.9 ou posterior.
Próximos passos
Para saber mais sobre conceitos e funcionalidades do MLflow, consulte a seguinte documentação do MLflow:
Saiba mais
Para saber mais sobre os conceitos deste tutorial, consulte os seguintes recursos:
