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.
Questa pagina mostra come distribuire modelli utilizzando la capacità di fornitura provisionata su richiesta delle API Foundation Model .
Che cos'è il throughput provisionato su richiesta?
Quando si crea un modello di velocità effettiva con provisioning che gestisce l'endpoint in Azure Databricks, si alloca capacità di inferenza dedicata per garantire una velocità effettiva coerente per il modello di base che si vuole gestire. È possibile effettuare il provisioning degli endpoint che servono i modelli di base in blocchi di unità modello. Il numero di unità del modello assegnate consente di acquistare esattamente la capacità effettiva necessaria per supportare in modo affidabile la tua applicazione di IA in produzione.
Il throughput provisionato on-demand non ha un impegno a termine. Paghi per la capacità che assegni e puoi modificarla o rimuoverla in qualsiasi momento.
Per l'elenco delle architetture di modello supportate per gli endpoint con throughput di cui è stato effettuato il provisioning, consulta Modelli di base supportati su Model Serving.
Se non hai bisogno di capacità dedicata, Databricks consiglia Priority pay-per-token for Foundation Model APIs.
Requisiti
Vedere Requisiti.
[Consigliato] Distribuire modelli di base dal catalogo unity
Databricks consiglia di usare i modelli di base preinstallati in Unity Catalog. È possibile trovare questi modelli nel catalogo system nello schema ai (system.ai).
Nota
Se l'organizzazione utilizza le autorizzazioni di Unity Catalog per i modelli di base per limitare l'accesso ai modelli, gli endpoint con throughput di cui è stato effettuato il provisioning per i modelli non consentiti devono essere eliminati manualmente.
Per distribuire un modello fondazionale:
- Passare a
system.aiin Esplora Catalogo. - Fare clic sul nome del modello da distribuire.
- Nella pagina del modello, fare clic sul pulsante Distribuisci questo modello.
- La pagina Crea endpoint di servizio viene visualizzata. Vedi Crea il tuo endpoint con capacità di throughput assegnata usando l'interfaccia utente.
Nota
Per distribuire un modello Meta Llama da system.ai in Unity Catalog, è necessario scegliere la versione applicabile Istruzione. Le versioni di base dei modelli Meta Llama non sono supportate per la distribuzione da system.ai in Unity Catalog. Vedi le varianti del modello Meta Llama supportate dai modelli di base ospitati su Databricks.
Crea il tuo endpoint con il throughput previsto usando l'interfaccia utente
Dopo aver registrato il modello in Unity Catalog, creare un endpoint di servizio con throughput allocato seguendo questa procedura:
- Vai all'Interfaccia di Servizio dell'area di lavoro.
- Seleziona Crea endpoint di servizio.
- Nel campo Entity, selezionare il modello dal catalogo Unity. Per i modelli idonei, l'interfaccia utente per l'entità servita mostra la schermata Velocità di trasferimento provisionata.
- Nell'elenco a discesa Fino a è possibile configurare la velocità effettiva massima dei token al secondo per l'endpoint.
- Gli endpoint con throughput configurato si adattano automaticamente, consentendoti di selezionare Modifica per visualizzare il numero minimo di token al secondo a cui l'endpoint può ridursi.
Crea il tuo endpoint di throughput assegnato usando l'API REST
La richiesta all'API REST per creare un endpoint con throughput provisionato dipende dal fatto che il modello di base misuri la capacità in bande di throughput o in unità del modello. Per determinare quale misura si applica al tuo modello, vedi Unità modello in throughput provisionato.
Se preferisci Python, puoi anche creare un endpoint usando l'MLflow Deployment SDK.
Il seguente esempio crea un endpoint per un modello di fondazione che utilizza bande di throughput. Per questi modelli, devi specificare i campi min_provisioned_throughput e max_provisioned_throughput nella tua richiesta. Per identificare l'intervallo di velocità effettiva con provisioning appropriato per il tuo modello, vedere Ottenere la velocità effettiva di provisioning in incrementi.
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 = {"Content-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))
Il seguente esempio crea un endpoint per un modello di fondazione che utilizza unità modello. Per questi modelli, specifichi il provisioned_model_units campo nella tua richiesta e invii la richiesta POST all'endpoint /api/2.0/serving-endpoints/pt .
import requests
import json
# Set the name of the provisioned throughput endpoint
endpoint_name = "prov-throughput-endpoint"
# Name of the foundation model
model_name = "system.ai.gpt-oss-120b"
# Get the latest version of the foundation model
model_version = 1
# Get the API endpoint and token for the current notebook context
API_ROOT = "<YOUR-API-URL>"
API_TOKEN = "<YOUR-API-TOKEN>"
headers = {"Content-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['model_unit_chunk_size']
# Desired provisioned throughput
desired_model_units = 2 * 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,
"provisioned_model_units": desired_model_units,
}
]
},
}
response = requests.post(
url=f"{API_ROOT}/api/2.0/serving-endpoints/pt", json=data, headers=headers
)
print(json.dumps(response.json(), indent=4))
Probabilità logaritmica per le attività di completamento della chat
Per le attività di completamento della chat, è possibile usare il parametro logprobs per fornire la probabilità logaritmica che un token venga selezionato come parte del processo di generazione di modelli linguistici di ampia scala. È possibile usare logprobs per diversi scenari, tra cui la classificazione, la valutazione dell'incertezza del modello e l'esecuzione delle metriche di valutazione. Vedere API Completamento chat per informazioni dettagliate sui parametri.
Impostare la velocità effettiva fornita in incrementi
La larghezza di banda fornita è disponibile in incrementi di token al secondo, con variazioni specifiche a seconda del modello. Per identificare l'intervallo appropriato per le proprie esigenze, Databricks consiglia di usare l'API delle informazioni di ottimizzazione del modello all'interno della piattaforma.
GET api/2.0/serving-endpoints/get-model-optimization-info/{registered_model_name}/{version}
Di seguito è riportata una risposta di esempio dell'API:
{
"optimizable": true,
"model_type": "llama",
"throughput_chunk_size": 1580
}
Limitation
- La distribuzione del modello potrebbe non riuscire a causa di problemi di capacità GPU, che comportano un timeout durante la creazione o l'aggiornamento dell'endpoint. Contatta il tuo team dell'account Databricks per ricevere assistenza nella risoluzione del problema.