Adicionar contexto aos rastreamentos
Adicionar contexto aos rastreamentos permite acompanhar detalhes da execução, analisar o comportamento do usuário, depurar problemas em diferentes ambientes e monitorar o desempenho do aplicativo. O MLflow fornece campos de metadados padronizados para tipos de contexto comuns, além da flexibilidade para adicionar metadados personalizados específicos para sua aplicação.
Requisitos
Instale o pacote apropriado para rastreamento com base no seu ambiente:
- Production
- Development
Para implantações em produção, instale o pacote mlflow-tracing :
pip install --upgrade mlflow-tracing
O pacote mlflow-tracing é otimizado para uso em produção com dependências mínimas e melhores características de desempenho.
Para ambientes de desenvolvimento, instale o pacote completo do MLflow com os extras do Databricks:
pip install --upgrade "mlflow[databricks]>=3.1"
O pacote completo mlflow[databricks] inclui todos os recursos necessários para desenvolvimento local e experimentação no Databricks.
MLflow 3 é necessário para acompanhamento do contexto. MLflow 2.x não é suportado devido a limitações de desempenho e à falta de recursos essenciais para uso em produção.
Implementação
Para adicionar metadados e tags aos rastreamentos:
- Acompanhe o andamento da sua candidatura. Na maioria das vezes, você usará o decorador
@mlflow.tracepara rastrear funções automaticamente. - Durante a execução do seu aplicativo, chame
mlflow.update_current_trace()para adicionar contexto aos rastreamentos usandotagsoumetadata. Após a conclusão do seu aplicativo e um rastreamento ser registrado,tagssão mutáveis, masmetadatasão imutáveis no rastreamento de logs.
import mlflow
mlflow.update_current_trace(
metadata={
"mlflow.trace.user": user_id,
"mlflow.trace.session": session_id,
},
tags={
"query_category": "chat", # Example of a custom tag
},
)
Para acessar metadados e tags em logs de rastreamento, use os campos metadata e tags no DataFrame Pandas retornado por mlflow.search_traces() ou use os campos Trace.info.trace_metadata e Trace.info.tags dos objetos Trace .
Consulte o tutorial: Rastrear e analisar usuários e ambientes para obter um tutorial completo.
Tipos de metadados de contexto
Aplicações de produção precisam rastrear vários elementos contextuais simultaneamente. MLflow padronizou campos de metadados para capturar informações contextuais importantes:
Tipo de contexto | Casos de uso | Campo MLflow |
|---|---|---|
ID da solicitação do cliente | Vincule rastreamentos a solicitações de clientes ou chamadas de API específicas para depuração de ponta a ponta. | |
ID da sessão do usuário | Agrupe registros de conversas com várias interações, permitindo analisar todo o fluxo da conversa. | |
ID do usuário | Associe rastros a usuários específicos para personalização, análise de coorte e depuração específica do usuário. | |
Dados ambientais | Acompanhe o contexto de implantação (ambiente, versão, região) para fins operacionais e descubra diferentes implantações. | metadados automáticos e metadados personalizados |
Metadados personalizados | Adicione metadados específicos do aplicativo para rastreamentos de organização, pesquisa e filtragem. | (sua chave de metadados) |
Rastrear usuários e sessões
Acompanhar usuários e sessões em seu aplicativo GenAI fornece um contexto essencial para entender o comportamento do usuário, analisar fluxos de conversação e aprimorar a personalização.
Por que rastrear usuários e sessões?
O acompanhamento de usuários e sessões permite análises e melhorias poderosas:
- Análise do comportamento do usuário - Entenda como diferentes usuários interagem com seu aplicativo.
- Acompanhamento do fluxo de conversa - Analise conversas com múltiplas interações e a retenção do contexto.
- Personalização - Identificar padrões para aprimorar experiências específicas do usuário.
- Qualidade por usuário - Acompanhe as métricas de desempenho em diferentes segmentos de usuários.
- Continuidade da sessão - Manter o contexto em múltiplas interações.
Campos de metadados padrão para usuários e sessões
MLflow fornece dois campos de metadados padrão para acompanhamento de sessão e de usuário:
mlflow.trace.user- Associa rastros a usuários específicosmlflow.trace.session- Agrupamentos de registros pertencentes a conversas com múltiplas interações
Ao usar esses campos de metadados padrão, o MLflow habilita automaticamente a filtragem e o agrupamento na interface do usuário. Diferentemente tags, os metadados não podem ser atualizados depois que o rastreamento é registrado, tornando-os ideais para identificadores imutáveis, como IDs de usuário e de sessão.
Acompanhe os ambientes e versões.
Acompanhar o ambiente de execução e a versão do aplicativo GenAI permite depurar problemas de desempenho e qualidade relacionados ao código. Esses metadados permitem:
- Análise específica do ambiente em
development,stagingeproduction - acompanhamento de desempenho/qualidade e detecção de regressão entre versões de aplicativos
- Análise de causa raiz mais rápida quando ocorrem problemas.
Para metadados de implantação, como ambientes e versões, seu aplicativo geralmente deve extrair os metadados da variável de ambiente, em vez de tê-los codificados diretamente no aplicativo. variável de ambiente simplifica o processo de implantação. Por exemplo:
import mlflow
import os
# In your application logic
mlflow.update_current_trace(
metadata={
"mlflow.source.type": os.getenv("APP_ENVIRONMENT", "development"), # Override default
}
)
Para uma visão geral completa de como funciona o versionamento, consulte Acompanhamento de versões.
Metadados preenchidos automaticamente
O MLflow define automaticamente determinados campos de metadados padrão com base no seu ambiente de execução.
Você pode substituir qualquer um dos campos de metadados preenchidos automaticamente usando mlflow.update_current_trace(). Isso é útil quando a detecção automática não atende às suas necessidades. Por exemplo, substitua o valor do ambiente de execução usando mlflow.update_current_trace(metadata={"mlflow.source.name": "custom_name"}).
Categoria | Campo de metadados | Descrição | Lógica de configuração automática |
|---|---|---|---|
Ambiente de execução |
| O ponto de entrada ou script que gerou o rastreamento. | Preenchido automaticamente com o nome do arquivo para scripts Python e o nome do Notebook para Databricks/Jupyter Notebook. |
| Hash do commit do Git. | Se for executado a partir de um repositório Git , o hash commit é automaticamente detectado e preenchido. | |
| Ramificação Git. | Se a execução ocorrer a partir de um repositório Git , o nome da branch atual será detectado e preenchido automaticamente. | |
| URL repo Git . | Se for executado a partir de um repositório Git , a URL do repositório é automaticamente detectada e preenchida. | |
| Captura o ambiente de execução. | Definido automaticamente como | |
| O ID de execução da execução de origem que gerou o rastreamento. | Definido automaticamente para o ID de execução da execução de origem que gerou o rastreamento. | |
Versão do aplicativo |
| ID do modelo registrado no MLflow. | Definido automaticamente para o valor do ID do modelo na variável de ambiente |
Adicionar metadados personalizados
Você usa a chave personalizada metadata para capturar qualquer outro contexto específico do aplicativo. Por exemplo, você pode querer anexar informações como:
- Versão do aplicativo
- ID de implantação
- Região de implantação
- sinalizadores de recurso
Melhores práticas
- Formatos de ID consistentes - Utilize formatos padronizados para IDs de usuário e de sessão em todo o seu aplicativo.
- Limites da sessão - Defina regras claras para quando as sessões começam e terminam.
- variável de ambiente - Preencher metadados da variável de ambiente em vez de valores codificados
- Combine tipos de contexto - Rastreie o contexto do usuário, da sessão e do ambiente em conjunto para obter rastreabilidade completa.
- Análise regular – Configure painéis para monitorar o comportamento do usuário, padrões de sessão e desempenho da versão
- Substitua os valores padrão com cuidado - Substitua os metadados preenchidos automaticamente somente quando necessário.
Próximos passos
- Tutorial: Rastrear e analisar usuários e ambientes - Veja um exemplo completo de como adicionar metadados de usuário, sessão, ambiente e versão do aplicativo aos rastreamentos.
- Pesquise rastros programaticamente - Saiba mais sobre como usar
mlflow.search_traces(). - Analisar vestígios - Veja exemplos de análise de vestígios.