Partilhar via


Modelos externos no Mosaic AI Model Serving

Importante

Os exemplos de código neste artigo demonstram o uso da API CRUD de implantações MLflow do Public Preview .

Este artigo descreve modelos externos no Mosaic AI Model Serving incluindo seus provedores de modelos suportados e limitações.

O que são modelos externos?

Importante

Agora você pode configurar o Mosaic AI Gateway em pontos de extremidade de serviço de modelo que atendem modelos externos. O AI Gateway traz governança, monitoramento e prontidão de produção para esses endpoints de serviço de modelo. Consulte Mosaic AI Gateway.

Modelos externos são modelos de terceiros hospedados fora do Databricks. Suportados pelo Model Serving, os modelos externos permitem agilizar o uso e o gerenciamento de vários provedores de modelos de linguagem grande (LLM), como OpenAI e Anthropic, dentro de uma organização. Você também pode usar o Mosaic AI Model Servindo como um provedor para servir modelos personalizados, que oferece limites de taxa para esses endpoints. Como parte desse suporte, o Model Serving oferece uma interface de alto nível que simplifica a interação com esses serviços, fornecendo um ponto de extremidade unificado para lidar com solicitações específicas relacionadas ao LLM.

Além disso, o suporte do Azure Databricks para modelos externos fornece gerenciamento centralizado de credenciais. Ao armazenar chaves de API em um local seguro, as organizações podem melhorar sua postura de segurança minimizando a exposição de chaves de API confidenciais em todo o sistema. Ele também ajuda a evitar a exposição dessas chaves no código ou exigir que os usuários finais gerenciem as chaves com segurança.

Consulte Tutorial: Criar pontos de extremidade de modelo externos para consultar modelos OpenAI para obter orientação passo a passo sobre a criação de ponto de extremidade de modelo externo e consulta de modelos suportados atendidos por esses pontos de extremidade usando o SDK de implantações MLflow. Consulte os guias a seguir para obter instruções sobre como usar a interface do usuário de serviço e a API REST:

Requerimentos

  • Chave de API ou campos de autenticação para o provedor de modelo.
  • Espaço de trabalho Databricks em regiões suportadas por modelos externos.

Fornecedores de modelos

Os modelos externos no Model Serving foram concebidos para suportar uma variedade de fornecedores de modelos. Um provedor representa a origem dos modelos de aprendizado de máquina, como OpenAI, Anthropic e assim por diante. Cada provedor tem suas características e configurações específicas que são encapsuladas dentro do external_model campo da configuração de ponto final do modelo externo.

Os seguintes provedores são suportados:

Para solicitar suporte para um provedor não listado aqui, entre em contato com sua equipe de conta Databricks.

Modelos suportados

O modelo escolhido afeta diretamente os resultados das respostas obtidas das chamadas de API. Portanto, escolha um modelo que se adapte aos seus requisitos de caso de uso. Por exemplo, para gerar respostas de conversação, você pode escolher um modelo de chat. Por outro lado, para gerar incorporações de texto, você pode escolher um modelo de incorporação.

A tabela abaixo apresenta uma lista não exaustiva de modelos suportados e tipos de terminais correspondentes. As associações de modelo listadas abaixo podem ser usadas como um guia útil ao configurar um ponto de extremidade para qualquer tipo de modelo recém-lançado à medida que eles se tornam disponíveis com um determinado provedor. Os clientes são responsáveis por garantir a conformidade com as licenças de modelo aplicáveis.

Nota

Com o rápido desenvolvimento dos LLMs, não há garantia de que esta lista esteja sempre atualizada.

