Snowflake ML-Versionshinweise¶
Dieser Artikel enthält die Versionshinweise für Snowflake ML, einschließlich der folgenden, sofern zutreffend:
Verhaltensänderungen
Neue Features
Fehlerkorrekturen für Kunden
Bemerkung
Diese Hinweise enthalten keine Änderungen an Features, die noch nicht angekündigt wurden. Solche Features können im Quellcode von Snowflake ML erscheinen, aber nicht in der öffentlichen Dokumentation.
Siehe Snowflake ML: Umfassendes maschinelles Lernen für die Dokumentation.
Version 1.7.0 (22.10.2024)¶
Verhaltensänderungen¶
Allgemeine Änderungen der Verhaltensweise:
Python 3.9 ist nun die erforderliche Mindestversion.
Änderungen der Verhaltensweise des Datenkonnektors:
to_torch_dataset
undto_torch_datapipe
erzeugen nun eine Dimension von 1 für skalare Daten. Dies ermöglicht eine nahtlosere Integration mit PyTorch DataLoader, das Batches durch Stapeleingaben erstellt. Das folgende Beispiel veranschaulicht den Unterschied.ds = connector.to_torch_dataset(shuffle=False, batch_size=3)
Eingabedaten:
"col1": [10, 11, 12]
Vorheriges Ergebnis:
array([10., 11., 12.])
in der Form(3,)
Neues Ergebnis:
array([[10.], [11.], [12.]])
in der Form(3, 1)
Eingabedaten:
[[0, 100], [1, 110], [2, 200]]
Vorheriges Ergebnis:
array([[ 0, 100], [ 1, 110], [ 2, 200]])
in der Form(3,2)
Neues Ergebnis: Keine Änderung
Sie können nun eine Batch-Größe von
None
into_torch_dataset
angeben, um die Dimensionen von 1 für eine bessere Interoperabilität mit dem PyTorch DataLoader mithilfe eines squeeze-Befehls zu entfernen. ::code::None
ist die neue standardmäßige Batch-Größe.
Verhaltensänderungen bei der Modellentwicklung:
Das
eps
(Epsilon)-Argument wird nicht mehr mit der Metriklog_loss
verwendet. Das Argument wird aus Gründen der Abwärtskompatibilität weiterhin akzeptiert, doch sein Wert wird ignoriert und das Epsilon wird nun von der zugrunde liegenden scikit-lean-Implementierung berechnet.
Verhaltensänderungen an der Modell-Registry:
Externe Zugriffsintegrationen sind nicht mehr erforderlich, wenn Sie in Snowflake 8.40 oder höher einen Inferenzdienst erstellen.
Neue Funktionen¶
Neue Features der Modell-Registry:
Sie können nun bei der Instanziierung von
ModelContext
Schlüsselwortargumente übergeben, um eine variable Anzahl von Kontextwerten bereitzustellen. Beispiel: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})
Unterstützung für
CategoricalDtype
von Panda für kategorische Spalten.Die
log_model
-Methode akzeptiert nun sowohlsignature
- als auchsample_input_data
-Parameter, um Hintergrunddaten zur Erklärbarkeit und Datenherkunft zu erfassen.
Fehlerkorrekturen¶
Korrekturen am Datenkonnektors:
Bei mehrdimensionalen Daten geben
to_torch_dataset
undto_torch_datapipe
nun ein numpy-Array mit einem entsprechenden Datentyp anstatt einer Liste zurück.
Fehlerkorrekturen im Feature Store:
Korrektur eines Problems, bei dem
ExampleHelper
einen unvollständigen Tabellennamen verwendete.Die Aggregationszeit für Wetterfunktionen wurde auf eine Stunde anstatt auf einen Tag geändert.
Korrekturen der Modellerklärbarkeit:
Korrektur eines Problems mit der Erklärbarkeit von XGBoost-Modellen durch Verwendung einer neuen Version der SHAP-Bibliothek.
Version 1.6.4 (17.10.2024)¶
Fehlerkorrekturen¶
Fehlerkorrekturen an der Modell-Registry:
Korrektur des Problems bei der Verwendung von
ModelVersion.run
mit Model-Serving (SPCS-Inferenz).
Version 1.6.3 (07.10.2024)¶
Verhaltensänderungen¶
Verhaltensänderungen an der Modell-Registry:
Dieses Release enthält nicht mehr die Model Registry API als Vorschau. Verwenden Sie stattdessen die öffentliche API im
snowflake.ml.model_registry
.
Fehlerkorrekturen¶
Fehlerkorrekturen an der Modell-Registry:
Korrektur von unerwarteten Paketnamen-Normalisierungen für Pakete, die nicht den PEP-508-Konventionen folgen, wenn ein Modell protokolliert wird.
Korrektur des Fehlers „Not a valid remote URI“ beim Protokollieren von MLflow-Modellen.
Korrektur von verschachtelten Aufrufen an
ModelVersion.run
.Korrektur des
log_model
-Fehlers, wenn eine lokale Versionsnummer eines Pakets andere Teile als die Basisversion enthält.
Neue Features¶
Neue Features der Modell-Registry:
Sie können nun einen Aufgabentyp für das Modell in
log_model
über den Parametertask
einstellen.
Neue Funktionen im Feature Store:
FeatureView
unterstützt nun die InitialisierungsmodiON_CREATE
undON_SCHEDULE
.
Version 1.6.2 (04.09.2024)¶
Fehlerkorrekturen¶
Korrektur eines Fehlers, bei dem ungültige Namen übergeben wurden, wo vollqualifizierte Namen gefordert waren. Diese lösen nun korrekt eine Ausnahme aus.
Fehlerkorrekturen bei der Modellierung:
Modelle, die mit XGBoost-Version 2 und höher erstellt wurden, werden nun korrekt protokolliert.
Korrekturen der Modellerklärbarkeit:
Problemumgehungen und bessere Fehlerbehandlung für XGBoost-Version 2.1.0 und höher.
Korrekter Umgang mit mehrklassigen XGBoost-Modellen zur Klassifizierung
Neue Features¶
Neue Funktionen im Feature Store:
Die
update_feature_view
-Methode akzeptiert nun einFeatureView
-Objekt als Alternative zu Name und Version.
Version 1.6.1 (13.08.2024)¶
Fehlerkorrekturen¶
Fehlerkorrekturen im Feature Store:
Die Größe der Metadaten ist bei der Erstellung eines Datensatzes nicht mehr beschränkt.
Fehlerkorrekturen an der Modell-Registry:
Korrektur einer Fehlermeldung in der
run
-Methode von Modellversionen, wenn kein Funktionsname angegeben wird und das Modell mehrere Zielmethoden hat.
Neue Features¶
Neue Modeling-Funktionen:
Die
set_params
-Methode ist nun verfügbar, um die Parameter des zugrunde liegenden scikit-learn-Schätzers einzustellen, wenn das Snowpark ML-Modell angepasst wurde.
Neue Features der Modell-Registry:
Unterstützung für die Modellerklärbarkeit in XGBoost-, LightGBM-, CatBoost- und scikit-learn-Modellen, die von der
shap
-Bibliothek unterstützt werden.
Version 1.6.0 (29.07.2024)¶
Verhaltensänderungen¶
Änderungen der Verhaltensweisen des Feature Stores:
Viele Positionsargumente sind nun Schlüsselwortargumente. Die folgende Tabelle listet die betroffenen Argumente für jede Methode auf.
Methode
Argumente
Entity
-Initialisiererdesc
FeatureView
-Initialisierertimestamp_col
,refresh_freq
,desc
FeatureStore
-Initialisierercreation_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
Fügen Sie die neue
warehouse
-Spalte zurlist_feature_views
-Ausgabe hinzu.
Fehlerkorrekturen¶
Fehlerkorrekturen bei der Modellierung:
Korrektur eines Problems, bei dem
SimpleImputer
Ganzzahl-Spalten mit Ganzzahl-Werten nicht zurechnen konnte.
Fehlerkorrekturen an der Modell-Registry:
Korrektur eines Problems bei der Bereitstellung eines nicht-indexbasierten Pandas-Dataframes
ModelVersion.run
.
Neue Features¶
Neue Funktionen im Feature Store:
Es wurden Überlastungen für bestimmte Methoden hinzugefügt, die sowohl eine
FeatureView
als auch Zeichenfolgen für Namen/Versionen akzeptieren. Betroffene APIs sindread_feature_view
,refresh_feature_view
,get_refresh_history
,resume_feature_view
,suspend_feature_view
unddelete_feature_view
.Docstring-Inline-Beispiele für alle öffentlichen APIs hinzugefügt.
Die
ExampleHelper
-Klasse wurde hinzugefügt, um das Laden von Daten zur Vereinfachung der öffentlichen Notebooks zu erleichtern.Methode
update_entity
hinzugefügt.Das
warehouse
-Argument wurde demFeatureView
-Konstruktor hinzugefügt, um das Standard-Warehouse zu überschreiben.
Neue Features der Modell-Registry:
Option zur Aktivierung der Erklärbarkeit bei der Registrierung von XGBoost, LightGBM und Catboost-Modellen hinzugefügt.
Unterstützung für die Protokollierung eines Modells aus einem
ModelVersion
-Objekt hinzugefügt.
Neue Features für die Modellierung:
Sie können die Beschränkung der Trainingsdatengröße von 10GB bei der verteilten Optimierung von Hyperparametern deaktivieren, indem Sie Folgendes ausführen:
from snowflake.ml.modeling._internal.snowpark_implementations import ( distributed_hpo_trainer, ) distributed_hpo_trainer.ENABLE_EFFICIENT_MEMORY_USAGE = False
Version 1.5.4 (11.07.2024)¶
Fehlerkorrekturen¶
Fehlerkorrekturen an der Modell-Registry:
Korrektur des Problems „401 Unauthorized“ bei der Bereitstellung eines Modells für Snowpark Container Services.
Fehlerkorrekturen im Feature Store:
Einige Ausnahmen bei der Einstellung von Eigenschaften wurden zu Warnungen herabgestuft, sodass Sie
desc
,refresh_freq
undwarehouse
in „Entwurfs“-Funktionsansichten ändern können.
Fehlerkorrekturen bei der Modellierung:
Korrekturen beim Aufruf von
OneHotEncoder
undOrdinalEncoder
mit einem Wörterbuch alscategories
-Parameter und den Daten in einem Pandas DataFrame.
Neue Features¶
Neue Features der Modell-Registry:
Möglichkeit zum Überschreiben von
device_map
unddevice
beim Laden von Hugging Face Pipeline-Modellen.set_alias
- undunset_alias
-Methoden zuModelVersion
-Instanzen hinzugefügt, um die Aliasnamen der Modellversion zu verwalten.partitioned_inference_api
-Decorator-Element hinzugefügt, um partitionierte Inferenzmethoden in Modellen zu erstellen.
Neue Funktionen im Feature Store:
Der Ausgabe der
list_feature_views
-Methode wurden die neuen Spaltenrefresh_freq
,refresh_mode
undscheduling_state
hinzugefügt.Die
update_feature_view
-Methode unterstützt nun die Aktualisierung der Beschreibung einer Funktionsansicht.Die neue Methoden
refresh_feature_view
undget_refresh_history
verwalten Aktualisierungen von Funktionsansichten.Die neue Methode
generate_training_set
erzeugt tabellengestützte Funktionsmomentaufnahmen.generate_dataset(..., output_type="table")
ist veraltet und erzeugt eineDeprecationWarning
.
Neue Modeling-Funktionen:
OneHotEncoder
undOrdinalEncoder
akzeptieren nun eine Liste von Array-ähnlichen Werten für dascategories
-Argument.
Version 1.5.3 (17.06.2024)¶
Fehlerkorrekturen¶
Fehlerkorrekturen an der Modell-Registry:
Korrektur eines Problems, das zu falschen Ergebnissen führt, wenn ein Pandas Dataframe mit mehr als 100.000 Zeilen als Eingabe der Methode
ModelVersion.run
in gespeicherten Prozeduren verwendet wird.
Fehlerkorrekturen bei der Modellierung:
Korrektur eines Problems bei der Übergabe von Kategorien an
OneHotEncoder
undOrdinalEncoder
als Wörterbuch oder als Pandas DataFrame.
Neue Features¶
Neue Features der Modell-Registry:
Modell-Registry unterstützt nun Zeitstempelspalten (TIMESTAMP_NTZ) in Eingabe- und Ausgabedaten.
Neue Features für die Modellierung:
OneHotEncoder
undOrdinalEncoder
unterstützen nun eine Liste von Array-ähnlichen Werten für dascategories
-Argument.
Neue Datenset-Funktionen:
DatasetVersion
-Instanzen haben nun die Eigenschaftenlabel_cols
undexclude_cols
.
Version 1.5.2 (10.06.2024)¶
Fehlerkorrekturen¶
Fehlerkorrekturen an der Modell-Registry:
Korrektur eines Problems, das den Aufruf von
log_model
in einer gespeicherten Prozedur verhinderte.
Fehlerkorrekturen bei der Modellierung:
Schnelle Korrektur für
import snowflake.ml.modeling.parameters.enable_anonymous_sproc
, das aufgrund eines Fehlers bei der Paketabhängigkeit nicht funktioniert.
Version 1.5.1 (2024-05-22)¶
Neue Features¶
Neue Features der Modell-Registry:
log_model
,get_model
unddelete_model
unterstützen jetzt vollqualifizierte Namen.
Neue Features für die Modellierung:
Sie können jetzt bei der Anpassung eine anonyme gespeicherte Prozedur verwenden, sodass für die Modellierung keine Berechtigungen für die Bearbeitung des Registry-Schemas erforderlich sind. Rufen Sie
import snowflake.ml.modeling.parameters.enable_anonymous_sproc
auf, um dieses Feature zu aktivieren.
Fehlerkorrekturen¶
Fehlerkorrekturen an der Modell-Registry:
Problem beim Laden älterer Modelle behoben.
Version 1.5.0 (2024-05-01)¶
Verhaltensänderungen¶
Verhaltensänderungen an der Modell-Registry:
Die Methode
fit_transform
kann nun entweder einen Snowpark-DataFrame oder einen Pandas-DataFrame zurückgeben, der mit der Art von DataFrame übereinstimmt, der der Methode übergeben wurde.
Neue Features¶
Neue Features der Modell-Registry:
Unterstützung für den Export von Modellen aus der Registry (
ModelVersion.export
) wurde hinzugefügt.Unterstützung für das Laden des zugrunde liegenden Modellobjekts (
ModelVersion.load
) wurde hinzugefügt.Unterstützung für das Umbenennen von Modellen (
Model.rename
) wurde hinzugefügt.
Fehlerkorrekturen¶
Fehlerkorrekturen an der Modell-Registry:
Der Fehler „invalid parameter
SHOW_MODEL_DETAILS_IN_SHOW_VERSIONS_IN_MODEL
“ wurde behoben.
Version 1.4.1 (2024-04-18)¶
Neue Features¶
Neue Features der Modell-Registry:
Unterstützung für Catboost-Modelle hinzugefügt (
catboost.CatBoostClassifier
,catboost.CatBoostRegressor
).Unterstützung für Lightgbm-Modelle (
lightgbm.Booster
,lightgbm.LightGBMClassifier
,lightgbm.LightGBMRegressor
) wurde hinzugefügt.
Fehlerkorrekturen¶
Fehlerkorrekturen an der Modell-Registry:
Fehler behoben, durch den die Option
relax_version
nicht funktionierte.
Version 1.4.0 (2024-04-08)¶
Verhaltensänderungen¶
Verhaltensänderungen an der Modell-Registry:
Die Methode
apply
ist bei der Protokollierung eines XGBoost-Modells nicht mehr standardmäßig als Zielmethode enthalten. Wenn Sie diese Methode in protokollierten Modellen benötigen, nehmen Sie sie manuell in dietarget-methods
-Option auf:log_model(..., options={"target_methods": ["apply", ...]})
Neue Features¶
Neue Features der Modell-Registry:
Die Registry unterstützt jetzt die Protokollierung von Satztransformer-Modellen (
sentence_transformers.SentenceTransformer
).Das Argument
version_name
ist beim Protokollieren eines Modells nicht mehr erforderlich. Eine zufällige, von Menschen lesbare ID wird generiert, wenn keine angegeben wurde.
Fehlerkorrekturen¶
Fehlerkorrekturen an der Modell-Registry:
Problem beim Aufrufen von mehreren Modelle in derselben Abfrage behoben, bei dem für die nach dem ersten Modell folgenden Modelle falsche Ergebnisse geliefert wurden. Diese Korrektur wird angewendet, wenn Modelle protokolliert werden, und wirkt sich nicht auf bestehende Modelle aus.
Fehlerkorrekturen bei der Modellierung:
Fehler bei der Registrierung eines Modells behoben, bei dem nur die in
save_model
genannten Methoden zur Modellsignatur für Snowpark ML-Modelle hinzugefügt wurden.Fehler in Batch-Inferenzmethoden wie
predict
undpredict_log_probe
behoben, bei dem die Methoden nicht ausgeführt wurden, wennn_jobs
nicht 1 war.Fehler in Batch-Inferenzmethoden behoben, bei dem keine Datentypen abgeleitet werden konnten, wenn die erste Datenzeile NULL enthielt.
Die Namen der Ausgabespalten der verteilten Hyperparameter-Optimierung werden jetzt korrekt mit dem Snowflake-Bezeichner abgeglichen.
Die Versionen der Abhängigkeiten von verteilten Hyperparameter-Optimierungsmethoden wurden gelockert; diese waren zu streng und führten zum Scheitern dieser Methoden.
scikit-learn ist jetzt als Abhängigkeit LightGBM-Pakets aufgeführt.
Version 1.3.1 (2024-03-21)¶
Neue Features¶
Aktualisierungen bei FileSet/FileSystem:
snowflake.ml.fileset.sfcfs.SFFileSystem
kann jetzt in UDFs und gespeicherten Prozeduren verwendet werden.
Version 1.3.0 (2024-03-12)¶
Verhaltensänderungen¶
Verhaltensänderungen an der Modell-Registry:
Wie bereits angekündigt, ist der Standardwert der Option
relax_version
(im Argumentoptions
vonlog_model
) jetztTrue
, was in den meisten Fällen eine zuverlässigere Bereitstellung ermöglicht, indem in Snowflake verfügbare Abhängigkeitsversionen zugelassen werden.Bei der Ausführung von Modellmethoden ist die auf dem Wertebereich basierende Eingabevalidierung (die ein Überlaufen der Eingabe verhindert) jetzt optional. Dies sollte die Leistung verbessern und bei den meisten Modelltypen nicht zu Problemen führen. Um die Validierung zu aktivieren, übergeben Sie beim Aufrufen der
run
-Methode des Modells das benannte Argumentstrict_input_validation=True
.
Verhaltensänderungen bei der Entwicklung von Modellen:
Die Methode
fit_predict
gibt nun je nach Typ der Eingabedaten entweder einen Pandas- oder einen Snowpark-DataFrame zurück, und sie ist für alle Klassen verfügbar, für die sie in der zugrunde liegenden scikit-learn-, xgboost- oder lightgbm-Klasse verfügbar ist.
Neue Features und Aktualisierungen¶
Aktualisierungen bei FileSet/FileSystem:
Instanzen von
snowflake.ml.fileset.sfcfs.SFFileSystem
können jetzt mitpickle
serialisiert werden.
Fehlerkorrekturen¶
Fehlerkorrekturen an der Modell-Registry:
Problems behoben, das beim Importieren von
log_model
unter bestimmten Umständen auftrat.Problem mit falscher Fehlermeldung behoben, die bei Validierung eines Eingabe-Snowpark-DataFrame mit einem Array-Feature ausgegeben wurde.
Fehlerkorrekturen bei der Entwicklung von Modellen:
Einschränkungen bei Paketversionen für alle Inferenzmethoden gelockert, wenn die installierte Version einer Abhängigkeit nicht im Snowflake-Conda-Kanal verfügbar ist.
Version 1.2.3 (2024-02-26)¶
Neue Features und Aktualisierungen¶
Aktualisierungen bei Modellentwicklung:
Alle Modellierungsklassen enthalten nun eine
score_samples
-Methode zur Berechnung des Log-Likelihood-Werts der gegebenen Stichproben.
Aktualisierungen bei Modellregistrierung:
Dezimaltyp-Features werden automatisch (mit einer Warnung) in DOUBLE oder FLOAT umgewandelt, anstatt einen Fehler zu produzieren.
Fehlermeldung für die derzeit nicht unterstützte Option
pip-requirements
verbessert.Versionen eines Modells können gelöscht werden.
Fehlerkorrekturen¶
Probleme bei Modellentwicklung behoben:
precision_recall_fscore_support
gab falsche Ergebnisse mitaverage="samples"
zurück.
Korrekturen bei Modellregistrierung:
Beschreibungen, Modelle und Tags wurden in neu erstellten Registrys aufgrund einer kürzlichen Verhaltensänderung von Snowflake nicht korrekt unter der Modellregistrierungs-API für die private Vorschau abgerufen.
Version 1.2.2 (2024-02-13)¶
Neue Features und Aktualisierungen¶
Aktualisierungen bei Modellregistrierung:
Bei Bereitstellung eines Modells in Snowpark Container Services kann nun eine Integration für den externen Zugriff unter Verwendung der Registrierungs-API für die private Vorschau angegeben werden. Dadurch können Modelle während der Bereitstellung auf das Internet zugreifen, um Abhängigkeiten abzurufen. Die folgenden Endpunkte sind für alle Bereitstellungen erforderlich:
docker.com:80
docker.com:443
anaconda.com:80
anaconda.com:443
anaconda.org:80
anaconda.org:443
pypi.org:80
pypi.org:443
Für Modelle, die von
HuggingFacePipeLineModel
abgeleitet sind, sind die folgenden Endpunkte erforderlich:huggingface.com:80
huggingface.com:443
huggingface.co:80
huggingface.co:443
Version 1.2.1 (2024-01-25)¶
Neue Features und Aktualisierungen¶
Aktualisierungen bei Modellentwicklung:
Ableiten des Spalten-Datentyps für Transformer, wenn möglich.
Aktualisierungen bei Modellregistrierung:
Wenn Option
relax_version
(imoptions
-Argument vonlog_model
) aufTrue
gesetzt wird, werden die Abhängigkeiten der angegebenen Versionen gelockert, um neuere Nebenversionen zuzulassen.
Version 1.2.0 (2024-01-12)¶
Neue Features und Aktualisierungen¶
Release der öffentlichen Vorschau der Modellregistrierung (Model Registry). Siehe Snowflake Model Registry. Das vorherige Release der privaten Vorschau der Modellregistrierung ist veraltet, wird aber weiterhin unterstützt, solange es Features enthält, die in der Version der öffentlichen Vorschau noch nicht verfügbar sind.
Aktualisierungen bei Modellentwicklung:
Unterstützung von Methode
fit_predict
zu den Klassen AgglomerativeClustering, DBSCAN und OPTICS hinzugefügt.Unterstützung von Methode
fit_transform
zu den Klassen MDS, SpectralEmbedding und TSNE hinzugefügt.