session batchresults

Leistungsfall: Batch-Verarbeitung eines ressourcenintensiven Modelltrainings

Scénario de test & Cas d'usage

Geschäftskontext

Ein Data Scientist trainiert ein Entscheidungsbaummodell auf einem großen Datensatz zum Kunden-Churn. Der Trainingsprozess ist rechenintensiv und soll über Nacht laufen. Der Prozess wird asynchron gestartet und sofort in den Batch-Modus versetzt, um die Client-Verbindung zu trennen und die Ressourcen für andere Aufgaben freizugeben.
Über das Set : session

Verwaltung des CAS-Sitzungsstatus.

Entdecken Sie alle Aktionen von session
Datenaufbereitung

Erstellung eines großen, breiten Datensatzes zur Simulation von Kundendaten für das Churn-Modelltraining.

Kopiert!
1DATA casuser.customer_churn;
2 call streaminit(456);
3 array features{50} f1-f50;
4 DO customer_id = 1 to 200000;
5 churn = ifn(rand('uniform') < 0.15, 1, 0);
6 DO i = 1 to 50;
7 features{i} = rand('normal');
8 END;
9 OUTPUT;
10 END;
11RUN;

Étapes de réalisation

1
Sitzung 1: Starten Sie das Training des Entscheidungsbaummodells asynchron.
Kopiert!
1cas ds_session name='datasci';
2PROC CAS;
3 SESSION caslib='casuser';
4 decisionTree.dtreeTrain TABLE={name='customer_churn'}, target='churn', inputs='f1-f50', casOut={name='churn_model', replace=true}, _async='model_training';
5RUN;
6QUIT;
2
Sitzung 2: Holen Sie sich sofort die UUID und versetzen Sie den Job in den Batch-Modus.
Kopiert!
1cas admin_session name='admin';
2PROC CAS;
3 SESSION.actionstatus RESULT=STATUS job='model_training' SESSION='datasci';
4 job_uuid = STATUS.ActionStatus[1, 'JobUUID'];
5 SESSION.batchresults / uuid=job_uuid;
6 put 'INFO: Modelltraining-Job ' || job_uuid || ' wurde in den Batch-Modus versetzt.';
7RUN;
8QUIT;
3
Sitzung 2: Überprüfen Sie nach einer Weile den Status des Batch-Jobs.
Kopiert!
1PROC CAS SESSION=admin_session;
2 /* Simuliert das Warten auf den Abschluss des Jobs */
3 BUILTINS.sleep / seconds=15;
4 SESSION.actionstatus RESULT=STATUS uuid=job_uuid;
5 PRINT STATUS;
6RUN;
7QUIT;
4
Sitzung 2: Rufen Sie die Ergebnisse ab, sobald der Job abgeschlossen ist.
Kopiert!
1PROC CAS SESSION=admin_session;
2 /* In einem realen Szenario würde man den Status überprüfen, bis er 'Completed' ist */
3 SESSION.fetchresult RESULT=model_results uuid=job_uuid;
4 PRINT model_results;
5RUN;
6QUIT;

Erwartetes Ergebnis


Der Modelltrainingsjob wird erfolgreich in den Batch-Modus versetzt. Die `ds_session` ist sofort wieder verfügbar. Die `actionstatus`-Aktion, die mit der UUID aufgerufen wird, zeigt den Fortschritt des Jobs (z.B. 'Running', dann 'Completed'). Schließlich ruft `fetchresult` die Ergebnisse des Modelltrainings erfolgreich ab, einschließlich der Modellinformationen und Statistiken.