Publicado el :
Aprendizaje automático CREATION_INTERNE

Descarga de un Store Astore al sistema de archivos local

Este código también está disponible en: Deutsch English
En espera de validación
Esta funcionalidad del procedimiento ASTORE facilita la gestión del ciclo de vida de los modelos. Después de entrenar un modelo en CAS (por ejemplo, con PROC NNET, PROC FOREST, etc.) y guardarlo como un store analítico, puede ser necesario moverlo del servidor CAS a un entorno local por diversas razones: ejecución de scoring en datos locales sin conexión CAS, archivado o integración en aplicaciones cliente. La descarga preserva la estructura y los pesos del modelo para un uso posterior. El comando requiere la identificación del modelo en el servidor CAS (caslib y nombre del modelo) y la especificación de la ruta de destino local. Es crucial asegurarse de que la ruta local sea accesible y que los permisos sean suficientes para escribir el archivo.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos simulan la existencia de un modelo ASTORE en el servidor CAS y demuestran las operaciones de descarga. Los datos requeridos para los ejemplos se generan internamente o se asume que existen en SASHELP.

1 Bloque de código
PROC ASTORE Data
Explicación :
Este ejemplo ilustra la descarga más simple de un modelo ASTORE. Primero crea un modelo ASTORE ficticio en el servidor CAS (en la caslib 'mycaslib'). Luego, se utiliza el procedimiento PROC ASTORE con la instrucción DOWNLOAD para transferir este modelo al sistema de archivos local, especificado por 'casfile'. La ruta './' indica el directorio de trabajo actual de la sesión SAS.
¡Copiado!
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 */
4PROC CAS;
5 SESSION casauto;
6 TABLE.addCaslib / caslib='mycaslib' path='/tmp' datasource={srctype='path'};
7 DATA _null_;
8 file caslib='mycaslib' '/tmp/my_simple_model.sashdat';
9 put 'MODEL_HEADER_INFO';
10 put 'MODEL_BINARY_CONTENT';
11 RUN;
12 SESSION.upload / caslib='mycaslib' path='/tmp/my_simple_model.sashdat' casout={name='mySimpleModel', replace=TRUE};
13QUIT;
14 
15/* Étape 2: Téléchargement du modèle ASTORE vers le système de fichiers local */
16/* Le fichier sera sauvegardé dans le répertoire de travail actuel de SAS. */
17PROC ASTORE;
18 download caslib="mycaslib" name="mySimpleModel" casfile="./mySimpleModel.astore";
19RUN;
2 Bloque de código
PROC ASTORE Data
Explicación :
Este ejemplo demuestra el uso de la opción 'REPLACE' en la instrucción DOWNLOAD, que permite reemplazar un archivo existente en el sistema de archivos local sin generar un error. Reutiliza el concepto de modelo ficticio y especifica la ruta de destino local con la opción de reemplazo.
¡Copiado!
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 */
3PROC CAS;
4 SESSION casauto;
5 TABLE.addCaslib / caslib='mycaslib' path='/tmp' datasource={srctype='path'};
6 DATA _null_;
7 file caslib='mycaslib' '/tmp/another_model.sashdat';
8 put 'MODEL_HEADER_INFO_V2';
9 put 'MODEL_BINARY_CONTENT_V2';
10 RUN;
11 SESSION.upload / caslib='mycaslib' path='/tmp/another_model.sashdat' casout={name='anotherModel', replace=TRUE};
12QUIT;
13 
14/* Étape 2: Téléchargement du modèle ASTORE, en écrasant un fichier local existant */
15/* L'option REPLACE assure que le fichier local sera mis à jour. */
16PROC ASTORE;
17 download caslib="mycaslib" name="anotherModel" casfile="./anotherModel.astore" replace;
18RUN;
3 Bloque de código
PROC LOGISTIC / PROC ASTORE Data
Explicación :
Este ejemplo muestra un escenario más realista donde un modelo es primero entrenado (aquí, una regresión logística con PROC LOGISTIC) y guardado directamente como un store analítico en el servidor CAS. Luego, la instrucción DOWNLOAD de PROC ASTORE se utiliza para recuperar este modelo entrenado y guardarlo localmente. Esto es útil para inspeccionar el modelo o desplegarlo en un entorno fuera de línea.
¡Copiado!
1/* Étape 1: Connexion au serveur CAS et chargement de données */
2options casopts=(timeout=3600);
3cas casauto;
4caslib _all_ assign;
5 
6/* Chargement de données SASHELP dans CAS pour l'entraînement */
7DATA casuser.hmeq_data;
8 SET sashelp.hmeq;
9 where loan ne . and bad ne .;
10RUN;
11 
12/* Étape 2: Entraînement d'un modèle simple (régression logistique) et sauvegarde en ASTORE */
13PROC LOGISTIC DATA=casuser.hmeq_data;
14 model bad = loan mortdue yoq;
15 OUTPUT out=casuser.predicted_hmeq p=phat;
16 astore caslib='CASUSER' name='hmeq_logistic_model' label='HMEQ Logistic Model' replace;
17RUN;
18 
19/* Étape 3: Téléchargement du modèle ASTORE vers le système de fichiers local */
20PROC ASTORE;
21 download caslib="CASUSER" name="hmeq_logistic_model" casfile="./hmeq_logistic_model.astore" replace;
22RUN;
4 Bloque de código
PROC ASTORE Data
Explicación :
Este ejemplo resalta el comportamiento de la instrucción DOWNLOAD cuando ya existe un archivo local con el mismo nombre. El primer intento sin la opción 'REPLACE' ilustra la necesidad de esta opción para sobrescribir archivos existentes. El segundo intento, con 'REPLACE', demuestra cómo forzar la descarga y la actualización del archivo local. Este ejemplo es relevante en un entorno Viya donde la gestión de archivos locales y CAS es frecuente.
¡Copiado!
1/* Étape 1: S'assurer de l'existence d'un modèle sur CAS pour le test */
2PROC CAS;
3 SESSION casauto;
4 TABLE.addCaslib / caslib='mycaslib' path='/tmp' datasource={srctype='path'};
5 DATA _null_;
6 file caslib='mycaslib' '/tmp/conditional_model.sashdat';
7 put 'MODEL_CONTENT_V_COND';
8 RUN;
9 SESSION.upload / caslib='mycaslib' path='/tmp/conditional_model.sashdat' casout={name='conditionalModel', replace=TRUE};
10QUIT;
11 
12/* Étape 2: Tentative de téléchargement - simule un fichier existant déjà */
13/* Crée un fichier bidon local pour simuler un fichier existant */
14DATA _null_;
15 file './conditionalModel.astore';
16 put 'OLD_LOCAL_MODEL_CONTENT';
17RUN;
18 
19/* Tente de télécharger sans l'option REPLACE (devrait échouer ou avertir) */
20PROC ASTORE;
21 download caslib="mycaslib" name="conditionalModel" casfile="./conditionalModel.astore";
22RUN;
23 
24/* Étape 3: Téléchargement forcé avec REPLACE */
25/* Cette étape réussira, écrasant le fichier local existant. */
26PROC ASTORE;
27 download caslib="mycaslib" name="conditionalModel" casfile="./conditionalModel.astore" replace;
28RUN;
29 
30/* Nettoyage : Suppression du fichier local et du modèle CAS */
31/* x 'rm ./conditionalModel.astore'; */ /* Décommenter si l'exécution en ligne de commande est autorisée */
32PROC CASUTIL;
33 delete casdata="conditionalModel" incaslib="mycaslib";
34 dropcaslib 'mycaslib';
35QUIT;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.