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 MLflow Tracing em um workspace Databricks , aplicam-se cotas e limites de taxa para garantir a estabilidade do serviço e o uso justo. Consulte os limites de recursos.
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.
-
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 ".
-
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.
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:
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()
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 MLflow Tracing depende do ContextVar Python , cada thread tem seu próprio contexto de rastreamento por default, mas é possível gerar um único rastreamento para aplicativos multithread 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, mlflow.tracing.disable API a coleta de dados de rastreamento será interrompida no site MLflow e nenhum dado será enviado ao serviço de rastreamento log
para o site MLflow.
Para habilitar o rastreamento (caso tenha sido temporariamente desativado), mlflow.tracing.enable a API reativará a funcionalidade de rastreamento para modelos instrumentados
que forem invocados.