Compartilhar via


Monitorar modelos atendidos usando tabelas de inferência habilitadas para Gateway de IA

Importante

Se seu ponto de extremidade do serviço de modelo personalizado exigir a experiência de tabela de inferência herdada, consulte Tabelas de inferência para modelos de monitoramento e depuração.

Este artigo descreve tabelas de inferência habilitadas pelo Gateway de IA para o monitoramento de modelos servidos. A tabela de inferências captura automaticamente as solicitações de entrada e as respostas de saída em um endpoint, registrando-as como uma tabela Delta do Unity Catalog. Você pode usar os dados nesta tabela para monitorar, avaliar, comparar e ajustar modelos de machine learning.

Quais são as tabelas de inferência habilitadas pelo Gateway de IA?

As tabelas de inferência habilitadas pelo Gateway de IA simplificam o monitoramento e o diagnóstico de modelos ao registrar continuamente as entradas e as respostas de solicitações de serviço (previsões) dos pontos de extremidade do Serviço de Modelo do Mosaic AI e salvá-las em uma tabela Delta no Catálogo do Unity. Em seguida, você pode usar todos os recursos da plataforma Databricks, como consultas SQL do Databricks e notebooks para monitorar, depurar e otimizar seus modelos.

Você pode habilitar tabelas de inferência em um endpoint de serviço de modelo já existente ou recém-criado, e as solicitações para esse endpoint são automaticamente registradas em uma tabela no Catálogo do Unity.

Alguns aplicativos comuns para tabelas de inferência são os seguintes:

  • Crie um corpus de treinamento. Ao unir tabelas de inferência com rótulos de verdade básica, você pode criar um corpus de treinamento que pode ser usado para treinar novamente ou ajustar e melhorar seu modelo. Usando Tarefas do Lakeflow, você pode configurar um ciclo de feedback contínuo e automatizar o re-treinamento.
  • Monitore a qualidade dos dados e do modelo. Você pode monitorar continuamente o desempenho do modelo e o desvio de dados usando a perfilagem de dados, que gera automaticamente dados e painéis de qualidade do modelo que você pode compartilhar com as partes interessadas. Além disso, você pode habilitar alertas para saber quando precisa treinar novamente seu modelo com base em mudanças nos dados de entrada ou reduções no desempenho do modelo.
  • Depuração de problemas de produção. Tabelas de inferência registram dados de log, como códigos de status HTTP, solicitações e respostas em formato JSON, tempos de execução do modelo e saída de rastreamentos durante os tempos de execução do modelo. Você pode usar esses dados de desempenho para fins de depuração. Você também pode usar os dados históricos em tabelas de inferência para comparar o desempenho do modelo em solicitações históricas.
  • Monitorar agentes de IA implantados. As tabelas de inferência também podem armazenar rastreamentos de MLflow para agentes de IA que ajudam você a depurar problemas e monitorar o desempenho.

Requisitos

  • Seu workspace deve ter o Catálogo do Unity habilitado.
  • O criador do ponto de extremidade e o modificador devem ter a permissão Pode Gerenciar no ponto de extremidade. Consulte as listas de controle do Access.
  • O criador do ponto de extremidade e o modificador devem ter as seguintes permissões no Catálogo do Unity:
    • Permissões USE CATALOG no catálogo especificado.
    • Permissões USE SCHEMA no esquema especificado.
    • Permissões CREATE TABLE no esquema.
  • O catálogo não pode ser um catálogo de compartilhamento Delta para o metastore atual.

Observação

Não há suporte para especificar uma tabela existente. O Azure Databricks cria automaticamente uma nova tabela de inferência quando você cria um ponto de extremidade ou atualiza a configuração do Gateway de IA com a opção de configuração de tabela de inferência ativada.

Aviso

A tabela de inferência poderá interromper o registro em log de dados ou ficar corrompida se você fizer o seguinte:

  • Altere o esquema da tabela.
  • Altere o nome da tabela.
  • Excluir a tabela.

Habilitar e desabilitar tabelas de inferência

Esta seção mostra como habilitar ou desabilitar tabelas de inferência usando a interface do usuário de serviço. O proprietário das tabelas de inferência é o usuário que criou o ponto de extremidade. Todas as ACLs (listas de controle de acesso) na tabela seguem as permissões padrão do Catálogo do Unity e podem ser modificadas pelo proprietário da tabela.

