Job
I job di Data Science consentono task personalizzati che è possibile applicare a qualsiasi caso d'uso di cui si dispone, ad esempio la preparazione dei dati, l'addestramento dei modelli, l'ottimizzazione degli iperparametri, l'inferenza batch e così via.
Utilizzando i job è possibile:
-
Esegui attività di Machine Learning (ML) o di data science al di fuori delle sessioni notebook in JupyterLab.
-
Operazionalizza attività discrete di data science e machine learning come operazioni eseguibili riutilizzabili.
-
Automatizza la pipeline MLOps o CI/CD tipica.
-
Eseguire batch o carichi di lavoro attivati da eventi o azioni.
-
Inferenza batch, batch ridotto o processo batch distribuito.
-
Elabora carichi di lavoro batch.
-
BYOC (Bring Your Own Container).
In genere, un progetto di ML e data science è costituito da una serie di passi, tra cui:
-
Accedi
-
Esplora
-
Preparazione
-
Modello
-
Via treno
-
Convalida
-
Distribuzione
-
Esegui test
Al termine dei passi, è possibile automatizzare il processo di esplorazione dei dati, addestramento dei modelli, distribuzione e test utilizzando i job. Un singolo cambiamento nella preparazione dei dati o nell'addestramento dei modelli, gli esperimenti con i tuning degli iperparametri potrebbero essere eseguiti come job e testati in modo indipendente.
I job sono costituiti da due parti: un job e un'esecuzione job.
- Job
-
Un job è un modello che descrive il task. Contiene elementi come l'artifact del job non modificabile e che non può essere modificato dopo il caricamento in un job. Inoltre, il job contiene informazioni sulle forme di computazione su cui viene eseguito il job, le opzioni di log, lo storage a blocchi e altre opzioni. È possibile aggiungere variabili di ambiente o argomenti CLI ai job in modo che siano univoci o simili per tutte le esecuzioni future dei job. È possibile sostituire queste variabili e questi argomenti nelle esecuzioni dei job.
È possibile modificare la forma di computazione nel job e tra le esecuzioni dei job. Ad esempio, se si nota che si desidera eseguire un job su una forma più potente, è possibile modificare la forma di computazione del job e quindi avviare una nuova esecuzione del job.
Suggerimento
Non è necessario attendere il completamento dell'esecuzione del job per modificare la forma.
- Esecuzione job
-
Un'esecuzione job è il processore job effettivo. In ogni esecuzione del job, è possibile sostituire alcune opzioni di configurazione del job e, soprattutto, le variabili di ambiente e gli argomenti CLI. È possibile avere lo stesso job con più esecuzioni di job avviate in sequenza o contemporaneamente con parametri diversi. Ad esempio, è possibile sperimentare le prestazioni dello stesso processo di addestramento del modello fornendo iperparametri diversi.

Ciclo di vita job
Ogni fase del ciclo di vita del job attiva gli eventi che è possibile utilizzare per inviare notifiche, attivare funzioni di terze parti o anche altre esecuzioni di job.
- Creazione job
-
La creazione job si verifica quando si crea una configurazione job che include la specifica di un file artifact job. L'artifact del job contiene il codice eseguibile del job. Questo artifact può essere Python, Bash/Shell o un file tar zip o compresso contenente un intero progetto scritto in Python o Java.
Inoltre, è possibile specificare la forma di computazione per eseguire l'artifact del job, nonché lo storage a blocchi e la rete. Hai la flessibilità di selezionare varie forme di CPU e GPU e uno storage a blocchi fino a 1 TB. L'opzione di log consente di impostare la creazione automatica dei log per ogni esecuzione del job.
È possibile utilizzare le installazioni di storage come segue:
- Memorizzare i log durante l'addestramento del modello a cui è possibile accedere da un'altra posizione.
- Memorizza i checkpoint durante l'addestramento del modello in modo da poter continuare ad addestrare un modello dall'ultimo checkpoint ed evitare di iniziare l'addestramento dall'inizio.
- Memorizzazione e lettura dei dati dall'accesso al file system comune in modo da non dover copiare i dati nel computer che esegue il job.
- Avvio delle esecuzioni dei job
-
Questo è il processore di job. L'avvio di un'esecuzione job consente di modificare alcuni parametri configurati per modificare il caso d'uso.
L'esecuzione del job utilizza diverse operazioni del ciclo di vita. Per l'esecuzione di un job, il servizio Data Science gestisce il provisioning dell'infrastruttura, l'esecuzione dell'artifact del job e l'annullamento del provisioning dell'infrastruttura al termine dell'esecuzione dell'artifact del job.
Un job può avere molte esecuzioni che possono essere eseguite in sequenza o contemporaneamente. È possibile configurare un runtime massimo per l'esecuzione del job. Quando l'esecuzione di un job rimane in corso oltre il runtime massimo configurato, il servizio Data Science annulla automaticamente l'esecuzione del job. Si consiglia di configurare un runtime massimo su tutte le esecuzioni di job per evitare esecuzioni di job in esecuzione.
Nota
Il limite massimo per il runtime massimo è di 30 giorni per l'esecuzione di un job. Se questo valore non è configurato, viene comunque applicato il limite di 30 giorni.
- Controllo in corso
-
Durante l'esecuzione del job, è possibile monitorare il processo abilitando il log con il servizio di log. I messaggi vengono registrati per l'esecuzione del job e per il file artifact del job.
Il monitoraggio consente di eseguire il debug per individuare potenziali errori e monitorare le risorse utilizzate.
- Fine
-
L'esecuzione di un job termina con l'uscita dal processo di codice. Attiva il ciclo di vita finale dell'esecuzione del job, ovvero l'annullamento del provisioning dell'infrastruttura. L'infrastruttura viene eliminata anche quando si annulla l'esecuzione di un job.
Accesso alle risorse cloud per i job
I job possono accedere a tutte le risorse OCI in una tenancy, a condizione che esista un criterio che lo consenta. Puoi eseguire job sui dati in ADW o nello storage degli oggetti. Inoltre, puoi utilizzare i vault per fornire un modo sicuro per eseguire l'autenticazione su risorse di terze parti. I job possono accedere alle origini esterne se è stata configurata la VCN appropriata.
Accesso esecuzioni job
Le esecuzioni dei job supportano l'SDK e l'API OCI. È possibile eseguire job da tutti i servizi esterni possibili, ad esempio:
- Il computer client, una pipeline MLOps o CI/CD.
- Pipeline CI/CD GitHub o Bitbucket.
- Servizi Oracle AI o di terze parti.
- Servizio degli eventi.
È possibile creare job e avviare esecuzioni di job in OCI Console, nonché creare ed eseguire job con:
-
Python
-
Java
-
JavaScript
-
TypeScript
-
Esegui
-
Rubino
-
OCI CLI
-
Terraform