Configurar o AI Gateway em pontos de extremidade de serviço do modelo
Neste artigo, você aprenderá a configurar o Mosaic AI Gateway em um ponto de extremidade de serviço de modelo.
Requisitos
- Um workspace do Databricks em uma região com suporte para modelos externos.
- Conclua as etapas 1 e 2 de Criar um ponto de extremidade externo de serviço do modelo.
Configurar o AI Gateway usando a IU
Esta seção mostra como configurar o AI Gateway durante a criação do endpoint usando a IU de veiculação.
Se você preferir fazer isso programaticamente, consulte o exemplo do Notebook.
Na seção AI Gateway da página de criação do ponto de extremidade, você pode configurar individualmente os seguintes recursos do AI Gateway:
Recurso | Como habilitar | Detalhes |
---|---|---|
Acompanhamento de uso | Selecione Habilitar acompanhamento de uso para habilitar o acompanhamento e o monitoramento de métricas de uso de dados. | - É preciso habilitar o Catálogo do Unity. - Os administradores de conta devem habilitar o esquema de tabela do sistema de serviço antes de usar as tabelas do sistema: system.serving.endpoint_usage que captura contagens de tokens para cada solicitação ao ponto de extremidade e system.serving.served_entities que armazena metadados para cada modelo externo.- Consulte Esquemas de tabela de acompanhamento de uso - Somente os administradores de conta têm permissão para visualizar ou consultar a tabela served_entities ou endpoint_usage , embora o usuário que gerencia o ponto de extremidade deva habilitar o rastreamento de uso. Consulte Conceder acesso às tabelas do sistema- A contagem de tokens de entrada e saída é estimada como ( text_length +1)/4 se a contagem de tokens não for retornada pelo modelo. |
Registro em log do payload | Selecione Habilitar tabelas de inferência para registrar em log automaticamente solicitações e respostas do seu ponto de extremidade em tabelas Delta gerenciadas pelo Catálogo do Unity. | - Você deve ter o Catálogo do Unity habilitado e acesso CREATE_TABLE ao esquema de catálogo especificado.- As tabelas de inferência ativadas pelo AI Gateway têm um esquema diferente das tabelas de inferência criadas para endpoints de serviço de modelo que atendem a modelos personalizados. Consulte Esquema de tabela de inferência ativado pelo AI Gateway. - Os dados de log de payload preenchem essas tabelas menos de uma hora após a consulta do ponto de extremidade. - Payloads maiores que 1 MB não são registradas em log. - O payload da resposta agrega a resposta de todas as partes retornadas. - Há suporte para streaming. Em cenários de streaming, o payload de resposta agrega a resposta das partes retornadas. |
AI Guardrails | Consulte Configurar AI Guardrails na interface do usuário. | - Os verificadores de integridade impedem que o modelo interaja com conteúdo inseguro e prejudicial detectado nas entradas e saídas do modelo. - Os verificadores de integridade de saída não são compatíveis com os modelos de incorporação ou para streaming. |
Limitações de fluxo | Você pode impor limitações de fluxo de solicitação para gerenciar o tráfego do seu ponto de extremidade por usuário e por ponto de extremidade | - As limitações de fluxo são definidas em consultas por minuto (QPM). - O padrão é Sem limite para ambos, por usuário e por ponto de extremidade. |
Roteamento de tráfego | Para configurar o roteamento de tráfego em seu ponto de extremidade, consulte Fornecer vários modelos externos a um ponto de extremidade. |
Configurar AI Guardrails na interface do usuário
A tabela a seguir mostra como configurar verificadores de integridade suportados.
Verificador de integridade | Como habilitar | Detalhes |
---|---|---|
Segurança | Selecione Segurança para habilitar proteções para impedir que seu modelo interaja com conteúdo inseguro e prejudicial. | |
Detecção de PIIs (informações de identificação pessoal) | Selecione Detecção de PII para detectar dados de PII, como nomes, endereços e números de cartão de crédito. | |
Tópicos válidos | Você pode digitar tópicos diretamente nesse campo. Se você tiver várias entradas, pressione Enter após cada tópico. Como alternativa, você pode fazer upload de um arquivo .csv ou .txt . |
É possível especificar um máximo de 50 tópicos válidos. Cada tópico não poderá exceder 100 caracteres |
Palavras-chave inválidas | Você pode digitar tópicos diretamente nesse campo. Se você tiver várias entradas, pressione Enter após cada tópico. Como alternativa, você pode fazer upload de um arquivo .csv ou .txt . |
É possível especificar um máximo de 50 palavras-chave inválidas. Cada palavra-chave não poderá exceder 100 caracteres. |
Esquemas de tabela de acompanhamento de uso
A tabela do sistema de acompanhamento de uso system.serving.served_entities
tem o seguinte esquema:
Nome da coluna | Descrição | Type |
---|---|---|
served_entity_id |
A ID exclusiva da entidade atendida. | STRING |
account_id |
A ID da conta do cliente para o Compartilhamento Delta. | STRING |
workspace_id |
A ID do espaço de trabalho do cliente do ponto de extremidade de serviço. | STRING |
created_by |
A ID do criador. | STRING |
endpoint_name |
O nome do ponto de extremidade de serviço. | STRING |
endpoint_id |
A ID exclusiva do ponto de extremidade de serviço. | STRING |
served_entity_name |
O nome da entidades atendida. | STRING |
entity_type |
Tipo da entidade que é atendida. Pode ser FEATURE_SPEC , EXTERNAL_MODEL , FOUNDATION_MODEL ou CUSTOM_MODEL |
STRING |
entity_name |
O nome subjacente da entidade. Diferente do served_entity_name , que é um nome fornecido pelo usuário. Por exemplo, entity_name é o nome do modelo do Catálogo do Unity. |
STRING |
entity_version |
A versão da entidade atendida. | STRING |
endpoint_config_version |
A versão da configuração do ponto de extremidade. | INT |
task |
O tipo da tarefa. Pode ser llm/v1/chat , llm/v1/completions ou llm/v1/embeddings . |
STRING |
external_model_config |
Configurações para modelos externos. Por exemplo, {Provider: OpenAI} |
STRUCT |
foundation_model_config |
Configurações para modelos de fundação. Por exemplo, {min_provisioned_throughput: 2200, max_provisioned_throughput: 4400} |
STRUCT |
custom_model_config |
Configurações para modelos personalizados. Por exemplo, { min_concurrency: 0, max_concurrency: 4, compute_type: CPU } |
STRUCT |
feature_spec_config |
Configurações para especificações de recursos. Por exemplo, { min_concurrency: 0, max_concurrency: 4, compute_type: CPU } |
STRUCT |
change_time |
Carimbo de data/hora da alteração para a entidade atendida. | TIMESTAMP |
endpoint_delete_time |
Carimbo de data/hora da exclusão da entidade. O ponto de extremidade é o contêiner da entidade atendida. Depois que o ponto de extremidade é excluído, a entidade atendida também é excluída. | TIMESTAMP |
A tabela do sistema de acompanhamento de uso system.serving.endpoint_usage
tem o seguinte esquema:
Nome da coluna | Descrição | Type |
---|---|---|
account_id |
A ID da conta do cliente. | STRING |
workspace_id |
A ID do espaço de trabalho do cliente do ponto de extremidade de serviço. | STRING |
client_request_id |
O usuário forneceu o identificador de solicitação que pode ser especificado no corpo da solicitação de serviço do modelo. | STRING |
databricks_request_id |
Um identificador de solicitação gerado pelo Azure Databricks anexado a todas as solicitações de serviço de modelo. | STRING |
requester |
A ID do usuário ou da entidade de serviço cujas permissões são usadas para a solicitação de invocação do ponto de extremidade de serviço. | STRING |
status_code |
O código de status HTTP que foi retornado do modelo. | INTEGER |
request_time |
O carimbo de data/hora em que a solicitação é recebida. | TIMESTAMP |
input_token_count |
A quantidade de tokens da entrada. | LONG |
output_token_count |
A quantidade de tokens da saída. | LONG |
input_character_count |
A quantidade de caracteres da sequência ou prompt de entrada. | LONG |
output_character_count |
A quantidade de caracteres da sequência de saída da resposta. | LONG |
usage_context |
O mapa fornecido pelo usuário contendo identificadores do usuário final ou do aplicativo do cliente que faz a chamada para o ponto de extremidade. Confira Definir melhor o uso com usage_context. | MAP |
request_streaming |
Se a solicitação está no modo de fluxo. | BOOLEAN |
served_entity_id |
A ID exclusiva usada para unir com a tabela de dimensões system.serving.served_entities para pesquisar informações sobre o ponto de extremidade e a entidade atendida. |
STRING |
Definir melhor o uso com usage_context
Ao consultar um modelo externo com o rastreamento de uso habilitado, você pode fornecer o parâmetro usage_context
com o tipo Map[String, String]
. O mapeamento de contexto de uso aparece na tabela de acompanhamento de uso na coluna usage_context
. Os administradores de conta podem agregar linhas diferentes com base no contexto de uso para obter insights e podem unir estas informações às informações na tabela de registro em log de payload. Por exemplo, você pode adicionar end_user_to_charge
ao usage_context
para atribuição de custo de acompanhamento para usuários finais.
{
"messages": [
{
"role": "user",
"content": "What is Databricks?"
}
],
"max_tokens": 128,
"usage_context":
{
"use_case": "external",
"project": "project1",
"priority": "high",
"end_user_to_charge": "abcde12345",
"a_b_test_group": "group_a"
}
}
Esquema de tabela de inferência ativado pelo AI Gateway
As tabelas de inferência ativadas usando o AI Gateway têm o seguinte esquema:
Nome da coluna | Descrição | Type |
---|---|---|
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 |
Um identificador de solicitação gerado pelo cliente opcional que pode ser especificado no corpo da solicitação de serviço do modelo. | STRING |
request_time |
O carimbo de data/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 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. | 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 |
ARRAY | |
requester |
A ID do usuário ou da entidade de serviço cujas permissões são usadas para a solicitação de invocação do ponto de extremidade de serviço. | STRING |
Atualizar recursos do AI Gateway em pontos de extremidade
É possível atualizar os recursos do AI Gateway em pontos de extremidade de serviço do modelo que os ativaram anteriormente e em pontos de extremidade que não os ativaram. As atualizações nas configurações do AI Gateway levam cerca de 20 a 40 segundos para serem aplicadas, mas as atualizações de limitação de taxa podem levar até 60 segundos.
Veja a seguir como atualizar os recursos do AI Gateway em um pontos de extremidade de serviço de modelo usando a IU de serviço.
Na seção Gateway da página do ponto de extremidade, você pode ver quais recursos estão habilitados. Para atualizar esses recursos, clique em Editar AI Gateway.
Exemplo de notebook
O notebook a seguir mostra como habilitar e usar programaticamente os recursos do Databricks Mosaic AI Gateway para gerenciar e controlar modelos a partir dos provedores. Consulte o seguinte para obter detalhes da API REST: