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 und to_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)
    
    Copy
    • 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 in to_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 Metrik log_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})
    
    Copy
  • Unterstützung für CategoricalDtype von Panda für kategorische Spalten.

  • Die log_model-Methode akzeptiert nun sowohl signature- als auch sample_input_data-Parameter, um Hintergrunddaten zur Erklärbarkeit und Datenherkunft zu erfassen.

Fehlerkorrekturen

Korrekturen am Datenkonnektors:

  • Bei mehrdimensionalen Daten geben to_torch_dataset und to_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 Parameter task einstellen.

Neue Funktionen im Feature Store:

  • FeatureView unterstützt nun die Initialisierungsmodi ON_CREATE und ON_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 ein FeatureView-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-Initialisierer

    desc

    FeatureView-Initialisierer

    timestamp_col, refresh_freq, desc

    FeatureStore-Initialisierer

    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

  • Fügen Sie die neue warehouse-Spalte zur list_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 sind read_feature_view, refresh_feature_view, get_refresh_history, resume_feature_view, suspend_feature_view und delete_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 dem FeatureView-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
    
    Copy

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 und warehouse in „Entwurfs“-Funktionsansichten ändern können.

Fehlerkorrekturen bei der Modellierung:

  • Korrekturen beim Aufruf von OneHotEncoder und OrdinalEncoder mit einem Wörterbuch als categories-Parameter und den Daten in einem Pandas DataFrame.

Neue Features

Neue Features der Modell-Registry:

  • Möglichkeit zum Überschreiben von device_map und device beim Laden von Hugging Face Pipeline-Modellen.

  • set_alias- und unset_alias-Methoden zu ModelVersion-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 Spalten refresh_freq, refresh_mode und scheduling_state hinzugefügt.

  • Die update_feature_view-Methode unterstützt nun die Aktualisierung der Beschreibung einer Funktionsansicht.

  • Die neue Methoden refresh_feature_view und get_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 eine DeprecationWarning.

Neue Modeling-Funktionen:

  • OneHotEncoder und OrdinalEncoder akzeptieren nun eine Liste von Array-ähnlichen Werten für das categories-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 und OrdinalEncoder 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 und OrdinalEncoder unterstützen nun eine Liste von Array-ähnlichen Werten für das categories-Argument.

Neue Datenset-Funktionen:

  • DatasetVersion-Instanzen haben nun die Eigenschaften label_cols und exclude_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 und delete_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 die target-methods-Option auf:

    log_model(..., options={"target_methods": ["apply", ...]})
    
    Copy

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 und predict_log_probe behoben, bei dem die Methoden nicht ausgeführt wurden, wenn n_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 Argument options von log_model) jetzt True, 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 Argument strict_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 mit pickle 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 mit average="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 (im options-Argument von log_model) auf True 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.