Pular para o conteúdo principal

Perguntas frequentes sobre rastreamento

P: Qual é a sobrecarga de latência introduzida pelo Tracing?

Os rastreamentos são gravados de forma assíncrona para minimizar o impacto no desempenho. No entanto, o rastreamento ainda adiciona latência mínima, especialmente quando o tamanho do rastreamento é grande. MLflow recomenda testar seu aplicativo para entender os impactos da latência do rastreamento antes de implantá-lo na produção.

A tabela a seguir fornece estimativas aproximadas do impacto da latência por tamanho do traço:

Tamanho do traço por solicitação

Impacto na latência da velocidade de resposta (ms)

~10 KB

~ 1 ms

~ 1 MB

50 ~ 100 ms

10 MB

150 ms ~

P: Quais são os limites de taxa e as cotas para o MLflow Tracing no Databricks?

Ao usar o MLflow Tracing em um Databricks workspace, as seguintes cotas e limites de taxa se aplicam para garantir a estabilidade do serviço e o uso justo. Esses limites são por workspace.

  • Número máximo de traços por experimento :

    • padrão: 100.000 traços.
    • Esse limite pode ser aumentado substancialmente (por exemplo, acima de 1 milhão de traços por experimento) mediante solicitação. Entre em contato com o suporte da Databricks para solicitar um aumento.
  • Taxa de criação de rastreamento :

    • Limite: 200 consultas por segundo (QPS) por workspace.
    • Essa é a taxa na qual os novos traços (e seus intervalos iniciais) podem ser criados e os logs.
  • Taxa de download de traços :

    • Limite: 200 QPS por workspace.
    • Isso se aplica a operações que obtêm dados de rastreamento completos, como mlflow.get_trace().
  • Taxa de pesquisa de rastreamento :

    • Limite: 25 QPS por workspace.
    • Isso se aplica a operações como mlflow.search_traces() que consultam listas de traços com base em critérios de filtro.

Exceder esses limites pode resultar em solicitações limitadas ou erros. Se o senhor prevê a necessidade de limites mais altos para suas cargas de trabalho de produção, discuta seus requisitos com o suporte da Databricks.

P: Não consigo abrir meu rastreamento na interface do usuário do MLflow. O que devo fazer?

Há vários motivos possíveis para que um rastreamento não possa ser visualizado na UI do MLflow.

  1. O rastreamento ainda não foi concluído : Se o rastreamento ainda estiver sendo coletado, o MLflow não poderá exibir os intervalos na interface do usuário. Certifique-se de que todos os períodos sejam encerrados corretamente com o status " OK " ou " ERROR ".

  2. O cache do navegador está desatualizado : Quando o senhor atualiza o MLflow para uma nova versão, o cache do navegador pode conter dados desatualizados e impedir que a interface do usuário exiba os traços corretamente. Limpe o cache do navegador (Shift+F5) e acesse refresh a página.

P: A execução do modelo fica paralisada e meu rastreamento é " em andamento " para sempre.

Às vezes, um modelo ou um agente fica preso em uma operação de longa duração ou em um loop infinito, fazendo com que o rastreamento fique preso no estado "in progress".

Para evitar isso, o senhor pode definir um tempo limite para o rastreamento usando a variável de ambiente MLFLOW_TRACE_TIMEOUT_SECONDS. Se o rastreamento exceder o tempo limite, o MLflow interromperá automaticamente o rastreamento com o status ERROR e o exportará para o backend, para que o senhor possa analisar os intervalos e identificar o problema. Em default, o tempo limite não é definido.

nota

O tempo limite só se aplica ao rastreamento do MLflow. O programa principal, modelo ou agente continuará a ser executado mesmo que o rastreamento seja interrompido.

Por exemplo, o código a seguir define o tempo limite para 5 segundos e simula como o site MLflow lida com operações de longa duração:

Python
import mlflow
import os
import time

# Set the timeout to 5 seconds for demonstration purposes
os.environ["MLFLOW_TRACE_TIMEOUT_SECONDS"] = "5"


# Simulate a long-running operation
@mlflow.trace
def long_running():
for _ in range(10):
child()


@mlflow.trace
def child():
time.sleep(1)


long_running()
nota

O MLflow monitora o tempo de execução e a expiração do rastreamento em um thread em segundo plano. Pelo site default, essa verificação é realizada a cada segundo e o consumo de recurso é insignificante. Se quiser ajustar o intervalo, o senhor pode definir a variável de ambiente MLFLOW_TRACE_TIMEOUT_CHECK_INTERVAL_SECONDS.

P: Meu rastreamento é dividido em vários rastreamentos ao fazer multithreading. Como posso combiná-los em um único rastreamento?

Como o MLflow Tracing depende do Python ContextVar, cada thread tem seu próprio contexto de rastreamento pelo default, mas é possível gerar um único rastreamento para aplicativos com vários threads com algumas etapas adicionais. Consulte a seção Multi-threading para obter mais informações.

P: Como faço para desativar temporariamente o rastreamento?

Para desativar o rastreamento, o site mlflow.tracing.disable API interromperá a coleta de dados de rastreamento dentro do site MLflow e não log fornecerá nenhum dado ao serviço de acompanhamento MLflow referente a rastreamentos.

Para ativar o rastreamento (se ele tiver sido temporariamente desativado), a API mlflow.tracing.enable reativará a funcionalidade de rastreamento para modelos instrumentados que forem invocados.

Próximas etapas

Continue sua jornada com estas ações recomendadas e o tutorial.

Guia de referência

Explore a documentação detalhada sobre conceitos relacionados.