Provedor de modelo LLM/v1/Conclusão LLM/v1/bate-papo LLM/v1/Incorporações
OpenAI** - GPT-3.5-turbo-instruir
- Babbage-002
- Davinci-002
- GPT-3.5-Turbo
- GPT-4
- GPT-4O
- GPT-4O-2024-05-13
- GPT-4O-Mini
- GPT-3.5-Turbo-0125
- GPT-3.5-Turbo-1106
- GPT-4-0125-Pré-visualização
- GPT-4-Turbo-Pré-visualização
- GPT-4-1106-Pré-visualização
- gpt-4-visão-visualização
- gpt-4-1106-visão-visualização
- incorporação de texto-ada-002
- incorporação de texto-3-grande
- incorporação de texto-3-pequeno
Azure OpenAI** - texto-davinci-003
- GPT-35-turbo-instruir
- GPT-35-Turbo
- GPT-35-Turbo-16K
- GPT-4
- GPT-4-32K
- GPT-4O
- GPT-4O-Mini
- incorporação de texto-ada-002
- incorporação de texto-3-grande
- incorporação de texto-3-pequeno
Anthropic - Claude-1
- Claude-1.3-100K
- Claude-2
- Claude-2.1
- Claude-2.0
- claude-instante-1.2
- claude-3-5-soneto-20240620
- Claude-3-Haiku-20240307
- Claude-3-Opus-20240229
- claude-3-soneto-20240229
- Claude-2.1
- Claude-2.0
- claude-instante-1.2
Coaqui** - comando
- luz de comando
- comando-r-plus
- comando-r
- comando
- comando-luz-noturno
- luz de comando
- comando-noturno
- embed-inglês-v2.0
- incorporar-multilingue-v2.0
- embed-inglês-luz-v2.0
- embed-inglês-v3.0
- embed-inglês-luz-v3.0
- incorporar-multilingue-v3.0
- incorporar-multilingue-luz-v3.0
Servindo modelo de IA em mosaico Databricks servindo endpoint Databricks servindo endpoint Databricks servindo endpoint
Substrato rochoso amazônico Antrópico:

- claude-instante-v1
- Claude-V2

Coaqui:

- comando-texto-v14
- comando-luz-texto-v14

Laboratórios AI21:

- j2-grande-instruir
- j2-jumbo-instruir
- J2-MÉDIO
- J2-Mid-V1
- J2-Ultra
- J2-Ultra-V1
Antrópico:

- Claude-V2
- Claude-V2:1
- claude-3-soneto-20240229-v1:0
- claude-3-5-soneto-20240620-v1:0

Coaqui:

- comando-r-plus-v1:0
- comando-r-v1:0
- comando-texto-v14
- comando-luz-texto-v14
Amazônia:

- titan-embed-text-v1
- titan-embed-g1-texto-02

Coaqui:

- embed-inglês-v3
- incorporar-multilingue-v3
Laboratórios AI21† - J2-MÉDIO
- j2-luz
- J2-Ultra
Google Cloud Vertex AI texto-bisão - bate-papo-bisão
- Gêmeos-Pro
- Gêmeos-1.0-Pro
- Gêmeos-1.5-Pro
- Gêmeos-1.5-Flash
textembedding-lagartixa

** O provedor de modelos suporta modelos de conclusão e bate-papo ajustados. Para consultar um modelo ajustado, preencha o name external model campo da configuração com o nome do modelo ajustado.

† provedor de modelo oferece suporte a modelos de conclusão personalizados.

Use modelos servidos no Mosaic AI Model Serving endpoints

O Mosaic AI Model Serving endpoints como provedor é suportado para os llm/v1/completionstipos , llm/v1/chate endpoint llm/v1/embeddings . Esses pontos de extremidade devem aceitar os parâmetros de consulta padrão marcados como necessários, enquanto outros parâmetros podem ser ignorados, dependendo se o ponto de extremidade Mosaic AI Model Serving os suporta ou não.

Consulte POST /serving-endpoints/{name}/invocations na referência da API para parâmetros de consulta padrão.

Esses endpoints devem produzir respostas no seguinte formato OpenAI.

Para tarefas de conclusão:

{
"id": "123", # Not Required
"model": "test_databricks_model",
"choices": [
  {
    "text": "Hello World!",
    "index": 0,
    "logprobs": null, # Not Required
    "finish_reason": "length" # Not Required
  }
],
"usage": {
  "prompt_tokens": 8,
  "total_tokens": 8
  }
}

