Snowflake ML リリースノート

この記事には、 Snowflake ML のリリースノートが含まれています。また、該当する場合は以下が含まれます。

  • 動作の変更

  • 新機能

  • 顧客向けバグ修正

注釈

これらの注記には、公表されていない機能の変更は含まれていません。そのような機能は、 Snowflake ML のソースコードにはあっても、公開ドキュメントには記載されていない可能性があります。

ドキュメントについては、 Snowflake ML:エンドツーエンドの機械学習 をご参照ください。

snowflake-ml-python パッケージの検証

すべてのSnowflakeパッケージは署名されており、その基点を確認することができます。snowflake.ml.python パッケージを確認するには、以下の手順に従ってください。

  1. cosign をインストールします。この例では、Goインストールを使用します:Goによるcosignのインストール.

  2. PyPi などのリポジトリからファイルをダウンロードしてください。

  3. GitHub リリースページ から、そのリリースの .sig ファイルをダウンロードしてください。

  4. 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
Copy

注釈

この例では、パッケージのバージョン1.7.0のライブラリと署名を使用しています。検証するバージョンのファイル名を使用してください。

廃止予定に関するお知らせ

  • snowflake.ml.fileset.FileSet は廃止予定になっているため、今後のリリースでは削除される予定です。代わりに snowflake.ml.dataset.Dataset および snowflake.ml.data.DataConnector を使用してください。

  • snowflake.ml.cortex の「CamelCase」関数名は廃止予定にとなっているため、今後のリリースでは削除される予定です。代わりに「snake_case」を名前に使用してください。例えば、 ClassifyText ではなく classify_text を使用します。

  • その partitioned_inference_api デコレーターは非推奨され、今後のリリースでは削除される予定です。代わりに custom_model.partitioned_api を使用してください。

バージョン1.15.0(2025-09-29)

動作の変更

モデルレジストリの動作変更:

  • Huggingfaceモデルの非推奨の conversational タスクタイプのサポートをドロップします。このタスクタイプはしばらくの間 HuggingFace によって非推奨とされており、近い将来 API から削除される予定です。

バージョン1.14.0(2025-09-18)

新機能

新しい ML ジョブの特徴:

  • MLJob.submit_* メソッドの additional_payloads 引数はその目的をよりよく反映するように imports に名前変更されました。additional_payloads は非推奨となり、今後のリリースで削除される予定です。

バージョン1.13.0(2025-09-11)

新機能

新しいモデルレジストリ機能:

  • huggingface_pipeline.HuggingFacePipelineModel を使用してメモリでモデルをロードすることなく、HuggingFace メモリをログできるようになりました。huggingface_hub パッケージが必要です。HuggingFace リポジトリからのダウンロードを無効にするには、huggingface_pipeline.HuggingFacePipelineModel をインスタンス化するときに download_snapshot=False をプルします。

  • XGBoost の enable_categorical=True モデルを使用して pandas DataFrames を使用できるようになりました。

  • サービスをリストする場合、ModelVersion リストに PrivateLink 推論エンドポイントが表示されます。

バージョン1.12.0(2025-09-04)

バグ修正

モデルレジストリのバグ修正:

  • 構造化出力の逆シリアル化中にディクショナリ型の出力列の文字列表現が誤って作成され、元のデータ型が失われる問題を修正しました。

  • 幅広い(500以上の機能)JSON 入力の推論サーバーパフォーマンスの問題を修正しました。

新機能

新しいモデルレジストリ機能:

  • 次の例に示すように、OpenAI チャット補完互換署名と互換性のある署名で、テキスト生成モデルをログできるようになりました。

    from snowflake.ml.model import openai_signatures
    import pandas as pd
    
    mv = snowflake_registry.log_model(
        model=generator,
        model_name=...,
        ...,
        signatures=openai_signatures.OPENAI_CHAT_SIGNATURE,
    )
    
    # create a pd.DataFrame with openai.client.chat.completions arguments like below:
    x_df = pd.DataFrame.from_records(
        [
            {
                "messages": [
                    {"role": "system", "content": "Complete the sentence."},
                    {
                        "role": "user",
                        "content": "A descendant of the Lost City of Atlantis, who swam to Earth while saying, ",
                    },
                ],
                "max_completion_tokens": 250,
                "temperature": 0.9,
                "stop": None,
                "n": 3,
                "stream": False,
                "top_p": 1.0,
                "frequency_penalty": 0.1,
                "presence_penalty": 0.2,
            }
        ],
    )
    
    Copy

