provisionamento Taxa de transferência Foundation Model APIs
Este artigo demonstra como implantar modelos usando o Foundation Model APIs provisionamento Taxa de transferência. Databricks recomenda o provisionamento de taxas de transferência para cargas de trabalho de produção e fornece inferência otimizada para modelos de fundação com garantias de desempenho.
O que é provisionamento Taxa de transferência?
Ao criar um provisionamento Taxa de transferência servindo modelo endpoint em Databricks, você aloca capacidade de inferência dedicada para garantir uma Taxa de transferência consistente para o modelo básico que deseja servir. Os endpoints de serviço que atendem modelos básicos podem ser provisionados em blocos de unidades de modelo (os endpoints de modelo legados são provisionados com base em bandas detokens por segundo). O número de unidades modelo que você aloca permite adquirir exatamente a Taxa de transferência necessária para dar suporte confiável à sua aplicação GenAI de produção.
- Consulte Realize sua própria avaliação comparativa do LLM endpoint
- Consulte Modelos de fundação suportados em Mosaic AI Model Serving para obter uma lista de arquiteturas de modelo suportadas para o endpoint de provisionamento Taxa de transferência.
Unidades modelo em provisionamento Taxa de transferência
As unidades modelo são uma unidade de Taxa de transferência que determina a quantidade de trabalho que o seu endpoint pode processar por minuto. Ao criar um novo provisionamento Taxa de transferência endpoint, é necessário especificar quantas unidades de modelo devem ser provisionadas para cada modelo atendido.
A quantidade de trabalho necessária para processar cada solicitação ao seu endpoint depende do tamanho da entrada e da saída gerada. À medida que o número de tokens de entrada e saída aumenta, a quantidade de trabalho necessária para processar uma solicitação também aumenta. A geração de saída tokens é mais intensiva em recursos do que o processamento de entrada tokens. O trabalho necessário para cada solicitação cresce de maneira não linear à medida que a contagem de tokens de entrada ou saída aumenta, o que significa que, para uma determinada quantidade de unidades do modelo, seu endpoint pode lidar com:
- Várias solicitações pequenas ao mesmo tempo.
- Menos solicitações de contexto longo antes que a execução exceda a capacidade.
Ou, para um exemplo mais concreto, para uma carga de trabalho de tamanho médio com 3.500 entradas tokens e 300 saídas tokens, é possível estimar a taxa de transferência por segundo ( tokens ) para um determinado número de unidades do modelo:
Modelo | Unidades modelo | Estimativa de tokens por segundo |
---|---|---|
Llama 4 Maverick | 50 | 3250 |
Requisitos
Veja os requisitos. Para modelos de fundação implantados com ajuste fino, consulte modelos de fundação implantados com ajuste fino.
[Recomendado] implantado modelos de fundação de Unity Catalog
Visualização
Esse recurso está em Public Preview.
A Databricks recomenda o uso dos modelos básicos que estão pré-instalados no Unity Catalog. Você pode encontrar esses modelos no catálogo system
no esquema ai
(system.ai
).
Implantar um modelo de fundação:
- Navegue até
system.ai
no Catalog Explorer. - Clique no nome do modelo a ser implantado.
- Na página do modelo, clique no botão Servir este modelo .
- A página Create serving endpoint é exibida. Consulte Criar seu provisionamento Taxa de transferência endpoint usando a UI.
Para implantar um modelo Meta Llama de system.ai
em Unity Catalog, o senhor deve escolher a versão do Instruct aplicável. As versões básicas dos modelos Meta Llama não são compatíveis com a implantação a partir do Unity Catalog. Consulte os modelos Foundation hospedados na Databricks para saber quais são as variantes do modelo Meta Llama suportadas.
modelos de fundação implantados a partir de Databricks Marketplace
Como alternativa, o senhor pode instalar modelos básicos no Unity Catalog a partir do Databricks Marketplace.
O senhor pode pesquisar uma família de modelos e, na página do modelo, pode selecionar Get access (Obter acesso ) e fornecer credenciais de login para instalar o modelo no Unity Catalog.
Depois que o modelo for instalado em Unity Catalog, o senhor poderá criar um modelo de serviço endpoint usando a Serving UI.
implantado modelos de fundação ajustados
Se não for possível usar os modelos no esquema system.ai
ou instalar modelos do site Databricks Marketplace, o senhor pode implantar um modelo de base ajustado, registrando-o no site Unity Catalog. Esta seção e as seguintes mostram como configurar seu código para log um modelo MLflow para Unity Catalog e criar seu provisionamento Taxa de transferência endpoint usando a interface do usuário ou o REST API.
Requisitos
- A implantação de modelos de fundação com ajuste fino é compatível apenas com o site MLflow 2.11 ou acima. Databricks Runtime 15.0 ML e o acima pré-instala a versão compatível do MLflow.
- A Databricks recomenda o uso de modelos no Unity Catalog para acelerar o upload e o download de modelos grandes.
Defina o nome do catálogo, do esquema e do modelo
Para implantar um modelo de base bem ajustado, defina o catálogo de destino Unity Catalog, o esquema e o nome do modelo de sua escolha.
mlflow.set_registry_uri('databricks-uc')
CATALOG = "catalog"
SCHEMA = "schema"
MODEL_NAME = "model_name"
registered_model_name = f"{CATALOG}.{SCHEMA}.{MODEL_NAME}"
registrar seu modelo
Para habilitar o provisionamento Taxa de transferência para o seu modelo endpoint, o senhor deve log seu modelo usando a variante MLflow transformers
e especificar o argumento task
com "llm/v1/embeddings"
.
Esse argumento especifica a assinatura API usada para o modelo de serviço endpoint. Consulte a documentação do MLflow para obter mais detalhes sobre a tarefa llm/v1/embeddings
e seus esquemas de entrada e saída correspondentes.
A seguir, um exemplo de como log o modelo Alibaba-NLP/gte-large-en-v1.5
para que ele possa ser atendido com o provisionamento Taxa de transferência:
model = AutoModel.from_pretrained("Alibaba-NLP/gte-large-en-v1.5")
tokenizer = AutoTokenizer.from_pretrained("Alibaba-NLP/gte-large-en-v1.5")
with mlflow.start_run():
components = {
"model": model,
"tokenizer": tokenizer,
}
mlflow.transformers.log_model(
transformers_model=components,
artifact_path="model",
task="llm/v1/embeddings",
registered_model_name=registered_model_name,
# model_type is required for logging a fine-tuned BGE models.
metadata={
"model_type": "gte-large"
}
)
Depois que seu modelo estiver registrado em Unity Catalog, continue em Create your provisionamento Taxa de transferência endpoint usando a UI para criar um modelo de serviço endpoint com provisionamento Taxa de transferência.
Crie seu provisionamento Taxa de transferência endpoint usando a UI.
Depois que os modelos registrados estiverem em Unity Catalog, crie um provisionamento da Taxa de transferência que atenda a endpoint com as seguintes etapas:
- Navegue até a UI de serviço em seu site workspace.
- Selecione Criar endpoint de serviço .
- No campo Entity (Entidade ), selecione seu modelo no Unity Catalog. Para modelos elegíveis, a interface do usuário da entidade atendida mostra a tela de provisionamento Taxa de transferência .
- Em Up to dropdown o senhor pode configurar o máximo de tokens por segundo Taxa de transferência para o seu endpoint.
- provisionamento O ponto de extremidade da taxa de transferência escala automaticamente, de modo que o senhor pode selecionar Modify para view o mínimo de tokens por segundo que seu endpoint pode escalar.
Crie seu provisionamento Taxa de transferência endpoint usando o site REST API
Para implantar seu modelo no modo de provisionamento Taxa de transferência usando o site REST API, o senhor deve especificar os campos min_provisioned_throughput
e max_provisioned_throughput
em sua solicitação. Se preferir o Python, o senhor também pode criar um endpoint usando o MLflow Deployment SDK.
Para identificar a faixa adequada de provisionamento da Taxa de transferência para seu modelo, consulte Obter provisionamento da Taxa de transferência em incrementos.
import requests
import json
# Set the name of the MLflow endpoint
endpoint_name = "prov-throughput-endpoint"
# Name of the registered MLflow model
model_name = "ml.llm-catalog.foundation-model"
# Get the latest version of the MLflow model
model_version = 3
# Get the API endpoint and token for the current notebook context
API_ROOT = "<YOUR-API-URL>"
API_TOKEN = "<YOUR-API-TOKEN>"
headers = {"Context-Type": "text/json", "Authorization": f"Bearer {API_TOKEN}"}
optimizable_info = requests.get(
url=f"{API_ROOT}/api/2.0/serving-endpoints/get-model-optimization-info/{model_name}/{model_version}",
headers=headers)
.json()
if 'optimizable' not in optimizable_info or not optimizable_info['optimizable']:
raise ValueError("Model is not eligible for provisioned throughput")
chunk_size = optimizable_info['throughput_chunk_size']
# Minimum desired provisioned throughput
min_provisioned_throughput = 2 * chunk_size
# Maximum desired provisioned throughput
max_provisioned_throughput = 3 * chunk_size
# Send the POST request to create the serving endpoint
data = {
"name": endpoint_name,
"config": {
"served_entities": [
{
"entity_name": model_name,
"entity_version": model_version,
"min_provisioned_throughput": min_provisioned_throughput,
"max_provisioned_throughput": max_provisioned_throughput,
}
]
},
}
response = requests.post(
url=f"{API_ROOT}/api/2.0/serving-endpoints", json=data, headers=headers
)
print(json.dumps(response.json(), indent=4))
Obter provisionamento Taxa de transferência em incrementos
O provisionamento Taxa de transferência está disponível em incrementos de tokens por segundo, com incrementos específicos que variam de acordo com o modelo. Para identificar a faixa adequada às suas necessidades, o site Databricks recomenda o uso das informações de otimização do modelo API na plataforma.
GET api/2.0/serving-endpoints/get-model-optimization-info/{registered_model_name}/{version}
A seguir, um exemplo de resposta da API:
Notebook exemplos
O Notebook a seguir mostra exemplos de como criar um provisionamento Taxa de transferência Foundation Model API:
provisionamento Taxa de transferência servindo para o modelo GTE Notebook
provisionamento Taxa de transferência servindo para o modelo BGE Notebook
Limitações
- A implantação do modelo pode falhar devido a problemas de capacidade da GPU, o que resulta em um tempo limite durante a criação ou atualização do endpoint. Entre em contato com a equipe do Databricks account para ajudar a resolver o problema.
- Auto-scaling for Foundation Models APIs é mais lento do que a CPU servindo modelo. A Databricks recomenda o provisionamento excessivo para evitar tempos limite de solicitação.
- O GTE v1.5 (inglês) não gera incorporações normalizadas.