Para tarefas de chat:

{
  "id": "123", # Not Required
  "model": "test_chat_model",
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "\n\nHello there, how may I assist you today?",
    },
    "finish_reason": "stop"
  },
  {
    "index": 1,
    "message": {
      "role": "human",
      "content": "\n\nWhat is the weather in San Francisco?",
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 8,
    "total_tokens": 8
  }
}

Para tarefas de incorporação:

{
  "data": [
    {
      "embedding": [
       0.0023064255,
        -0.009327292,
        .... # (1536 floats total for ada-002)
        -0.0028842222,
      ],
      "index": 0
    },
    {
      "embedding": [
        0.0023064255,
        -0.009327292,
        .... #(1536 floats total for ada-002)
        -0.0028842222,
      ],
      "index": 0
    }
  ],
  "model": "test_embedding_model",
  "usage": {
    "prompt_tokens": 8,
    "total_tokens": 8
  }
}

Configuração do ponto final

Para servir e consultar modelos externos, você precisa configurar um ponto de extremidade de serviço. Consulte Criar um modelo externo servindo ponto de extremidade

Para um modelo externo que serve o ponto de extremidade, você deve incluir o external_model campo e seus parâmetros na served_entities seção da configuração do ponto final. Se você configurar vários modelos externos em um ponto de extremidade de serviço, deverá fornecer um traffic_config para definir a porcentagem de roteamento de tráfego para cada modelo externo.

O external_model campo define o modelo para o qual esse ponto de extremidade encaminha solicitações. Ao especificar um modelo, é fundamental que o provedor ofereça suporte ao modelo que você está solicitando. Por exemplo, openai como um provedor suporta modelos como text-embedding-ada-002, mas outros provedores podem não. Se o modelo não for suportado pelo provedor, o Databricks retornará um erro HTTP 4xx ao tentar rotear solicitações para esse modelo.

A tabela abaixo resume os parâmetros do external_model campo. Consulte POST /api/2.0/serving-endpoints para obter os parâmetros de configuração do ponto final.

Parâmetro Descrições
name O nome do modelo a ser usado. Por exemplo, gpt-3.5-turbo para o modelo da GPT-3.5-Turbo OpenAI.
provider Especifica o nome do provedor para este modelo. Esse valor de cadeia de caracteres deve corresponder a um provedor de modelo externo suportado. Por exemplo, openai para os GPT-3.5 modelos da OpenAI.
task A tarefa corresponde ao tipo de interação do modelo de linguagem que você deseja. As tarefas suportadas são "llm/v1/completions", "llm/v1/chat", "llm/v1/embeddings".
<provider>_config Contém todos os detalhes de configuração adicionais necessários para o modelo. Isso inclui especificar a URL base da API e a chave da API. Consulte Configurar o provedor para um ponto de extremidade.

A seguir está um exemplo de criação de um ponto de extremidade de modelo externo usando a create_endpoint() API. Neste exemplo, uma solicitação enviada para o ponto de extremidade de conclusão é encaminhada para o claude-2 modelo fornecido pela anthropic.

import mlflow.deployments

client = mlflow.deployments.get_deploy_client("databricks")

client.create_endpoint(
    name="anthropic-completions-endpoint",
    config={
        "served_entities": [
            {
                "name": "test",
                "external_model": {
                    "name": "claude-2",
                    "provider": "anthropic",
                    "task": "llm/v1/completions",
                    "anthropic_config": {
                        "anthropic_api_key": "{{secrets/my_anthropic_secret_scope/anthropic_api_key}}"
                    }
                }
            }
        ]
    }
)

Servir vários modelos externos a um endpoint

Você também pode configurar vários modelos externos em um ponto de extremidade de serviço, desde que todos tenham o mesmo tipo de tarefa e cada modelo tenha um arquivo name. O exemplo abaixo, cria um ponto de extremidade de serviço que encaminha 50% do tráfego para gpt-4 fornecido pela OpenAI e os 50% restantes para claude-3-opus-20240229 fornecido pela Anthropic.