Para habilitar tabelas de inferência durante a criação do ponto de extremidade, use as seguintes etapas:

  1. Clique em Serviço na interface do usuário do Databricks Mosaic AI.
  2. Clique em Criar ponto de extremidade de serviço.
  3. Na seção Gateway de IA, selecione Habilitar tabelas de inferência.

Você também pode habilitar tabelas de inferência em um ponto de extremidade existente. Para editar uma configuração de ponto de extremidade existente, faça o seguinte:

  1. Na seção Gateway de IA, clique em Editar Gateway de IA.
  2. Selecione Habilitar tabelas de inferência.

Siga estas instruções para desabilitar tabelas de inferência:

  1. Navegue até a página do ponto de extremidade.
  2. Clique em Editar AI Gateway.
  3. Clique em Habilitar tabela de inferência para remover a marca de seleção.
  4. Depois de estar satisfeito com as especificações do Gateway de IA, clique em Atualizar.

Habilitar tabelas de inferência para agentes de IA

Você também pode habilitar tabelas de inferência para agentes de IA implantados. Essas tabelas de inferência armazenam informações de carga útil e detalhes da solicitação, bem como logs de rastreamento do MLflow.

Habilite tabelas de inferência para agentes de IA usando os seguintes métodos:

Para saber mais sobre o rastreamento de agente do MLflow, consulte MLflow Tracing – GenAI observability.

Consultar e analisar resultados na tabela de inferência

Depois que os modelos servidos estiverem prontos, todas as solicitações feitas aos modelos serão registradas automaticamente na tabela de inferência, juntamente com as respostas. Você pode exibir a tabela na interface do usuário, consultar a tabela no Databricks SQL ou em um notebook ou consultar a tabela usando a API REST.

Para exibir a tabela na interface do usuário: Na página do ponto de extremidade, clique no nome da tabela de inferência para abrir a tabela no Gerenciador de Catálogos.

link para o nome da tabela de inferência na página do ponto de extremidade

Para consultar a tabela do Databricks SQL ou de um notebook do Databricks: Você pode executar um código semelhante ao seguinte para consultar a tabela de inferência.

SELECT * FROM <catalog>.<schema>.<payload_table>

Para unir os dados da sua tabela de inferência com detalhes sobre o modelo de base subjacente atendido no seu ponto de extremidade: os detalhes do modelo de base são capturados na tabela do sistema system.serving.served_entities.

SELECT * FROM <catalog>.<schema>.<payload_table> payload
JOIN system.serving.served_entities se on payload.served_entity_id = se.served_entity_id

Esquema de tabela de inferência habilitado para Gateway de IA

As tabelas de inferência habilitadas usando o Gateway de IA têm o seguinte esquema:

Nome da coluna Descrição Tipo
request_date A data UTC em que a solicitação de serviço de modelo foi recebida. DATE
databricks_request_id Um identificador de solicitação gerado pelo Azure Databricks anexado a todas as solicitações de serviço de modelo. CADEIA DE CARACTERES
client_request_id O identificador de solicitação fornecido pelo usuário que pode ser especificado no corpo da solicitação de serviço de modelo. CADEIA DE CARACTERES
request_time A data e hora em que a solicitação é recebida. TIMESTAMP
status_code O código de status HTTP que foi retornado do modelo. INT
sampling_fraction A fração de amostragem usada no caso de o pedido ter sido reduzido para baixo. Esse valor está entre 0 e 1, onde 1 representa que 100% de solicitações de entrada foram incluídas. DOUBLE
execution_duration_ms O tempo em milissegundos para o qual o modelo executou inferência. Isso não inclui latências de rede de sobrecarga e representa apenas o tempo necessário para o modelo gerar previsões. bigint
request O corpo JSON da solicitação bruta que foi enviado para o ponto de extremidade de serviço do modelo. CADEIA DE CARACTERES
response O corpo JSON de resposta bruta que foi retornado pelo ponto de extremidade de serviço do modelo. CADEIA DE CARACTERES
served_entity_id A ID exclusiva da entidade atendida. CADEIA DE CARACTERES
logging_error_codes Os erros que ocorreram quando os dados não puderam ser registrados. Os códigos de erro incluem MAX_REQUEST_SIZE_EXCEEDED e MAX_RESPONSE_SIZE_EXCEEDED. ARRAY
requester A ID do usuário ou da entidade de serviço cujas permissões são utilizadas para a solicitação de invocação do ponto de extremidade de serviço. Esse campo retorna NULL para pontos de extremidade de modelo personalizado com otimização de rota. CADEIA DE CARACTERES