新モデルのモニタリング機能:

  • モデルモニターはセグメント列をサポートし、フィルタリングされた分析を有効にできるようになりました。モデルモニターのソースオプションの segment_columns フィールドで指定されます。セグメント列はソーステーブルに存在し、文字列型である必要があります。add_segment_column および drop_segment_column モデルが既存のモデルモニターのセグメント列を追加または削除するために提供されます。

バージョン1.11.0(2025-08-12)

新機能

新しいモデルレジストリ機能:

  • ModelVersion.create_serviceimage_repo 引数がオプションになりました。指定しない場合は、デフォルトのイメージリポジトリが使用されます。

バグ修正

ML ジョブのバグ修正:

  • ストアドプロシージャ内の TypeError: SnowflakeCursor.execute() got an unexpected keyword argument '_force_qmark_paramstyle' を修正しました。

  • タイムアウト期間内にすべてのインスタンスが開始されるわけではない場合の Error: Unable to retrieve head IP address を修正しました。

バージョン1.10.0(2025-08-01)

新機能

新しいモデルレジストリ機能:

  • ModelVersion.create_service および ModelVersion.log_model の進行状況バーを追加しました。

  • 元のログ ModelVersion.create_service は ファイルに書き込まれました。ログファイルの場所はコンソールに表示されます。

バージョン1.9.2(2025-07-28)

バグ修正

DataConnector バグ修正

  • self._session を示すエラーが引き起こされる問題を修正しました。

モデルレジストリのバグ修正:

  • モデルシグネチャとPandasデータハンドラー内の配列(pd.dtype('O'))に何も渡さないと起こるバグを修正しました。

バージョン1.9.1(2025-07-18)

バグ修正

モデルレジストリのバグ修正:

  • HuggingFace テキスト生成モデルに複数の EOS トークンがあるとき、PAD トークンを設定で起こるバグを直しました。ハンドラーは PAD トークンとして最初の EOS トークンを選択するようになりました。

新機能

新しい DataConnector 機能:

  • DataConnector オブジェクトをピクル化できるようになりました。

新しいデータセット機能:

  • データセットオブジェクトをピクル化できるようになりました。

新しいモデルレジストリ機能:

  • Snowpark Container Servicesでホストされるモデルは、幅広い入力(500件以上の機能)をサポートするようになりました。

バージョン1.9.0(2025-06-25)

動作の変更

ML ジョブズの動作が変わります。

  • list_jobs メソッドから``scope`` パラメーターを削除しました。

  • list_jobs メソッドに database および schema パラメーターをオプションで追加しました。

  • list_jobs メソッドは、Snowpark DataFrame ではなく Pandas DataFrame を返すようになりました 。

  • list_jobs メソッドは、次の列を返すようになりました。name status message database_name schema_name owner compute_pool target_instances created_time および completed_time

モデルレジストリの動作変更:

  • log_model コールで pip_requirements が指定された場合にfalseにする relax_version を設定しました。

  • 偽警告に対処するために、指定された target_platforms でのみ UserWarning が発生します。

バグ修正

モデルレジストリのバグ修正:

  • QUOTED_IDENTIFIERS_IGNORE_CASE パラメーターが有効な場合に Snowpark DataFrame から Pandas DataFrame への変換時に発生する失敗を修正しました。

  • モデルパッケージ中の UserWarning ログエントリの重複を修正しました。

新機能

新しいモデルレジストリ機能:

  • ターゲットプラットフォームを表す新しい APIs (snowflake.ml.model.target_platform.TargetPlatform)、ターゲットプラットフォーム定数、およびタスク(snowflake.ml.model.task.Task)。

  • log_model メソッドの target_platform 引数 は、TargetPlatformMode 定数を受け入れるようになりました。この定数には WAREHOUSE_ONLY SNOWPARK_CONTAINER_SERVICES_ONLY または BOTH_WAREHOUSE_AND_SNOWPARK_CONTAINER_SERVICES があります。

新しい ML ジョブの特徴:

  • 使用頻度の低いジョブ送信引数は **kwargs に移動しました。

  • プラットフォーム・メトリックはデフォルトで有効になっています。

