dlScore
Description
L'action dlScore permet de noter (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.) une table de données en utilisant 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). préalablement entraîné. Que vous fassiez de la classification d'images, de la détection d'objets ou du traitement du langage naturel, cette action est votre meilleure amie pour générer des prédictions (et accessoirement épater vos collègues !). Elle supporte l'accélération GPUUtilisation de processeurs graphiques (GPU) pour décharger et paralléliser les calculs intensifs, accélérant ainsi massivement l'entraînement des modèles d'IA par rapport à un CPU classique. pour des calculs à la vitesse de l'éclair et permet même d'extraire les activations des couches intermédiaires. Pour plus de détails, n'hésitez pas à consulter la .
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| bufferSize | Spécifie le nombre d'observations à scorer dans un seul lot (batch). Des valeurs plus grandes utilisent plus de mémoire, alors dosez bien pour éviter la surcharge. |
| casOut | Définit la table CAS de sortie qui contiendra les prédictions de votre modèle. Plus d'infos sur . |
| copyVars | Liste des variables à copier directement de la table d'entrée vers la table de sortie. Très utile pour garder vos identifiants uniques sous le coude. |
| displayClassScoreInfo | Si défini sur 'ALL', affiche la table d'informations sur les scores de classe dans les résultats. |
| encodeName | Si 'true', encode les noms des variables générées selon les conventions de SAS Enterprise Miner. |
| gpu | Paramètres pour utiliser l'accélération matérielle GPU (ex: liste des périphériques, précision FP16 ou FP32, TensorRT). Indispensable pour des performances optimales. |
| initWeights | Spécifie la table en mémoire contenant les poids appris du modèle. C'est en quelque sorte la 'mémoire' de votre réseau de neurones. Paramètre requis. |
| layerImageType | Définit le format des images stockées dans la table layerOut ('BASE64', 'JPG', 'WIDE'). |
| layerOut | Table de sortie optionnelle pour récupérer les valeurs d'activation des couches internes du réseau (idéal pour le Transfer Learning). |
| layers | Noms spécifiques des couches à extraire et enregistrer dans la table layerOut. |
| miniBatchBufSize | Nombre d'observations à mettre en mémoire tampon avant de traiter le reste du minibatch. |
| modelTable | Table en mémoire définissant l'architecture structurelle (DAG) de votre modèle Deep Learning. Paramètre requis. |
| nThreads | Nombre de threads alloués. Augmentez-le pour paralléliser davantage le travail sur CPU. |
| randomCrop | Stratégie de recadrage aléatoire pour les images en entrée (NONE, RANDOMRESIZED, RESIZETHENCROP, UNIQUE). |
| randomFlip | Permet le retournement aléatoire (Horizontal, Vertical) des images pour augmenter la robustesse. |
| randomMutation | Applique des mutations de couleurs, de netteté ou de luminosité au hasard sur les données d'image. |
| table | La table de données d'entrée contenant les nouvelles observations que vous souhaitez scorer. Paramètre requis. |
| textParms | Paramètres avancés spécifiques au traitement du texte (embeddings). Voir . |
| topProbs | Nombre de probabilités les plus élevées (Top-N) à inclure dans les résultats avec leurs étiquettes respectives. |
Préparation des données
Génération de tables fictives pour le scoring
L'action dlScore requiert trois éléments : des données à scorer, une table d'architecture de modèle et une table de poids. Ce code génère des tables factices pour simuler l'environnement.
| 1 | PROC CAS; SESSION mysess; caslib _all_ assign; DATA public.mes_donnees; DO id=1 to 100; x1=rand('uniform'); x2=rand('uniform'); OUTPUT; END; RUN; DATA public.mon_modele; LENGTH _layer_id_ 8 _layer_name_ $32; _layer_id_=1; _layer_name_='input'; RUN; DATA public.mes_poids; LENGTH _weight_id_ 8 _weight_val_ 8; _weight_id_=1; _weight_val_=0.42; RUN; QUIT; |
Exemples d'utilisation
Scoring simple d'un modèle de Deep Learning
Cet exemple illustre l'usage minimal de dlScore en fournissant les données d'entrée, le modèle, ses poids, et la table de sortie.
| 1 | PROC CAS; DEEPLEARN.dlScore / TABLE={name='mes_donnees', caslib='public'} modelTable={name='mon_modele', caslib='public'} initWeights={name='mes_poids', caslib='public'} casOut={name='mes_predictions', caslib='public', replace=true}; RUN; QUIT; |
Résultat Attendu :
Scoring optimisé sur GPU avec extraction de variables et Top-K
Ce scénario avancé montre comment effectuer le scoring sur un GPU, copier la colonne d'identifiant depuis la table d'entrée, et ne garder que le top 3 des probabilités de classification.
| 1 | PROC CAS; DEEPLEARN.dlScore / TABLE={name='mes_donnees', caslib='public'} modelTable={name='mon_modele', caslib='public'} initWeights={name='mes_poids', caslib='public'} copyVars={'id'} gpu={devices={0}, precision='FP32'} bufferSize=32 topProbs=3 casOut={name='predictions_gpu', caslib='public', replace=true}; RUN; QUIT; |
Résultat Attendu :
Extraction des caractéristiques profondes (Feature Extraction)
Utile pour le Transfer Learning : cet exemple score les données mais sauvegarde également les activations internes d'une couche cachée spécifique (ex: 'FC1') dans la table layerOut.
| 1 | PROC CAS; DEEPLEARN.dlScore / TABLE={name='mes_donnees', caslib='public'} modelTable={name='mon_modele', caslib='public'} initWeights={name='mes_poids', caslib='public'} layers={'FC1'} layerOut={name='features_fc1', caslib='public', replace=true} casOut={name='predictions_vides', replace=true}; RUN; QUIT; |