Créer, entraîner et utiliser un modèle Snowflake ML dans une application¶
Cette rubrique fournit un exemple de la façon d’entraîner un modèle Snowflake ML dans une Snowflake Native App à l’aide du paquet Python scikit-learn. L’exemple de cette rubrique peut être utilisé pour entraîner des modèles sur les données dans le compte du consommateurs ou du fournisseur.
Créer un schéma versionné pour conserver les procédures stockées¶
Dans le script de configuration, créez un schéma versionné qui contient la procédure stockée, comme le montre l’exemple suivant :
Créer un schéma versionné pour la procédure stockée
Créer une procédure stockée pour créer et entraîner un modèle¶
Créez une procédure stockée pour la fonction Python que vous utilisez pour entraîner un modèle, comme indiqué dans l’exemple suivant :
Cet exemple crée une procédure stockée nommée
py_log_modelet déclare les paquets Python requis pour entraîner un modèle avecscikit-learn:
snowflake-snowpark-python
scikit-learn
snowflake-ml-python
pandas
numpy
xgboost
Après avoir créé une procédure stockée, ajoutez le code suivant au corps de la procédure stockée :
Ajouter le code Python dans le corps de la procédure stockée
La fonction
log_modelpermet d’effectuer les opérations suivantes :
Utilise
pandasetnumpypour créer un DataFrame qui servira de données d’entraînement pour le modèle.Crée une instance de XGBoost qui servira d’algorithme d’entraînement pour les données.
Appelle la fonction
fit()de XGBoost pour créer un modèle et l’entraîner sur l’ensemble de données.Appelle la fonction
log_model()de Snowflake Model Registry pour ajouter le modèle au registre de modèles.Note
Les modèles créés par une application doivent être stockés dans un registre de modèles. Les applications ne peuvent pas accéder aux modèles qui sont stockés dans une zone de préparation.
Facultatif : Pour permettre aux consommateurs d’exécuter la procédure stockée afin d’entraîner le modèle, accordez le privilège USAGE pour la procédure stockée :
Créer une procédure stockée pour exécuter un modèle¶
Créez une procédure stockée pour la fonction Python que vous utilisez pour appeler le modèle.
Ajouter le code Python que vous utilisez pour appeler le modèle
La fonction
run_modelpermet d’effectuer les opérations suivantes :
Exécute la fonction
load_iris()pour charger l’ensemble de données de machine learning Iris.Utilise
pandaspour créer un DataFrame sur la base de l’ensemble de données Iris.Exécute la fonction
get_model()pour obtenir le registre de modèles.Exécute la fonction Predict sur le modèle.
Renvoie le résultat.
Facultatif : Pour permettre aux consommateurs d’exécuter la procédure stockée afin d’entraîner le modèle, accordez le privilège USAGE pour la procédure stockée :
Exécuter les procédures stockées¶
Si l’application accorde le privilège USAGE pour ces procédures stockées à un rôle d’application, les consommateurs peuvent appeler les procédures stockées pour entraîner et exécuter les modèles, comme le montrent les exemples suivants :
Cette commande appelle la procédure stockée py_log_model pour entraîner le modèle.
Cette commande appelle la procédure stockée py_call_predict pour appeler la fonction Predict sur le modèle.