MLflow Tracing para agentes

Importante

Esse recurso está em Prévia Pública.

Este artigo descreve o MLflow Tracing e os cenários em que ele é útil para avaliar os aplicativos de AI generativa em seu sistema de AI.

No desenvolvimento de software, o rastreamento envolve o registro de sequências de eventos, como sessões de usuário ou fluxos de solicitação. No contexto dos sistemas de IA, o rastreamento geralmente se refere às interações que o senhor tem com um sistema de IA. Um exemplo de rastreamento de um sistema de IA pode ser a instrumentação das entradas e dos parâmetros de um aplicativo RAG que inclui uma mensagem de usuário com prompt, uma pesquisa de vetor e uma interface com o modelo de IA generativo.

O que é MLflow Tracing?

Usando o MLflow Tracing, o senhor pode log, analisar e comparar traços em diferentes versões de aplicativos de IA generativa. Ele permite que o senhor depure seu código Python de IA generativa e acompanhe as entradas e respostas. Isso pode ajudá-lo a descobrir condições ou parâmetros que contribuem para o mau desempenho do seu aplicativo. MLflow O rastreamento é totalmente integrado às ferramentas e à infraestrutura do Databricks, permitindo que o usuário armazene e exiba todos os rastreamentos no Databricks Notebook ou na interface de usuário de experimentos do MLflow à medida que executa o código.

Quando o senhor desenvolve sistemas de AI em Databricks usando uma biblioteca como LangChain, LlamaIndex, OpenAI ou PyFunc personalizado, o MLflow Tracing permite que o senhor veja todos os eventos e saídas intermediárias de cada passo do seu agente. Você pode ver facilmente as instruções, quais modelos e recuperadores foram usados, quais documentos foram recuperados para aumentar a resposta, quanto tempo as coisas demoraram e a saída final. Por exemplo, se o seu modelo tiver alucinações, o senhor poderá inspecionar rapidamente cada passo que levou à alucinação.

Por que usar o MLflow Tracing?

O MLflow Tracing oferece vários benefícios para ajudá-lo a rastrear seu fluxo de trabalho de desenvolvimento. Por exemplo, você pode:

  • Analise uma visualização de rastreamento interativa e use a ferramenta de investigação para diagnosticar problemas no desenvolvimento.

  • Verifique se o padrão imediato e as grades de proteção estão produzindo resultados razoáveis.

  • Explore e minimize o impacto da latência de diferentes estruturas, modelos, tamanhos de partes e práticas de desenvolvimento de software.

  • Medir os custos do aplicativo acompanhando o uso de tokens por diferentes modelos.

  • Estabelecer um conjunto de dados de referência ("golden") para avaliar o desempenho de diferentes versões.

  • Armazene traços do endpoint do modelo de produção para depurar problemas e realizar revisão e avaliação off-line.

Instalar o MLflow Tracing

MLflow O rastreamento está disponível em MLflow nas versões 2.13.0 e acima.

%pip install mlflow>=2.13.0 -qqqU
%restart_python

Como alternativa, o senhor pode %pip install databricks-agents para instalar a versão mais recente do databricks-agents que inclui uma versão compatível do MLflow.

Usar o MLflow Tracing no desenvolvimento

O MLflow Tracing ajuda o senhor a analisar problemas de desempenho e a acelerar o ciclo de desenvolvimento do agente. As seções a seguir pressupõem que o senhor esteja realizando o desenvolvimento de agentes e MLflow Tracing a partir de um Notebook.

Observação

No ambiente do Notebook, o MLflow Tracing pode adicionar até alguns segundos de sobrecarga ao tempo de execução do agente. Isso se deve principalmente à latência dos traços de registro para o experimento MLflow. No endpoint do modelo de produção, o MLflow Tracing tem um impacto muito menor no desempenho. Consulte a seção Usar o rastreamento do MLflow na produção.

Observação

A partir de Databricks Runtime 15.4 LTS ML, o rastreamento MLflow é ativado por default no Notebook. Para desativar o rastreamento, por exemplo, com LangChain, o senhor pode executar mlflow.langchain.autolog(log_traces=False) no Notebook.

Adicione rastreamentos ao seu agente

