Deploying foundation models on-demand with REST API
Distribuzione e gestione dei modelli di fondazione su richiesta con REST API
Ultimo aggiornamento: 05 mar 2025
Distribuzione e gestione dei modelli di fondazione su richiesta con REST API
La distribuzione di un modello di fondazione su richiesta lo rende disponibile su hardware dedicato per l'uso esclusivo della tua organizzazione. IBM fornisce una serie di modelli curati che sono disponibili per essere distribuiti su richiesta. È possibile distribuire modelli di fondazione su richiesta in modo programmatico con REST API.
Prima di iniziare
Copy link to section
È necessario impostare o abilitare le credenziali dell'attività per distribuire i modelli di fondazione su richiesta. Per ulteriori informazioni, vedere Gestione delle credenziali delle attività.
È possibile utilizzare l'endpoint /ml/v4/models per creare una risorsa per il modello di fondazione che si desidera distribuire su richiesta.
Il seguente frammento di codice mostra come creare una risorsa nel repository Runtime di watsonx.ai per distribuire il modello di base su richiesta. Utilizza l' asset ID e generato da questo codice quando distribuisci il tuo modello.
curl -X POST "https://<cluster url>/ml/v4/models?version=2024-01-29" \
-H "Authorization: Bearer <replace with your token>" \
-H "content-type: application/json" \
--data '{
"type": "curated_foundation_model_1.0",
"version": "1.0",
"name": "granite",
"space_id": "<Space id for deployment>",
"foundation_model": {
"model_id": "ibm/granite-13b-chat-v2-curated"
}
}'
Copy to clipboardCopiato negli appunti
Creazione di un'implementazione per un modello di fondazione on-demand
Copy link to section
È possibile utilizzare l'endpoint /ml/v4/deployments per distribuire un modello di base su richiesta all'interno del proprio spazio di distribuzione. Utilizza l' asset ID e generato quando hai creato la risorsa modello per la distribuzione. Per ulteriori informazioni, vedere Creazione di un asset modello.
Nota: le distribuzioni in batch non sono supportate per la distribuzione dei modelli di fondazione su richiesta.
Il seguente frammento di codice mostra come creare un'implementazione online per distribuire il modello di base su richiesta:
curl -X POST "https://<cluster url>/ml/v4/deployments?version=2024-01-29" \
-H "Authorization: Bearer <replace with your token>" \
-H "content-type: application/json" \
--data '{
"asset": {
"id": <Asset id created>
},
"online": {
"parameters": {
"serving_name": "llma"
}
},
"description": "<Description>,
"name": "mi",
"space_id": <Space id for deployment>
}'
Copy to clipboardCopiato negli appunti
Polling per lo stato di distribuzione
Copy link to section
È possibile verificare lo stato dell'installazione client utilizzando l'ID dell'installazione client. Quando lo stato passa da inizializzazione a pronto, la distribuzione è pronta per l'uso.
Il seguente esempio di codice mostra come usare l'API REST per interrogare lo stato di distribuzione:
curl -X GET "https://<replace with your cloud hostname>/ml/v4/deployments/<replace with your deployment ID>?version=2024-01-29&project_id=<replace with your project ID>" \
-H "Authorization: Bearer <replace with your token>"
Copy to clipboardCopiato negli appunti
Uscita:
"deployed_asset_type": "curated_foundation_model"
Copy to clipboardCopiato negli appunti
Modelli di fondazione di test distribuiti on-demand
Copy link to section
È possibile testare un modello di fondazione che viene distribuito su richiesta per l'inferenza online.
Generazione di risposte testuali
Copy link to section
Il seguente esempio di codice mostra come generare una risposta di testo utilizzando l'endpoint API dell' /ml/v1/deployments/<deployment ID>/text/generation :
Il seguente frammento di codice mostra come testare un modello di fondazione che viene distribuito su richiesta per l'inferenza online:
curl -X POST "https://<replace with your cloud hostname>/ml/v1/deployments/<replace with your deployment ID>/text/generation?version=2024-01-29" \
-H "Authorization: Bearer <replace with your token>" \
-H "content-type: application/json" \
--data '{
"input": "Hello, what is your name",
"parameters": {
"max_new_tokens": 200,
"min_new_tokens": 20
}
}'
Copy to clipboardCopiato negli appunti
Gestione dei modelli di fondazione distribuiti on-demand
Copy link to section
Accedi, aggiorna, ridimensiona o elimina i modelli di fondazione che vengono distribuiti su richiesta con l'API REST.
Accesso al modello distribuito
Copy link to section
Per recuperare l'elenco di tutti i modelli di fondazione che sono distribuiti on-demand in uno spazio di distribuzione con l'API REST, è possibile impostare il parametro di query 'type=curated_foundation_model.
Il seguente esempio di codice mostra come utilizzare l'API REST per accedere a tutti i modelli di fondazione distribuiti su richiesta in uno spazio di distribuzione:
curl -X GET "https://<replace with yourcloud hostname>/ml/v4/deployments?version=2024-01-29&space_id=<replace with your space ID>&type=curated_foundation_model" \
-H "Authorization: Bearer <replace with your token>"
Copy to clipboardCopiato negli appunti
Aggiornamento della distribuzione
Copy link to section
Aggiornare i metadati di distribuzione richiesti per l'installazione client, come nome, descrizione, tag e altro.
Il seguente esempio di codice mostra come aggiornare il nome del modello di fondazione distribuito su richiesta:
curl -X PATCH "https://<replace with your cloud hostname>//ml/v4/deployments/<replace with your deployment ID>?version=2024-01-29&project_id=<replace with your space ID>" \
-H "Authorization: Bearer <replace with your token>" \
-H "content-type: application/json" \
--data '[{
"op": "replace",
"path": "/name",
"value": "<replace with updated deployment name>"
}]'
Copy to clipboardCopiato negli appunti
Scalare la distribuzione
Copy link to section
È possibile distribuire solo un'istanza di un modello di fondazione su richiesta in uno spazio di distribuzione. Per gestire l'aumento della domanda, è possibile scalare la distribuzione creando copie aggiuntive.
Il seguente esempio di codice mostra come scalare il numero di repliche per la distribuzione:
curl -X PATCH "<replace with your cloud hostname>/ml/v4/deployments/<replace with your deployment ID>?version=2024-01-29&space_id=<replace with your space ID>" \
-H "Authorization: Bearer $token" \
-H "content-type: application/json" \
--data '[{
"op": "replace",
"path": "/hardware_request",
"value": {"num_nodes": 2}
}]'
Copy to clipboardCopiato negli appunti
Importante:
Se si desidera scalare le risorse hardware, utilizzare l'operazione 'PATCH con il parametro '/hardware_request e aggiornare il numero di nodi hardware fornendo un valore per il parametro 'num_nodes. Non è possibile utilizzare il parametro 'size con '/hardware_request.
Non è possibile utilizzare l'operazione " PATCH " per aggiornare i parametri del modello di fondazione (/online/parameters/foundation_model).
Eliminazione di una distribuzione
Copy link to section
Puoi cancellare il modello di fondazione distribuito quando non ti serve più per interrompere gli addebiti di fatturazione.
Il seguente esempio di codice mostra come eliminare un modello di fondazione distribuito su richiesta con l'API REST:
curl -vk -X DELETE "https://<replace with your cloud hostname>/ml/v4/deployments/<replace with your deployment ID>?version=2024-01-29&space_id=<replace with your space ID>" -H "Authorization: Bearer <replace with your token>"
Copy to clipboardCopiato negli appunti
Notebook di esempio
Copy link to section
Il seguente notebook di esempio mostra la richiesta di modelli di fondazione che vengono distribuiti programmaticamente su richiesta. È necessario distribuire il modello di base su richiesta prima di avviare il notebook.
Setup Creare un prompt per il modello Schema Linking Eseguire un'inferenza sul modello Schema Linking utilizzando l'endpoint WX.AI Postare il processo dell'output del modello Schema Linking Creare un prompt per il modello SQL Geneneration Eseguire un'inferenza sul modello SQL Generation utilizzando l'endpoint WX.AI