Esquemas de tabela de inferência do agente de IA

Aviso

Os logs de solicitação e os logs de avaliação foram preteridos e serão removidos em uma versão futura. Consulte os logs de solicitação e a substituição de logs de avaliação para obter diretrizes de migração.

Para agentes de IA, o Databricks cria três tabelas de inferência para cada implantação para registrar solicitações e respostas de e para o ponto de extremidade que atende ao modelo:

Tabela de inferência Exemplo de nome da tabela do Azure Databricks Conteúdo da tabela
Conteúdo {catalog_name}.{schema_name}.{model_name}_payload Cargas úteis de solicitação e resposta JSON brutas
Logs de solicitação de conteúdo {catalog_name}.{schema_name}.{model_name}_payload_request_logs Solicitações e respostas formatadas, rastreamentos do MLflow
Logs de avaliação de conteúdo {catalog_name}.{schema_name}.{model_name}_payload_assessment_logs Comentários formatados, conforme fornecido no Aplicativo de Revisão, para cada solicitação

Os usuários podem esperar que os dados nas tabelas de payload estejam disponíveis em até uma hora após a interação com o ponto de extremidade do serviço. Os logs de solicitação de carga útil e os logs de avaliação podem demorar mais para serem preenchidos e são derivados da tabela de carga útil bruta. Você pode extrair logs de solicitação e avaliação da tabela de payload. As exclusões e atualizações na tabela de carga não são refletidas nos logs de solicitação de carga ou nos logs de avaliação de carga.

Observação

Se você tiver o Firewall de Armazenamento do Microsoft Azure habilitado, entre em contato com sua equipe de conta do Databricks para habilitar tabelas de inferência para seus pontos de extremidade.

A seguir é mostrado o esquema para a tabela de logs de solicitação de Payload:

Nome da coluna Descrição Tipo
databricks_request_id Um identificador de solicitação gerado pelo Azure Databricks anexado a todas as solicitações de serviço de modelo. CADEIA DE CARACTERES
client_request_id Um identificador de solicitação gerado pelo cliente opcional que pode ser especificado no corpo da solicitação de serviço do modelo. CADEIA DE CARACTERES
date A data UTC em que a solicitação de serviço de modelo foi recebida. DATE
timestamp_ms O carimbo de data/hora em milissegundos de época em que a solicitação de serviço do modelo foi recebida. LONG
timestamp Carimbo de data/hora da solicitação. TIMESTAMP
status_code O código de status HTTP que foi retornado do modelo. INT
sampling_fraction A fração de amostragem usada no caso de o pedido ter sido reduzido para baixo. Esse valor está entre 0 e 1, onde 1 representa que 100% de solicitações de entrada foram incluídas. DOUBLE
execution_time_ms O tempo de execução em milissegundos para os quais o modelo executou inferência. Isso não inclui latências de rede de sobrecarga e representa apenas o tempo necessário para o modelo gerar previsões. LONG
conversation_id A conversa foi extraída dos logs de solicitação. CADEIA DE CARACTERES
request A última pergunta do usuário na conversa. CADEIA DE CARACTERES
response A última resposta para o usuário. CADEIA DE CARACTERES
request_raw A representação em formato de string da solicitação. CADEIA DE CARACTERES
response_raw Representação de cadeia de caracteres da resposta. CADEIA DE CARACTERES
trace Representação em cadeia de caracteres do rastreamento extraído do databricks_options da estrutura de resposta. CADEIA DE CARACTERES
request_metadata Um mapa de metadados relacionados ao endpoint de serviço do modelo associado à solicitação. Este mapa contém o nome do ponto de extremidade, o nome do modelo e a versão do modelo usados para o ponto de extremidade. CADEIA DE CARACTERES DO MAPA<, CADEIA DE CARACTERES>
schema_version A versão do esquema. CADEIA DE CARACTERES