O MLflow Tracing oferece três maneiras diferentes de usar traços em seu aplicativo de IA generativa com traços. Consulte Adicionar rastreamentos aos seus agentes para ver exemplos de como usar esses métodos. Para obter detalhes de referência da API, consulte a documentação do MLflow.

API

Caso de uso recomendado

Descrição

Autologação do MLflow

Desenvolvimento de uma biblioteca GenAI integrada

O Autologging instrumenta automaticamente os rastreamentos de estruturas populares de código aberto, como LangChain, LlamaIndex e OpenAI. Quando o senhor adiciona mlflow.<library>.autolog() no início do Notebook, o MLflow registra automaticamente os traços de cada passo da execução do agente.

APIs fluentes

Agente personalizado com Pyfunc

APIs de baixo código para instrumentar sistemas de IA sem se preocupar com a estrutura de árvore do rastreamento. O MLflow determina a estrutura de árvore pai-filho apropriada (spans) com base na pilha Python.

APIs de cliente do MLflow

Casos de uso avançados, como multithreading

MLflowClient implementa APIs mais granulares e thread-safe para casos de uso avançados. Esses APIs não gerenciam a relação pai-filho dos vãos, portanto, o senhor precisa especificá-la manualmente para construir a estrutura de rastreamento desejada. Isso exige mais código, mas oferece melhor controle sobre o ciclo de vida do rastreamento, especialmente para casos de uso com vários segmentos.

Recomendado para casos de uso que exigem mais controle, como aplicativos multithread ou instrumentação baseada em callback.

Revisando traços

Depois de executar o agente instrumentado, o senhor pode analisar os traços gerados de várias maneiras:

  • A visualização do traço é renderizada em linha na saída da célula.

  • Os traços são registros do seu experimento MLflow. O senhor pode revisar a lista completa de traços históricos e pesquisá-los em Traces tab na página Experiment. Quando o agente executa sob um ativo MLflow execução, o senhor também pode encontrar os rastros na página de execução.

  • Recupere programaticamente os rastros usando a API search_traces().

Usar o MLflow Tracing na produção

MLflow O rastreamento também está integrado ao Mosaic AI Model Servingpermitindo que o senhor depure problemas com eficiência, monitore o desempenho e crie um golden dataset para avaliação off-line. Quando o rastreamento do MLflow está ativado para o seu endpoint de serviço, os rastreamentos são registrados em uma tabela de inferência na coluna response.

Para ativar o MLflow Tracing para seu endpoint de serviço, o senhor deve definir a variável de ambiente ENABLE_MLFLOW_TRACING na configuração do endpoint como True. Consulte Adicionar variável de ambiente de texto simples para saber como implantar um endpoint com variável de ambiente personalizada. Se o senhor implantar seu agente usando o deploy() API os rastros são automaticamente registrados em uma tabela de inferência. Veja implantado um agente para aplicação generativa do AI .

Observação

A gravação de traços em uma tabela de inferência é feita de forma assíncrona, portanto, não adiciona a mesma sobrecarga que no ambiente do Notebook durante o desenvolvimento. No entanto, ele ainda pode introduzir alguma sobrecarga na velocidade de resposta do endpoint, principalmente quando o tamanho do rastreamento para cada solicitação de inferência é grande. A Databricks não garante nenhum acordo de nível de serviço (SLA) para o impacto real da latência em seu endpoint de modelo, pois isso depende muito do ambiente e da implementação do modelo. Databricks recomenda testar seu endpoint desempenho e obter percepções sobre a sobrecarga de rastreamento antes de implantá-lo em um aplicativo de produção.

A tabela a seguir fornece uma indicação aproximada do impacto na latência da inferência para diferentes tamanhos de rastreamento.

Tamanho do rastreamento por solicitação

Impacto na latência (ms)

~10 KB

~ 1 ms

~ 1 MB

50 ~ 100 ms

10 MB

150 ms ~

Limitações

  • MLflow O rastreamento está disponível em Databricks Notebook, Notebook Job e servindo modelo.

  • O autologging da LangChain pode não ser compatível com todas as APIs de previsão da LangChain. Consulte a documentação do MLflow para obter a lista completa de APIs compatíveis.