Creazione di lavori negli spazi di distribuzione

Un lavoro è un modo per eseguire una distribuzione batch o un asset autonomo come uno script, un notebook, un package di codice o un flusso in Watson Machine Learning. È possibile selezionare l'input e l'output per il lavoro e scegliere di eseguirlo manualmente o in base a una pianificazione. Da uno spazio di distribuzione, è possibile creare, pianificare, eseguire e gestire lavori.

Tipi di lavoro

È possibile creare offerte di lavoro per:

  • Modelli
  • Funzioni Python
  • Script (in Python o o R)
  • Notebook
  • Flows ( SPSS, Data Refinery )

I notebook, gli script, i pacchetti di codice e i flussi utilizzano ambienti notebook e non richiedono una distribuzione in batch per essere eseguiti. Per eseguire tale risorsa senza creare un processo batch, cercala nella scheda Risorse, fai clic sul pulsante Opzioni, seleziona Nuovo processo e segui la procedura di creazione del processo.

Creazione di un lavoro di distribuzione batch

Segui questi passaggi per creare un'operazione di distribuzione in batch:

Nota:

Per creare un processo batch è necessario disporre già di una distribuzione batch. Per informazioni sulla creazione di distribuzioni in batch, consultare la sezione Creazione di distribuzioni in batch.

  1. Dalla scheda Distribuzioni , selezionare la distribuzione e fare clic su Nuovo lavoro. Viene visualizzata la finestra di dialogo Crea lavoro . Segui le istruzioni visualizzate nella finestra di dialogo.
  2. Facoltativo: se si sta distribuendo uno script Python , uno script R o un notebook, è possibile immettere le variabili di ambiente per passare i parametri al lavoro. Fai clic su Variabili di ambiente per immettere la coppia key - value .
  3. Opzionale: per evitare l'esaurimento delle risorse dovuto alla conservazione di tutti i metadati storici dei lavori, seguire una delle seguenti opzioni:
    • Fare clic su Per quantità per impostare le soglie per salvare un numero impostato di esecuzioni di lavori e log associati.
    • Fare clic su Per durata (giorni) per impostare le soglie per il salvataggio delle risorse utente per un determinato numero di giorni.
  4. Facoltativo: nella sezione Pianificazione , attivare o disattivare il pulsante Pianificazione per pianificare un'esecuzione. È possibile impostare una data e un'ora per l'avvio della pianificazione e impostare una pianificazione per la ripetizione. Fare clic su Avanti.
    Nota: se non si specifica una pianificazione, il job viene eseguito immediatamente.
  5. Facoltativo: nella sezione Notifica , attivare il pulsante Disattiva per attivare le notifiche associate a questo lavoro. Fare clic su Avanti.
    Nota: puoi ricevere notifiche per tre tipi di eventi: riuscito, avvertenza e non riuscito.
  6. Nella sezione Scegli dati , fornire i dati in linea che corrispondono allo schema del modello. È possibile fornire l'input in formato JSON. Fare clic su Avanti. Vedi Esempio di payload JSON per i dati in linea.
  7. Nella sezione Revisiona e crea , verifica i dettagli del tuo lavoro e fai clic su Crea ed esegui.

Note :

  • Se si crea un lavoro basato su un pacchetto di codice, viene richiesto di selezionare un file entrypoint specifico.
  • I processi pianificati vengono visualizzati nella scheda Risorse dell'area di distribuzione.
  • I risultati delle esecuzioni dei processi vengono scritti nel file di output specificato e salvati come asset di spazio.
  • Un asset di dati può essere un file di origine dati promosso allo spazio, un'origine dati connessa o tabelle da database e file da origini dati basate su file.
  • Se si escludono determinati giorni della settimana nella pianificazione del lavoro, il lavoro potrebbe non essere eseguito come ci si aspetterebbe. Il motivo è dovuto a una discrepanza tra il fuso orario dell'utente che crea la pianificazione e il fuso orario del nodo principale su cui viene eseguito il lavoro.

Payload JSON di esempio per i dati in linea

