Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come creare endpoint di gestione dei modelli che distribuiscono e gestiscono modelli di base.
Mosaic AI Model Serving supporta i modelli seguenti:
- Modelli esterni. Si tratta di modelli di base ospitati all'esterno di Databricks. Gli endpoint che servono modelli esterni possono essere regolati in maniera centralizzata e i clienti ne possono stabilire limiti di velocità e controlli di accesso. Alcuni esempi includono modelli di base come GPT-4 di OpenAI e Claude anthropic.
- Modelli di fondazione aperti all’avanguardia resi disponibili dalle API del modello di fondazione. Questi modelli sono architetture di modelli di base curate che supportano l'inferenza ottimizzata. I modelli di base, come Meta-Llama-3.1-70B-Instruct, GTE-Large e Mistral-7B sono disponibili per un uso immediato con prezzi con pagamento per token . I carichi di lavoro di produzione, che utilizzano modelli di base o ottimizzati, possono essere distribuiti con garanzie di prestazioni usando il throughput assegnato.
La gestione dei modelli offre le opzioni seguenti per la creazione di endpoint del modello:
- Interfaccia utente di servizio
- REST API (Interfaccia di Programmazione delle Applicazioni REST)
- MLflow Deployments SDK
Per la creazione di endpoint che servono modelli di Machine Learning o Python tradizionali, consultare la sezione Creare endpoint di gestione di modelli personalizzati.
Requisiti
- Un’area di lavoro di Databricks in un’area supportata.
- Per creare endpoint con MLflow Deployments SDK, è necessario installare il client di distribuzione MLflow. Per installarlo, eseguire:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
Creare un endpoint di servizio per un modello di fondazione
È possibile creare un endpoint che gestisce varianti ottimizzate dei modelli fondamentali resi disponibili usando le API dei modelli fondamentali attraverso il provisioning della velocità effettiva. Consultare Crea il tuo endpoint di throughput con provisioning usando l'API REST.
Per i modelli di base resi disponibili usando le API del modello di base con pagamento in base al token , Databricks fornisce automaticamente endpoint specifici per accedere ai modelli supportati nell'area di lavoro di Databricks. Per accedervi, selezionare la scheda Serving nella barra laterale sinistra dell'area di lavoro. Le API del modello di base si trovano nella parte superiore della visualizzazione elenco Endpoint.
Per eseguire query su questi endpoint, vedere Usare i modelli di base.
Creare un endpoint di servizio per un modello esterno
Di seguito viene descritto come creare un endpoint che esegue query su un modello di base reso disponibile usando i modelli esterni di Databricks.
Servizio dell'interfaccia utente
- Nel campo Nome fornire un nome per il tuo endpoint.
- Nella sezione Entità servite
- Fare clic nel campo dell'entità per aprire il modulo di selezione dell'entità servita .
- Selezionare modelli Foundation.
- Nel campo Seleziona un modello di base, seleziona il provider di modelli che desideri utilizzare tra quelli elencati in Provider di modelli esterni. Il modulo viene aggiornato dinamicamente in base alla selezione del tuo provider di modelli.
- Fare clic su Conferma.
- Specificare i dettagli di configurazione per l'accesso al provider di modelli selezionato. Si vuole che l'endpoint usi questo segreto, che è in genere collegato al token di accesso personale , per accedere a questo modello.
- Selezionare l'attività. Le attività disponibili sono chat, completamento e incorporamenti.
- Selezionare il nome del modello esterno da usare. L'elenco dei modelli viene aggiornato dinamicamente in base alla selezione delle attività. Consultare i modelli esterni disponibili.
- Cliccare su Crea. La pagina degli endpoint di servizio appare con lo stato dell’endpoint di servizio indicato come Non pronto.
REST API (Interfaccia di Programmazione delle Applicazioni REST)
Importante
I parametri dell'API REST per la creazione di endpoint che servono modelli esterni si trovano in anteprima pubblica.
Nell'esempio seguente viene creato un endpoint che gestisce la prima versione del text-embedding-ada-002
modello fornito da OpenAI.
Vedere post /api/2.0/serving-endpoints per i parametri di configurazione degli endpoint.
{
"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"
}
]
}
Di seguito è riportato un esempio di risposta.
{
"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
}
MLflow Deployments SDK
Di seguito viene creato un endpoint per gli incorporamenti con OpenAI text-embedding-ada-002
.
Per gli endpoint del modello esterno, è necessario specificare le chiavi API per il provider di modelli che si vuole usare. Vedere POST /api/2.0/serving-endpoints nell'API REST per informazioni dettagliate sullo schema di richiesta e risposta. Per una guida dettagliata, consultare Esercitazione: Creare endpoint di modelli esterni per interrogare i modelli OpenAI.
È anche possibile creare endpoint per i completamenti e le attività di chat, come specificato dal task
campo nella external_model
sezione della configurazione. Vedere Modelli esterni in Mosaic AI Model Serving per i modelli e i provider supportati per ogni attività.
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",
}
Aggiornare i modelli di gestione degli endpoint
Dopo aver abilitato un endpoint del modello, è possibile impostare la configurazione di calcolo in base alle esigenze. Questa configurazione è particolarmente utile se sono necessarie risorse aggiuntive per il modello. Le dimensioni del carico di lavoro e la configurazione di calcolo svolgono un ruolo chiave nelle risorse allocate per gestire il modello.
Fino a quando la nuova configurazione non è pronta, la configurazione precedente continua a gestire il traffico di stima. Mentre è in corso un aggiornamento, non è possibile eseguire un altro aggiornamento. Nell'interfaccia utente di gestione è possibile annullare un aggiornamento della configurazione in corso selezionando Annulla aggiornamento nella parte superiore destra della pagina dei dettagli dell'endpoint. Questa funzionalità è disponibile solo nell'interfaccia utente Di servizio.
Quando un external_model
è presente in una configurazione dell'endpoint, l'elenco delle entità servite può avere un solo oggetto served_entity. Gli endpoint esistenti con un external_model
oggetto non possono essere aggiornati per non avere più un oggetto external_model
. Se l'endpoint viene creato senza un external_model
, non è possibile aggiornarlo per aggiungere un external_model
.
REST API (Interfaccia di Programmazione delle Applicazioni REST)
Per aggiornare l'endpoint, vedere la documentazione relativa alla configurazione degli aggiornamenti api REST per informazioni dettagliate sullo schema di richiesta e risposta.
{
"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}}"
}
}
}
]
}
MLflow Deployments SDK
Per aggiornare l'endpoint, vedere la documentazione relativa alla configurazione degli aggiornamenti api REST per informazioni dettagliate sullo schema di richiesta e risposta.
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,
}
],
}