Altre informazioni su come creare un modello di intelligenza artificiale generativa che gestisce gli endpoint
Questo articolo illustra come creare endpoint di gestione dei modelli che distribuiscono e gestiscono modelli di intelligenza artificiale generativi.
Mosaic AI Model Serving supporta i modelli seguenti:
Modelli esterni. Si tratta di modelli generativi 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. Gli esempi includono modelli di intelligenza artificiale generativi, ad esempio GPT-4 di OpenAI, Claude di Anthropic e altri.
Modelli di base aperti all’avanguardia resi disponibili dalle API del modello foundation. 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 usano modelli di base o ottimizzati, possono essere distribuiti con garanzie di prestazioni usando la velocità effettiva con provisioning.
La gestione dei modelli offre le opzioni seguenti per la creazione di endpoint del modello:
- Interfaccia utente di servizio
- REST API
- 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 gestione di un modello di base
È possibile creare un endpoint che gestisce varianti ottimizzate dei modelli di base resi disponibili usando la velocità effettiva con provisioning delle API del modello di base. Consultare la sezione Creare l’endpoint di velocità effettiva con provisioning usando l'API REST.
Per i modelli di base resi disponibili tramite 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 Serve 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 Eseguire query sui modelli di intelligenza artificiale generativi.
Creare un endpoint di gestione di un modello esterno
Di seguito viene descritto come creare un endpoint che gestisce un modello di intelligenza artificiale generativo reso disponibile usando modelli esterni di Databricks.
Serving interfaccia utente
- Nel campo Nome immettere un nome per il calendario.
- Nella sezione Entità servite
- Fare clic su campo Entità per aprire il modulo Seleziona entità servita.
- Selezionare Modello esterno.
- Selezionare il provider di posta elettronica da usare.
- Fare clic su Conferma
- Specificare il nome del modello esterno da usare. Il modulo viene aggiornato dinamicamente in base alla selezione. Consultare i modelli esterni disponibili.
- Selezionare il tipo di attività. Le attività disponibili sono chat, completamenti e incorporamenti.
- Specificare i dettagli di configurazione per l'accesso al provider di modelli selezionato. Si tratta in genere del segreto che fa riferimento al token di accesso personale da usare per l'accesso a questo modello.
- Cliccare su Crea. La pagina “Gestione degli endpoint” viene visualizzata con lo Stato dell’endpoint di servizio visualizzato come Non pronto.
REST API
Importante
I parametri dell'API REST per la creazione di endpoint di gestione che servono modelli esterni sono disponibili in anteprima pubblica.
Nell'esempio seguente viene creato un endpoint che gestisce la prima versione del text-embedding-ada-002
modello fornito da OpenAI.
Consultare la sezione 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. Per informazioni dettagliate sullo schema di richiesta e risposta, consultare la sezione POST /api/2.0/serving-endpoints nell'API REST. Per una guida dettagliata, consultare Esercitazione: Creare endpoint di modello esterni per eseguire query sui 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. Consultare Modelli esterni in Mosaic AI Model Serve 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 gli endpoint di gestione del modello
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 oggetto 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 , external_model
non è possibile aggiornarlo per aggiungere un oggetto external_model
.
REST API
Per aggiornare l'endpoint, vedere la documentazione relativa alla configurazione degli aggiornamenti dell'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 dell'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,
}
],
}
Risorse aggiuntive
- Informazioni sulle tabelle di inferenza per il monitoraggio e il debug dei modelli.
- Eseguire query sui modelli di intelligenza artificiale generativi.
- Modelli esterni in Mosaic AI Model Serving.