Snowflake ML リリースノート¶
この記事には、 Snowflake ML のリリースノートが含まれています。また、該当する場合は以下が含まれます。
動作の変更
新機能
顧客向けバグ修正
注釈
これらの注記には、公表されていない機能の変更は含まれていません。そのような機能は、 Snowflake ML のソースコードにはあっても、公開ドキュメンテーションにはありません。
ドキュメントについては、 Snowflake ML:エンドツーエンドの機械学習 をご参照ください。
バージョン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
初期化子desc
FeatureView
初期化子timestamp_col
、refresh_freq
、desc
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
list_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
メソッドのサポートを追加しました。