このリリースでは、シングルノード ML ジョブ APIs は安定しており、一般公開されます。

バージョン1.8.6(2025-06-18)

新機能

新しいモデルレジストリ機能:

  • ログにサービスコンテナ情報を追加しました。

バージョン1.8.5(2025-05-27)

動作の変更

ML ジョブズの動作が変わります。

  • 引数 num_instances はジョブ提出APIsでは target_instances に名前が変更され、必須になります。

バグ修正

モデルレジストリのバグ修正:

  • コンテナーサービスのリスト表示と削除に関するバグを修正しました。

  • scikit-learnパイプラインのロギングで、 explain 関数が作成されないバグを修正しました。

  • コンテナーのみのモデルのログを記録する際に、必要なバージョンの snowflake-ml-python がSnowflake condaチャンネルで利用できる状態にあるかを確認しなくなります。

説明可能性のバグ修正:

  • 互換性向上のため、最小の streamlit バージョンが1.30に変更されています。

モデリングのバグ修正:

  • xgboost が再び必須の依存関係になります(v1.8.4ではオプションでした)。

新機能

ML ジョブの新機能:

  • ジョブデコレータに min_instances 引数が追加され、ジョブを開始する前に指定された数のワーカーが準備完了になるまで待機するようになります。

バージョン1.8.4(2025-05-12)

動作の変更

ML ジョブズの動作が変わります。

  • id プロパティはジョブの完全修飾名になります。MLジョブ名を表す新しいプロパティ name が導入されました。

  • list_jobs メソッドは、ジョブIDの代わりにMLジョブ名を返すようになります。

モデルレジストリの動作変更:

  • log_model で、モデルがSnowpark Container Servicesのみにデプロイされている場合に説明可能性を有効にすると、警告ではなくエラーになり、ログ操作が完了しなくなるようになります。

バグ修正

モデルレジストリのバグ修正:

  • UnboundLocalError: local variable 'multiple_inputs' referenced before assignment. の原因となる PyTorch と TensorFlow モデルのロギングで発生するバグを修正しました。

新機能

新しいモデルレジストリ機能:

  • ウェアハウスにデプロイ可能なモデルの説明可能性を自動的に有効にします。

新しい説明可能性機能:

  • ノートブックの snowflake.ml.monitoring プロット説明における新しい視覚化関数です。

  • scikit-learnパイプラインでカテゴリ変換に対応します。

新しいModeling機能:

  • XGBoost モデルにおいて、 xgboost.DMatrix 入力用のカテゴリタイプに対応します。

バージョン1.8.3(2025-04-28)

新機能

新しいモデルレジストリ機能:

  • Container Runtime for MLにデプロイするためのGPU対応モデルをログに記録する場合、CUDAコンテナーイメージが可能であればデフォルトに設定されます。

  • Modelバージョンには、シングルノードのSnowpark Container Servicesジョブとして推論メソッドを実行する run_job メソッドがあります。このメソッドは、Container Runtime for MLにデプロイされていないモデルも含め、すべてのモデルで使用できます。

  • 分割されたモデルをログに記録する場合、ターゲットプラットフォームはデフォルトでSnowflakeウェアハウスになります。

バージョン1.8.2(2025-04-15)

新機能

ローカルワークステーションから Container Runtime for ML 上でコードを実行できるようにする :doc:`ML ジョブ </developer-guide/snowflake-ml/ml-jobs/overview>`API をプレビューで利用できます。したがって、この API のドキュメントは Snowflake MLAPI 参照 で利用できます。また API への変更は、これらのリリースノートに表示されます。ML ジョブ API の新機能は公開されるまでここに表示されないかもしれませんが、 API 参照では表示されます。

新しいモデルレジストリ機能:

  • モデルのSnowflakeステージに保存されたモデルのバージョンファイルを書き込むパスは、 log_model メソッドの save_location オプションを使用して指定できます。

  • Container Runtime for MLでモデルをログする場合、モデルの依存関係がデフォルトで pip_requirements に含まれるようになります。

バージョン1.8.1(2025-03-20)

バグ修正

モデルレジストリのバグ修正:

  • score_samples 推論メソッドを使ってscikit-learnモデルをログに記録する際の unsupported model type エラーを修正しました。

  • 既存の中断されたサービスに対する推論サービス作成の失敗を修正しました。

