Distribuzione programmatica dei modelli di fondazione on-demand con API REST. L'implementazione di un foundation model on-demand lo rende disponibile su hardware dedicato ad uso esclusivo della vostra organizzazione. IBM fornisce una serie di modelli curati che sono disponibili per l'implementazione on-demand.
Prima di iniziare
- È 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à.
- Esaminare i requisiti e le considerazioni per la distribuzione di un foundation model on-demand.
Creazione di una risorsa modello
Si può usare l'endpoint '/ml/v4/models
per creare una risorsa per il foundation model che si vuole distribuire su richiesta.
Il seguente frammento di codice mostra come creare una risorsa nel repository watsonx.ai Runtime per distribuire il foundation model su richiesta. Utilizzare l'ID risorsa generato da questo codice quando si distribuisce il 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"
}
}'
Creazione di un'installazione client per un foundation model on-demand
Si può usare l'endpoint '/ml/v4/deployments
per distribuire un foundation model su richiesta in uno spazio di distribuzione. È necessario utilizzare l'ID risorsa generato quando si è creata la risorsa modello per la distribuzione. Per ulteriori informazioni, vedere Creazione di una risorsa modello.
Il seguente frammento di codice mostra come creare un deployment online per distribuire il foundation model 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>
}'
Polling per lo stato di distribuzione
È possibile verificare lo stato dell'installazione client utilizzando l'ID dell'installazione client. Quando lo stato passa da inizializzazione a pronto, l'installazione client è 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>"
Uscita:
"deployed_asset_type": "curated_foundation_model"
Modelli di fondazione di test distribuiti on-demand
È possibile testare un foundation model che viene distribuito on-demand per l'inferenza online.
Il seguente frammento di codice mostra come testare un foundation model che viene distribuito on-demand 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
}
}'
Gestione dei modelli di fondazione distribuiti on-demand
Accedete, aggiornate, scalate o cancellate i vostri foundation model distribuiti on-demand con l'API REST.
Accesso al modello distribuito
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>"
Aggiornamento della distribuzione
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 foundation model 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>"
}]'
Scalare la distribuzione
È possibile distribuire solo un'istanza di un foundation model 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}
}]'
- 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 foundation model (/online/parameters/foundation_model
).
Eliminazione di una distribuzione
È possibile eliminare il foundation model distribuito quando non è più necessario per interrompere i costi di fatturazione.
Il seguente esempio di codice mostra come cancellare un foundation model distribuito on-demand 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>"
Notebook di esempio
Il seguente notebook di esempio mostra la richiesta di modelli di fondazione che vengono distribuiti programmaticamente su richiesta. È necessario distribuire il foundation model su richiesta prima di eseguire il notebook.
Blocco appunti | Descrizione |
---|---|
Inferenza con i modelli Text-to-SQL Granite | 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 |
Ulteriori informazioni
- Modelli di fondazione supportati
- Prompt Lab
- Distribuzione dei modelli di fondazione su richiesta da Resource hub.
- Tariffe di fatturazione oraria per i modelli deploy on-demand
Argomento principale: Distribuzione di modelli di fondazione dedicati