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 você depure seu código Python de IA generativa e acompanhe as entradas e respostas, ajudando-o a descobrir condições ou parâmetros que contribuem para o baixo desempenho do seu aplicativo. MLflow O rastreamento é totalmente integrado às ferramentas e à infraestrutura do Databricks, permitindo armazenar e exibir todos os rastreamentos no Databricks Notebook ou na UI do MLflow Experiment à medida que o código é executado.

Quando o senhor desenvolve sistemas de AI em Databricks usando LangChain ou PyFunc, o MLflow Tracing permite que veja todos os eventos e saídas intermediárias de cada passo do seu agente. O senhor pode ver facilmente os prompts, quais modelos e recuperadores foram usados, quais documentos foram recuperados para aumentar a resposta, quanto tempo levou e o resultado final. Assim, 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 os seguintes benefícios para ajudá-lo a rastrear seu fluxo de trabalho de desenvolvimento.

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

  • Armazenar traços para revisão e avaliação off-line. Isso requer um endpoint de atendimento configurado para usar tabelas de inferência.

Instalar o MLflow Tracing

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

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

O senhor pode usar o MLflow Tracing em suas cargas de trabalho de desenvolvimento de agentes das seguintes maneiras:

  • Use a integração do MLflow Tracing com LangChain, mlflow.langchain. O senhor pode executar mlflow.langchain.autolog no seu agente e executar a invocação API para ver automaticamente os rastreamentos de cada passo do seu agente.

  • Se preferir, o senhor também pode adicionar manualmente rastreamentos a partes específicas do seu agente usando as APIs do Fluent ou as APIs do MLflow Client.

Adicionar traços a seus agentes

O MLflow Tracing oferece duas maneiras diferentes de usar traços em seu aplicativo de IA generativa com traços. Consulte Adicionar traços a seus agentes.

API

Descrição

APIs fluentes

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

O 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 requer mais código, mas oferece melhor controle sobre o ciclo de vida do rastreamento, especialmente para casos de uso com vários threads.

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

Para obter referência de API e exemplos de código, consulte a documentação do MLflow.

Habilitar tabelas de inferência para coletar traços

Para log traços em uma tabela de inferência, o senhor deve definir a variável de ambiente ENABLE_MLFLOW_TRACING na configuração do serviço endpoint como True. Consulte Adicionar texto simples variável de ambiente. 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 usando implantado().

Observação

A ativação do rastreamento pode introduzir alguma sobrecarga na velocidade de resposta do endpoint, especialmente 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.