新機能

新しいモデルレジストリ機能:

  • log_model のモデルバージョンのコピーをサポート対象外の引数で作成すると、例外が発生するようになります。

バージョン1.8.0(2025-03-20)

動作の変更

モデルレジストリの動作変更:

  • transformers.Pipeline の自動で挿入される署名が FeatureGroupSpec のタスククラスを使用するように変更されました。

    • フィルマスクタスクの署名:

        ModelSignature(
            inputs=[
                FeatureSpec(name="inputs", dtype=DataType.STRING),
            ],
            outputs=[
                FeatureSpec(name="outputs", dtype=DataType.STRING),
            ],
      )
      
      Copy
    • トークン分類タスクの署名:

      ModelSignature(
          inputs=[
              FeatureSpec(name="inputs", dtype=DataType.STRING),
          ],
          outputs=[
              FeatureSpec(name="outputs", dtype=DataType.STRING),
          ],
      )
      
      Copy
    • 質問応答タスクの署名:

      ModelSignature(
          inputs=[
              FeatureSpec(name="question", dtype=DataType.STRING),
              FeatureSpec(name="context", dtype=DataType.STRING),
          ],
          outputs=[
              FeatureSpec(name="outputs", dtype=DataType.STRING),
          ],
      )
      
      Copy
    • top_k が1より大きい場合の質問応答タスクの署名:

      ModelSignature(
          inputs=[
              FeatureSpec(name="question", dtype=DataType.STRING),
              FeatureSpec(name="context", dtype=DataType.STRING),
          ],
          outputs=[
              FeatureSpec(name="outputs", dtype=DataType.STRING),
          ],
      )
      
      Copy
    • top_kNone の場合のテキスト分類タスクの署名:

      ModelSignature(
          inputs=[
              FeatureSpec(name="text", dtype=DataType.STRING),
              FeatureSpec(name="text_pair", dtype=DataType.STRING),
          ],
          outputs=[
              FeatureSpec(name="label", dtype=DataType.STRING),
              FeatureSpec(name="score", dtype=DataType.DOUBLE),
          ],
      )
      
      Copy
    • top_kNone ではない場合のテキスト分類タスクの署名:

      ModelSignature(
          inputs=[
              FeatureSpec(name="text", dtype=DataType.STRING),
              FeatureSpec(name="text_pair", dtype=DataType.STRING),
          ],
          outputs=[
              FeatureSpec(name="outputs", dtype=DataType.STRING),
          ],
      )
      
      Copy
    • テキスト生成タスクの署名:

      ModelSignature(
          inputs=[FeatureSpec(name="inputs", dtype=DataType.STRING)],
          outputs=[
              FeatureSpec(name="outputs", dtype=DataType.STRING),
          ],
      )
      
      Copy
  • PyTorch および TensorFlow モデルがモデルレジストリにログ記録されるとき、デフォルトで単一のテンソル入力と出力を期待するようになります。複数のテンソル(以前の動作)を使用するには、 options={"multiple_inputs": True} をセットします。

    単一のテンソル入力の例:

    import torch
    
    class TorchModel(torch.nn.Module):
        def __init__(self, n_input: int, n_hidden: int, n_out: int, dtype: torch.dtype = torch.float32) -> None:
            super().__init__()
            self.model = torch.nn.Sequential(
                torch.nn.Linear(n_input, n_hidden, dtype=dtype),
                torch.nn.ReLU(),
                torch.nn.Linear(n_hidden, n_out, dtype=dtype),
                torch.nn.Sigmoid(),
            )
    
        def forward(self, tensor: torch.Tensor) -> torch.Tensor:
            return cast(torch.Tensor, self.model(tensor))
    
    # Sample usage:
    data_x = torch.rand(size=(batch_size, n_input))
    
    # Log model with single tensor
    reg.log_model(
        model=model,
        ...,
        sample_input_data=data_x
    )
    
    # Run inference with single tensor
    mv.run(data_x)
    
    Copy

    複数のテンソルの入力または出力には、次のようにします。

    reg.log_model(
        model=model,
        ...,
        sample_input_data=[data_x_1, data_x_2],
        options={"multiple_inputs": True}
    )
    
    Copy
  • モデルをSnowpark Contaier Servicesにデプロイ可能な場合、 enable_explainability はデフォルトで False に設定されます。

バグ修正

モデリングのバグ修正:

  • ストアドプロシージャにサポートされていないバージョンのnumpyが自動的にインストールされ、実行時にnumpyエラーが発生する一部のメトリクスのバグを修正しました。

モデルレジストリのバグ修正:

  • CustomModel のプロパティとしてサポートされているモデルを割り当てる際に、誤った Model does not have _is_inference_api エラーメッセージにつながるバグを修正しました。

  • 入力特徴数が 500 を超えるモデルを SPCS にデプロイした場合に推論が機能しないバグを修正しました。

新機能

新しいモデルレジストリ機能:

  • 入力または出力データとして、単一の torch.Tensortensorflow.Tensortensorflow.Variable の使用に対応するようになります。

  • XGBoost モデルの xgboost.DMatrix datatype に対応するようになります。

バージョン1.7.5(2025-03-06)

snowflake-ml-python 1.7.5ではPython 3.12に対するサポートが追加されています。

バグ修正

モデルレジストリのバグ修正:

  • snowflake-ml-python 1.7.0以降を使用してkeras 2.xで tensorflow.keras モデルを保存すると、Snowflakeでモデルを実行できない互換性の問題を修正しました。この問題は、 relax_versionTrue (またはデフォルト)にセットされ、 snowflake-ml-python の新しいバージョンが利用できる場合に発生していました。影響を受けたモデルをログに記録してしまった場合は、 ModelVerison.load を使ってロードし、最新バージョンの snowflake-ml-python を使って再度ログを記録することで回復できます。

  • NULL 値以外の値のデータが ModelVersion.run に渡されないようにする検証を削除しました。

新機能

新しいモデルレジストリ機能:

  • オートマッピング機能によるHugging Faceモデル構成に対応するようになります。

  • tensorflowおよびpytorchバックエンドによるkeras 3.xモデルに対応するようになります。

新しいモデル説明可能性の機能:

  • ネイティブおよび snowflake-ml-python sklearnパイプラインに対応するようになります。

バージョン1.7.4(2025-01-28)

重要

snowflake.ml.fileset.FileSet は廃止予定になっているため、今後のリリースでは削除される予定です。代わりに snowflake.ml.dataset.Dataset および snowflake.ml.data.DataConnector を使用してください。

バグ修正

レジストリのバグ修正:

  • Hugging Faceパイプラインが不正なデータタイプを使用して読み込まれていた問題を修正しました。

  • モデル署名を推論する際に、実際には1行しか使用されない問題を修正しました。

新機能

Cortexの新機能:

  • Complete 関数の新しい guardrails オプションです。

バージョン1.7.3(2025-01-09)

依存関係のアップグレード

  • fsspec および s3fs は2024.6.1以降で2026未満である必要があります。

  • mlflow は2.16.0以降で3未満である必要があります。

新機能

Cortexの新機能:

  • Cortex関数は「snake_case」になりました。 例えば、 ClassifyTextclassify_text になります。古い「CamelCase」という名前はまだ使用できますが、今後のリリースでは削除される予定です。

新しいモデルレジストリ機能:

  • レジストリは現在、50万以上の機能をサポートしています。

  • Registry.log_model に、画像やその他のファイルをモデルに含めるための引数 user_files を追加しました。

  • 自動マッピング機能によるHugging Faceモデル構成の取り扱いのサポートを追加しました。

新しいデータ機能:

  • DataConnector.from_sql コンストラクターを追加しました。

バグ修正

レジストリのバグ修正:

  • ModelVersion.run への入力として、非範囲インデックスpandas DataFrame を提供した場合に発生したバグを修正しました。

  • 競合を回避するよう、モデルレジストリ名のランダム生成を改善しました。

  • シグネチャの推論、またはタイプが ARRAY で NULL 値を含む列を持つSnowpark DataFrame を使用して推論を実行する際の問題を修正しました。

  • ModelVersion.run は完全修飾サービス名を受け付けるようになりました。

  • 前処理のみのパイプラインモデルを含む、データ前処理のみのscikit-learnモデルの log_model のエラーを修正しました。

モニターのバグ修正:

  • 完全修飾名を使用してモニターを作成する際の問題を修正しました。