Configurar o AI Gateway em pontos de extremidade de serviço de modelo
Neste artigo, você aprenderá a configurar o Mosaic AI Gateway em um modelo de ponto de extremidade de serviço.
Requisitos
- Um espaço de trabalho Databricks em uma região com suporte de modelos externos.
- Conclua as etapas 1 e 2 de Criar um modelo externo que serve o ponto de extremidade.
Configurar o AI Gateway usando a interface do usuário
Esta seção mostra como configurar o AI Gateway durante a criação do endpoint usando a interface do usuário de serviço.
Se preferir fazer isso programaticamente, consulte o exemplo do Bloco de Anotações.
Na seção AI Gateway da página de criação de endpoint, você pode configurar individualmente os seguintes recursos do AI Gateway:
Caraterística | Como ativar | Detalhes |
---|---|---|
Controlo de utilização | Selecione Habilitar rastreamento de uso para habilitar o rastreamento e o monitoramento de métricas de uso de dados. | - Você deve ter o Unity Catalog ativado. - 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 token para cada solicitação para o endpoint e system.serving.served_entities que armazena metadados para cada modelo externo.- Consulte Esquemas de tabela de controle de uso - Somente os administradores de conta têm permissão para visualizar ou consultar a served_entities tabela ou endpoint_usage tabela, mesmo que 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. |
Registo de carga útil | Selecione Ativar tabelas de inferência para registrar automaticamente solicitações e respostas do seu endpoint em tabelas Delta gerenciadas pelo Unity Catalog. | - Você deve ter o Unity Catalog ativado e CREATE_TABLE acesso no esquema de catálogo especificado.- As tabelas de inferência habilitadas pelo AI Gateway têm um esquema diferente das tabelas de inferência criadas para modelos que servem endpoints que servem modelos personalizados. Consulte Esquema da tabela de inferência habilitada para AI Gateway. - Os dados de log de carga útil preenchem essas tabelas menos de uma hora depois de consultar o ponto de extremidade. - Cargas maiores que 1 MB não são registradas. - A carga útil de resposta agrega a resposta de todas as partes retornadas. - Streaming é suportado. Em cenários de streaming, a carga útil de resposta agrega a resposta de partes retornadas. |
AI Guardrails | Consulte Configurar guarda-corpos de IA na interface do usuário. | - Os guarda-corpos impedem que o modelo interaja com conteúdo inseguro e prejudicial que é detetado nas entradas e saídas do modelo. - Guarda-corpos de saída não são suportados para modelos de incorporação ou para streaming. |
Limites de taxa | Você pode impor limites de taxa de solicitação para gerenciar o tráfego do seu endpoint por usuário e por ponto final | - Os limites de taxa são definidos em consultas por minuto (QPM). - O padrão é Sem limite para cada usuário e por ponto de extremidade. |
Roteamento de tráfego | Para configurar o roteamento de tráfego em seu ponto de extremidade, consulte Servir vários modelos externos a um ponto de extremidade. |
Configurar guarda-corpos de IA na interface do usuário
A tabela a seguir mostra como configurar guarda-corpos suportados.
Guarda-corpo | Como ativar | Detalhes |
---|---|---|
Segurança | Selecione Segurança para ativar proteções para impedir que seu modelo interaja com conteúdo inseguro e prejudicial. | |
Deteção de informações de identificação pessoal (PII) | Selecione a deteção de PII para detetar dados de PII, como nomes, endereços, números de cartão de crédito. | |
Tópicos válidos | Você pode digitar tópicos diretamente neste campo. Se você tiver várias entradas, certifique-se de pressionar enter após cada tópico. Em alternativa, pode carregar um .csv ficheiro OR .txt . |
É possível especificar um máximo de 50 tópicos válidos. Cada tópico não pode exceder 100 caracteres |
Palavras-chave inválidas | Você pode digitar tópicos diretamente neste campo. Se você tiver várias entradas, certifique-se de pressionar enter após cada tópico. Em alternativa, pode carregar um .csv ficheiro OR .txt . |
Um máximo de 50 palavras-chave inválidas podem ser especificadas. Cada palavra-chave não pode exceder 100 caracteres. |
Esquemas de tabela de controle de uso
A system.serving.served_entities
tabela do sistema de controle de uso tem o seguinte esquema:
Nome da coluna | Description | Type |
---|---|---|
served_entity_id |
O ID exclusivo da entidade atendida. | STRING |
account_id |
O ID da conta de cliente para o Delta Sharing. | STRING |
workspace_id |
O ID do espaço de trabalho do cliente do ponto de extremidade de serviço. | STRING |
created_by |
O 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 entidade 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 Unity Catalog. |
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 de 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} |
ESTRUTURA |
foundation_model_config |
Configurações para modelos de fundação. Por exemplo{min_provisioned_throughput: 2200, max_provisioned_throughput: 4400} |
ESTRUTURA |
custom_model_config |
Configurações para modelos personalizados. Por exemplo{ min_concurrency: 0, max_concurrency: 4, compute_type: CPU } |
ESTRUTURA |
feature_spec_config |
Configurações para especificações de recursos. Por exemplo, { min_concurrency: 0, max_concurrency: 4, compute_type: CPU } |
ESTRUTURA |
change_time |
Carimbo de data/hora da alteração para a entidade atendida. | CARIMBO DE DATA/HORA |
endpoint_delete_time |
Carimbo de data/hora da exclusão da entidade. O ponto de extremidade é o contêiner para a entidade atendida. Depois que o ponto de extremidade é excluído, a entidade atendida também é excluída. | CARIMBO DE DATA/HORA |
A system.serving.endpoint_usage
tabela do sistema de controle de uso tem o seguinte esquema:
Nome da coluna | Description | Type |
---|---|---|
account_id |
O ID da conta de 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 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. | INTEIRO |
request_time |
O carimbo de data/hora no qual a solicitação é recebida. | CARIMBO DE DATA/HORA |
input_token_count |
A contagem de tokens da entrada. | LONGO |
output_token_count |
A contagem de tokens da saída. | LONGO |
input_character_count |
A contagem de caracteres da cadeia de caracteres de entrada ou prompt. | LONGO |
output_character_count |
A contagem de caracteres da cadeia de caracteres de saída da resposta. | LONGO |
usage_context |
O usuário forneceu um mapa contendo identificadores do usuário final ou do aplicativo do cliente que faz a chamada para o ponto de extremidade. Consulte Definir melhor o uso com usage_context. | MAPA |
request_streaming |
Se a solicitação está no modo de fluxo. | BOOLEANO |
served_entity_id |
O ID exclusivo usado para unir com a tabela de system.serving.served_entities dimensões para pesquisar informações sobre o ponto de extremidade e a entidade atendida. |
STRING |
Defina melhor o uso com usage_context
Ao consultar um modelo externo com o controle de uso habilitado, você pode fornecer o parâmetro com o usage_context
tipo Map[String, String]
. O mapeamento de contexto de uso aparece na tabela de controle de uso na usage_context
coluna. O tamanho do usage_context
mapa não pode exceder 10 KiB.
Os administradores de conta podem agregar diferentes linhas com base no contexto de uso para obter informações e podem unir essas informações com as informações na tabela de registro de carga útil. Por exemplo, você pode adicionar end_user_to_charge
ao para rastrear a usage_context
atribuição de custos 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 da tabela de inferência habilitada para AI Gateway
As tabelas de inferência habilitadas usando o AI Gateway têm o seguinte esquema:
Nome da coluna | Description | Type |
---|---|---|
request_date |
A data UTC em que o modelo de solicitação de notificação foi recebido. | 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 no qual a solicitação é recebida. | CARIMBO DE DATA/HORA |
status_code |
O código de status HTTP que foi retornado do modelo. | INT |
sampling_fraction |
A fração de amostragem utilizada no caso de o pedido ter sido reduzido para amostragem. Esse valor está entre 0 e 1, onde 1 representa que 100% das solicitações recebidas foram incluídas. | DUPLO |
execution_duration_ms |
O tempo 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 que o modelo levou para gerar previsões. | BIGINT |
request |
O corpo JSON de 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 |
O ID exclusivo da entidade atendida. | STRING |
logging_error_codes |
MATRIZ | |
requester |
A ID do usuário ou 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 endpoints
Você pode atualizar os recursos do AI Gateway em pontos de extremidade de serviço de modelo que os tinham habilitados anteriormente e pontos de extremidade que não tinham. As atualizações das configurações do AI Gateway levam cerca de 20 a 40 segundos para serem aplicadas, no entanto, as atualizações de limitação de taxa podem levar até 60 segundos.
A seguir mostra como atualizar os recursos do AI Gateway em um modelo de ponto de extremidade de serviço usando a interface do usuário 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 bloco de notas
O bloco de anotações a seguir mostra como habilitar e usar programaticamente os recursos do Databricks Mosaic AI Gateway para gerenciar e controlar modelos de provedores. Consulte o seguinte para obter detalhes da API REST: