I servizi di intelligenza artificiale offrono funzionalità di inferenza online, che possono essere utilizzate per l'inferenza in tempo reale su nuovi dati. Per i casi d'uso che richiedono l'assegnazione di un punteggio in batch, è possibile eseguire un processo di distribuzione in batch per testare la distribuzione del servizio AI.
Metodi per testare le distribuzioni di servizi di intelligenza artificiale
I servizi di intelligenza artificiale offrono funzionalità di inferenza online, che possono essere utilizzate per l'inferenza in tempo reale su nuovi dati. Questa capacità di inferenza è utile per le applicazioni che richiedono previsioni in tempo reale, come i chatbot, i sistemi di raccomandazione e i sistemi di rilevamento delle frodi.
Per testare i servizi di intelligenza artificiale per l'inferenza online, è possibile utilizzare l'interfaccia utente watsonx.ai, la libreria client Python o l'API REST. Per ulteriori informazioni, consultare la sezione Implementazioni del servizio di inferenza AI per il punteggio online.
Per testare i servizi di intelligenza artificiale per le applicazioni di inferenza in streaming, è possibile utilizzare la libreria client Python o l'API REST di watsonx.ai. Per ulteriori informazioni, vedere Implementazioni del servizio di inferenza AI per applicazioni di streaming.
Per i casi d'uso che richiedono l'assegnazione di un punteggio in batch, creare ed eseguire un processo di distribuzione in batch. È possibile fornire qualsiasi input JSON valido come payload all'endpoint dell'API REST per l'inferenza. Per ulteriori informazioni, vedere Test delle distribuzioni batch per i servizi AI.
Test di implementazioni di servizi di intelligenza artificiale per il punteggio online
È possibile creare il proprio servizio di IA online utilizzando l'interfaccia utente di watsonx.ai, l'API REST o la libreria client Python watsonx.ai.
Inferenza con l'interfaccia utente
È possibile utilizzare l'interfaccia utente per l'inferenza dei servizi di intelligenza artificiale, fornendo qualsiasi payload JSON valido che sia in linea con lo schema del modello. Seguire i seguenti passaggi per l'inferenziazione dell'implementazione del servizio AI:
Nello spazio di distribuzione o nel progetto, aprire la scheda Deployments e fare clic sul nome dell'installazione client.
Fare clic sulla scheda Test per immettere un testo di richiesta e ottenere una risposta dall'asset distribuito.
Immettere i dati del test in formato JSON per generare l'output in formato JSON.
Limitazione:Non è possibile inserire dati di input in formato testo per testare la distribuzione del servizio AI. Per i test è necessario utilizzare il formato JSON.
Inferenza con la libreria client Python
Utilizzare la funzione " run_ai_service
per eseguire un servizio AI fornendo un payload di punteggio:
ai_service_payload = {"query": "testing ai_service generate function"}
client.deployments.run_ai_service(deployment_id, ai_service_payload)
Per ulteriori informazioni, consultare la documentazione della libreria client Pythonwatsonx.ai per l'esecuzione di un asset di servizio AI.
Inferenza con API REST
Utilizzare l'endpoint REST " /ml/v4/deployments/{id_or_name}/ai_service
per l'inferenza dei servizi AI per il punteggio online (servizi AI che includono la funzione " generate()
):
# Any valid json is accepted in POST request to /ml/v4/deployments/{id_or_name}/ai_service
payload = {
"mode": "json-custom-header",
't1': 12345 ,
't2': ["hello", "wml"],
't3': {
"abc": "def",
"ghi": "jkl"
}
}
response = requests.post(
f'{HOST}/ml/v4/deployments/{dep_id}/ai_service?version={VERSION}',
headers=headers,
verify=False,
json=payload
)
print(f'POST {HOST}/ml/v4/deployments/{dep_id}/ai_service?version={VERSION}', response.status_code)
from json.decoder import JSONDecodeError
try:
print(json.dumps(response.json(), indent=2))
except JSONDecodeError:
print(f"response text >>\n{response.text}")
print(f"\nThe user customized content-type >> '{response.headers['Content-Type']}'")
Test di implementazioni di servizi AI per applicazioni di streaming
È possibile dedurre il deployment online del servizio di IA per le applicazioni di streaming utilizzando l'API REST di watsonx.ai o la libreria client Python di watsonx.ai.
Inferenza con la libreria client Python
Utilizzare la funzione " run_ai_service_stream
per eseguire un servizio di intelligenza artificiale per applicazioni di streaming, fornendo un payload di punteggio.
ai_service_payload = {"sse": ["Hello", "WatsonX", "!"]}
for data in client.deployments.run_ai_service_stream(deployment_id, ai_service_payload):
print(data)
Per ulteriori informazioni, consultare la documentazione della libreria client Pythonwatsonx.ai per l'esecuzione di un asset di servizio AI per lo streaming.
Inferenza con API REST
Utilizzare l'endpoint REST " /ml/v4/deployments/{id_or_name}/ai_service_stream
per i servizi di intelligenza artificiale per le applicazioni di streaming (servizi di intelligenza artificiale che includono la funzione " generate_stream()
):
TOKEN=f'{client._get_icptoken()}'
%%writefile payload.json
{
"sse": ["Hello" ,"WatsonX", "!"]
}
!curl -N \
-H "Content-Type: application/json" -H "Authorization: Bearer {TOKEN}" \
{HOST}'/ml/v4/deployments/'{dep_id}'/ai_service_stream?version='{VERSION} \
--data @payload.json
Output
id: 1 evento: messaggio dati: Ciao
id: 2 evento: messaggio dati: WatsonX
id: 3 evento: messaggio dati: !
id: 4 evento: eos
Test delle distribuzioni in batch per i servizi di intelligenza artificiale
È possibile utilizzare l'interfaccia utente watsonx.ai, la libreria client Python o l'API REST per creare ed eseguire un lavoro di distribuzione batch se è stata creata una distribuzione batch per il servizio AI (asset del servizio AI che contiene la funzione 'generate_batch()
).
Prerequisiti
È necessario impostare le credenziali dell'attività per eseguire un processo di distribuzione batch per il servizio AI. Per ulteriori informazioni, vedere Gestione delle credenziali delle attività.
Test con l'interfaccia utente
Per saperne di più sulla creazione e l'esecuzione di un lavoro di distribuzione batch per il servizio AI dall'interfaccia utente dello spazio di distribuzione, vedere Creazione di lavori negli spazi di distribuzione.
Test con la libreria client Python
Seguite questi passaggi per testare la distribuzione batch creando ed eseguendo un lavoro:
Creare un lavoro per testare la distribuzione in batch del servizio AI:
batch_reference_payload = { "input_data_references": [ { "type": "connection_asset", "connection": {"id": "2d07a6b4-8fa9-43ab-91c8-befcd9dab8d2"}, "location": { "bucket": "wml-v4-fvt-batch-pytorch-connection-input", "file_name": "testing-123", }, } ], "output_data_reference": { "type": "data_asset", "location": {"name": "nb-pytorch_output.zip"}, }, } job_details = client.deployments.create_job(deployment_id, batch_reference_payload) job_uid = client.deployments.get_job_uid(job_details) print("The job id:", job_uid)
Controllare lo stato del lavoro:
## Get job status client.deployments.get_job_status(job_uid)
Ulteriori informazioni
Argomento principale: Distribuzione dei servizi AI