import mlflow.deployments

client = mlflow.deployments.get_deploy_client("databricks")

client.create_endpoint(
    name="mix-chat-endpoint",
    config={
        "served_entities": [
            {
                "name": "served_model_name_1",
                "external_model": {
                    "name": "gpt-4",
                    "provider": "openai",
                    "task": "llm/v1/chat",
                    "openai_config": {
                        "openai_api_key": "{{secrets/my_openai_secret_scope/openai_api_key}}"
                    }
                }
            },
            {
                "name": "served_model_name_2",
                "external_model": {
                    "name": "claude-3-opus-20240229",
                    "provider": "anthropic",
                    "task": "llm/v1/chat",
                    "anthropic_config": {
                        "anthropic_api_key": "{{secrets/my_anthropic_secret_scope/anthropic_api_key}}"
                    }
                }
            }
        ],
        "traffic_config": {
            "routes": [
                {"served_model_name": "served_model_name_1", "traffic_percentage": 50},
                {"served_model_name": "served_model_name_2", "traffic_percentage": 50}
            ]
        },
    }
)

Configurar o provedor para um ponto de extremidade

Ao criar um ponto de extremidade, você deve fornecer as configurações necessárias para o provedor de modelo especificado. As seções a seguir resumem os parâmetros de configuração de ponto de extremidade disponíveis para cada provedor de modelo.

Nota

O Databricks criptografa e armazena com segurança as credenciais fornecidas para cada provedor de modelo. Essas credenciais são excluídas automaticamente quando seus pontos de extremidade associados são excluídos.

OpenAI

Parâmetro de configuração Description Necessário Predefinição
openai_api_key A referência de chave secreta do Azure Databricks para uma chave de API OpenAI usando o serviço OpenAI. Se preferir colar a chave da API diretamente, consulte openai_api_key_plaintext. Você deve fornecer uma chave de API usando um dos seguintes campos: openai_api_key ou openai_api_key_plaintext.
openai_api_key_plaintext A chave da API OpenAI usando o serviço OpenAI fornecido como uma cadeia de caracteres de texto simples. Se preferir fazer referência à sua chave usando o Azure Databricks Secrets, consulte openai_api_key. Você deve fornecer uma chave de API usando um dos seguintes campos: openai_api_key ou openai_api_key_plaintext deve ser fornecido.
openai_api_type Um campo opcional para especificar o tipo de API OpenAI a ser usado. Não openai
openai_api_base A URL base para a API OpenAI. Não https://api.openai.com/v1
openai_api_version Um campo opcional para especificar a versão da API OpenAI. Não
openai_organization Um campo opcional para especificar a organização no OpenAI. Não

Cohere

Parâmetro de configuração Description Necessário Predefinição
cohere_api_key A referência de chave secreta do Azure Databricks para uma chave de API Cohere. Se preferir colar a chave da API diretamente, consulte cohere_api_key_plaintext. Você deve fornecer uma chave de API usando um dos seguintes campos: cohere_api_key ou cohere_api_key_plaintext.
cohere_api_key_plaintext A chave da API Cohere fornecida como uma cadeia de caracteres de texto simples. Se preferir fazer referência à sua chave usando o Azure Databricks Secrets, consulte cohere_api_key. Você deve fornecer uma chave de API usando um dos seguintes campos: cohere_api_key ou cohere_api_key_plaintext.
cohere_api_base O URL base para o serviço Cohere. Não

Anthropic

Parâmetro de configuração Description Necessário Predefinição
anthropic_api_key A referência de chave secreta do Azure Databricks para uma chave de API antrópica. Se preferir colar a chave da API diretamente, consulte anthropic_api_key_plaintext. Você deve fornecer uma chave de API usando um dos seguintes campos: anthropic_api_key ou anthropic_api_key_plaintext.
anthropic_api_key_plaintext A chave da API Anthropic fornecida como uma cadeia de caracteres de texto simples. Se preferir fazer referência à sua chave usando o Azure Databricks Secrets, consulte anthropic_api_key. Você deve fornecer uma chave de API usando um dos seguintes campos: anthropic_api_key ou anthropic_api_key_plaintext.

