Rastreamento do MLflow para agentes
Importante
Esse recurso está em uma versão prévia.
Esse artigo descreve o MLflow Tracing e os cenários em que é útil para avaliar aplicações de IA generativas no seu sistema de IA.
No desenvolvimento de software, o rastreamento envolve a gravação 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 você tem com um sistema de IA. Um rastreamento de exemplo de um sistema de IA pode parecer instrumentar as entradas e parâmetros para um aplicativo RAG que inclui uma mensagem de usuário com solicitação, uma pesquisa de vetor e uma interface com o modelo de IA generativa.
O que é o Rastreamento do MLflow?
Usando o Rastreamento do MLflow, você pode registrar, analisar e comparar rastreamentos em diferentes versões de aplicativos de IA generativa. Ele permite depurar seu código Python de IA generativa e acompanhar as entradas e respostas. Isso pode ajudá-lo a descobrir condições ou parâmetros que contribuem para o baixo desempenho do seu aplicativo. O Rastreamento do MLflow é fortemente integrado às ferramentas e à infraestrutura do Databricks, permitindo que você armazene e exiba todos os seus rastreamentos nos notebooks do Databricks ou na interface do usuário do experimento do MLflow enquanto você executa seu código.
Quando você desenvolve sistemas de IA no Databricks usando bibliotecas como LangChain, LlamaIndex, OpenAI ou PyFunc personalizado, o MLflow Tracing permite que você veja todos os eventos e saídas intermediárias de cada etapa do seu agente. Você pode ver facilmente as solicitações, quais modelos e recuperadores foram usados, quais documentos foram recuperados para aumentar a resposta, quanto tempo as coisas levaram e a saída final. Por exemplo, se seu modelo alucinar, você pode inspecionar rapidamente cada etapa que levou à alucinação.
Por que usar o Rastreamento do MLflow?
O Rastreamento do MLflow fornece diversos benefícios para ajudá-lo a acompanhar seu fluxo de trabalho de desenvolvimento. Por exemplo, você pode:
- Reveja uma visualização de rastreamento interativa e utilize a ferramenta de investigação para diagnosticar problemas no desenvolvimento.
- Verifique se os modelos de solicitação e os verificadores de integridade 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 token por modelos diferentes.
- Estabeleça conjuntos de dados de parâmetro de comparação ("golden") para avaliar o desempenho de diferentes versões.
- Armazene rastreamentos de pontos de extremidade do modelo de produção para depurar problemas e execute revisão e avaliação offline.
Instalar o Rastreamento do MLflow
O Rastreamento do MLflow está disponível nas versões do MLflow 2.13.0 e superiores.
%pip install mlflow>=2.13.0 -qqqU
%restart_python
Como alternativa, você 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 Rastreamento do MLflow no desenvolvimento
O Rastreamento do MLflow ajuda você a analisar problemas de desempenho e acelerar o ciclo de desenvolvimento do agente. As seções a seguir pressupõem que você esteja conduzindo o desenvolvimento do agente e o rastreamento do MLflow a partir de um notebook.
Observação
No ambiente de notebook, o Rastreamento do MLflow pode adicionar alguns segundos de sobrecarga ao tempo de execução do agente. Isso vem principalmente da latência dos rastreamentos de log para o experimento de MLflow. No ponto de extremidade do modelo de produção, o Rastreamento do MLflow tem um impacto muito menor no desempenho. Consulte Usar o rastreamento do MLflow na produção.
Observação
A partir do Databricks Runtime 15.4 LTS ML, o rastreamento do MLflow é habilitado por padrão em notebooks. Para desativar o rastreamento com LangChain, por exemplo, você pode executar mlflow.langchain.autolog(log_traces=False)
em seu notebook.
Adicionar rastreamentos ao seu agente
O Rastreamento do MLflow fornece três maneiras diferentes de usar rastreamentos com o seu aplicativo de IA generativa com rastreamentos. Consulte Adicionar rastreamentos aos seus agentes para obter exemplos de como usar esses métodos. Para detalhes da referência de API, veja a documentação do MLflow.
API | Caso de uso recomendado | Descrição |
---|---|---|
Registro automático do MLflow | Desenvolvimento em bibliotecas de GenAI integradas | Registro automático de rastreamentos de instrumentos para estruturas populares de software livre, como LangChain, LlamaIndex e OpenAI. Quando você adiciona mlflow.<library>.autolog() no início do notebook, o MLflow registra automaticamente os rastreamentos para cada etapa 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 (intervalos) com base na pilha do Python. |
APIs de cliente do MLflow | Casos de uso avançados, como multithreading | MLflowClient implementa APIs mais granulares e seguras para threads para casos de uso avançado. Essas APIs não gerenciam a relação pai-filho dos intervalos, portanto, você precisa especificá-la manualmente para construir a estrutura de rastreamento desejada. Isso requer mais código, mas fornece um 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 com vários threads ou instrumentação baseada em retorno de chamada. |
Revisão de rastreamentos
Depois de executar o agente instrumentado, você pode revisar os rastreamentos gerados de diferentes maneiras:
- A visualização de rastreamento é renderizada de forma embutida na saída da célula.
- Os rastreamentos são registrados em seu experimento do MLflow. Você pode examinar a lista completa de rastreamentos históricos e pesquisá-los na guia
Traces
na página Experimento. Quando o agente é executado em uma execução ativa do MLflow, você também pode encontrar os rastreamentos na página Executar. - Recupere rastreamentos programaticamente usando a API search_traces().
Usar o rastreamento do MLflow na produção
O MLflow Tracing também é integrado ao Mosaic AI Model Serving, permitindo depurar problemas com eficiência, monitorar o desempenho e criar um conjunto de dados principal para avaliação offline. Quando o Rastreamento do MLflow está habilitado para o ponto de extremidade de serviço, os rastreamentos são registrados em uma tabela de inferência na coluna response
.
Para habilitar o rastreamento do MLflow para o ponto de extremidade de serviço, você deve definir a variável de ambiente ENABLE_MLFLOW_TRACING
na configuração do ponto de extremidade como True
. Consulte Adicionar variáveis de ambiente de texto sem formatação para saber como implantar um ponto de extremidade com variáveis de ambiente personalizadas. Se você implantou seu agente usando a API deploy()
, os rastreamentos serão registrados automaticamente em uma tabela de inferência. Confira Implantar um agente para um aplicativo de IA generativa.
Observação
A gravação de rastreamentos em uma tabela de inferência é feita de forma assíncrona, portanto, não adiciona a mesma sobrecarga que no ambiente de notebook durante o desenvolvimento. No entanto, ainda pode introduzir alguma sobrecarga na velocidade de resposta dos pontos de extremidade, especialmente quando o tamanho do rastreamento para cada solicitação de inferência for grande. A Databricks não garante qualquer contrato de nível de serviço (SLA) para o impacto real da latência no ponto de extremidade do seu modelo, uma vez que depende fortemente do ambiente e da implementação do modelo. A Databricks recomenda testar o desempenho do seu ponto de extremidade e obter insights sobre a sobrecarga de rastreio antes de implementar numa aplicação de produção.
A tabela a seguir fornece uma indicação aproximada do impacto na latência de 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
O rastreamento do MLflow está disponível em notebooks do Databricks, trabalhos de notebook e Model Serving.
O registro automático do LangChain pode não suportar todas as APIs de previsão do LangChain. Consulte a documentação do MLflow para obter a lista completa de APIs suportadas.