Publié le :
Gestion de Modèles CREATION_INTERNE

Téléchargement d'un modèle ASTORE vers le système de fichiers local

Ce code est également disponible en : Deutsch English Español
En attente de validation
La procédure ASTORE de SAS© Viya est utilisée pour la gestion des modèles de machine learning. Le sous-énoncé DOWNLOAD permet de transférer un modèle ASTORE, qui est stocké dans une table CAS en mémoire, vers le système de fichiers local (disque dur, partage réseau accessible au serveur CAS). Cette fonctionnalité est essentielle pour l'archivage, le déploiement offline ou le transfert de modèles entre environnements. Le modèle téléchargé est généralement un fichier binaire compressé qui peut être rechargé ultérieurement dans une session CAS via le sous-énoncé UPLOAD de PROC ASTORE.
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent des données générées (datalines) ou SASHELP pour créer des modèles simples à des fins de démonstration, puis téléchargent ces modèles. Aucun fichier externe non fourni n'est requis.

1 Bloc de code
PROC ASTORE / DATA STEP Data
Explication :
Cet exemple illustre le téléchargement le plus simple d'un modèle ASTORE. Il commence par la création d'un modèle logistique basique à partir du jeu de données SASHELP.IRIS, enregistré comme 'my_model' dans la caslib 'casuser'. Ensuite, la procédure ASTORE est appelée avec le sous-énoncé DOWNLOAD pour spécifier le modèle ASTORE ('rstore=casuser.my_model') et l'emplacement du fichier de destination sur le système de fichiers local ('save_file=/tmp/my_model.astore').
Copié !
1/* Création d'un modèle simple pour démonstration */
2DATA casuser.iris_data;
3 SET sashelp.iris;
4RUN;
5 
6PROC LOGISTIC DATA=casuser.iris_data outmodel=casuser.my_model;
7 model Species = SepalLength SepalWidth PetalLength PetalWidth;
8RUN;
9 
10/* Téléchargement du modèle ASTORE vers le système de fichiers local */
11PROC ASTORE;
12 download rstore=casuser.my_model;
13 save_file='/tmp/my_model.astore';
14RUN;
2 Bloc de code
PROC ASTORE / DATA STEP Data
Explication :
Cet exemple étend le concept en montrant comment spécifier explicitement la caslib où le modèle ASTORE est enregistré. Un modèle GLMSELECT est créé et sauvegardé. Le sous-énoncé DOWNLOAD utilise l'option 'caslib=' pour assurer que le modèle est correctement identifié avant le téléchargement. Le fichier est ensuite sauvegardé sous '/tmp/auto_model.astore'.
Copié !
1/* Création d'un autre modèle pour démonstration */
2DATA casuser.cars_data;
3 SET sashelp.cars;
4 where Make in ('Audi', 'BMW', 'Mercedes-Benz');
5RUN;
6 
7PROC GLMSELECT DATA=casuser.cars_data outmodel=casuser.auto_model;
8 model Cylinders = Make Type Origin DriveTrain Weight Horsepower MSRP;
9 selection method=stepwise;
10RUN;
11 
12/* Téléchargement du modèle ASTORE avec des options explicites */
13PROC ASTORE;
14 download rstore=casuser.auto_model caslib=casuser;
15 save_file='/tmp/auto_model.astore';
16RUN;
3 Bloc de code
PROC ASTORE / DATA STEP / %LET Data
Explication :
Cet exemple avancé montre l'utilisation de macro-variables pour le chemin de destination et inclut une vérification rudimentaire de l'accessibilité du chemin avant le téléchargement. Un modèle HPLOGISTIC est créé. Le chemin est défini par la macro-variable `download_path`. Un bloc DATA _NULL_ tente de créer et supprimer un fichier temporaire à l'emplacement spécifié pour vérifier si le répertoire existe et est accessible. Le téléchargement ne s'effectue que si la vérification est positive, fournissant un mécanisme de gestion d'erreur de base.
Copié !
1/* Création d'un troisième modèle pour démonstration */
2DATA casuser.heart_data;
3 SET sashelp.heart;
4 where STATUS='Alive';
5RUN;
6 
7PROC HPLOGISTIC DATA=casuser.heart_data outmodel=casuser.heart_model;
8 model Cholesterol = Smoking_Status_N BP_Status_N Weight_Status_N;
9RUN;
10 
11/* Définir le chemin de téléchargement via une macro-variable */
12%let download_path = /tmp/models/heart_model.astore;
13 
14/* Vérifier l'existence du répertoire de destination et télécharger */
15filename _tmp_dir temp;
16DATA _null_;
17 rc = fcreate("&download_path", 'f');
18 IF rc = 0 THEN DO;
19 call symputx('dir_exists', '1');
20 rc = fdelete("&download_path");
21 END;
22 ELSE call symputx('dir_exists', '0');
23RUN;
24 
25%IF &dir_exists. = 1 %THEN %DO;
26 PROC ASTORE;
27 download rstore=casuser.heart_model caslib=casuser;
28 save_file="&download_path";
29 RUN;
30 %put Modèle 'heart_model' téléchargé avec succès vers &download_path.;
31%END;
32%ELSE %DO;
33 %put ERREUR: Le chemin de téléchargement '&download_path' est invalide ou le répertoire n'existe pas/n'est pas accessible.;
34%END;
4 Bloc de code
PROC ASTORE / PROC CAS / DATA STEP Data
Explication :
Cet exemple démontre un workflow complet : création d'un modèle, téléchargement vers le système de fichiers local, puis rechargement du modèle dans une 'nouvelle' session CAS simulée pour effectuer du scoring. Un modèle de régression linéaire est entraîné et téléchargé. Ensuite, le modèle est chargé (UPLOAD) sous un nouveau nom ('reloaded_model') comme si une nouvelle session CAS avait été initiée. Enfin, ce modèle rechargé est utilisé pour scorer de nouvelles données, prouvant que le téléchargement et le rechargement ont réussi. Cela illustre la portabilité des modèles ASTORE.
Copié !
1/* 1. Création et entraînement d'un modèle simple */
2DATA casuser.sample_data;
3 INPUT x y;
4 DATALINES;
51 10
62 12
73 14
84 16
95 18
10;
11RUN;
12 
13PROC REG DATA=casuser.sample_data outmodel=casuser.my_linear_model;
14 model y = x;
15RUN;
16 
17/* 2. Téléchargement du modèle ASTORE */
18PROC ASTORE;
19 download rstore=casuser.my_linear_model;
20 save_file='/tmp/my_linear_model.astore';
21RUN;
22 
23/* 3. Déconnexion et reconnexion à une nouvelle session CAS (simulée) */
24/* Dans un environnement réel, cela impliquerait de fermer la session courante et d'en ouvrir une nouvelle */
25/* Pour cet exemple, nous allons simplement simuler en chargeant le modèle dans la même session */
26/* et en utilisant une nouvelle 'nom_session_virtuelle' */
27 
28/* 4. Chargement du modèle depuis le système de fichiers local vers une nouvelle 'session' CAS */
29PROC ASTORE;
30 upload rstore=casuser.reloaded_model;
31 restore_file='/tmp/my_linear_model.astore';
32RUN;
33 
34/* 5. Utilisation du modèle rechargé pour le scoring */
35DATA casuser.new_data;
36 INPUT x;
37 DATALINES;
386
397
40;
41RUN;
42 
43PROC ASTORE;
44 score rstore=casuser.reloaded_model DATA=casuser.new_data out=casuser.scored_data;
45RUN;
46 
47PROC PRINT DATA=casuser.scored_data;
48RUN;
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.
Informations de Copyright : Copyright © SAS Institute Inc. All Rights Reserved