Notes de version de Snowflake ML Python¶
Cet article contient les notes de version Snowflake ML Python, 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 Snowflake ML Python, mais pas dans la documentation publique.
Voir Snowflake ML : machine learning de bout en bout pour la documentation.
Vérification du paquet snowflake-ml-python¶
Tous les paquets Snowflake sont signés, ce qui vous permet de vérifier leur origine. Pour vérifier le paquet snowflake.ml.python, procédez comme suit :
Installez
cosign. Cet exemple utilise l’installation Go : Installation de cosign avec Go.Téléchargez le fichier à partir d’un référentiel tel que PyPi.
Téléchargez un fichier
.sigpour cette version à partir de la page GitHub releases.Vérifiez la signature à l’aide de
cosign. Par exemple :
cosign verify-blob snowflake_ml_python-1.27.0.tar.gz --key snowflake-ml-python-1.27.0.pub --signature resources.linux.snowflake_ml_python-1.27.0.tar.gz.sig
cosign verify-blob snowflake_ml_python-1.27.0.tar.gz --key snowflake-ml-python-1.27.0.pub --signature resources.linux.snowflake_ml_python-1.27.0.tar.gz.sig
Note
This example uses the library and signature for version 1.27.0 of the package. Use the filenames of the version you are verifying.
Avis d’obsolescence¶
snowflake.ml.fileset.FileSetest obsolète et sera supprimée dans une prochaine version. Utilisez plutôt snowflake.ml.dataset.Dataset et snowflake.ml.data.DataConnector.Les noms de fonctions « CamelCase » dans
snowflake.ml.cortexsont obsolètes et seront supprimés dans une prochaine version. Utilisez plutôt les noms « snake_case » pour ces fonctions. Par exemple, utilisezclassify_textau lieu deClassifyText.Le décorateur
partitioned_inference_apiest obsolète et sera supprimé dans une prochaine version. Utilisezcustom_model.partitioned_apià la place.L’argument
additional_payloadsdes méthodesMLJob.submit_*est obsolète et sera supprimé dans une future version. Utilisation de l’argumentimportsà la place.La classe``snowflake.ml.model.models.huggingface_pipeline.HuggingfacePipelineModel`` est obsolète et sera supprimée dans une prochaine version.
Version 1.27.0 (2026-02-12)¶
Corrections de bogues¶
Correction des bogues du registre des modèles :
Correction de l’échec de
model_version.runcausé par l’exigence du privilège READ sur le modèle au lieu de USAGE lorsque le rôle de l’utilisateur ne comprenait que le privilège USAGE.
Feature store bug fixes:
Correction de l’échec de
register_feature_viewavecoverwrite=Truelorsque la vue des fonctionnalités existante est externe et que la nouvelle vue des fonctionnalités est gérée, ou inversement.
Version 1.26.0 (2026-02-05)¶
Nouvelles fonctionnalités¶
Les fonctions du nouveau modèle de registre :
Les signatures de modèles peuvent désormais inclure des paramètres d’inférence via
ParamSpec, ce qui vous permet de définir des paramètres constants à transmettre au moment de l’inférence sans les inclure dans les données d’entrée. Exemple :import pandas as pd from snowflake.ml.model import custom_model, model_signature from snowflake.ml.registry import Registry # Define a custom model with inference parameters class MyModelWithParams(custom_model.CustomModel): @custom_model.inference_api def predict( self, input_df: pd.DataFrame, *, temperature: float = 1.0, # keyword-only param with default ) -> pd.DataFrame: return pd.DataFrame({"output": input_df["feature"] * temperature}) # Create sample data model = MyModelWithParams(custom_model.ModelContext()) sample_input = pd.DataFrame({"feature": [1.0, 2.0, 3.0]}) sample_output = model.predict(sample_input, temperature=1.0) # Define ParamSpec for the inference parameter params = [ model_signature.ParamSpec( name="temperature", dtype=model_signature.DataType.FLOAT, default_value=1.0, ), ] # Infer signature with params sig = model_signature.infer_signature( input_data=sample_input, output_data=sample_output, params=params, ) # Log model with the signature registry = Registry(session) mv = registry.log_model( model=model, model_name="my_model_with_params", version_name="v1", signatures={"predict": sig}, ) # Run inference with custom parameter value result = mv.run(sample_input, function_name="predict", params={"temperature": 2.0})
Nouvelles fonctionnalités du Feature Store :
Nouveau paramètre
auto_prefixet nouvelle méthodewith_namepour éviter les collisions de noms de colonnes lors de la jointure de plusieurs vues de fonctionnalités dans la génération d’ensembles de données.Les tables Iceberg dynamiques peuvent désormais être utilisées comme stockage de sauvegarde pour les vues de fonctionnalités. Utilisez
StorageConfigavecStorageFormat.ICEBERGpour stocker des données au format Apache Iceberg sur un stockage Cloud externe. Un nouveau paramètredefault_iceberg_external_volumeest disponible dans leFeatureStorepour définir un volume externe par défaut pour les vues des fonctionnalités Iceberg.
Version 1.25.1 (2026-02-03)¶
Aucun changement visible pour le public. Cette version inclut des modifications d’une fonction de prévisualisation qui n’a pas fait l’objet d’une annonce publique.
Version 1.25.0 (2026-01-28)¶
Nouvelles fonctionnalités¶
New Model Serving features:
La méthode
create_serviceaccepte un nouvel argumentautocapturepour indiquer si les données d’inférence doivent être capturées (consultez Journaux d’inférence de capture automatique pour l’inférence en temps réel).Les méthodes
create_serviceetlog_model_and_create_serviceacceptent désormais un argument facultatifmin_instancespour spécifier le nombre minimum d’instances pour le service. Le service s’adapte automatiquement entre le nombre minimum et maximum d’instances spécifiées en fonction du trafic et de l’utilisation du matériel. Simin_instancescorrespond à 0, le service est automatiquement suspendu lorsqu’aucun trafic n’est détecté pendant un certain temps. La valeur par défaut pourmin_instancescorrespond à 0.
Version 1.24.0 (2026-01-22)¶
Nouvelles fonctionnalités¶
Nouvelles fonctionnalités du Feature Store :
Tile-based aggregation support using a new
FeatureAPI for efficient and point-in-time correct time-series feature computation using pre-computed tiles.
Les fonctions du nouveau modèle de registre :
Les modèles SentenceTransformer prennent désormais en charge l’inférence automatique de la signature. Lors de la journalisation d’un modèle SentenceTransformer,
sample_input_dataest facultatif. La signature est automatiquement déduite de la dimension d’intégration du modèle lorsqu’aucun échantillon de données d’entrée n’est fourni. Les méthodesencode,encode_query,encode_document,encode_queries,encode_documentssont prises en charge.import sentence_transformers from snowflake.ml.registry import Registry # Create model model = sentence_transformers.SentenceTransformer("all-MiniLM-L6-v2") # Log model without sample_input_data - signature is auto-inferred registry = Registry(session) mv = registry.log_model( model=model, model_name="my_sentence_transformer", version_name="v1", ) # Run inference with auto-inferred signature (input: "text", output: "output") import pandas as pd result = mv.run(pd.DataFrame({"text": ["Hello world"]}))
Version 1.23.0 (2026-01-165)¶
Nouvelles fonctionnalités¶
Nouvelles fonctionnalités de ML Jobs :
Les tâches ML prennent désormais en charge Python 3.11 et Python 3.12. Les tâches sélectionnent automatiquement un environnement d’exécution correspondant à la version Python du client.
Corrections de bogues¶
Correction des bogues du registre des modèles :
Une sortie vide dans les modèles de classification de jetons (reconnaissance d’entités nommées) HuggingFace ne provoquent plus d’échecs.
Correction des bogues de service de modèle :
Les statuts des conteneurs sont désormais correctement indiqués et ne doivent pas être vides.
Version 1.22.0 (2026-01-09)¶
Nouvelles fonctionnalités¶
Les fonctions du nouveau modèle de registre :
Vous pouvez désormais connecter à distance un modèle de pipeline de transformateur à l’aide d’une tâche Snowpark Container Services (SPCS).
# create reference to the model model = huggingface.TransformersPipeline( model="TinyLlama/TinyLlama-1.1B-Chat-v1.0", task="text-generation", ) # Remotely log the model, a SPCS job will run async and log the model mv = registry.log_model( model=model, model_name="tinyllama_remote_log", target_platforms=["SNOWPARK_CONTAINER_SERVICES"], signatures=openai_signatures.OPENAI_CHAT_SIGNATURE, )
Version 1.21.0 (2026-01-05)¶
Changements de comportement¶
Modifications du comportement des tâches ML :
Le comportement du paramètre
additional_payloadschange. Utilisez l’argumentimportspour déclarer des dépendances supplémentaires, telles que les fichiers ZIP et les modules Python. Les répertoires locaux et les fichiers Python sont automatiquement compressés et leur disposition interne est déterminée par le chemin d’importation spécifié. Le chemin d’importation s’applique uniquement aux répertoires locaux, aux fichiers Python et aux fichiers Python en zone de préparation ; cela n’a aucun effet sur les autres types d’importation. Lors du référencement de fichiers dans une zone de préparation, seuls les fichiers individuels sont pris en charge, et non les répertoires.
Changements du comportement du suivi des expériences :
ExperimentTrackingest maintenant une classe unique.
Corrections de bogues¶
Corrections de bogues de suivi des expériences :
Lorsque la limite de taille des métadonnées d’exécution est atteinte dans
log_metricsoulog_paramsun avertissement est émis au lieu de lever une exception.
Correction des bogues du registre des modèles :
ModelVersion.rungénère maintenant uneValueErrorsi le modèle est uniquement un modèle SPCS et siservice_namen’est pas fourni.
Nouvelles fonctionnalités de prévisualisation¶
La méthode
create_serviceaccepte désormais l’argument booléenautocapturepour indiquer si les données d’inférence sont automatiquement capturées.
Nouvelles fonctionnalités de la version¶
Les fonctions du nouveau modèle de registre :
La nouvelle classe``snowflake.ml.model.models.huggingface.TransformersPipeline`` est destinée à remplacer
snowflake.ml.model.models.huggingface_pipeline.HuggingfacePipelineModel, bien que l’ancienne classe ne soit pas encore obsolète. La nouvelle classe connaît les signatures de modèles pour les tâches courantes, de sorte que vous n’avez pas besoin de les spécifier manuellement. Les tâches prises en charge sont actuellement les suivantes :fill-maskquestion-answeringsummarizationtable-question-answeringtext2text-generationtext-classification(aliassentiment-analysis)text-generationtoken-classification(aliasner)translationtranslation_xx_to_yyzero-shot-classification(vous permet d’enregistrer les modèles sans les charger en mémoire)
L’API
list_servicesmontre maintenant un point de terminaison interne qui peut être appelé depuis un autre nœud ou notebook SPCS sans intégration d’application Enterprise. Elle indique également si la capture automatique est activée pour chaque service.
Nouvelles fonctionnalités DataConnector :
La nouvelle méthode
to_huggingface_datasetconvertit les données Snowflake en ensembles de données HuggingFace. Prend en charge les modes en mémoireDataset(streaming=False) et streamingIterableDataset(streaming=True).
Avis d’obsolescence¶
La classe``snowflake.ml.model.models.huggingface_pipeline.HuggingfacePipelineModel`` est obsolète et sera supprimée dans une prochaine version.