Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Important
A nova experiência do Unity Gateway já está disponível para todos. É o plano de controle corporativo para gerenciar endpoints de LLM e agentes de programação com recursos aprimorados. Veja a governança de IA com o Unity Gateway.
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 para o AI Gateway simplificam o monitoramento e o diagnóstico de modelos ao registrar continuamente as entradas e respostas (previsões) das solicitações de serviço provenientes de pontos de extremidade de Serviço de Modelo e salvá-las em uma tabela Delta no Unity Catalog. 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 em 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.
- Monitore os agentes implantados. As tabelas de inferência também podem armazenar rastreamentos de MLflow para agentes que ajudam você a depurar problemas e monitorar o desempenho.
Requisitos
- Tabelas de inferência habilitadas pelo Unity Gateway são suportadas para endpoints que atendem a qualquer um dos seguintes requisitos:
- Um workspace do Databricks em uma região em que há suporte para o serviço de modelo. Consulte Modelos de disponibilidade de funcionalidades de serviço.
- A computação sem servidor deve ser habilitada no workspace.
- Para workspaces que têm conectividade privada configurada na conta de armazenamento no Unity Catalog, siga as etapas em Configurar conectividade privada para recursos do Azure.
- O Databricks recomenda que você habilite a otimização preditiva para o desempenho otimizado de suas tabelas de inferência.
- 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. Confira Listas de Controle de Acesso.
- Tanto o criador do ponto de extremidade quanto o modificador devem ter as seguintes permissões no Catálogo do Unity:
- Permissões
USE CATALOGno catálogo especificado. - Permissões
USE SCHEMAno esquema especificado. - Permissões
CREATE TABLEno esquema.
- Permissões
- O catálogo não pode ser um catálogo OpenSharing no 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 endpoint ou atualiza a configuração do Unity Gateway com a configuração da 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 habilitou a tabela de inferência. 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:
- Clique em Serving na interface do usuário do Azure Databricks.
- Clique em Criar endpoint de serviço.
- 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:
- Na seção Gateway de IA, clique em Editar Gateway de IA.
- Selecione Habilitar tabelas de inferência.
Siga estas instruções para desabilitar tabelas de inferência:
- Navegue até a página do endpoint.
- Clique em Editar AI Gateway.
- Clique em Habilitar tabela de inferência para remover a marca de seleção.
- Depois de se satisfazer com as especificações do Unity Gateway, clique em Atualizar.
Habilitar tabelas de inferência para agentes
Você também pode habilitar tabelas de inferência para agentes implantados. Essas tabelas de inferência armazenam conteúdos e detalhes das solicitações, bem como logs de rastreamento do MLflow.
Habilite tabelas de inferência para agentes usando os seguintes métodos:
- Os agentes implantados usando a
mlflow.deploy()API têm tabelas de inferência habilitadas automaticamente. Consulte Implantar um agente para aplicativos de IA (Model Serving). - Para implantações programáticas, defina a variável de ambiente
ENABLE_MLFLOW_TRACINGcomoTruena configuração do ponto de extremidade. Consulte Adicionar variáveis de ambiente de texto sem formatação.
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 visualizar a tabela na interface do usuário: na página de endpoint, clique no nome da tabela de inferência para abrir a tabela no Gerenciador de Catálogos.
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 pelo Unity Gateway
As tabelas de inferência habilitadas usando o Unity Gateway possuem 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. | STRING |
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. | STRING |
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% das solicitações recebidas 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. | STRING |
response |
O corpo JSON de resposta bruta que foi retornado pelo ponto de extremidade de serviço do modelo. | STRING |
served_entity_id |
A ID exclusiva da entidade atendida. | STRING |
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. |
STRING |
Esquemas de tabela de inferência do agente
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 dos logs de avaliação para obter orientações sobre a migração.
Para agentes, 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 do Serviço de Modelo:
| Tabela de inferência | Exemplo de nome de 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. | STRING |
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. | STRING |
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% das solicitações recebidas foram incluídas. | DOUBLE |
execution_time_ms |
O tempo de execução em milissegundos para o qual o modelo realizou 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. | STRING |
request |
A última pergunta do usuário na conversa. | STRING |
response |
A última resposta para o usuário. | STRING |
request_raw |
A representação em formato de string da solicitação. | STRING |
response_raw |
Representação de cadeia de caracteres da resposta. | STRING |
trace |
Representação em cadeia de caracteres do rastreamento extraído do databricks_options da estrutura de resposta. |
STRING |
request_metadata |
Um mapa de metadados relacionados ao endpoint de serviço do modelo associado à requisiçã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. | MAP<STRING, STRING> |
schema_version |
A versão do esquema. | STRING |
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. | STRING |
step_id |
A etapa É derivada da avaliação de recuperação. | STRING |
source |
Um campo de struct que contém as informações sobre quem criou a avaliação. | STRUCT |
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. | STRING |
retrieval_assessment |
Os dados para qualquer feedback sobre os documentos recuperados para uma resposta. | STRING |
Tabela de inferência rápida para endpoints de serviço de modelos personalizados
Para endpoints de CPU (modelo personalizado), o Unity Gateway entrega payloads de requisição e resposta para a tabela de inferência por meio da telemetria de endpoint, então as linhas normalmente ficam disponíveis em segundos.
A tabela de inferência ({catalog_name}.{schema_name}.{model_name}_payload) é uma vista sobre uma tabela de logs de telemetria ({catalog_name}.{schema_name}.{model_name}_otel_logs). Quando a tabela de inferência está ativada, os payloads de solicitação e resposta são gravados em _otel_logs, e a view _payload lê esses dados dela. Consulte a exibição _payload para ler requisições e respostas.
Observação
A tabela de logs de telemetria _otel_logs é criada no mesmo catálogo e esquema que a tabela de inferência e permanece visível mesmo quando você habilita apenas a tabela de inferência — isso é esperado, pois _payload é uma exibição sobre ela. Quando apenas a tabela de inferência está ativada, _otel_logs contém apenas os dados de requisição e resposta da tabela de inferência; ela não inclui os campos adicionais presentes quando outros sinais de telemetria (logs, spans ou métricas) são ativados.
A tabela de inferência rápida usa o Zerobus no backend para fornecer telemetria, então está sujeita às mesmas limitações e cotas do Zerobus. Veja cotas de ingestão do Zerobus.
Observação
A entrega e amostragem de telemetria de endpoints se aplicam apenas a endpoints de CPU que serve modelos personalizados. Os pontos de extremidade que usam taxa de transferência provisionada, modelos externos, cargas de trabalho da API de modelos básicos ou agentes seguem o comportamento de entrega descrito em Limitações.
Amostragem
A amostragem é uma capacidade da tabela de inferência rápida: para modelos personalizados de CPU que servem endpoints, você pode configurar a fração de requisições que são registradas. A amostragem reduz o volume de logs em endpoints de alto throughput, mantendo uma amostra representativa do tráfego.
- Padrão: 100%. Todas as solicitações são registradas, a menos que você defina uma taxa mais baixa.
-
Faixa: de 0% a 100%, armazenado como um
sampling_fractionentre 0 e 1. - Cada linha do registro mostra a taxa aplicada na coluna
sampling_fraction.
Para definir a taxa na interface, insira uma taxa de amostragem (%) ao ativar tabelas de inferência na seção Unity Gateway. Para defini-lo programaticamente, especifique sampling_fraction na configuração de telemetria do ponto de extremidade.
Volume de ponto de verificação interno
Para suportar tabelas de inferência habilitadas pelo Unity Gateway, o Azure Databricks cria um volume interno no esquema da tabela de inferência. O volume tem um nome gerado automaticamente pelo sistema no formato <catalog>.<schema>.<payload table ID>_checkpoints. Excluir esse volume pode deixar as tabelas de inferência malformadas. O Azure Databricks exclui automaticamente o volume quando você exclui o endpoint de serviço correspondente.
Limitações
- Cargas de trabalho de taxa de transferência provisionadas:
- Se você criar um novo endpoint de disponibilização de modelo que use throughput provisionado, apenas tabelas de inferência com Unity Gateway habilitado são compatíveis.
- Se você já tiver um endpoint de serviço de modelo que usa throughput provisionado e não tiver tabelas de inferência configuradas, pode atualizá-lo para usar tabelas de inferência habilitadas pelo Unity Gateway.
- Se você tem um endpoint de serviço de modelo existente que usa throughput provisionado e ele tem tabelas de inferência legadas configuradas, você deve desativar a tabela de inferência legada antes de poder atualizar o endpoint para usar tabelas de inferência habilitadas pelo Unity Gateway.
- Depois que as tabelas de inferência habilitadas pelo Unity Gateway são ativadas, você não pode mudar para tabelas de inferência legadas.
- Para logs de resposta de agentes de streaming, apenas os campos e traços compatíveis com ChatCompletion são agregados.
- Cargas de trabalho de modelo personalizado:
- Se você criar um novo modelo que atende a um modelo personalizado, o Databricks recomenda o uso de tabelas de inferência habilitadas pelo Unity Gateway. Se a experiência legada da tabela de inferência for necessária, você só pode configurar seu novo endpoint para o Unity Gateway usando a API REST.
- Se você já tem um endpoint de serviço de modelo que atende a um modelo personalizado e ele não tem tabelas de inferência configuradas, pode atualizá-lo para usar tabelas de inferência habilitadas pelo Unity Gateway.
- Se você já tiver um endpoint de serviço de modelo que atende a um modelo personalizado e ele tiver tabelas de inferência legadas configuradas, você deve desativar a tabela de inferência legada antes de poder atualizar o endpoint para usar tabelas de inferência habilitadas pelo Unity Gateway.
- Depois que as tabelas de inferência habilitadas pelo Unity Gateway são ativadas, você não pode mudar para tabelas de inferência legadas.
- A entrega de logs da tabela de inferência pode degradar o desempenho de pontos de extremidade de modelo personalizados com taxa de transferência superior a 70 MB por segundo. Para gerenciar a entrega em uma taxa de transferência mais alta, reduza a taxa de amostragem da tabela de inferência para reduzir o volume de solicitações registradas.
- 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
nullelogging_error_codessão preenchidos comMAX_REQUEST_SIZE_EXCEEDEDouMAX_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 Unity Gateway, veja 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.