Configurar a otimização de rota no ponto de extremidade de serviço

Este artigo descreve como configurar a otimização de rota em seu modelo de serviço ou endpoint e como consultá-los. Feature Serving e como consultá-los. O ponto final de atendimento otimizado para rota reduz drasticamente a latência de sobrecarga e permite melhorias substanciais na taxa de transferência suportada pelo seu endpoint.

A otimização da rota é recomendada para cargas de trabalho com alta taxa de transferência ou sensíveis à latência.

Requisitos

  • Para otimização de rotas em um modelo de serviço endpoint, consulte Requisitos.

  • Para otimização de rota em um Feature Serving endpoint, consulte Requisitos.

Ativar a otimização de rota em um modelo de serviço endpoint

Especifique o parâmetro route_optimized durante a criação do modelo endpoint para configurar seu endpoint para otimização de rota. O senhor só pode especificar esse parâmetro durante a criação do site endpoint. Não é possível atualizar o endpoint existente para que ele seja otimizado para a rota.

POST /api/2.0/serving-endpoints

{
  "name": "my-endpoint",
  "config":{
    "served_entities": [{
      "entity_name": "ads1",
      "entity_version": "1",
      "workload_type": "CPU",
      "workload_size": "Small",
      "scale_to_zero_enabled": true,
    }],
  },
  "route_optimized": true
}

O senhor pode ativar a otimização de rota para um endpoint na Serving UI. Se o senhor usar Python, poderá usar o seguinte Notebook para criar uma rota otimizada que atenda a endpoint.

Criar uma rota otimizada para atender a endpoint usando Python Notebook

Abra o bloco de anotações em outra guia

Habilite a otimização de rotas em um site Feature Serving endpoint

Para usar a otimização de rota para recurso e Function Serving, especifique o nome completo da especificação de recurso no campo entity_name para atender às solicitações de criação do endpoint. O entity_version não é necessário para o FeatureSpecs.

POST /api/2.0/serving-endpoints

{
  "name": "my-endpoint",
  "config": {
    "served_entities": [
      {
        "entity_name": "catalog_name.schema_name.feature_spec_name",
        "workload_type": "CPU",
        "workload_size": "Small",
        "scale_to_zero_enabled": true
      }
    ]
  },
  "route_optimized": true
}

Rota de consulta otimizada servindo o modelo de endpoint

Os passos a seguir mostram como testar a consulta de uma rota otimizada servindo o modelo endpoint.

Para uso em produção, como usar a rota otimizada endpoint em um aplicativo, o senhor deve criar um token OAuth. Os passos a seguir mostram como buscar tokens na UI de serviço. Para fluxo de trabalho programático, consulte Fetch an OAuth tokens programmatically.

  1. Obtenha um OAuth tokens da UI de serviço do seu workspace.

    1. Clique em Serving na barra lateral para exibir a interface de usuário Serving.

    2. Na página Serving endpoint, selecione sua rota otimizada endpoint para ver os detalhes de endpoint.

    3. Na página de detalhes do endpoint, clique no botão Query endpoint (Consultar endpoint ).

    4. Selecione Fetch tokens tab.

    5. Selecione o botão Fetch OAuth tokens. Esses tokens são válidos por 1 hora. Obtenha novos tokens se os tokens atuais expirarem.

  2. Obtenha o URL do modelo de serviço endpoint na página de detalhes endpoint da UI de serviço.

  3. Use os tokens OAuth do passo 1 e o URL endpoint do passo 2 para preencher o seguinte código de exemplo que consulta a rota otimizada endpoint.

url="your-endpoint-url"
OAUTH_TOKEN=xxxxxxx

curl -X POST -H 'Content-Type: application/json' -H "Authorization: Bearer $OAUTH_TOKEN" -d@data.json $url

Para que a Python SDK consulte uma rota otimizada endpoint, entre em contato com sua equipe Databricks account .

Obter um OAuth tokens programaticamente

Usar uma entidade de serviço para autenticar com Databricks fornece orientação sobre como obter tokens OAuth programaticamente. Além desses passos, o senhor deve especificar authorization_details na solicitação.

  • Substitua <token-endpoint-URL> pelos tokens anteriores endpoint URL.

  • Substitua <client-id> pelo ID do cliente da entidade de serviço, que também é conhecido como ID do aplicativo.

  • Substitua <client-secret> pelo segredo OAuth da entidade de serviço que o senhor criou.

  • Substitua <endpoint-id> pela ID endpoint da rota otimizada endpoint. O senhor pode buscar isso em hostname na url endpoint.

  • Substitua <action> pela permissão de ação concedida à entidade de serviço. A ação pode ser query_inference_endpoint ou manage_inference_endpoint.

Por exemplo:

      export CLIENT_ID=<client-id>
      export CLIENT_SECRET=<client-secret>
      export ENDPOINT_ID=<endpoint-id>
      export ACTION=<action>

      curl --request POST \
      --url <token-endpoint-URL> \
      --user "$CLIENT_ID:$CLIENT_SECRET" \
      --data 'grant_type=client_credentials&scope=all-apis'
      --data-urlencode 'authorization_details=[{"type":"workspace_permission","object_type":"serving-endpoints","object_path":"'"/serving-endpoints/$ENDPOINT_ID"'","actions": ["'"$ACTION"'"]}]'

Limitações

  • A otimização de rotas só está disponível para o ponto de extremidade de modelo de serviço personalizado e para o ponto de extremidade Feature Serving. Não há suporte para APIs de modelo básico e modelos externos.

  • Os tokens OAuth internos da Databricks são a única autenticação compatível com a otimização de rotas. Não há suporte para o site pessoal access tokens.