Pular para o conteúdo principal

Serviços de modelo personalizados

Um serviço de modelo é um Endpoint que traduz e roteia solicitações de inferência para um ou mais modelos, com divisão de tráfego e fallback. Ele é compatível com solicitações em tempo real, além de inferência em lotes.

Crie um serviço de modelo personalizado para casos de uso como:

  • Um endpoint agnóstico de modelo para um aplicativo. Dê a um assistente de suporte ao cliente um serviço chamado production.ai.support-assistant. Altere o modelo subjacente sem alterar o nome que o aplicativo chama.
  • Roteamento personalizado e fallback. Use divisão de tráfego para enviar 10% do tráfego para um novo modelo antes de uma implantação mais ampla ou configure um destino de backup para solicitações com falha.
  • Um orçamento para uma carga de trabalho. Atribua uma tag a um serviço com project=support-assistant e defina o escopo de um orçamento mensal para essa tag, com um alerta em R$ 1.000 de gastos.
  • Controles de acesso para uma equipe. Conceda à equipe jurídica e aos seus Service Principal de aplicativo acesso a um serviço legal-review e use serviços separados para outras equipes.
  • Limites de taxa para uma carga de trabalho. Configure um serviço de teste para 100 solicitações por minuto e um serviço de produção para 1.000 solicitações por minuto usando limites de taxa de serviço.
  • Separe o monitoramento e os Logs. Envie solicitações e respostas de um assistente de suporte para uma tabela de inferência dedicada para que seu tráfego possa ser inspecionado separadamente do tráfego do agente de codificação.

Para fazer query em um modelo base atendido pelo Databricks sem criar um serviço, use um serviço de modelo fornecido pelo sistema em system.ai.

Um serviço pode fazer o roteamento para modelos servidos pelo Databricks, usando pagamento por token ou throughput provisionado, ou para modelos externos por meio de um provedor de modelo. Você pode combinar esses destinos em um único serviço.

Os serviços de modelo personalizado são protegíveis do Unity Catalog. Os chamadores os invocam pelo nome totalmente qualificado, catalog.schema.name, em workspaces ou de fora do Databricks. Consulte Governança e privilégios.

Requirements​

  • Um workspace do Databricks em uma região com suporte do Unity Gateway.
  • Unity Catalog habilitado para seu workspace. Consulte Ativar um workspace para o Unity Catalog.
  • Para criar um serviço de modelo, você deve ter:
    • USE CATALOG, USE SCHEMA e CREATE SERVICE no catálogo e no esquema em que você cria o serviço de modelo.
    • EXECUTE em cada modelo ao qual o serviço de modelo faz referência como destino.
    • EXECUTE, USE CATALOG e USE SCHEMA em cada provedor de modelo que o serviço de modelo referencia como destino.
    • USE CATALOG, USE SCHEMA e CREATE TABLE no catálogo e no esquema onde a tabela de inferência é criada, se você habilitar o registro em log de inferência.

Criar um serviço de modelo personalizado ​

Crie um serviço de modelo na interface do Unity Gateway ou no Explorador de Catálogos. Para criar um programaticamente, use a API REST, os SDKs do Databricks, a CLI do Databricks, o Terraform ou os Declarative Automation Bundles (DABs).

Os serviços de modelos e os provedores de modelos compartilham um único namespace em um esquema do Unity Catalog. Você não pode usar um nome para um serviço de modelo se um provedor de modelos no esquema já o estiver usando, e vice-versa.

  1. Siga um destes procedimentos:

    • Na barra lateral do workspace, clique em AI Gateway e, em seguida, em Create .
    • No Catalog Explorer, vá para o esquema onde deseja criar o serviço de modelo e clique em Create > Service > Model service .
  2. Insira um nome para o serviço de modelo e selecione o catálogo e o esquema em que deseja criá-lo. Se você começar a partir do Explorador de Catálogos, o Explorador de Catálogos preenche previamente o catálogo e o esquema.

  3. Selecione o destino principal a ser atendido. Esse destino pode ser um modelo atendido pelo Databricks no qual você EXECUTE e que o Unity Gateway pode atender, ou um provedor de modelo no qual você EXECUTE, USE CATALOG e USE SCHEMA.

  4. Clique em Criar .

Após criar o serviço de modelo, o Databricks abre a página de visão geral dele, onde você pode começar a usar ou configurar recursos adicionais, como registro em log de inferência.

Conceder acesso a um serviço de modelo ​

