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