Azure OpenAI

O Azure OpenAI tem recursos distintos em comparação com o serviço OpenAI direto. Para uma visão geral, consulte a documentação de comparação.

Parâmetro de configuração Description Necessário Predefinição
openai_api_key A referência de chave secreta do Azure Databricks para uma chave de API OpenAI usando o serviço do Azure. Se preferir colar a chave da API diretamente, consulte openai_api_key_plaintext. Você deve fornecer uma chave de API usando um dos seguintes campos: openai_api_key ou openai_api_key_plaintext.
openai_api_key_plaintext A chave da API OpenAI usando o serviço do Azure fornecido como uma cadeia de caracteres de texto sem formatação. Se preferir fazer referência à sua chave usando o Azure Databricks Secrets, consulte openai_api_key. Você deve fornecer uma chave de API usando um dos seguintes campos: openai_api_key ou openai_api_key_plaintext.
openai_api_type Use azure para validação de token de acesso. Sim
openai_api_base A URL base para o serviço de API OpenAI do Azure fornecido pelo Azure. Sim
openai_api_version A versão do serviço OpenAI do Azure a ser utilizada, especificada por uma data. Sim
openai_deployment_name O nome do recurso de implantação para o serviço Azure OpenAI. Sim
openai_organization Um campo opcional para especificar a organização no OpenAI. Não

Se você estiver usando o Azure OpenAI com a ID do Microsoft Entra, use os seguintes parâmetros em sua configuração de ponto de extremidade.

Parâmetro de configuração Description Necessário Predefinição
microsoft_entra_tenant_id A ID do locatário para autenticação do Microsoft Entra ID. Sim
microsoft_entra_client_id A ID do cliente para autenticação do Microsoft Entra ID. Sim
microsoft_entra_client_secret A referência de chave secreta do Azure Databricks para um segredo de cliente usado para autenticação de ID do Microsoft Entra. Se preferir colar o segredo do cliente diretamente, consulte microsoft_entra_client_secret_plaintext. Você deve fornecer uma chave de API usando um dos seguintes campos: microsoft_entra_client_secret ou microsoft_entra_client_secret_plaintext.
microsoft_entra_client_secret_plaintext O segredo do cliente usado para a autenticação do Microsoft Entra ID fornecido como uma cadeia de caracteres de texto sem formatação. Se preferir fazer referência à sua chave usando o Azure Databricks Secrets, consulte microsoft_entra_client_secret. Você deve fornecer uma chave de API usando um dos seguintes campos: microsoft_entra_client_secret ou microsoft_entra_client_secret_plaintext.
openai_api_type Use azuread para autenticação usando o Microsoft Entra ID. Sim
openai_api_base A URL base para o serviço de API OpenAI do Azure fornecido pelo Azure. Sim
openai_api_version A versão do serviço OpenAI do Azure a ser utilizada, especificada por uma data. Sim
openai_deployment_name O nome do recurso de implantação para o serviço Azure OpenAI. Sim
openai_organization Um campo opcional para especificar a organização no OpenAI. Não

O exemplo a seguir demonstra como criar um ponto de extremidade com o Azure OpenAI:

client.create_endpoint(
    name="openai-chat-endpoint",
    config={
        "served_entities": [{
            "external_model": {
                "name": "gpt-3.5-turbo",
                "provider": "openai",
                "task": "llm/v1/chat",
                "openai_config": {
                    "openai_api_type": "azure",
                    "openai_api_key": "{{secrets/my_openai_secret_scope/openai_api_key}}",
                    "openai_api_base": "https://my-azure-openai-endpoint.openai.azure.com",
                    "openai_deployment_name": "my-gpt-35-turbo-deployment",
                    "openai_api_version": "2023-05-15"
                }
            }
        }]
    }
)

Google Cloud Vertex AI

