Snowflake ML リリースノート¶
この記事には、 Snowflake ML のリリースノートが含まれています。また、該当する場合は以下が含まれます。
動作の変更
新機能
顧客向けバグ修正
注釈
これらの注記には、公表されていない機能の変更は含まれていません。そのような機能は、 Snowflake ML のソースコードにはあっても、公開ドキュメンテーションにはありません。
ドキュメントについては、 Snowflake ML:エンドツーエンドの機械学習 をご参照ください。
Snowflake-ml-pythonパッケージの検証¶
すべてのSnowflakeパッケージは署名されており、その基点を確認することができます。 snowflake.ml.python パッケージを確認するには、以下の手順に従ってください。
cosignをインストールします。この例では、Goインストールを使用します: Goによるcosignのインストール.PyPi などのリポジトリからファイルをダウンロードしてください。
GitHub リリースページ から、そのリリースの
.sigファイルをダウンロードしてください。cosignを使って署名を検証します。例:
cosign verify-blob snowflake_ml_python-1.7.0.tar.gz --key snowflake-ml-python-1.7.0.pub --signature resources.linux.snowflake_ml_python-1.7.0.tar.gz.sig
cosign verify-blob snowflake_ml_python-1.7.0.tar.gz --key snowflake-ml-python-1.7.0.pub --signature resources.linux.snowflake_ml_python-1.7.0
注釈
この例では、パッケージのバージョン1.7.0のライブラリと署名を使用しています。検証するバージョンのファイル名を使用してください。
バージョン1.7.2(2024-11-21)¶
新機能¶
新しいモデルレジストリ機能:
モデルレジストリは、
Modelversion.create_serviceメソッドのblockオプションで、非同期モデル推論サービスの作成をサポートするようになりました。非同期にサービスを作成するには、このオプションをFalseに設定します。デフォルトはTrueです。
バグ修正¶
モデル説明可能性のバグ修正:
タスクが UNKNOWN であるscikit-learnパイプラインで
explainが有効化され、後で起動すると失敗する問題を修正しました。
バージョン1.7.1(2024-11-05)¶
新機能¶
新しいモデルレジストリ機能:
モデルシグネチャ推論に使用されるデータフレームで、Null値が無視されるようになりました。シグネチャの推論には、非NULL値のみが使用されます。
予測に使用されるデータフレームでNull値が許容されるようになりました。
pandasの拡張データ型がモデル署名推論でサポートされるようになりました。
pandas
Seriesは入力データと出力データで使用できます。
新モデルのモニタリング機能:
レジストリのモデルをログに記録する際に、
enable_monitoringオプションが利用可能になりました。このオプションは、モデルモニタリングのプライベートプレビュー機能へのアクセスを可能にします。
バグ修正¶
データのバグ修正:
ホイールで欠落していた
snowflake.ml.dataエクスポートが追加されました。
データセットのバグ修正:
ホイールで欠落していた
snowflake.ml.datasetエクスポートが追加されました。
モデルレジストリのバグ修正:
ログ記録時に
tf_keras.Modelがkerasモデルとして認識されない問題を修正しました。
バージョン1.7.0(2024-10-22)¶
動作の変更¶
一般的な動作変更:
Python 3.9が最低限必要なバージョンになりました。
データコネクタの動作変更:
to_torch_datasetとto_torch_datapipeは、スカラーデータを1次元で作成するようになりました。これにより、入力を積み重ねてバッチを作成する PyTorch DataLoader とのシームレスな統合が可能になります。次の例は、その違いを示しています。ds = connector.to_torch_dataset(shuffle=False, batch_size=3)
入力データ:
"col1": [10, 11, 12]以前の結果: 図形
(3,)のarray([10., 11., 12.])新しい結果: 図形
(3, 1)のarray([[10.], [11.], [12.]])
入力データ:
[[0, 100], [1, 110], [2, 200]]以前の結果: 図形
(3,2)のarray([[ 0, 100], [ 1, 110], [ 2, 200]])新しい結果: 変更なし
PyTorch DataLoader との良好な相互運用性のために、
to_torch_datasetでNoneのバッチサイズを指定して、1次元を出力できるようになりました。 ::code::Noneが新しいデフォルトバッチサイズです。
モデル開発の動作変更:
eps(イプシロン)引数は、log_lossメトリックでは使用されなくなりました。この引数は後方互換性のためにまだ受け入れられますが、その値は無視され、イプシロンは基になるscikit-lean実装によって計算されるようになりました。
モデルレジストリの動作変更:
Snowflake 8.40以降で推論サービスを作成する際に、外部アクセス統合が不要になりました。
新機能¶
新しいモデルレジストリ機能:
ModelContextをインスタンス化するときにキーワード引数を渡して、コンテキスト値の変数を提供できるようになりました。例: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})
カテゴリ列でpandasの
CategoricalDtypeをサポートするようになりました。log_modelメソッドは、signatureとsample_input_dataの両方のパラメーターを受け取り、説明可能性とデータの系統から背景データを取得できるようになりました。
バグ修正¶
データコネクタのバグ修正:
多次元データの場合、
to_torch_datasetとto_torch_datapipeは、リストではなく、適切なデータ型のnumpy配列を返すようになりました。
Feature Storeのバグ修正:
ExampleHelperが不完全なテーブル名を使用していた問題を修正しました。気象機能の集計時間を1日から1時間に変更しました。
モデル説明可能性のバグ修正:
SHAP ライブラリの新バージョンを使用することにより、 XGBoost モデルの説明可能性に関する問題を修正しました。
バージョン1.6.4(2024-10-17)¶
バグ修正¶
モデルレジストリのバグ修正:
ModelVersion.runをModel Servingで使用(SPCS での推論)する際の問題を修正しました。
バージョン1.6.3(2024-10-07)¶
動作の変更¶
モデルレジストリの動作変更:
このリリースには、Model Registry API のプレビューが含まれなくなりました。代わりに、
snowflake.ml.model_registryでパブリック API を使用します。
バグ修正¶
モデルレジストリのバグ修正:
モデルのログ時に、 PEP-508 の表記に従わないパッケージが予期しないパッケージ名に正規化される問題を修正しました。
MLflow モデルのログ時の「Not a valid remote URI」エラーを修正しました。
ModelVersion.runへのネストした呼び出しを修正しました。ローカルパッケージのバージョン番号に基本バージョン以外の部分が含まれている場合に
log_modelで失敗する問題を修正しました。
新機能¶
新しいモデルレジストリ機能:
taskパラメーターを介してlog_modelでモデルのタスク型を設定できるようになりました。
Feature Storeの新機能:
FeatureViewは、ON_CREATEとON_SCHEDULEの初期化モードをサポートするようになりました。
バージョン1.6.2(2024-09-04)¶
バグ修正¶
完全修飾名が必要な場合に渡される無効な名前に関するバグを修正しました。これらでは、例外が正しく発生するようになりました。
モデリングのバグ修正:
XGBoost バージョン2以降を使用して構築されたモデルを正しくログします。
モデル説明可能性のバグ修正:
XGBoost バージョン2.1.0以降での回避策と、エラー処理を改善しました。
マルチクラスの XGBoost 分類モデルを正しく処理するようになりました。
新機能¶
Feature Storeの新機能:
update_feature_viewメソッドは、名前とバージョンの代わりにFeatureViewオブジェクトを受け付けるようになりました。
バージョン1.6.1(2024-08-13)¶
バグ修正¶
Feature Storeのバグ修正:
データセット生成時にメタデータのサイズが制限されなくなりました。
モデルレジストリのバグ修正:
関数名が与えられておらず、モデルに複数のターゲットメソッドがある場合に、モデルバージョンの
runメソッドで表示されるエラーメッセージを修正しました。
新機能¶
新しいModeling機能:
Snowpark ML のモデルが装備されている場合は、基になるscikit-learn推定器のパラメーターを設定するために
set_paramsメソッドを利用できるようになりました。
新しいモデルレジストリ機能:
XGBoost、 LightGBM、 CatBoost と、
shapライブラリでサポートされているscikit-learnモデルで、モデル説明可能性のサポートするようになりました。
バージョン1.6.0(2024-07-29)¶
動作の変更¶
Feature Storeの動作変更:
多数の位置引数がキーワード引数になりました。以下のテーブルは、各メソッドで影響を受ける引数のリストです。
メソッド
引数
Entity初期化子descFeatureView初期化子timestamp_col、refresh_freq、descFeatureStore初期化子creation_modeFeatureStore.update_entitydescFeatureStore.register_feature_viewblock、overwriteFeatureStore.list_feature_viewsentity_name、feature_view_nameFeatureStore.get_refresh_historyverboseFeature:Store.retrieve_feature_valuesspine_timestamp_col、exclude_columns、include_feature_view_timestamp_colFeatureStore.generate_training_setsave_as、spine_timestamp_col、spine_label_cols、exclude_columns、include_feature_view_timestamp_colFeatureStore.generate_datasetversion、spine_timestamp_col、spine_label_cols、exclude_columns、include_feature_view_timestamp_col、desc、output_typelist_feature_viewsの出力に新しい列warehouseを追加しました。
バグ修正¶
モデリングのバグ修正:
SimpleImputerが整数値のある整数列を代入できない問題を修正しました。
モデルレジストリのバグ修正:
非ゼロインデックスベースのpandas Dataframe
ModelVersion.runを提供する際の問題を修正しました。
新機能¶
Feature Storeの新機能:
FeatureViewと名前/バージョン文字列の両方を受け付けるために、特定のメソッドにオーバーロードを追加しました。影響を受ける APIs には、read_feature_view、refresh_feature_view、get_refresh_history、resume_feature_view、suspend_feature_view、delete_feature_viewが含まれます。すべてのパブリック APIs にdocstringのインライン例を追加しました。
公開ノートブックを簡素化するために、ソースデータのロードを支援するユーティリティクラス
ExampleHelperを追加しました。update_entityメソッドを追加しました。デフォルトのウェアハウスをオーバーライドできるように、
FeatureViewコンストラクターにwarehouse引数を追加しました。
新しいモデルレジストリ機能:
XGBoost、 LightGBM、Catboostモデルの登録時に説明可能性を有効にするオプションを追加しました。
ModelVersionオブジェクトからのモデルをログするためのサポートを追加しました。
新しいモデリング機能:
以下を実行すると、分散ハイパーパラメーターの最適化で、 10GB のトレーニングデータサイズ制限を無効にできます。
from snowflake.ml.modeling._internal.snowpark_implementations import ( distributed_hpo_trainer, ) distributed_hpo_trainer.ENABLE_EFFICIENT_MEMORY_USAGE = False
バージョン1.5.4(2024-07-11)¶
バグ修正¶
モデルレジストリのバグ修正:
Snowpark Container Servicesにモデルを展開する際の「401 Unauthorized」問題を修正しました。
Feature Storeのバグ修正:
プロパティセッターの一部の例外が警告に格下げされ、「下書き」機能ビューで
desc、refresh_freq、およびwarehouseが変更できるようになりました。
モデリングのバグ修正:
ディクショナリを使用した
OneHotEncoderおよびOrdinalEncoderを、categoriesパラメーター、またpandas DataFrame として呼び出す際の問題を修正しました。
新機能¶
新しいモデルレジストリ機能:
Hugging Faceパイプラインモデルのロード時に、
device_mapとdeviceのオーバーライドを許可します。モデルのバージョンのエイリアスを管理するために、
ModelVersionインスタンスにset_aliasとunset_aliasメソッドを追加しました。モデルに分割された推論メソッドを作成できるように、
partitioned_inference_apiデコレーターを追加しました。
Feature Storeの新機能:
list_feature_viewsメソッドの出力に新しいrefresh_freq、refresh_mode、 およびscheduling_state列が追加されました。update_feature_viewメソッドは、機能ビューの説明の更新をサポートするようになりました。新しいメソッド
refresh_feature_viewとget_refresh_historyは、機能ビューの更新を管理します。新しいメソッド
generate_training_setは、テーブル利用の機能スナップショットを生成します。generate_dataset(..., output_type="table")は廃止され、DeprecationWarningを生成します。
新しいModeling機能:
OneHotEncoderとOrdinalEncoderは、categories引数で配列のような値のリストを受け付けるようになりました。
バージョン1.5.3(2024-06-17)¶
バグ修正¶
モデルレジストリのバグ修正:
ストアドプロシージャの
ModelVersion.runメソッドの入力として、100,000行を超えるpandas Dataframeを使用した場合に不正な結果が生じる問題を修正しました。
モデリングのバグ修正:
OneHotEncoderとOrdinalEncoderにカテゴリをディクショナリまたはpandas DataFrame として渡す際の問題を修正しました。
新機能¶
新しいモデルレジストリ機能:
モデルレジストリが入出力データのタイムスタンプ(TIMESTAMP_NTZ)列をサポートするようになりました。
新しいモデリング機能:
OneHotEncoderとOrdinalEncoderは、categories引数で配列のような値のリストをサポートするようになりました。
新しいデータセット機能:
DatasetVersionインスタンスは、label_colsとexclude_colsプロパティを持つようになりました。
バージョン1.5.2(2024-06-10)¶
バグ修正¶
モデルレジストリのバグ修正:
ストアドプロシージャ内で
log_modelを呼び出せない問題を修正しました。
モデリングのバグ修正:
パッケージの依存性エラーにより
import snowflake.ml.modeling.parameters.enable_anonymous_sprocが動作しない場合のクイック修正。
バージョン1.5.1(2024-5-22)¶
新機能¶
新しいモデルレジストリ機能:
log_model、get_model、およびdelete_modelメソッドが完全修飾名をサポートするようになりました。
新しいモデリング機能:
フィッティング時に匿名ストアドプロシージャを使用できるようになったため、モデリング時にレジストリスキーマを操作する権限が不要になりました。この機能を有効にするには、
import snowflake.ml.modeling.parameters.enable_anonymous_sprocを呼び出します。
バグ修正¶
モデルレジストリのバグ修正:
古いモデルのロードに関する問題を修正しました。
バージョン1.5.0(2024-5-01)¶
動作の変更¶
モデルレジストリの動作変更:
fit_transformメソッドは、Snowpark DataFrameまたは pandas DataFrame のいずれかを返すことができるようになり、メソッドに渡される DataFrame の種類と一致するようになりました。
新機能¶
新しいモデルレジストリ機能:
レジストリ(
ModelVersion.export)からモデルをエクスポートするサポートを追加しました。基礎となるモデルオブジェクト(
ModelVersion.load)をロードするサポートを追加しました。モデル名の変更(
Model.rename)のサポートを追加しました。
バグ修正¶
モデルレジストリのバグ修正:
「無効なパラメーター
SHOW_MODEL_DETAILS_IN_SHOW_VERSIONS_IN_MODEL」エラーを修正しました。
バージョン1.4.1(2024-04-18)¶
新機能¶
新しいモデルレジストリ機能:
catboostモデル(
catboost.CatBoostClassifier、catboost.CatBoostRegressor)のサポートを追加しました。lightgbmモデル(
lightgbm.Booster、lightgbm.LightGBMClassifier、lightgbm.LightGBMRegressor)のサポートを追加しました。
バグ修正¶
モデルレジストリのバグ修正:
relax_versionオプションが動作しない原因となっていたバグを修正しました。
バージョン1.4.0(2024-04-08)¶
動作の変更¶
モデルレジストリの動作変更:
XGBoost モデルをログ記録する際、
applyメソッドがデフォルトでターゲットメソッドに含まれなくなりました。ログ記録するモデルでこのメソッドが必要な場合は、target-methodsオプションに手動で含めてください。log_model(..., options={"target_methods": ["apply", ...]})
新機能¶
新しいモデルレジストリ機能:
レジストリがsentence transformerモデル(
sentence_transformers.SentenceTransformer)のログ記録をサポートするようになりました。モデルをログ記録する際、
version_name引数は必要なくなりました。何も提供しないと、人間が読めるランダムな ID が生成されます。
バグ修正¶
モデルレジストリのバグ修正:
同じクエリで複数のモデルが呼び出された場合に、最初のモデル以降のモデルが不正な結果を返す問題を修正しました。この修正はモデルがログ記録されるときに適用され、既存のモデルには影響しません。この動作を修正するには、モデルを再度ログ記録する必要があります。
モデリングのバグ修正:
モデルの登録において、Snowpark ML モデルのモデル署名に
save_modelで言及されているメソッドのみが追加されるバグを修正しました。predictやpredict_log_probeなどのバッチ推論メソッドで、n_jobsが1でない場合にメソッドが実行されないバグを修正しました。バッチ推論メソッドで、データの最初の行に NULL が含まれる場合にデータ型を推論できないバグを修正しました。
分散ハイパーパラメーター最適化の出力列名がSnowflake識別子と正しく一致するようになりました。
分散ハイパーパラメーター最適化メソッドの依存関係のバージョンを緩和しました。これらのメソッドは厳しすぎて、失敗の原因となっていました。
scikit-learnが LightGBM パッケージの依存関係として一覧表示されるようになりました。
バージョン1.3.1(2024-03-21)¶
新機能¶
FileSet/FileSystem の更新:
snowflake.ml.fileset.sfcfs.SFFileSystemが UDFs とストアドプロシージャで使用できるようになりました。
バージョン1.3.0(2024-03-12)¶
動作の変更¶
モデルレジストリの動作変更:
以前お知らせしたように、
relax_versionオプション(log_modelのoptions引数)のデフォルトがTrueになりました。これは、Snowflakeで利用可能な依存関係バージョンを許可することで、ほとんどのケースでより信頼性の高い展開を可能にします。モデルメソッドを実行する際、値域ベースの入力検証(入力がオーバーフローするのを防ぐ)がオプションになりました。これによりパフォーマンスが向上し、ほとんどのモデルで問題が発生しなくなるはずです。検証を有効にするには、モデルの
runメソッドを呼び出す際にstrict_input_validation=Trueという名前の引数を渡します。
モデル開発の動作変更:
fit_predictメソッドは、入力データのタイプに応じてpandasまたはSnowpark DataFrame のいずれかを返すようになり、基礎となるscikit-learn、xgboost、またはlightgbmクラスで利用可能なすべてのクラスで利用できるようになりました。
新機能および更新¶
FileSet/FileSystem の更新:
snowflake.ml.fileset.sfcfs.SFFileSystemのインスタンスがpickleでシリアル化できるようになりました。
バグ修正¶
モデルレジストリのバグ修正:
一部の状況で見られた
log_modelをインポートする際の問題を修正しました。入力されたSnowpark DataFrame を配列機能で検証する際の不正なエラーメッセージを修正しました。
モデル開発のバグ修正:
依存関係のインストールされたバージョンがSnowflake condaチャンネルで利用できない場合、すべての推論メソッドのパッケージバージョンを緩和します。
バージョン1.2.3(2024-02-26)¶
新機能および更新¶
モデル開発の更新:
すべてのモデリングクラスに、指定されたサンプルの対数尤度を計算する
score_samplesメソッドが追加されました。
モデルレジストリの更新:
10進数型特徴量は、エラーを生成する代わりに、 DOUBLE または FLOAT に自動的にキャストされます(警告付き)。
現在サポートされていない
pip-requirementsオプションのエラーメッセージを改善しました。モデルのバージョンを削除できるようになりました。
バグ修正¶
モデル開発の修正:
precision_recall_fscore_supportはaverage="samples"で不正な結果を返しました。
モデルレジストリの修正:
最近のSnowflakeの動作変更により、プライベートプレビューモデルレジストリ API の下に新しく作成されたレジストリで、説明、モデル、およびタグが正しく取得されませんでした。
バージョン1.2.2(2024-02-13)¶
新機能および更新¶
モデルレジストリの更新:
プライベートプレビューレジストリ API を使用してモデルをSnowpark Container Servicesに展開するときに、外部アクセス統合を指定できるようになりました。これにより、モデルは展開中、インターネットにアクセスして依存関係を取得できます。以下のエンドポイントは、すべての展開に必要です。
docker.com:80
docker.com:443
anaconda.com:80
anaconda.com:443
anaconda.org:80
anaconda.org:443
pypi.org:80
pypi.org:443
HuggingFacePipeLineModelから派生したモデルの場合は、以下のエンドポイントが必要です。huggingface.com:80
huggingface.com:443
huggingface.co:80
huggingface.co:443
バージョン1.2.1(2024-01-25)¶
新機能および更新¶
モデル開発の更新:
可能な場合は、変換の列データ型を推測します。
モデルレジストリの更新:
relax_versionオプション(log_modelのoptions引数内)をTrueに設定すると、新しいマイナーバージョンを許可するように、指定されたバージョンの依存関係を緩和します。
バージョン1.2.0(2024-01-12)¶
新機能および更新¶
モデルレジストリのパブリックプレビューリリース。 Snowflakeモデルレジストリ をご参照ください。モデルレジストリの以前のプライベートプレビューリリースは廃止されましたが、パブリックプレビューバージョンではまだ利用できない機能が含まれている間は、引き続きサポートされます。
モデル開発の更新:
AgglomerativeClustering、 DBSCAN、 OPTICS クラスの
fit_predictメソッドのサポートを追加しました。MDS、 SpectralEmbedding、 TSNE クラスの
fit_transformメソッドのサポートを追加しました。