modelPublishing

publishModel

##set_modelpublishing

Description

Publie 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). dans une table de modèles au sein de CAS . Cette action est indispensable pour le déploiement de modèles analytiques, vous permettant de centraliser, stocker et gérer vos modèles de scoringProcessus d'application d'un modèle prédictif à de nouvelles données pour calculer une probabilité ou un score, permettant ainsi d'automatiser la prise de décision en temps réel sur SAS Viya.. Parce qu'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). bien rangé est 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). heureux !

Syntaxe Officielle
proc cas;
modelPublishing.publishModel /
modelName="nom_du_modele"
modelTable={name="nom_table_modele", caslib="nom_caslib", replace=true}
codeTable={name="table_code", caslib="nom_caslib"}
program="code_programme_sas"
modelType="DS2";
run;
quit;

Paramètres Clés

Nom du paramètre Description
codeTable Spécifie la table d'entrée contenant le programme du modèle et d'autres composants du modèle à publier.
formatItemStore Spécifie le magasin d'éléments de format (format item store) à publier.
formatXML Spécifie la chaîne XML définissant les formats à publier.
keepList Lorsqu'il est défini sur vrai (true), une instruction 'keep' est ajoutée au programme du modèle DS2 généré à partir d'un magasin analytique.
modelName Spécifie le nom du modèle. Ce paramètre obligatoire correspond à la colonne ModelName de la table de modèles cible.
modelNotes Permet de spécifier une valeur ou un commentaire qui sera écrit dans la colonne Notes de la table de modèles.
modelOptions Spécifie des options supplémentaires s'appliquant au modèle, notamment 'replace' (vrai par défaut) pour écraser un modèle existant.
modelTable Spécifie les paramètres de la table de modèles cible (name, caslib, persist, promote, replace).
modelType Indique le type de programme du modèle. Les valeurs acceptées sont 'DATASTEP' ou 'DS2' (valeur par défaut).
modelUuid Spécifie l'identifiant unique à écrire dans la colonne ModelUUID de la table de modèles.
program Spécifie sous forme de chaîne de caractères le programme du modèle à publier.
publishGlobal Indique si le modèle doit être publié dans une table de modèles de portée globale.
stores Spécifie la liste des magasins analytiques (analytic stores) qui doivent être publiés.
storeTables Spécifie les tables contenant les magasins analytiques à publier.
varXML Spécifie le XML contenant les métadonnées des variables, utilisé lors de la traduction du code DATA step en code DS2.

Préparation des données

Création d'une table de code de modèle basique

Avant de publier un modèle depuis une table, il faut que cette table existe. Voici comment générer une table simple dans la caslib 'casuser' avec l'action table.readlist, contenant un petit code DS2 factice.

1PROC CAS;
2 TABLE.readlist /
3 caslib="casuser"
4 name="ma_table_de_code"
5 replace=true
6 list={
7 {ModelName="Modele_Multiplicateur", Code="package myModel / overwrite; method score(double x, in_out double p); p = x * 2; end; endpackage;"}
8 };
9RUN;
10QUIT;

Exemples d'utilisation

Publication directe avec le paramètre 'program'

Cet exemple illustre comment publier rapidement un modèle en insérant directement le code source dans le paramètre 'program' de l'action, sans passer par une table de code intermédiaire.

1PROC CAS;
2 modelPublishing.publishModel / modelName="Modele_Direct" modelTable={name="mes_modeles", caslib="casuser", replace=true} program="package myModel / overwrite; method score(double var_in, in_out double var_out); var_out = var_in + 10; end; endpackage;" modelType="DS2";
3RUN;
4QUIT;
Résultat Attendu :
Une table nommée 'mes_modeles' est créée (ou mise à jour) dans la caslib 'casuser'. Elle contiendra désormais la définition et le code source de 'Modele_Direct'.
Publication depuis une table de code avec persistance et promotion

Un cas d'usage plus robuste : publier un modèle dont le code est stocké dans une table (comme celle générée dans l'étape 'Création de données'). Le modèle sera inséré dans une table cible 'table_modeles_globale'. Nous activons le remplacement, la promotion en mémoire globale (pour que les autres utilisateurs la voient) et ajoutons des notes documentaires.

1PROC CAS;
2 modelPublishing.publishModel / modelName="Modele_Multiplicateur" modelNotes="Version 1.0 - Mis en production" modelTable={name="table_modeles_globale", caslib="public", replace=true, promote=true} codeTable={name="ma_table_de_code", caslib="casuser"} modelType="DS2" modelOptions={replace=true};
3RUN;
4QUIT;
Résultat Attendu :
Le modèle lu depuis 'ma_table_de_code' est publié avec succès. La table cible 'table_modeles_globale' est promue dans la caslib 'public', remplaçant toute version du modèle 'Modele_Multiplicateur' existante grâce à l'option de remplacement activée.