Parâmetro de configuração Description Necessário Predefinição
private_key A referência de chave secreta do Azure Databricks para uma chave privada para a conta de serviço que tem acesso ao Serviço de IA do Google Cloud Vertex. Consulte Práticas recomendadas para gerenciar chaves de conta de serviço. Se preferir colar a chave da API diretamente, consulte private_key_plaintext. Você deve fornecer uma chave de API usando um dos seguintes campos: private_key ou private_key_plaintext.
private_key_plaintext A chave privada para a conta de serviço que tem acesso ao Google Cloud Vertex AI Service fornecido como um segredo de texto simples. Consulte Práticas recomendadas para gerenciar chaves de conta de serviço. Se preferir fazer referência à sua chave usando o Azure Databricks Secrets, consulte private_key. Você deve fornecer uma chave de API usando um dos seguintes campos: private_key ou private_key_plaintext.
region Esta é a região para o Google Cloud Vertex AI Service. Consulte as regiões suportadas para obter mais detalhes. Alguns modelos só estão disponíveis em regiões específicas. Sim
project_id Este é o ID do projeto do Google Cloud ao qual a conta de serviço está associada. Sim

Substrato rochoso amazônico

Para usar o Amazon Bedrock como um provedor de modelo externo, os clientes precisam garantir que o Bedrock esteja habilitado na região da AWS especificada e que o par de chaves da AWS especificado tenha as permissões apropriadas para interagir com os serviços do Bedrock. Para obter mais informações, consulte AWS Identity and Access Management.

Parâmetro de configuração Description Necessário Predefinição
aws_region A região da AWS a ser usada. Bedrock tem que ser habilitado lá. Sim
aws_access_key_id A referência de chave secreta do Azure Databricks para um ID de chave de acesso da AWS com permissões para interagir com os serviços Bedrock. Se preferir colar a chave da API diretamente, consulte aws_access_key_id_plaintext. Você deve fornecer uma chave de API usando um dos seguintes campos: aws_access_key_id ou aws_access_key_id_plaintext.
aws_access_key_id_plaintext Um ID de chave de acesso da AWS com permissões para interagir com os serviços Bedrock fornecidos como uma cadeia de caracteres de texto simples. Se preferir fazer referência à sua chave usando o Azure Databricks Secrets, consulte aws_access_key_id. Você deve fornecer uma chave de API usando um dos seguintes campos: aws_access_key_id ou aws_access_key_id_plaintext.
aws_secret_access_key A referência de chave secreta do Azure Databricks para uma chave de acesso secreta da AWS emparelhada com o ID da chave de acesso, com permissões para interagir com os serviços Bedrock. Se preferir colar a chave da API diretamente, consulte aws_secret_access_key_plaintext. Você deve fornecer uma chave de API usando um dos seguintes campos: aws_secret_access_key ou aws_secret_access_key_plaintext.
aws_secret_access_key_plaintext Uma chave de acesso secreta da AWS emparelhada com o ID da chave de acesso, com permissões para interagir com os serviços Bedrock fornecidos como uma cadeia de caracteres de texto simples. Se preferir fazer referência à sua chave usando o Azure Databricks Secrets, consulte aws_secret_access_key. Você deve fornecer uma chave de API usando um dos seguintes campos: aws_secret_access_key ou aws_secret_access_key_plaintext.
bedrock_provider O provedor subjacente no Amazon Bedrock. Os valores suportados (sem distinção entre maiúsculas e minúsculas) incluem: Anthropic, Cohere, AI21Labs, Amazon Sim

O exemplo a seguir demonstra como criar um endpoint com o Amazon Bedrock usando chaves de acesso.

client.create_endpoint(
    name="bedrock-anthropic-completions-endpoint",
    config={
        "served_entities": [
            {
                "external_model": {
                    "name": "claude-v2",
                    "provider": "amazon-bedrock",
                    "task": "llm/v1/completions",
                    "amazon_bedrock_config": {
                        "aws_region": "<YOUR_AWS_REGION>",
                        "aws_access_key_id": "{{secrets/my_amazon_bedrock_secret_scope/aws_access_key_id}}",
                        "aws_secret_access_key": "{{secrets/my_amazon_bedrock_secret_scope/aws_secret_access_key}}",
                        "bedrock_provider": "anthropic",
                    },
                }
            }
        ]
    },
)

