Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

Introdução à integração com o MLflow

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.

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:

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.

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 readWrite no 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.

O procedimento a seguir instala o pacote mlflow-mongodb e inicia um servidor MLflow que armazena dados no MongoDB:

1

Execute o seguinte comando para instalar o pacotemlflow-mongodb. O pacote também instala o MLflow.

python -m pip install mlflow-mongodb
2

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=majority

Para localizar sua string de conexão do Atlas , consulte Conectar-se a um cluster por meio de bibliotecas de clientes.

3

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.

O procedimento a seguir registra uma execução que armazena um parâmetro, uma métrica e um artefato:

1

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_type parameter

  • accuracy Métrica

  • run-summary.txt artefato

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)
2
python log_run.py

A saída inclui o ID de execução. O MLflow armazena o experimento, a execução, os parâmetros e as métricas no MongoDB e o artefato no armazenamento de artefatos que você configurou.

3

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:

IU do MLflow mostrando a página de execução com a métrica de precisão e o parâmetro model_type.

Para registrar um modelo, use um dos seguintes métodos:

  • Passe o argumento registered_model_name quando registrar um modelo usando um método log_model(), como mlflow.pyfunc.log_model().

  • Chame o método mlflow.register_model() e passe o URI de um modelo que foi executado registrado, como runs:/<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().

1

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")
2
python register_model.py
3

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:

IU do MLflow mostrando a versão 1 do mongodb-backend-demo-model com o alias mongo-verified e a tag validated_by.

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.

1

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")
2
python trace_agent.py
3

Abra o experimento agent-traces na interface do usuário do MLflow e clique em Traces. O rastreamento na interface do usuário do MLflow se assemelha à seguinte imagem:

Interface do usuário do MLflow mostrando a guia Traços do experimento de rastreamento de agente com um rastreamento registrado.

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.

Para saber mais sobre conceitos e funcionalidades do MLflow, consulte a seguinte documentação do MLflow:

Para saber mais sobre os conceitos deste tutorial, consulte os seguintes recursos: