Snowflake ML 릴리스 정보

이 문서에는 Snowflake ML 에 대한 릴리스 정보가 있는데, 해당되는 경우 다음을 포함합니다.

  • 동작 변경 사항

  • 새로운 기능

  • 고객이 직면한 버그 수정

참고

이 참고 사항에는 공개적으로 발표되지 않은 기능의 변경 사항은 포함되지 않습니다 이러한 기능은 Snowflake ML 소스 코드에는 표시되지만 공개 설명서에는 표시되지 않을 수 있습니다.

설명서는 Snowflake ML: 엔드투엔드 머신 러닝 섹션을 참조하십시오.

snowflake-ml-python 패키지 확인하기

모든 Snowflake 패키지는 서명되어 있어 출처를 확인할 수 있습니다. snowflake.ml.python 패키지를 확인하려면 아래 단계를 따르십시오.

  1. cosign 를 설치합니다. 이 예에서는 Go 설치: Go로 공동 서명 설치하기 를 사용합니다.

  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.Datasetsnowflake.ml.data.DataConnector 을 사용하십시오.

  • snowflake.ml.cortex 의 “CamelCase” 함수 이름은 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 대신 이러한 함수에는 “snake_case” 이름을 사용합니다. 예를 들어, ClassifyText 대신 classify_text 를 사용합니다.

  • partitioned_inefrerence_api 데코레이터는 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. custom_model.partitioned_api 를 대신 사용하십시오.

버전 1.8.5(2025-05-27)

동작 변경 사항

ML 작업 동작 변경 사항:

  • 작업 제출 APIs 에서 인자 num_instancestarget_instances 으로 이름이 변경되었으며 이제 필수입니다.

버그 수정 사항

모델 레지스트리 버그 수정 사항:

  • 컨테이너 서비스 목록 및 삭제 관련 버그를 수정했습니다.

  • explain 함수가 생성되지 않은 경우 scikit-learn 파이프라인을 기록하는 버그를 수정했습니다.

  • 컨테이너 전용 모델을 로그하면 더 이상 필수인 snowflake-ml-python 버전이 Snowflake conda 채널에서 사용 가능한지 확인하지 않습니다.

설명 가능성 버그 수정:

  • 호환성 향상을 위해 최소 streamlit 버전이 1.30으로 낮아졌습니다.

모델링 버그 수정 사항:

  • xgboost 는 이제 다시 필수 종속성입니다(v1.8.4에서는 선택 사항이었음).

새로운 기능

ML Jobs 새로운 기능:

  • 이제 작업 데코레이터에 지정된 수의 작업자가 준비될 때까지 기다렸다가 작업을 시작하도록 하는 min_instances 인자가 추가되었습니다.

버전 1.8.4(2025-05-12)

동작 변경 사항

ML 작업 동작 변경 사항:

  • id 속성은 이제 작업의 정규화된 이름입니다. ML 작업 이름을 나타내는 새로운 속성 name 이 도입되었습니다.

  • list_jobs 메서드는 이제 ID 작업 대신 ML 작업 이름을 반환합니다.

모델 레지스트리 동작 변경 사항:

  • log_model 에서 모델이 Snowpark Container Services에만 배포될 때 설명 기능을 활성화하면 이제 경고 대신 오류가 발생하여 로그 작업이 완료되지 않습니다.

버그 수정 사항

모델 레지스트리 버그 수정 사항:

  • PyTorch 및 TensorFlow 모델을 기록할 때 UnboundLocalError: local variable 'multiple_inputs' referenced before assignment. 를 유발하는 버그를 수정했습니다

새로운 기능

새로운 Model Registry 기능:

  • 웨어하우스에 배포할 수 있는 모델에 대해 자동으로 설명 기능을 활성화합니다.

새로운 설명 기능:

  • 노트북의 snowflake.ml.monitoring 플롯 설명에 새로운 시각화 함수가 추가되었습니다.

  • 스키킷 학습 파이프라인에서 범주형 변환을 지원합니다.

새로운 Modeling 기능:

  • XGBoost 모델에서 xgboost.DMatrix 입력에 대한 범주형 유형을 지원합니다.

버전 1.8.3(2025-04-28)

새로운 기능

새로운 Model Registry 기능:

  • GPU 지원 모델을 ML 용 Container Runtime에 배포하기 위해 로그할 때 사용 가능한 경우 기본값을 CUDA 컨테이너 이미지로 설정합니다.

  • 모델 버전에는 추론 메서드를 단일 노드 Snowpark Container Services 작업으로 실행하는 run_job 메서드가 있습니다. 이 방법은 ML 용 Container Runtime에 배포되지 않은 모델을 포함한 모든 모델에 사용할 수 있습니다.

  • 파티션된 모델을 기록할 때 대상 플랫폼은 기본적으로 Snowflake 웨어하우스로 설정됩니다.

버전 1.8.2(2025-04-15)

새로운 기능

로컬 워크스테이션에서ML 용 Container Runtime에서 코드를 실행할 수 있는 ML Jobs API 를 미리 볼 수 있습니다. 따라서 이 API 에 대한 설명서는 Snowflake ML API 참조에서 사용 가능하며, API 에 대한 변경 사항은 이 릴리스 노트에 나와 있습니다. ML Jobs API 의 새로운 기능은 공개적으로 발표될 때까지 여기에 표시되지 않을 수 있지만, API 참조에는 표시됩니다.

새로운 Model Registry 기능:

  • log_model 메서드에서 save_location 옵션을 사용하여 모델의 Snowflake 스테이지에 저장된 모델 버전 파일을 작성할 경로를 지정할 수 있습니다.

  • ML 용 Container Runtime에서 모델을 로그할 때 이제 모델 종속성이 pip_requirements 에 기본적으로 포함됩니다.

