Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste artigo, você aprenderá a criar pontos de extremidade de serviço de modelo que implantam e servem modelos de base.
O Serviço de Modelo de IA do Mosaico é dá suporte para os seguintes modelos:
- Modelos externos. Estes são modelos de base hospedados fora do Databricks. Os pontos de extremidade que atendem modelos externos podem ser controlados centralmente e os clientes podem estabelecer limites de taxa e controle de acesso para eles. Exemplos incluem modelos de base como GPT-4 da OpenAI e Claude da Antropic.
- Modelos fundamentais abertos de última geração disponibilizados pelas APIs de modelos fundamentais. Esses modelos são arquiteturas de modelo de base com curadoria que dão suporte à inferência otimizada. Modelos básicos, como Meta-Llama-3.1-70B-Instruct, GTE-Large e Mistral-7B estão disponíveis para uso imediato com preços de pagamento por token . Cargas de trabalho de produção, usando modelos de base ou ajustados, podem ser implantadas com garantias de desempenho usando a taxa de transferência provisionada.
O Serviço de Modelo fornece as seguintes opções para criação de ponto de extremidade de modelagem:
- A interface do usuário de serviço
- API REST
- SDK de Implantações do MLflow
Para criar pontos de extremidade que atendem modelos ML ou Python tradicionais, consulte Criar modelo personalizado que atende pontos de extremidade.
Requisitos
- Um workspace do Databricks em uma região com suporte.
- Para criar pontos de extremidade usando o SDK de Implantações do MLflow, você deve instalar o cliente de Implantação do MLflow. Para instalá-lo, execute:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
Criar um ponto de extremidade de serviço de foundation model
Você pode criar um ponto de extremidade que atende variantes refinadas de modelos de base disponibilizados usando a taxa de transferência provisionada de APIs de Modelos de Base. Confira Criar ponto de extremidade de taxa de transferência provisionada usando a API REST.
Para modelos de base que são disponibilizados usando APIs de Modelos de Base pagas por token, o Databricks fornece automaticamente pontos de extremidade específicos para acessar os modelos com suporte no workspace do Databricks. Para acessá-los, selecione a guia Servir na barra lateral esquerda do workspace. As APIs de foundation model estão localizadas na parte superior da exibição de lista pontos de extremidade.
Para consultar esses pontos de extremidade, consulte Usar modelos de base.
Criar um ponto de extremidade de serviço de modelo externo
O seguinte descreve como criar um endpoint que consulta um modelo base disponibilizado usando modelos externos do Databricks.
Servindo a interface do usuário
- No campo Nome, forneça um nome para o ponto de extremidade.
- Na seção Entidades atendidas
- Clique no campo Entidade para abrir o formulário Selecionar entidade atendida.
- Selecione modelos do Foundation.
- No campo Selecionar um modelo de base , selecione o provedor de modelo que você deseja usar daqueles listados em provedores de modelo externos. O formulário é atualizado dinamicamente com base na seleção do provedor de modelos.
- Clique em Confirmar.
- Forneça os detalhes de configuração para acessar o provedor de modelo selecionado. Normalmente, esse é o segredo que faz referência ao token de acesso pessoal que você deseja que o endpoint utilize para acessar este modelo.
- Selecione a tarefa. As tarefas disponíveis são chat, conclusão e inserções.
- Selecione o nome do modelo externo que você deseja usar. A lista de modelos é atualizada dinamicamente com base na seleção de tarefas. Consulte os modelos externos disponíveis.
- Clique em Criar. A página Pontos de extremidade de serviço é exibida com o estado De serviço do ponto de extremidade mostrado como Não Pronto.
API REST
Importante
Os parâmetros da API REST para criar pontos de extremidade de serviço que atendem a modelos externos estão em Versão Prévia Pública.
O exemplo a seguir cria um ponto de extremidade que fornece a primeira versão do modelo text-embedding-ada-002 fornecido pela OpenAI.
Consulte POST /api/2.0/serving-endpoints para obter os parâmetros de configuração dos pontos de extremidade.
{
"name": "openai_endpoint",
"config":
{
"served_entities":
[
{
"name": "openai_embeddings",
"external_model":{
"name": "text-embedding-ada-002",
"provider": "openai",
"task": "llm/v1/embeddings",
"openai_config":{
"openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
}
}
}
]
},
"rate_limits": [
{
"calls": 100,
"key": "user",
"renewal_period": "minute"
}
],
"tags": [
{
"key": "team",
"value": "gen-ai"
}
]
}
A seguir, um exemplo de resposta.
{
"name": "openai_endpoint",
"creator": "user@email.com",
"creation_timestamp": 1699617587000,
"last_updated_timestamp": 1699617587000,
"state": {
"ready": "READY"
},
"config": {
"served_entities": [
{
"name": "openai_embeddings",
"external_model": {
"provider": "openai",
"name": "text-embedding-ada-002",
"task": "llm/v1/embeddings",
"openai_config": {
"openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
}
},
"state": {
"deployment": "DEPLOYMENT_READY",
"deployment_state_message": ""
},
"creator": "user@email.com",
"creation_timestamp": 1699617587000
}
],
"traffic_config": {
"routes": [
{
"served_model_name": "openai_embeddings",
"traffic_percentage": 100
}
]
},
"config_version": 1
},
"tags": [
{
"key": "team",
"value": "gen-ai"
}
],
"id": "69962db6b9db47c4a8a222d2ac79d7f8",
"permission_level": "CAN_MANAGE",
"route_optimized": false
}
SDK de Implantações do MLflow
A seguir, cria um ponto de extremidade para inserções com o OpenAI text-embedding-ada-002.
Para pontos de extremidade de modelo externos, você deve fornecer chaves de API para o provedor de modelo que deseja usar. Consulte POST /api/2.0/serving-endpoints na API REST para obter detalhes do esquema de solicitação e resposta. Para obter um guia passo a passo, consulte Tutorial: Criar pontos de extremidade de modelo externos para consultar modelos de OpenAI.
Também é possível criar pontos de extremidade para conclusões e tarefas de chat, conforme especificado pelo campo task na seção external_model da configuração. Consulte Modelos externos no Serviço de Modelo do Mosaic AI para modelos e provedores com suporte para cada tarefa.
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="chat",
config={
"served_entities": [
{
"name": "completions",
"external_model": {
"name": "gpt-4",
"provider": "openai",
"task": "llm/v1/chat",
"openai_config": {
"openai_api_key": "{{secrets/scope/key}}",
},
},
}
],
},
)
assert endpoint == {
"name": "chat",
"creator": "alice@company.com",
"creation_timestamp": 0,
"last_updated_timestamp": 0,
"state": {...},
"config": {...},
"tags": [...],
"id": "88fd3f75a0d24b0380ddc40484d7a31b",
}
Atualizar os pontos de extremidade que servem ao modelo
Após habilitar um ponto de extremidade de modelo, você pode definir a configuração de computação conforme desejado. Essa configuração é particularmente útil se você precisar de recursos adicionais para seu modelo. O tamanho da carga de trabalho e a configuração de computação desempenham uma função fundamenta em quais os recursos são alocados para servir seu modelo.
Até que a nova configuração esteja pronta, a configuração antiga continuará atendendo ao tráfego de previsão. Embora haja uma atualização em andamento, outra atualização não pode ser feita. Na interface do usuário do Serviço, você pode cancelar uma atualização de configuração que está em andamento, selecionando Cancelar atualização no canto superior direito dos detalhes do endpoint. Essa funcionalidade só está disponível na interface do usuário de serviço.
Quando um external_model está presente em uma configuração de ponto de extremidade, a lista de entidades atendidas só pode ter um objeto served_entity. Os pontos de extremidade existentes com external_model não podem ser atualizados para que deixem de ter external_model. Se o ponto de extremidade for criado sem um external_model, você não poderá atualizá-lo para adicionar um external_model.
API REST
Para atualizar seu ponto de extremidade, consulte a documentação de configuração de atualização da API REST para obter detalhes do esquema de solicitação e resposta.
{
"name": "openai_endpoint",
"served_entities":
[
{
"name": "openai_chat",
"external_model":{
"name": "gpt-4",
"provider": "openai",
"task": "llm/v1/chat",
"openai_config":{
"openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
}
}
}
]
}
SDK de Implantações do MLflow
Para atualizar seu ponto de extremidade, consulte a documentação de configuração de atualização da API REST para obter detalhes do esquema de solicitação e resposta.
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.update_endpoint(
endpoint="chat",
config={
"served_entities": [
{
"name": "chats",
"external_model": {
"name": "gpt-4",
"provider": "openai",
"task": "llm/v1/chat",
"openai_config": {
"openai_api_key": "{{secrets/scope/key}}",
},
},
}
],
},
)
assert endpoint == {
"name": "chats",
"creator": "alice@company.com",
"creation_timestamp": 0,
"last_updated_timestamp": 0,
"state": {...},
"config": {...},
"tags": [...],
"id": "88fd3f75a0d24b0380ddc40484d7a31b",
}
rate_limits = client.update_endpoint(
endpoint="chat",
config={
"rate_limits": [
{
"key": "user",
"renewal_period": "minute",
"calls": 10,
}
],
},
)
assert rate_limits == {
"rate_limits": [
{
"key": "user",
"renewal_period": "minute",
"calls": 10,
}
],
}