dlmodelzoo

dlmzScore

##deeplearning ##set_dlmodelzoo

Description

L'action `dlmzScore` permet de scorerAction d'appliquer un modèle statistique à de nouvelles données pour calculer une probabilité ou une valeur prédite. C’est l’étape de déploiement transformant les entrées en prédictions actionnables. (ou d'évaluer) un 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). de Deep LearningSous-ensemble du Machine Learning basé sur des réseaux de neurones artificiels profonds. Il excelle dans l'extraction automatique de motifs complexes depuis des données brutes (images, texte, son). basé sur le framework PyTorchPyTorch est un framework open source d'apprentissage profond (Deep Learning) facilitant la création de graphes de calcul dynamiques et l'entraînement de modèles de réseaux de neurones complexes. en utilisant le Model Zoo de SAS Viya. Imaginez cela comme l'examen final 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. après des heures d'entraînement intensif ! Vous passez vos données dans le paramètre `table`, le 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). dans `modelTable`, et pouf, les prédictions atterrissent dans `tableOut`. Pratique, non ? Retrouvez plus de détails dans la documentation des %%modèles .

Syntaxe Officielle
proc cas;
dlmodelzoo.dlmzScore /
table={name="ma_table_entree", caslib="casuser"}
modelTable={name="mon_modele_entraine"}
tableOut={name="ma_table_sortie", replace=true}
inputs={"var1", "var2"}
targets={"cible"}
batchSize=16
gpus={0}
logLevel="NOTE";
quit;

Paramètres Clés

Nom du paramètre Description
table Spécifie la table en mémoire contenant les données à scorer ou évaluer.
modelTable Spécifie la table en mémoire qui contient les poids et l'architecture du modèle PyTorch.
tableOut Spécifie la table CAS de destination où seront stockées les prédictions générées.
inputs Liste des variables d'entrée (features) de la table à utiliser pour le scoring.
batchSize Définit le nombre d'observations traitées simultanément par chaque worker. Un plus grand lot consomme plus de mémoire mais peut accélérer le calcul.
extraOptions Permet de fournir une chaîne au format YAML pour spécifier des options avancées spécifiques à l'architecture du modèle.
gpus Définit la liste des identifiants de processeurs graphiques (GPU) à utiliser. Idéal pour mettre le turbo sur vos inférences !
nThreads Spécifie le nombre de threads (processus légers) par nœud de calcul. La valeur par défaut est 1.

Préparation des données

Génération d'un jeu de données et d'un modèle fictifs

Création d'une table d'images simulée à scorer et d'une table simulant un modèle (nécessaire pour l'exécution d'exemple).

1PROC CAS;
2 /* Création de données fictives pour l'exemple */
3 DATA mycas.images_a_scorer;
4 id=1; image_path="img1.jpg"; OUTPUT;
5 id=2; image_path="img2.jpg"; OUTPUT;
6 RUN;
7 /* Simulation d'une table de modèle (normalement issue de dlmzTrain) */
8 DATA mycas.mon_modele_dl;
9 weight_id=1; val=0.5; OUTPUT;
10 RUN;
11QUIT;

Exemples d'utilisation

Scoring basique

Utilisation de dlmzScore avec les paramètres obligatoires pour obtenir les prédictions d'un modèle entraîné.

1PROC CAS;
2 dlmodelzoo.dlmzScore /
3 TABLE={name="images_a_scorer"}
4 modelTable={name="mon_modele_dl"}
5 tableOut={name="predictions", replace=true}
6 inputs={"image_path"}
7 batchSize=8
8 logLevel="NOTE";
9QUIT;
Résultat Attendu :
Une nouvelle table CAS nommée 'predictions' est créée avec les résultats inférés par le modèle sur les données d'entrée.
Scoring avancé avec accélération matérielle et options YAML

Un exemple de configuration exhaustive pour des performances maximales : distribution des données, utilisation de 2 GPUs, multi-threading et options YAML personnalisées.

1PROC CAS;
2 dlmodelzoo.dlmzScore /
3 TABLE={name="images_a_scorer"}
4 modelTable={name="mon_modele_dl"}
5 tableOut={name="predictions_detail", replace=true}
6 inputs={"image_path"}
7 targets={"label"}
8 batchSize=16
9 gpus={0, 1}
10 nThreads=4
11 tableDistribution="DISTRIBUTED"
12 extraOptions={yaml="use_fp16: true"}
13 logLevel="DEBUG"
14 objective="CROSS_ENTROPY";
15QUIT;
Résultat Attendu :
Le modèle est évalué de manière distribuée en s'appuyant sur l'accélération matérielle (GPU 0 et 1), produisant des journaux détaillés et stockant les résultats de manière optimisée.