dlmodelzoo

dlmztrain

##deeplearning ##set_dlmodelzoo

Description

L'action dlmzTrain permet d'entraîner des modèles de basés sur le framework . C'est un peu le 'coach sportif' de votre réseau de neuronesUn réseau de neurones est un modèle d'IA bio-inspiré composé de couches de nœuds interconnectés, capable d'apprendre des relations complexes dans les données pour prédire ou classifier avec précision. ! Elle prend en entrée vos données, votre architecture de modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). contenue dans une table , et se charge de faire transpirer les poids (weights) jusqu'à atteindre la performance désirée via descente de gradient. Idéal pour la vision par ordinateur (Computer VisionDiscipline de l'IA permettant aux systèmes d'extraire des informations significatives à partir d'images ou de vidéos pour identifier, classer et réagir à des éléments visuels du monde réel.) ou d'autres tâches d'intelligence artificielle sophistiquées.

Syntaxe Officielle
dlmodelzoo.dlmzTrain <result=results> <status=rc> /
table={castable},
modelTable={castable},
inputs={"var1", "var2"},
targets={"target1"},
modelOut={casouttable},
optimizer={dlxOptimizerOpts},
earlyStopping={dlxEarlyStoppingOpts},
gpus={int1, int2},
validationTable={castable},
saveState={casouttable};

Paramètres Clés

Nom du paramètre Description
table Spécifie la table en mémoire (CAS table) utilisée pour stocker les données d'entraînement.
modelTable Spécifie la table contenant l'architecture du modèle et ses poids initiaux. Le cerveau avant l'entraînement !
inputs Les variables d'entrée (features) à analyser, souvent des tenseurs d'images ou du texte vectorisé.
targets Les variables cibles (ce que le modèle doit apprendre à prédire, ex: une classe d'image).
optimizer Les paramètres de l'algorithme d'optimisation (ADAM, SGD, taux d'apprentissage, taille du batch, nombre maximum d'époques, etc.).
modelOut La table de sortie où le modèle fraîchement entraîné sera sauvegardé.
earlyStopping Surveille une métrique (ex: VALIDATION_LOSS) et arrête l'entraînement quand elle ne s'améliore plus afin d'éviter le surentraînement.
gpus Spécifie les identifiants (IDs) des GPU à utiliser pour booster les calculs matriciels.
saveState Spécifie la table de sortie dans laquelle sauvegarder l'état du modèle sous forme d'Astore (Analytic Store) pour le scoring.

Préparation des données

Chargement des données et du modèle d'initialisation

Exemple de chargement d'une table d'images et d'un modèle non entraîné depuis le système de fichiers vers la mémoire CAS pour préparer l'action dlmzTrain.

1PROC CAS;
2 /* Chargement des donnees d'entrainement */
3 TABLE.loadTable / path="my_training_images.sashdat" caslib="public" casOut={name="train_data", replace=true};
4 /* Chargement de la table de validation */
5 TABLE.loadTable / path="my_valid_images.sashdat" caslib="public" casOut={name="valid_data", replace=true};
6 /* Chargement du modele initial (ex: architecture ResNet50) */
7 TABLE.loadTable / path="resnet50_init.sashdat" caslib="public" casOut={name="resnet50_init", replace=true};
8QUIT;

Exemples d'utilisation

Entraînement basique d'un modèle de Deep Learning

Cet exemple montre comment lancer un entraînement simple avec l'optimiseur ADAM sur 5 époques à partir de données d'images.

1PROC CAS;
2 dlmodelzoo.dlmztrain /
3 TABLE={name="train_data"}
4 modelTable={name="resnet50_init"}
5 inputs={"image_tensor"}
6 targets={"label"}
7 modelOut={name="resnet50_trained", replace=true}
8 optimizer={algorithm={method="ADAM", lr={value=0.001}}, maxEpochs=5, batchSize={value=32}};
9QUIT;
Résultat Attendu :
Le modèle est entraîné sur 5 époques à l'aide de l'optimiseur ADAM. Les poids mis à jour sont sauvegardés dans la table CAS 'resnet50_trained'.
Entraînement avancé avec Validation, accélération GPU et Arrêt Prématuré

Ici on sort l'artillerie lourde : utilisation de GPU multiples, d'un jeu de validation croisée, de l'optimiseur SGD avec momentum, et d'un mécanisme d'arrêt prématuré (Early Stopping) si la perte de validation stagne pendant 3 époques consécutives.

1PROC CAS;
2 dlmodelzoo.dlmztrain /
3 TABLE={name="train_data"}
4 validationTable={name="valid_data"}
5 modelTable={name="resnet50_init"}
6 inputs={"image_tensor"}
7 targets={"class_id"}
8 modelOut={name="resnet50_trained_advanced", replace=true}
9 saveState={name="resnet50_astore", replace=true}
10 gpus={0, 1} /* Utilisation des GPUs d'ID 0 et 1 */
11 earlyStopping={mode="MIN", monitor="VALIDATION_LOSS", patience=3}
12 optimizer={
13 algorithm={method="SGD", lr={value=0.01}, momentum={value=0.9}, weight_decay={value=0.0001}},
14 batchSize={value=64},
15 maxEpochs=50,
16 mode={type="SYNCHRONOUS", syncFreq=1}
17 }
18 logLevel="INFO";
19QUIT;
Résultat Attendu :
L'entraînement s'exécute de manière distribuée sur les GPUs spécifiés. Il s'arrêtera de lui-même avant 50 époques si la perte sur la table 'valid_data' ne s'améliore pas durant 3 époques consécutives. Le modèle final est sauvegardé dans 'resnet50_trained_advanced' et génère également un fichier astore ('resnet50_astore') prêt pour un déploiement en production.