Por default, apenas o proprietário do serviço de modelo pode fazer query nele. Para permitir que outros façam query em um serviço de modelo, conceda a eles EXECUTE nele, além de USE CATALOG e USE SCHEMA em seu catálogo e esquema. Se o serviço de modelo fizer log em uma tabela de inferência, conceda SELECT na tabela para permitir que eles leiam as solicitações e respostas registradas.

  1. Abra o serviço de modelo no Catalog Explorer ou vá para AI Gateway e selecione o serviço.
  2. Vá para a tab Permissions.
  3. Clique em Conceder .
  4. Selecione os usuários, grupos ou service principals para conceder acesso.
  5. Selecione o privilégio EXECUTE .
  6. Clique em Conceder .

Consulte Descobrir e governar o acesso a serviços de modelo para obter mais informações sobre como conceder e descobrir acesso.

Configurar recursos em um serviço de modelo ​

Configure limites de taxa, registro de inferência e salvaguardas implementadas com políticas de serviço no serviço de modelo na interface do Unity Gateway. Consulte:

Registro de inferência ​

Quando você ativa o registro de log de inferência, o Databricks cria uma nova tabela vazia do Unity Catalog com um esquema predefinido no local especificado por você. Observe o seguinte:

  • Você deve ter USE CATALOG, USE SCHEMA e CREATE TABLE no catálogo e no esquema de destino.
  • O criador do serviço de modelo é o proprietário da tabela de inferência. Nenhum outro usuário tem acesso, a menos que você o conceda.
  • Se já existir uma tabela no local especificado, a criação do serviço de modelo falhará.
  • A tabela de inferência tem um ciclo de vida independente do serviço de modelo. Se você excluir a tabela, o serviço de modelo continuará funcionando, mas interromperá o registro em log.

Para obter mais informações sobre tabelas de inferência, consulte Logs de solicitações e respostas em tabelas de inferência.

Atualizar um serviço do modelo ​

Você deve ser um proprietário ou ter MANAGE.

Edite a configuração do serviço de modelo na interface de usuário do Unity Gateway ou no Catalog Explorer. As alterações são aplicadas no local.

Excluir um serviço de modelo ​

Você deve ser um proprietário ou ter MANAGE. Serviços de modelo fornecidos pelo sistema em system.ai não podem ser excluídos.

Abra o serviço de modelo na interface do Unity Gateway ou no Catalog Explorer e selecione Excluir no menu do ícone de três pontos.

Governança e privilégios ​

Como um objeto protegível do Unity Catalog, um serviço de modelo:

  • Reside em um catálogo e esquema , onde herda as configurações do esquema, como vinculações de workspace.
  • Contém metadados padrão do Unity Catalog , como nome, proprietário, comentário e tags.
  • É governado por privilégios do Unity Catalog , então você concede acesso usando as mesmas declarações GRANT e REVOKE que você usa para tabelas, funções e modelos.
  • É detectável no Catalog Explorer , juntamente com o restante dos seus ativos do Unity Catalog.

Os seguintes privilégios se aplicam:

Privilégio

Descrição

USE CATALOG, USE SCHEMA

Acesse o catálogo e o esquema que contêm o serviço de modelo. Necessário para todas as operações.

CREATE SERVICE

Crie serviços de modelo em um esquema. Concedido no catálogo ou esquema.

EXECUTE

Consultar um serviço de modelo.

MANAGE

Modificar ou excluir um serviço de modelo e gerenciar suas concessões. O proprietário tem um superconjunto de MANAGE.

Privilégio

Descrição

USE CATALOG, USE SCHEMA

Acesse o catálogo e o esquema que contêm o serviço de modelo. Necessário para todas as operações.

CREATE SERVICE

Crie serviços de modelo em um esquema. Concedido no catálogo ou esquema.

EXECUTE

Consultar um serviço de modelo.

MANAGE

Modificar ou excluir um serviço de modelo e gerenciar suas concessões. O proprietário tem um superconjunto de MANAGE.

Os serviços de modelo usam privilégios do definidor. O Databricks avalia uma query com base nos privilégios do proprietário em vez dos privilégios de quem a chamou. Quando um usuário faz uma query em um serviço de modelo, o Databricks verifica se o proprietário tem EXECUTE nos destinos referenciados, como os modelos subjacentes e quaisquer provedores de modelo. O chamador não precisa ter acesso direto a esses destinos.

Limitações​

Os seguintes recursos não são suportados:

  • Criando e gerenciando serviços de modelo com SQL.
  • Descoberta de serviços de modelo com apenas o privilégio BROWSE.
  • Pesquisa global por serviços de modelo.

Mais recursos ​