A seguir é mostrado o esquema para a tabela de logs de avaliação de carga útil:

Nome da coluna Descrição Tipo
request_id Um ID de solicitação do Databricks. CADEIA DE CARACTERES
step_id A etapa É derivada da avaliação de recuperação. CADEIA DE CARACTERES
source Um campo de struct que contém as informações sobre quem criou a avaliação. ESTRUTURA
timestamp Carimbo de data/hora da solicitação. TIMESTAMP
text_assessment Os dados de quaisquer comentários sobre as respostas do agente no aplicativo de revisão. CADEIA DE CARACTERES
retrieval_assessment Os dados para qualquer feedback sobre os documentos recuperados para uma resposta. CADEIA DE CARACTERES

Limitações

  • Cargas de trabalho de taxa de transferência provisionadas:
    • Se você criar um ponto de extremidade do serviço de modelo que use a taxa de transferência provisionada, apenas as tabelas de inferência habilitadas para Gateway AI serão compatíveis.
    • Se você tiver um ponto de extremidade de serviço de modelo existente que usa a taxa de transferência provisionada e ele não tiver tabelas de inferência configuradas, você poderá atualizá-lo para usar tabelas de inferência habilitadas para Gateway de IA.
    • Se você tiver um ponto de extremidade de serviço de modelo existente que usa a taxa de transferência provisionada e ele tiver tabelas de inferência herdadas configuradas, desabilite a tabela de inferência herdada antes de atualizar o ponto de extremidade para usar tabelas de inferência habilitadas para Gateway de IA.
    • Quando as tabelas de inferência ativadas pelo Gateway de IA estiverem habilitadas, você não poderá alternar para tabelas de inferência herdadas.
    • Para registros de resposta de agentes de IA em streaming, somente os campos e rastreamentos compatíveis com ChatCompletion são agregados.
  • Cargas de trabalho de modelo personalizado:
    • Se você criar um novo ponto de extremidade do serviço de modelo que fornece um modelo personalizado, o Databricks recomenda usar tabelas de inferência habilitadas para AI Gateway. Se a experiência da tabela de inferência herdada for necessária, você só poderá configurar seu novo ponto de extremidade para AI Gateway usando a API REST.
    • Se você tiver um endpoint de serviço existente que disponibilize um modelo personalizado e não tenha tabelas de inferência configuradas, poderá atualizá-lo para usar tabelas de inferência habilitadas pelo Gateway de IA.
    • Se você tiver um ponto de extremidade do serviço de modelo existente que fornece um modelo personalizado e ele tiver tabelas de inferência herdadas configuradas, desabilite a tabela de inferência herdada antes de atualizar o ponto de extremidade para usar tabelas de inferência habilitadas para AI Gateway.
    • Quando as tabelas de inferência ativadas pelo Gateway de IA estiverem habilitadas, você não poderá alternar para tabelas de inferência herdadas.
  • A entrega de logs de tabelas de inferência para pontos de extremidade do serviço de modelo que fornecem cargas de trabalho de API de Modelo Fundacional, modelos externos ou agentes atualmente é best-effort. Você pode esperar que os logs estejam disponíveis dentro de uma hora após uma solicitação. Entre em contato com a equipe da sua conta do Databricks para obter mais informações.
  • O tamanho máximo de solicitação, resposta e rastreamento registrados é de 1 MiB (1.048.576 bytes). Os conteúdos que excedem isso são registrados como null e logging_error_codes são preenchidos com MAX_REQUEST_SIZE_EXCEEDED ou MAX_RESPONSE_SIZE_EXCEEDED.
  • As tabelas de inferência para pontos de extremidade de serviço de modelo otimizado de rota estão na Visualização Pública.
  • Os logs de tabela de inferência não têm garantia de serem preenchidos caso o ponto de extremidade de serviço do modelo exiba um erro.
    • Para endpoints de modelo personalizados, os logs podem não ser registrados para erros 4xx ou 5xx.
    • Para outros pontos de extremidade, os logs podem não ser registrados para erros 401, 403, 429 ou 500.

Para limitações específicas do Gateway de IA, consulte Limitações. Para limitações gerais de ponto de extremidade do serviço de modelo, veja Limites e regiões do Serviço de Modelo.