Notes de version de Snowflake ML¶
Cet article contient les notes de version Snowflake ML, y compris les éléments suivants, le cas échéant :
Changements de comportement
Nouvelles fonctionnalités
Corrections de bogues pour les clients
Note
Ces notes n’incluent pas les modifications des fonctions qui n’ont pas fait l’objet d’une annonce publique. Ces fonctions peuvent apparaître dans le code source de Snowflake ML mais pas dans la documentation publique.
Voir Snowflake ML : machine learning de bout en bout pour la documentation.
Version 1.7.0 (2024-10-22)¶
Changements de comportement¶
Changements de comportement généraux
Python 3.9 est désormais la version minimale requise.
Changements de comportement du connecteur de données :
to_torch_dataset
etto_torch_datapipe
créent maintenant une dimension de 1 pour les données scalaires. Cela permet une intégration plus transparente avec le PyTorch DataLoader, qui crée des lots en empilant les entrées. L’exemple suivant illustre la différence :ds = connector.to_torch_dataset(shuffle=False, batch_size=3)
Données d’entrée :
"col1": [10, 11, 12]
Résultat précédent :
array([10., 11., 12.])
avec la forme(3,)
Nouveau résultat :
array([[10.], [11.], [12.]])
avec la forme(3, 1)
Données d’entrée :
[[0, 100], [1, 110], [2, 200]]
Résultat précédent :
array([[ 0, 100], [ 1, 110], [ 2, 200]])
avec la forme(3,2)
Nouveau résultat : aucun changement
Vous pouvez désormais spécifier une taille de lot de
None
dansto_torch_dataset
pour compresser les dimensions de 1 pour une meilleure interopérabilité avec le DataLoader PyTorch. ::code::None
est la nouvelle taille de lot par défaut.
Modifications de comportements en matière de développement de modèles :
L’argument
eps
(epsilon) n’est plus utilisé avec la métriquelog_loss
. L’argument est toujours accepté pour des raisons de compatibilité descendante, mais sa valeur est ignorée et l’epsilon est désormais calculé par l’implémentation scikit-lean sous-jacente.
Modifications du comportement du registre de modèles :
Les intégrations d’accès externes ne sont plus nécessaires lors de la création d’un service d’inférence dans Snowflake 8.40 ou version ultérieure.
Nouvelles fonctionnalités¶
Les fonctions du nouveau modèle de registre :
Vous pouvez désormais transmettre des arguments de mots clés lors de l’instanciation de
ModelContext
pour fournir un nombre variable de valeurs de contexte. Par exemple :mc = custom_model.ModelContext( config = 'local_model_dir/config.json', m1 = model1 ) class ExamplePipelineModel(custom_model.CustomModel): def __init__(self, context: custom_model.ModelContext) -> None: super().__init__(context) v = open(self.context['config']).read() self.bias = json.loads(v)['bias'] @custom_model.inference_api def predict(self, input: pd.DataFrame) -> pd.DataFrame: model_output = self.context['m1'].predict(input) return pd.DataFrame({'output': model_output + self.bias})
Prise en charge de
CategoricalDtype
pandas pour les colonnes catégorielles.La méthode
log_model
accepte désormais les deux paramètressignature
etsample_input_data
pour capturer les données d’arrière-plan à partir de l’explicabilité et de la lignée des données.
Corrections de bogues¶
Corrections de bogues du connecteur de données :
Pour les données multidimensionnelles,
to_torch_dataset
etto_torch_datapipe
renvoient maintenant un tableau numpy avec un type de données approprié au lieu d’une liste.
Corrections de bogues du Feature Store :
Correction d’un problème où
ExampleHelper
utilisait un nom de table incomplet.Le temps d’agrégation des fonctionnalités météorologiques est passé à une heure au lieu d’un jour.
Corrections de bogues d’explicabilité du modèle :
Correction d’un problème d’explicabilité pour les modèles XGBoost en utilisant une nouvelle version de bibliothèque SHAP.
Version 1.6.4 (2024-10-17)¶
Corrections de bogues¶
Correction des bogues du registre des modèles :
Résolution d’un problème lors de l’utilisation de
ModelVersion.run
avec Model Serving (inférence sur SPCS).
Version 1.6.3 (2024-10-07)¶
Changements de comportement¶
Modifications du comportement du registre de modèles :
Cette version ne contient plus l’API Registre de modèles en avant-première. Utilisez l’API dans
snowflake.ml.model_registry
à la place.
Corrections de bogues¶
Correction des bogues du registre des modèles :
Correction des normalisations inattendues de noms de paquets pour ceux qui ne suivent pas les conventions PEP-508 lors de la journalisation d’un modèle.
Correction d’une erreur « URI distante non valide » lors de la connexion de modèles MLflow.
Correction d’appels imbriqués à
ModelVersion.run
.Correction de l’échec de
log_model
lorsque le numéro de version d’un paquet local contient des éléments autres que la version de base.
Nouvelles fonctionnalités¶
Les fonctions du nouveau modèle de registre :
Vous pouvez maintenant définir un type de tâche pour le modèle dans
log_model
via le paramètretask
.
Nouvelles fonctionnalités du Feature Store :
FeatureView
prend désormais en charge les modes d’initialisationON_CREATE
etON_SCHEDULE
.
Version 1.6.2 (2024-09-04)¶
Corrections de bogues¶
Correction d’un bogue impliquant des noms non valides transmis alors que des noms complets étaient requis. Ceux-ci génèrent désormais correctement une exception.
Correction de bogues de modélisation :
Journalisation correcte des modèles créés avec XGBoost version 2 et supérieure.
Corrections de bogues d’explicabilité du modèle :
Solutions de contournement et meilleure gestion des erreurs pour XGBoost version 2.1.0 et supérieure.
Gestion correcte des modèles de classification XGBoost multiclasse
Nouvelles fonctionnalités¶
Nouvelles fonctionnalités du Feature Store :
La méthode
update_feature_view
accepte désormais un objetFeatureView
comme alternative au nom et à la version.
Version 1.6.1 (2024-08-13)¶
Corrections de bogues¶
Corrections de bogues du Feature Store :
La taille des métadonnées n’est plus limitée lors de la génération d’un ensemble de données.
Correction des bogues du registre des modèles :
Correction d’un message d’erreur dans la méthode
run
des versions de modèle lorsqu’un nom de fonction n’est pas donné et que le modèle a plusieurs méthodes cibles.
Nouvelles fonctionnalités¶
Nouvelles fonctions Modeling :
La méthode
set_params
est désormais disponible pour définir les paramètres de l’estimateur scikit-learn sous-jacent, si le modèle ML Snowpark a été monté.
Les fonctions du nouveau modèle de registre :
Prise en charge de l’explicabilité du modèle dans les modèles scikit-learn XGBoost, LightGBM, CatBoost pris en charge par la bibliothèque
shap
.
Version 1.6.0 (2024-07-29)¶
Changements de comportement¶
Changements du comportement du magasin de fonctionnalités :
De nombreux arguments positionnels sont désormais des arguments de mots-clés. La table suivante répertorie les arguments affectés pour chaque méthode.
Méthode
Arguments
Initialiseur
Entity
desc
Initialiseur
FeatureView
timestamp_col
,refresh_freq
,desc
Initialiseur
FeatureStore
creation_mode
FeatureStore.update_entity
desc
FeatureStore.register_feature_view
block
,overwrite
FeatureStore.list_feature_views
entity_name
,feature_view_name
FeatureStore.get_refresh_history
verbose
Feature:Store.retrieve_feature_values
spine_timestamp_col
,exclude_columns
,include_feature_view_timestamp_col
FeatureStore.generate_training_set
save_as
,spine_timestamp_col
,spine_label_cols
,exclude_columns
,include_feature_view_timestamp_col
FeatureStore.generate_dataset
version
,spine_timestamp_col
,spine_label_cols
,exclude_columns
,include_feature_view_timestamp_col
,desc
,output_type
Ajout d’une nouvelle colonne
warehouse
à la sortie delist_feature_views
.
Corrections de bogues¶
Correction de bogues de modélisation :
Correction d’un problème dans lequel
SimpleImputer
n’a pas pu imputer de colonnes entières avec des valeurs entières.
Correction des bogues du registre des modèles :
Correction d’un problème lors de la fourniture d’un Dataframe pandas basé sur un index non nul
ModelVersion.run
.
Nouvelles fonctionnalités¶
Nouvelles fonctionnalités du Feature Store :
Ajout de surcharges à certaines méthodes pour accepter à la fois une
FeatureView
et les chaînes de nom/version. Les APIs affectées incluentread_feature_view
,refresh_feature_view
,get_refresh_history
,resume_feature_view
,suspend_feature_view
, etdelete_feature_view
.Ajout d’exemples de docstring en ligne pour toutes les APIs publics.
Ajout d’une classe utilitaire
ExampleHelper
pour aider au chargement des données sources afin de simplifier les Notebooks publics.Ajout de la méthode
update_entity
.Ajout de l’argument
warehouse
au constructeurFeatureView
pour remplacer l’entrepôt par défaut.
Les fonctions du nouveau modèle de registre :
Ajout d’une option permettant l’explicabilité lors de l’inscription de modèles XGBoost, LightGBM et les Catboost.
Ajout de la prise en charge de la journalisation d’un modèle à partir d’un objet
ModelVersion
.
Nouvelles fonctions de modélisation :
Vous pouvez désactiver la limite 10GB de taille des données d’entraînement dans l’optimisation des hyperparamètres distribués en exécutant :
from snowflake.ml.modeling._internal.snowpark_implementations import ( distributed_hpo_trainer, ) distributed_hpo_trainer.ENABLE_EFFICIENT_MEMORY_USAGE = False
Version 1.5.4 (2024-07-11)¶
Corrections de bogues¶
Correction des bogues du registre des modèles :
Correction du problème « 401 non autorisé » lors du déploiement d’un modèle sur Snowpark Container Services.
Corrections de bogues du Feature Store :
Certaines exceptions dans les paramètres de propriété ont été rétrogradées au rang d’avertissements, vous permettant de modifier
desc
,refresh_freq
, etwarehouse
dans les vues de fonctionnalités « brouillon ».
Correction de bogues de modélisation :
Problèmes résolus avec les appels de
OneHotEncoder
etOrdinalEncoder
avec un dictionnaire comme paramètrecategories
et les données dans un DataFrame pandas.
Nouvelles fonctionnalités¶
Les fonctions du nouveau modèle de registre :
Autorisation du remplacement de
device_map
etdevice
lors du chargement des modèles de pipeline Hugging Face.Ajout des méthodes
set_alias
etunset_alias
pour les instancesModelVersion
pour gérer les alias de version de modèle.Ajout du décorateur
partitioned_inference_api
pour créer des méthodes d’inférence partitionnées dans les modèles.
Nouvelles fonctionnalités du Feature Store :
Les colonnes
refresh_freq
,refresh_mode
, etscheduling_state
ont été ajoutées à la sortie de la méthodelist_feature_views
.La méthode
update_feature_view
prend désormais en charge la mise à jour de la description d’une vue de fonctionnalité.Nouvelles méthodes
refresh_feature_view
etget_refresh_history
pour gérer les mises à jour des vues de fonctionnalités.La nouvelle méthode
generate_training_set
génère des instantanés de fonctionnalités basés sur des tables.generate_dataset(..., output_type="table")
est obsolète et génère unDeprecationWarning
.
Nouvelles fonctions Modeling :
OneHotEncoder
etOrdinalEncoder
acceptent maintenant une liste de valeurs de type tableau pour l’argumentcategories
.
Version 1.5.3 (2024-06-17)¶
Corrections de bogues¶
Correction des bogues du registre des modèles :
Correction d’un problème entraînant des résultats incorrects lors de l’utilisation d’une DataFrame pandas contenant plus de 100 000 lignes comme entrée de la méthode
ModelVersion.run
dans les procédures stockées.
Correction de bogues de modélisation :
Correction d’un problème lié au passage de catégories à
OneHotEncoder
etOrdinalEncoder
sous forme de dictionnaire ou de DataFrame pandas.
Nouvelles fonctionnalités¶
Les fonctions du nouveau modèle de registre :
Le registre des modèles prend désormais en charge les colonnes d’horodatage (TIMESTAMP_NTZ) dans les données d’entrée et de sortie.
Nouvelles fonctions de modélisation :
OneHotEncoder
etOrdinalEncoder
prennent désormais en charge une liste de valeurs de type tableau pour l’argumentcategories
.
Nouvelles fonctionnalités du jeu de données :
Les instances
DatasetVersion
ont maintenant les propriétéslabel_cols
etexclude_cols
.
Version 1.5.2 (2024-06-10)¶
Corrections de bogues¶
Correction des bogues du registre des modèles :
Correction d’un problème qui empêchait les appels à
log_model
dans une procédure stockée.
Correction de bogues de modélisation :
Correction rapide pour
import snowflake.ml.modeling.parameters.enable_anonymous_sproc
qui ne fonctionnait pas en raison d’une erreur de dépendance de paquet.
Version 1.5.1 (2024-05-22)¶
Nouvelles fonctionnalités¶
Les fonctions du nouveau modèle de registre :
log_model
,get_model
, etdelete_model
prennent désormais en charge les noms pleinement qualifiés.
Nouvelles fonctions de modélisation :
Vous pouvez désormais utiliser une procédure stockée anonyme pendant l’ajustement, de sorte que la modélisation ne nécessite pas de privilèges pour opérer sur le schéma du registre. Appelez
import snowflake.ml.modeling.parameters.enable_anonymous_sproc
pour activer cette fonction.
Corrections de bogues¶
Correction des bogues du registre des modèles :
Correction d’un problème de chargement des anciens modèles.
Version 1.5.0 (2024-05-01)¶
Changements de comportement¶
Modifications du comportement du registre de modèles :
La méthode
fit_transform
peut désormais renvoyer soit un DataFrame Snowpark, soit un DataFrame pandas, correspondant au type de DataFrame transmis à la méthode.
Nouvelles fonctionnalités¶
Les fonctions du nouveau modèle de registre :
Ajout de la prise en charge de l’exportation de modèles à partir du registre (
ModelVersion.export
).Ajout de la prise en charge du chargement de l’objet de modèle sous-jacent (
ModelVersion.load
).Ajout de la prise en charge pour renommer les modèles (
Model.rename
).
Corrections de bogues¶
Correction des bogues du registre des modèles :
Correction de l’erreur « paramètre non valide
SHOW_MODEL_DETAILS_IN_SHOW_VERSIONS_IN_MODEL
».
Version 1.4.1 (2024-04-18)¶
Nouvelles fonctionnalités¶
Les fonctions du nouveau modèle de registre :
Ajout de la prise en charge des modèles catboost (
catboost.CatBoostClassifier
,catboost.CatBoostRegressor
).Ajout de la prise en charge des modèles lightgbm (
lightgbm.Booster
,lightgbm.LightGBMClassifier
,lightgbm.LightGBMRegressor
).
Corrections de bogues¶
Correction des bogues du registre des modèles :
Correction d’un bogue qui empêchait l’option
relax_version
de fonctionner.
Version 1.4.0 (2024-04-08)¶
Changements de comportement¶
Modifications du comportement du registre de modèles :
La méthode
apply
n’est plus incluse par défaut comme méthode cible lors de l’enregistrement d’un modèle XGBoost. Si vous souhaitez que cette méthode soit disponible dans les modèles enregistrés, incluez-la manuellement dans l’optiontarget-methods
:log_model(..., options={"target_methods": ["apply", ...]})
Nouvelles fonctionnalités¶
Les fonctions du nouveau modèle de registre :
Le registre prend désormais en charge l’enregistrement des modèles de transformateurs de phrases (
sentence_transformers.SentenceTransformer
).L’argument
version_name
n’est plus requis lors de l’enregistrement d’un modèle. Un ID aléatoire lisible par l’homme est généré si aucun n’est fourni.
Corrections de bogues¶
Correction des bogues du registre des modèles :
Correction d’un problème où, lorsque plusieurs modèles sont appelés dans la même requête, les modèles situés après le premier renvoyaient des résultats incorrects. Cette correction est appliquée lors de l’enregistrement des modèles et ne bénéficie pas aux modèles existants ; vous devez enregistrer à nouveau vos modèles pour corriger ce comportement.
Correction de bogues de modélisation :
Correction d’un bogue dans l’enregistrement d’un modèle où seules les méthodes mentionnées dans
save_model
étaient ajoutées à la signature du modèle pour les modèles Snowpark ML.Correction d’un bogue dans les méthodes d’inférence par lots telles que
predict
etpredict_log_probe
où, lorsquen_jobs
n’était pas 1, les méthodes n’étaient pas exécutées.Correction d’un bogue dans les méthodes d’inférence par lots qui ne pouvaient pas inférer les types de données lorsque la première ligne de données contenait NULL.
Les noms des colonnes de sortie de l’optimisation des hyperparamètres distribués correspondent désormais correctement à l’identificateur Snowflake.
Assouplissement des versions des dépendances des méthodes d’optimisation des hyperparamètres distribués ; celles-ci étaient trop strictes et provoquaient l’échec de ces méthodes.
scikit-learn est désormais listé comme une dépendance du paquet LightGBM.
Version 1.3.1 (2024-03-21)¶
Nouvelles fonctionnalités¶
Mises à jour FileSet/FileSystem :
snowflake.ml.fileset.sfcfs.SFFileSystem
peut désormais être utilisé dans des UDFs et dans des procédures stockées.
Version 1.3.0 (2024-03-12)¶
Changements de comportement¶
Modifications du comportement du registre de modèles :
Comme annoncé précédemment, la valeur par défaut de l’option
relax_version
(dans l’argumentoptions
delog_model
) est désormaisTrue
, ce qui permet un déploiement plus fiable dans la plupart des cas en autorisant les versions de dépendances disponibles dans Snowflake.Lors de l’exécution des méthodes de modélisation, la validation des entrées basée sur la plage de valeurs (qui empêche les entrées de déborder) est désormais facultative. Cela devrait améliorer les performances et ne devrait pas poser de problèmes pour la plupart des types de modèles. Pour activer la validation, transmettez l’argument nommé
strict_input_validation=True
lorsque vous appelez la méthoderun
du modèle.
Modifications de comportements en matière de développement de modèles :
La méthode
fit_predict
renvoie désormais un DataFrame pandas ou Snowpark, selon le type des données d’entrée, et est disponible dans toutes les classes où elle est disponible dans la classe scikit-learn, xgboost ou lightgbm sous-jacente.
Nouvelles fonctions et mises à jour¶
Mises à jour FileSet/FileSystem :
Les instances de
snowflake.ml.fileset.sfcfs.SFFileSystem
peuvent maintenant être sérialisées avecpickle
.
Corrections de bogues¶
Correction des bogues du registre des modèles :
Correction d’un problème d’importation de
log_model
dans certaines circonstances.Correction d’un message d’erreur incorrect lors de la validation de l’entrée DataFrame Snowpark avec une fonction de tableau.
Correction des bogues liés au développement du modèle :
Relaxez les versions des paquets pour toutes les méthodes d’inférence lorsque la version installée d’une dépendance n’est pas disponible dans le canal conda de Snowflake.
Version 1.2.3 (2024-02-26)¶
Nouvelles fonctions et mises à jour¶
Mises à jour pour le développement de modèles :
Toutes les classes de modélisation comprennent désormais une méthode
score_samples
pour calculer la log-vraisemblance des échantillons donnés.
Mises à jour du registre des modèles :
Les fonctions de type décimal sont automatiquement converties (avec un avertissement) en DOUBLE ou FLOAT au lieu de produire une erreur.
Amélioration du message d’erreur pour l’option
pip-requirements
non prise en charge actuellement.Vous pouvez désormais supprimer une version d’un modèle.
Corrections de bogues¶
Correctifs pour le développement de modèles :
precision_recall_fscore_support
a renvoyé des résultats incorrects avecaverage="samples"
.
Correction du registre des modèles :
Les descriptions, les modèles et les balises n’ont pas été récupérés correctement dans les registres nouvellement créés sous l’API de registre de modèle d’avant-première privée en raison d’un récent changement de comportement Snowflake.
Version 1.2.2 (2024-02-13)¶
Nouvelles fonctions et mises à jour¶
Mises à jour du registre des modèles :
Vous pouvez maintenant spécifier des intégrations d’accès externes lors du déploiement d’un modèle vers Snowpark Container Services en utilisant l’API de registre d’avant-première privée, ce qui permet aux modèles d’accéder à Internet pour récupérer des dépendances pendant le déploiement. Les points de terminaison suivants sont nécessaires pour tous les déploiements :
docker.com:80
docker.com:443
anaconda.com:80
anaconda.com:443
anaconda.org:80
anaconda.org:443
pypi.org:80
pypi.org:443
Pour les modèles dérivés de
HuggingFacePipeLineModel
, les points de terminaison suivants sont requis.huggingface.com:80
huggingface.com:443
huggingface.co:80
huggingface.co:443
Version 1.2.1 (2024-01-25)¶
Nouvelles fonctions et mises à jour¶
Mises à jour pour le développement de modèles :
Déduire le type de données de colonne pour les transformateurs lorsque cela est possible.
Mises à jour du registre des modèles :
L’option
relax_version
(dans l’argumentoptions
delog_model
) assouplit les dépendances des versions déclarées pour autoriser les versions mineures plus récentes lorsqu’elle est définie surTrue
.
Version 1.2.0 (2024-01-12)¶
Nouvelles fonctions et mises à jour¶
Publication en avant-première publique du registre des modèles. Voir Registre des modèles de Snowflake. La version précédente de l’avant-première privée du registre des modèles a été dépréciée, mais continuera d’être prise en charge, car elle inclut des fonctionnalités qui ne sont pas encore disponibles dans la version de l’avant-première publique.
Mises à jour pour le développement de modèles :
Ajout de la prise en charge de la méthode
fit_predict
dans les classes AgglomerativeClustering, DBSCAN et OPTICS.Ajout de la prise en charge de la méthode
fit_transform
dans les classes MDS, SpectralEmbedding et TSNE.