Se houver problemas de permissão da AWS, o Databricks recomenda que você verifique as credenciais diretamente com a API do Amazon Bedrock.

Laboratórios AI21

Parâmetro de configuração Description Necessário Predefinição
ai21labs_api_key A referência de chave secreta do Azure Databricks para uma chave de API do AI21 Labs. Se preferir colar a chave da API diretamente, consulte ai21labs_api_key_plaintext. Você deve fornecer uma chave de API usando um dos seguintes campos: ai21labs_api_key ou ai21labs_api_key_plaintext.
ai21labs_api_key_plaintext Uma chave de API do AI21 Labs fornecida como uma cadeia de caracteres de texto simples. Se preferir fazer referência à sua chave usando o Azure Databricks Secrets, consulte ai21labs_api_key. Você deve fornecer uma chave de API usando um dos seguintes campos: ai21labs_api_key ou ai21labs_api_key_plaintext.

Configurar o AI Gateway em um ponto de extremidade

Você também pode configurar seu endpoint para habilitar os recursos do Mosaic AI Gateway , como limitação de taxa, rastreamento de uso e guarda-corpos.

Consulte Configurar o AI Gateway em pontos de extremidade de serviço de modelo.

Consultar um ponto de extremidade de modelo externo

Depois de criar um ponto de extremidade de modelo externo, ele estará pronto para receber tráfego de usuários.

Você pode enviar solicitações de pontuação para o endpoint usando o cliente OpenAI, a API REST ou o SDK de implantações MLflow.

O exemplo a seguir consulta o claude-2 modelo de conclusão hospedado pela Anthropic usando o cliente OpenAI. Para usar o cliente OpenAI, preencha o model campo com o nome do ponto de extremidade de serviço do modelo que hospeda o modelo que você deseja consultar.

Este exemplo usa um ponto de extremidade criado anteriormente, anthropic-completions-endpoint, configurado para acessar modelos externos do provedor de modelo antrópico. Veja como criar pontos de extremidade de modelo externos.

Consulte Modelos suportados para obter modelos adicionais que você pode consultar e seus provedores.

import os
import openai
from openai import OpenAI

client = OpenAI(
    api_key="dapi-your-databricks-token",
    base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)

completion = client.completions.create(
  model="anthropic-completions-endpoint",
  prompt="what is databricks",
  temperature=1.0
)
print(completion)

Formato de resposta de saída esperado:

{
"id": "123", # Not Required
"model": "anthropic-completions-endpoint",
"choices": [
  {
    "text": "Hello World!",
    "index": 0,
    "logprobs": null, # Not Required
    "finish_reason": "length" # Not Required
  }
],
"usage": {
  "prompt_tokens": 8,
  "total_tokens": 8
  }
}

Parâmetros de consulta adicionais

Você pode passar quaisquer parâmetros adicionais suportados pelo provedor do ponto de extremidade como parte de sua consulta.

Por exemplo:

  • logit_bias (suportado por OpenAI, Cohere).
  • top_k (apoiado por Anthropic, Cohere).
  • frequency_penalty (suportado por OpenAI, Cohere).
  • presence_penalty (suportado por OpenAI, Cohere).
  • stream (suportado por OpenAI, Anthropic, Cohere, Amazon Bedrock for Anthropic). Isso só está disponível para solicitações de bate-papo e conclusão.

Limitações

Dependendo do modelo externo escolhido, sua configuração pode fazer com que seus dados sejam processados fora da região de origem dos dados. Consulte Limites e regiões de serviço do modelo.

Se você optar por configurar vários modelos externos em um ponto de extremidade de serviço, todos os modelos externos deverão ter o mesmo tipo de tarefa e cada modelo precisará de um arquivo name. Não é possível ter modelos externos e modelos não externos no mesmo ponto de extremidade de serviço.

Recursos adicionais