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:

  • Ferramenta interativa de visualização e investigação de traços 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.

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.

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().

Limitações

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

  • 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.