버전 1.8.1(2025-03-20)

버그 수정 사항

모델 레지스트리 버그 수정 사항:

  • score_samples 추론 메서드를 사용하여 scikit-learn 모델을 기록할 때 unsupported model type 오류를 수정했습니다.

  • 기존 일시 중단된 서비스에서 추론 서비스 생성 실패를 수정했습니다.

새로운 기능

새로운 Model Registry 기능:

  • 이제 지원되지 않는 인자를 사용하여 log_model 로 모델 버전의 복사본을 생성하면 예외가 발생합니다.

버전 1.8.0(2025-03-20)

동작 변경 사항

모델 레지스트리 동작 변경 사항:

  • transformers.Pipeline 에서 자동 추론된 서명이 FeatureGroupSpec 작업 클래스를 사용하도록 변경되었습니다.

    • fill-mask 작업을 위한 서명:

        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 Container Services에 배포될 수 있는 경우 enable_explainabilityFalse 로 기본 설정됩니다.

버그 수정 사항

모델링 버그 수정 사항:

  • 일부 메트릭에서 지원되지 않는 버전의 numpy가 저장 프로시저에 자동으로 설치되어 실행 시 numpy 오류가 발생할 수 있는 버그를 수정했습니다.

모델 레지스트리 버그 수정 사항:

  • 지원되는 모델을 CustomModel 의 속성으로 할당할 때 잘못된 Model does not have _is_inference_api 오류 메시지가 표시되는 버그를 수정했습니다.

  • 입력 기능이 500개가 넘는 모델을 SPCS 에 배포할 때 추론이 작동하지 않는 버그를 수정했습니다.

새로운 기능

새로운 Model Registry 기능:

  • 단일 torch.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 이상을 사용하여 tensorflow.keras 모델을 keras 2.x로 저장할 때, 해당 모델을 Snowflake에서 실행할 수 없는 호환성 문제를 수정했습니다. 이 문제는 relax_versionTrue (또는 기본값)으로 설정되어 있고 snowflake-ml-python 의 새 버전을 사용할 수 있을 때 발생했습니다. 영향을 받은 모델을 로딩한 경우 ModelVerison.load 를 사용하여 해당 모델을 로딩하고 최신 버전 snowflake-ml-python 으로 다시 로그하여 복구할 수 있습니다.

  • Null이 아닌 값이 없는 데이터는 ModelVersion.run 으로 전달되지 않도록 하는 유효성 검사를 제거했습니다.

새로운 기능

새로운 Model Registry 기능:

  • 자동 매핑 기능을 통해 Hugging Face 모델 구성을 지원합니다.

  • tensorflow 및 pytorch 백엔드가 포함된 keras 3.x 모델을 지원합니다.

새로운 모델 설명 기능:

  • 네이티브 및 snowflake-ml-python sklearn 파이프라인을 지원합니다.

버전 1.7.4(2025-01-28)

중요

snowflake.ml.fileset.FileSet 는 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 대신 snowflake.ml.dataset.Datasetsnowflake.ml.data.DataConnector 을 사용하십시오.

버그 수정 사항

레지스트리 버그 수정:

  • Hugging Face 파이프라인이 잘못된 데이터 타입을 사용하여 로딩되던 문제를 수정했습니다.

  • 모델 서명을 추론할 때 실제로는 한 행만 사용되던 문제를 수정했습니다.

새로운 기능

새로운 Cortex 특성:

  • Complete 함수에 guardrails 옵션이 새로 추가되었습니다.

버전 1.7.3(2025-01-09)

종속성 업그레이드

  • fsspecs3fs 는 2024.6.1 이상 2026 미만이어야 합니다.

  • mlflow 2.16.0 이상이고 3 미만이어야 합니다.

새로운 기능

새로운 Cortex 특성:

  • 이제 Cortex 함수는 “snake_case” 이름을 갖습니다. 예를 들어 ClassifyText 는 이제 classify_text 입니다. 이전의 “CamelCase” 이름도 계속 작동하지만, 향후 릴리스에서 제거될 예정입니다.

새로운 Model Registry 기능:

  • 이제 레지스트리는 50만 개 이상의 특성을 지원합니다.

  • 모델에 이미지나 기타 파일을 포함하기 위해 Registry.log_modeluser_files 인자를 추가했습니다.

  • 자동 매핑 기능으로 Hugging Face 모델 구성 처리를 위한 지원을 추가했습니다.

새로운 데이터 기능:

  • DataConnector.from_sql 생성자를 추가했습니다.

버그 수정 사항

레지스트리 버그 수정:

  • 범위가 아닌 인덱스 pandas DataFrame 을 ModelVersion.run 에 입력으로 제공할 때 발생하는 버그를 수정했습니다.

  • 충돌을 방지하기 위해 무작위 Model Registry 이름 생성을 개선했습니다.

  • 유형이 ARRAY 이고 NULL 값을 포함하는 열이 있는 Snowpark DataFrame 으로 서명을 추론하거나 추론을 실행할 때 발생하는 문제를 수정했습니다.

  • ModelVersion.run 은 이제 정규화된 서비스 이름을 사용할 수 있습니다.

  • 전처리 전용 파이프라인 모델을 포함하여 데이터 전처리만 있는 모든 Scikit-learn 모델에 대한 log_model 의 오류를 수정했습니다.

버그 수정 모니터링:

  • 정규화된 이름을 사용하여 모니터를 만들 때 발생하는 문제를 수정했습니다.