MLflow Tracing para agentes
Importante
Esta funcionalidade está em Pré-visualização Pública.
Este artigo descreve o MLflow Tracing e os cenários em que ele é útil para avaliar aplicações de IA generativa em seu sistema de IA.
No desenvolvimento de software, o rastreamento envolve a gravação de sequências de eventos, como sessões de usuários ou fluxos de solicitação. No contexto de sistemas de IA, o rastreamento geralmente se refere às interações que você tem com um sistema de IA. Um exemplo de rastreamento de um sistema de IA pode parecer instrumentar as entradas e parâmetros para um aplicativo RAG que inclui uma mensagem do usuário com prompt, uma pesquisa vetorial e uma interface com o modelo de IA generativa.
O que é MLflow Tracing?
Usando o MLflow Tracing você pode registrar, analisar e comparar rastreamentos 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. Isso pode ajudá-lo a descobrir condições ou parâmetros que contribuem para o baixo desempenho do seu aplicativo. O MLflow Tracing é totalmente integrado com as ferramentas e a infraestrutura do Databricks, permitindo que você armazene e exiba todos os seus rastreamentos em notebooks Databricks ou na interface do usuário do experimento MLflow enquanto executa seu código.
Quando você desenvolve sistemas de IA em 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 os prompts, quais modelos e retrievers foram usados, quais documentos foram recuperados para aumentar a resposta, quanto tempo as coisas levaram e a saída final. Por exemplo, se o seu modelo alucina, você pode 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 acompanhar seu fluxo de trabalho de desenvolvimento. Por exemplo, pode:
- Revise uma visualização de rastreamento interativa e use a ferramenta de investigação para diagnosticar problemas no desenvolvimento.
- Verifique se os modelos de prompt e guarda-corpos estão produzindo resultados razoáveis.
- Explore e minimize o impacto da latência de diferentes estruturas, modelos, tamanhos de blocos e práticas de desenvolvimento de software.
- Meça os custos do aplicativo rastreando o uso do token por diferentes modelos.
- Estabeleça conjuntos de dados de referência ("dourados") para avaliar o desempenho de diferentes versões.
- Armazene rastreamentos de pontos de extremidade do modelo de produção para problemas de depuração e execute revisão e avaliação offline.
Instalar o MLflow Tracing
O MLflow Tracing está disponível nas versões 2.13.0 e superiores do MLflow.
%pip install mlflow>=2.13.0 -qqqU
%restart_python
Como alternativa, você pode %pip install databricks-agents
instalar a versão mais recente do databricks-agents
que inclui uma versão MLflow compatível.
Usar o MLflow Tracing no desenvolvimento
O MLflow Tracing ajuda 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 MLflow a partir de um bloco de anotações.
Nota
No ambiente do notebook, o MLflow Tracing 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 MLflow. No endpoint do modelo de produção, o MLflow Tracing tem um impacto muito menor no desempenho. Consulte Usar o rastreamento MLflow na produção.
Nota
A partir do Databricks Runtime 15.4 LTS ML, o rastreamento MLflow é habilitado por padrão em notebooks. Para desativar o rastreamento, por exemplo, com LangChain, você pode executar mlflow.langchain.autolog(log_traces=False)
em seu bloco de anotações.
Adicionar rastreamentos ao seu agente
O MLflow Tracing fornece três maneiras diferentes de usar rastreamentos com seu aplicativo de IA generativa com rastreamentos. Consulte Adicionar rastreamentos aos seus agentes para obter exemplos de uso desses métodos. Para obter detalhes de referência da API, consulte a documentação do MLflow.
API | Caso de uso recomendado | Description |
---|---|---|
Registro automático de MLflow | Desenvolvimento em bibliotecas integradas GenAI | O registro automático automaticamente instrumenta rastreamentos para estruturas de código aberto populares, como LangChain, LlamaIndex e OpenAI. Quando você adiciona mlflow.<library>.autolog() no início do bloco de anotações, o MLflow registra automaticamente os rastreamentos para cada etapa da execução do agente. |
APIs fluentes | Agente personalizado com Pyfunc | APIs low-code para instrumentar sistemas de IA sem se preocupar com a estrutura em árvore do rastreamento. MLflow determina a estrutura de árvore pai-filho (spans) apropriada com base na pilha Python. |
APIs do cliente MLflow | Casos de uso avançados, como multi-threading | MLflowClient implementa APIs mais granulares e seguras para threads para casos de uso avançados. Essas APIs não gerenciam a relação pai-filho das extensões e, portanto, você precisa especificá-la manualmente para construir a estrutura de rastreamento desejada. Isso requer mais código, mas oferece um melhor controle sobre o ciclo de vida do rastreamento, especialmente para casos de uso multi-threaded.Recomendado para casos de uso que exigem mais controle, como aplicativos multi-threaded ou instrumentação baseada em retorno de chamada. |
Revisão de vestígios
Depois de executar o agente instrumentado, você pode revisar os rastreamentos gerados de diferentes maneiras:
- A visualização de rastreamento é renderizada embutida na saída da célula.
- Os rastreamentos são registrados em seu experimento MLflow. Pode rever a lista completa de vestígios históricos e pesquisá-los no
Traces
separador na página Experiência. Quando o agente é executado em uma Execução de MLflow ativa, você também pode encontrar os rastreamentos na página Executar. - Recupere rastreamentos programaticamente usando a API search_traces( ).
Usar o MLflow Tracing na produção
O MLflow Tracing também é integrado ao Mosaic AI Model Serving, permitindo depurar problemas de forma eficiente, monitorar o desempenho e criar um conjunto de dados dourado para avaliação offline. Quando o Rastreamento MLflow está habilitado para seu ponto de extremidade de serviço, os rastreamentos são registrados em uma tabela de inferência sob a response
coluna.
Para habilitar o MLflow Tracing para seu ponto de extremidade de serviço, você deve definir a variável de ambiente na configuração do ENABLE_MLFLOW_TRACING
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 deploy()
API, os rastreamentos serão automaticamente registrados em uma tabela de inferência. Consulte Implantar um agente para aplicativo de IA generativa.
Nota
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 bloco de anotações durante o desenvolvimento. No entanto, ele ainda pode introduzir alguma sobrecarga na velocidade de resposta do ponto de extremidade, particularmente quando o tamanho do rastreamento para cada solicitação de inferência é grande. O Databricks não garante nenhum contrato de nível de serviço (SLA) para o impacto real da latência no endpoint do modelo, pois depende muito do ambiente e da implementação do modelo. O Databricks recomenda testar o desempenho do endpoint e obter informações sobre a sobrecarga de rastreamento antes de implantar em um aplicativo 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 MLflow Tracing está disponível em notebooks 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.