ATTENTION : Ce contenu est DÉSACTIVÉ. Il est invisible pour les visiteurs.
Niveau de difficulté
Débutant
Publié le :
Cette fonctionnalité de la procédure ASTORE facilite la gestion du cycle de vie des modèles. Après avoir entraîné un modèle sur CAS (par exemple, avec PROC NNET, PROC FOREST, etc.) et l'avoir sauvegardé en tant que store analytique, il peut être nécessaire de le déplacer du serveur CAS vers un environnement local pour diverses raisons : exécution de scoring sur des données locales sans connexion CAS, archivage, ou intégration dans des applications client. Le téléchargement préserve la structure et les poids du modèle pour une utilisation ultérieure. La commande nécessite l'identification du modèle sur le serveur CAS (caslib et nom du modèle) et la spécification du chemin de destination local. Il est crucial de s'assurer que le chemin local est accessible et que les permissions sont suffisantes pour écrire le fichier.
Analyse des données
Type : CREATION_INTERNE
Les exemples simulent l'existence d'un modèle ASTORE sur le serveur CAS et démontrent les opérations de téléchargement. Les données requises pour les exemples sont générées en interne ou supposées exister dans SASHELP.
1 Bloc de code
PROC ASTORE Data
Explication : Cet exemple illustre le téléchargement le plus simple d'un modèle ASTORE. Il crée d'abord un modèle ASTORE factice sur le serveur CAS (dans la caslib 'mycaslib'). Ensuite, la procédure PROC ASTORE avec l'instruction DOWNLOAD est utilisée pour transférer ce modèle vers le système de fichiers local, spécifié par 'casfile'. Le chemin './' indique le répertoire de travail actuel de la session SAS.
Copié !
/* Étape 1: Préparation - S'assurer qu'un modèle ASTORE existe sur CAS */
/* Cette étape est à des fins de démonstration. En pratique, un modèle serait déjà entraîné. */
/* Créons une table CAS simple, puis un store bidon */
proc cas;
session casauto;
table.addCaslib / caslib='mycaslib' path='/tmp' datasource={srctype='path'};
data _null_;
file caslib='mycaslib' '/tmp/my_simple_model.sashdat';
put 'MODEL_HEADER_INFO';
put 'MODEL_BINARY_CONTENT';
run;
session.upload / caslib='mycaslib' path='/tmp/my_simple_model.sashdat' casout={name='mySimpleModel', replace=TRUE};
quit;
/* Étape 2: Téléchargement du modèle ASTORE vers le système de fichiers local */
/* Le fichier sera sauvegardé dans le répertoire de travail actuel de SAS. */
proc astore;
download caslib="mycaslib" name="mySimpleModel" casfile="./mySimpleModel.astore";
run;
1
/* Étape 1: Préparation - S'assurer qu'un modèle ASTORE existe sur CAS */
2
/* Cette étape est à des fins de démonstration. En pratique, un modèle serait déjà entraîné. */
3
/* Créons une table CAS simple, puis un store bidon */
Explication : Cet exemple démontre l'utilisation de l'option 'REPLACE' dans l'instruction DOWNLOAD, qui permet de remplacer un fichier existant sur le système de fichiers local sans générer d'erreur. Il réutilise le concept de modèle factice et spécifie le chemin de destination local avec l'option de remplacement.
Copié !
/* Étape 1: Préparation - Assurer l'existence d'un modèle ASTORE sur CAS */
/* Réutilisons le modèle de l'exemple précédent ou créons-en un nouveau */
proc cas;
session casauto;
table.addCaslib / caslib='mycaslib' path='/tmp' datasource={srctype='path'};
data _null_;
file caslib='mycaslib' '/tmp/another_model.sashdat';
put 'MODEL_HEADER_INFO_V2';
put 'MODEL_BINARY_CONTENT_V2';
run;
session.upload / caslib='mycaslib' path='/tmp/another_model.sashdat' casout={name='anotherModel', replace=TRUE};
quit;
/* Étape 2: Téléchargement du modèle ASTORE, en écrasant un fichier local existant */
/* L'option REPLACE assure que le fichier local sera mis à jour. */
proc astore;
download caslib="mycaslib" name="anotherModel" casfile="./anotherModel.astore" replace;
run;
1
/* Étape 1: Préparation - Assurer l'existence d'un modèle ASTORE sur CAS */
2
/* Réutilisons le modèle de l'exemple précédent ou créons-en un nouveau */
Explication : Cet exemple montre un scénario plus réaliste où un modèle est d'abord entraîné (ici, une régression logistique avec PROC LOGISTIC) et sauvegardé directement en tant que store analytique sur le serveur CAS. Ensuite, l'instruction DOWNLOAD de PROC ASTORE est utilisée pour récupérer ce modèle entraîné et le sauvegarder localement. Cela est utile pour inspecter le modèle ou le déployer dans un environnement hors ligne.
Copié !
/* Étape 1: Connexion au serveur CAS et chargement de données */
options casopts=(timeout=3600);
cas casauto;
caslib _all_ assign;
/* Chargement de données SASHELP dans CAS pour l'entraînement */
data casuser.hmeq_data;
set sashelp.hmeq;
where loan ne . and bad ne .;
run;
/* Étape 2: Entraînement d'un modèle simple (régression logistique) et sauvegarde en ASTORE */
proc logistic data=casuser.hmeq_data;
model bad = loan mortdue yoq;
output out=casuser.predicted_hmeq p=phat;
astore caslib='CASUSER' name='hmeq_logistic_model' label='HMEQ Logistic Model' replace;
run;
/* Étape 3: Téléchargement du modèle ASTORE vers le système de fichiers local */
proc astore;
download caslib="CASUSER" name="hmeq_logistic_model" casfile="./hmeq_logistic_model.astore" replace;
run;
1
/* Étape 1: Connexion au serveur CAS et chargement de données */
2
options casopts=(timeout=3600);
3
cas casauto;
4
caslib _all_ assign;
5
6
/* Chargement de données SASHELP dans CAS pour l'entraînement */
7
DATA casuser.hmeq_data;
8
SET sashelp.hmeq;
9
where loan ne . and bad ne .;
10
RUN;
11
12
/* Étape 2: Entraînement d'un modèle simple (régression logistique) et sauvegarde en ASTORE */
Explication : Cet exemple met en évidence le comportement de l'instruction DOWNLOAD lorsqu'un fichier local avec le même nom existe déjà. La première tentative sans l'option 'REPLACE' illustre la nécessité de cette option pour écraser des fichiers existants. La deuxième tentative, avec 'REPLACE', démontre comment forcer le téléchargement et la mise à jour du fichier local. Cet exemple est pertinent dans un environnement Viya où la gestion des fichiers locaux et CAS est fréquente.
Copié !
/* Étape 1: S'assurer de l'existence d'un modèle sur CAS pour le test */
proc cas;
session casauto;
table.addCaslib / caslib='mycaslib' path='/tmp' datasource={srctype='path'};
data _null_;
file caslib='mycaslib' '/tmp/conditional_model.sashdat';
put 'MODEL_CONTENT_V_COND';
run;
session.upload / caslib='mycaslib' path='/tmp/conditional_model.sashdat' casout={name='conditionalModel', replace=TRUE};
quit;
/* Étape 2: Tentative de téléchargement - simule un fichier existant déjà */
/* Crée un fichier bidon local pour simuler un fichier existant */
data _null_;
file './conditionalModel.astore';
put 'OLD_LOCAL_MODEL_CONTENT';
run;
/* Tente de télécharger sans l'option REPLACE (devrait échouer ou avertir) */
proc astore;
download caslib="mycaslib" name="conditionalModel" casfile="./conditionalModel.astore";
run;
/* Étape 3: Téléchargement forcé avec REPLACE */
/* Cette étape réussira, écrasant le fichier local existant. */
proc astore;
download caslib="mycaslib" name="conditionalModel" casfile="./conditionalModel.astore" replace;
run;
/* Nettoyage : Suppression du fichier local et du modèle CAS */
/* x 'rm ./conditionalModel.astore'; */ /* Décommenter si l'exécution en ligne de commande est autorisée */
proc casutil;
delete casdata="conditionalModel" incaslib="mycaslib";
dropcaslib 'mycaslib';
quit;
1
/* Étape 1: S'assurer de l'existence d'un modèle sur CAS pour le test */
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Documentation liée
Aucune documentation spécifique pour cette catégorie.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.