{
  "deployment": {
    "id": "<deployment id>"
  },
  "space_id": "<your space id>",
  "name": "test_v4_inline",
  "scoring": {
  "input_data": [{
    "fields": ["AGE", "SEX", "BP", "CHOLESTEROL", "NA", "K"],
    "values": [[47, "M", "LOW", "HIGH", 0.739, 0.056], [47, "M", "LOW", "HIGH", 0.739, 0.056]]
    }]
  }
}

Accodamento ed esecuzioni di lavori simultanei

Il numero massimo di lavori simultanei per ogni distribuzione viene gestito internamente dal servizio di distribuzione. Per impostazione predefinita, si tratta di due lavori diversi per tutti i framework, tranne che per Decision Optimization. Per DO, il limite predefinito è un lavoro. Qualsiasi richiesta di lavoro di distribuzione per una distribuzione batch che abbia già un numero massimo consentito di lavori in esecuzione viene messa in coda per essere eseguita in un secondo momento. Quando uno dei lavori in esecuzione viene completato, viene eseguito il lavoro successivo nella coda. La coda non ha limiti di dimensione. Il numero di lavori contemporanei può essere modificato manualmente da un amministratore di Kubernetes. Per ulteriori informazioni, consultare la sezione Modifica del limite di processi simultanei consentiti per le distribuzioni batch.

Per le distribuzioni con framework DO, è possibile impostare il numero di lavori contemporanei consentiti per ogni distribuzione batch separatamente, impostando il parametro num_nodes . Il valore num_nodes impostato per una singola distribuzione batch deve essere inferiore al valore impostato globalmente per tutte le distribuzioni batch.

Questo esempio utilizza il client Python per impostare il numero di lavori contemporanei per una distribuzione batch DO a due:

change_meta = {
                client.deployments.ConfigurationMetaNames.HARDWARE_SPEC: {
                                       "name":"S",
                                       "num_nodes":2}
            }

client.deployments.update(<deployment_id>, change_meta)

Limitazione sull'utilizzo di payload inline di grandi dimensioni per le implementazioni batch

I lavori di distribuzione batch che utilizzano payload inline di grandi dimensioni potrebbero rimanere bloccati nello stato starting o running . Per sapere come risolvere questo problema, consulta la sezione "Problemi noti".

Suggerimento: se si forniscono payload di grandi dimensioni alle distribuzioni batch, utilizzare i riferimenti ai dati invece di quelli in linea.

Conservazione dei metadati del lavoro di distribuzione

I metadati relativi al lavoro vengono resi persistenti e possono essere acceduti fino a quando il lavoro e la relativa distribuzione non vengono eliminati.

Visualizzazione dei dettagli del lavoro di distribuzione

Quando si crea o si visualizza un lavoro batch, vengono visualizzati l'ID distribuzione e l'ID lavoro.

ID lavoro

  • L'ID distribuzione rappresenta la definizione di installazione, incluse le configurazioni hardware e software e gli asset correlati.
  • L'ID lavoro rappresenta i dettagli di un lavoro, inclusi i dati di input e un'ubicazione di output e una pianificazione per l'esecuzione del lavoro.

Utilizzare questi ID per fare riferimento al lavoro nelle richieste API Common Core di dati e intelligenza artificiale o nei notebook che utilizzano la libreria client Python watsonx.ai.

Cosa succede all'occupazione dopo l'aggiornamento di IBM Software Hub

I processi in esecuzione negli spazi di distribuzione falliscono se il processo utilizza una specifica software che è stata eliminata o che non è più supportata a seguito di un aggiornamento della versione di IBM Software Hub. Per eseguire nuovamente il lavoro, modificare il lavoro in modo che punti a una specifica software differente.

Per evitare che l'esecuzione del lavoro non riesca a causa di un aggiornamento, creare specifiche software personalizzate. I lavori associati a queste specifiche software verranno ancora eseguiti dopo un aggiornamento. Per ulteriori informazioni, vedi Personalizzazione dei runtime di distribuzione.