snowflake-ml-python 1.9.2__py3-none-any.whl → 1.11.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. snowflake/ml/_internal/utils/service_logger.py +31 -17
  2. snowflake/ml/experiment/callback/keras.py +63 -0
  3. snowflake/ml/experiment/callback/lightgbm.py +59 -0
  4. snowflake/ml/experiment/callback/xgboost.py +67 -0
  5. snowflake/ml/experiment/utils.py +14 -0
  6. snowflake/ml/jobs/_utils/__init__.py +0 -0
  7. snowflake/ml/jobs/_utils/constants.py +4 -1
  8. snowflake/ml/jobs/_utils/payload_utils.py +55 -21
  9. snowflake/ml/jobs/_utils/query_helper.py +5 -1
  10. snowflake/ml/jobs/_utils/runtime_env_utils.py +63 -0
  11. snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +2 -2
  12. snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +5 -5
  13. snowflake/ml/jobs/_utils/spec_utils.py +41 -8
  14. snowflake/ml/jobs/_utils/stage_utils.py +22 -9
  15. snowflake/ml/jobs/_utils/types.py +5 -7
  16. snowflake/ml/jobs/job.py +1 -1
  17. snowflake/ml/jobs/manager.py +1 -13
  18. snowflake/ml/model/_client/model/model_version_impl.py +219 -55
  19. snowflake/ml/model/_client/ops/service_ops.py +230 -30
  20. snowflake/ml/model/_client/service/model_deployment_spec.py +103 -27
  21. snowflake/ml/model/_client/service/model_deployment_spec_schema.py +11 -5
  22. snowflake/ml/model/_model_composer/model_composer.py +1 -70
  23. snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +2 -43
  24. snowflake/ml/model/event_handler.py +87 -18
  25. snowflake/ml/model/inference_engine.py +5 -0
  26. snowflake/ml/model/models/huggingface_pipeline.py +74 -51
  27. snowflake/ml/model/type_hints.py +26 -1
  28. snowflake/ml/registry/_manager/model_manager.py +37 -70
  29. snowflake/ml/registry/_manager/model_parameter_reconciler.py +294 -0
  30. snowflake/ml/registry/registry.py +0 -19
  31. snowflake/ml/version.py +1 -1
  32. {snowflake_ml_python-1.9.2.dist-info → snowflake_ml_python-1.11.0.dist-info}/METADATA +523 -491
  33. {snowflake_ml_python-1.9.2.dist-info → snowflake_ml_python-1.11.0.dist-info}/RECORD +36 -29
  34. snowflake/ml/experiment/callback.py +0 -121
  35. {snowflake_ml_python-1.9.2.dist-info → snowflake_ml_python-1.11.0.dist-info}/WHEEL +0 -0
  36. {snowflake_ml_python-1.9.2.dist-info → snowflake_ml_python-1.11.0.dist-info}/licenses/LICENSE.txt +0 -0
  37. {snowflake_ml_python-1.9.2.dist-info → snowflake_ml_python-1.11.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.9.2
3
+ Version: 1.11.0
4
4
  Summary: The machine learning client library that is used for interacting with Snowflake to build machine learning solutions.
5
5
  Author-email: "Snowflake, Inc" <support@snowflake.com>
6
6
  License:
@@ -410,16 +410,48 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
410
410
 
411
411
  # Release History
412
412
 
413
+ ## 1.11.0
414
+
415
+ ### Bug Fixes
416
+
417
+ * ML Job: Fix `Error: Unable to retrieve head IP address` if not all instances start within the timeout.
418
+ * ML Job: Fix `TypeError: SnowflakeCursor.execute() got an unexpected keyword argument '_force_qmark_paramstyle'`
419
+ when running inside Stored Procedures.
420
+
421
+ ### Behavior Changes
422
+
423
+ ### New Features
424
+
425
+ * `ModelVersion.create_service()`: Made `image_repo` argument optional. By
426
+ default it will use a default image repo, which is
427
+ being rolled out in server version 9.22+.
428
+ * Experiment Tracking (PrPr): Automatically log the model, metrics, and parameters while training Keras models with
429
+ `snowflake.ml.experiment.callback.keras.SnowflakeKerasCallback`.
430
+
431
+ ## 1.10.0
432
+
433
+ ### Behavior Changes
434
+
435
+ * Experiment Tracking (PrPr): The import paths for the auto-logging callbacks have changed to
436
+ `snowflake.ml.experiment.callback.xgboost.SnowflakeXgboostCallback` and
437
+ `snowflake.ml.experiment.callback.lightgbm.SnowflakeLightgbmCallback`.
438
+
439
+ ### New Features
440
+
441
+ * Registry: add progress bars for `ModelVersion.create_service` and `ModelVersion.log_model`.
442
+ * ModelRegistry: Logs emitted during `ModelVersion.create_service` will be written to a file. The file location
443
+ will be shown in the console.
444
+
413
445
  ## 1.9.2
414
446
 
415
447
  ### Bug Fixes
416
448
 
417
- - DataConnector: Fix `self._session` related errors inside Container Runtime.
418
- - Registry: Fix a bug when trying to pass `None` to array (`pd.dtype('O')`) in signature and pandas data handler.
449
+ * DataConnector: Fix `self._session` related errors inside Container Runtime.
450
+ * Registry: Fix a bug when trying to pass `None` to array (`pd.dtype('O')`) in signature and pandas data handler.
419
451
 
420
452
  ### New Features
421
453
 
422
- - Experiment Tracking (PrPr): Automatically log the model, metrics, and parameters while training
454
+ * Experiment Tracking (PrPr): Automatically log the model, metrics, and parameters while training
423
455
  XGBoost and LightGBM models.
424
456
 
425
457
  ```python
@@ -451,14 +483,14 @@ with exp.start_run():
451
483
 
452
484
  ### Bug Fixes
453
485
 
454
- - Registry: Fix a bug when trying to set the PAD token the HuggingFace `text-generation` model had multiple EOS tokens.
486
+ * Registry: Fix a bug when trying to set the PAD token the HuggingFace `text-generation` model had multiple EOS tokens.
455
487
  The handler picks the first EOS token as PAD token now.
456
488
 
457
489
  ### New Features
458
490
 
459
- - DataConnector: DataConnector objects can now be pickled
460
- - Dataset: Dataset objects can now be pickled
461
- - Registry (PrPr): Introducing `create_service` function in `snowflake/ml/model/models/huggingface_pipeline.py`
491
+ * DataConnector: DataConnector objects can now be pickled
492
+ * Dataset: Dataset objects can now be pickled
493
+ * Registry (PrPr): Introducing `create_service` function in `snowflake/ml/model/models/huggingface_pipeline.py`
462
494
  which creates a service to log a HF model and upon successful logging, an inference service is created.
463
495
 
464
496
  ```python
@@ -479,7 +511,7 @@ hf_model_ref.create_service(
479
511
  )
480
512
  ```
481
513
 
482
- - Experiment Tracking (PrPr): New module for managing and tracking ML experiments in Snowflake.
514
+ * Experiment Tracking (PrPr): New module for managing and tracking ML experiments in Snowflake.
483
515
 
484
516
  ```python
485
517
  from snowflake.ml.experiment import ExperimentTracking
@@ -494,16 +526,16 @@ with exp.start_run():
494
526
  exp.log_model(my_model, model_name="MY_MODEL")
495
527
  ```
496
528
 
497
- - Registry: Added support for wide input (500+ features) for inference done using SPCS
529
+ * Registry: Added support for wide input (500+ features) for inference done using SPCS
498
530
 
499
531
  ## 1.9.0
500
532
 
501
533
  ### Bug Fixes
502
534
 
503
- - Registry: Fixed bug causing snowpark to pandas dataframe conversion to fail when `QUOTED_IDENTIFIERS_IGNORE_CASE`
535
+ * Registry: Fixed bug causing snowpark to pandas dataframe conversion to fail when `QUOTED_IDENTIFIERS_IGNORE_CASE`
504
536
  parameter is enabled
505
- - Registry: Fixed duplicate UserWarning logs during model packaging
506
- - Registry: If the huggingface pipeline text-generation model doesn't contain a default chat template, a ChatML template
537
+ * Registry: Fixed duplicate UserWarning logs during model packaging
538
+ * Registry: If the huggingface pipeline text-generation model doesn't contain a default chat template, a ChatML template
507
539
  is assigned to the tokenizer.
508
540
 
509
541
  ```shell
@@ -515,40 +547,40 @@ with exp.start_run():
515
547
  {% endif %}"
516
548
  ```
517
549
 
518
- - Registry: Fixed SQL queries during registry initialization that were forcing warehouse requirement
550
+ * Registry: Fixed SQL queries during registry initialization that were forcing warehouse requirement
519
551
 
520
552
  ### Behavior Changes
521
553
 
522
- - ML Job: The `list_jobs()` API has been modified. The `scope` parameter has been removed,
554
+ * ML Job: The `list_jobs()` API has been modified. The `scope` parameter has been removed,
523
555
  optional `database` and `schema` parameters have been added, the return type has changed
524
556
  from `snowpark.DataFrame` to `pandas.DataFrame`, and the returned columns have been updated
525
557
  to `name`, `status`, `message`, `database_name`, `schema_name`, `owner`, `compute_pool`,
526
558
  `target_instances`, `created_time`, and `completed_time`.
527
- - Registry: Set `relax_version` to false when pip_requirements are specified while logging model
528
- - Registry: UserWarning will now be raised based on specified target_platforms (addresses spurious warnings)
559
+ * Registry: Set `relax_version` to false when pip_requirements are specified while logging model
560
+ * Registry: UserWarning will now be raised based on specified target_platforms (addresses spurious warnings)
529
561
 
530
562
  ### New Features
531
563
 
532
- - Registry: `target_platforms` supports `TargetPlatformMode`: `WAREHOUSE_ONLY`, `SNOWPARK_CONTAINER_SERVICES_ONLY`,
564
+ * Registry: `target_platforms` supports `TargetPlatformMode`: `WAREHOUSE_ONLY`, `SNOWPARK_CONTAINER_SERVICES_ONLY`,
533
565
  or `BOTH_WAREHOUSE_AND_SNOWPARK_CONTAINER_SERVICES`.
534
- - Registry: Introduce `snowflake.ml.model.target_platform.TargetPlatform`, target platform constants, and
566
+ * Registry: Introduce `snowflake.ml.model.target_platform.TargetPlatform`, target platform constants, and
535
567
  `snowflake.ml.model.task.Task`.
536
- - ML Job: Single-node ML Jobs are now in GA. Multi-node support is now in PuPr
537
- - Moved less frequently used job submission parameters to `**kwargs`
538
- - Platform metrics are now enabled by default
539
- - `list_jobs()` behavior changed, see [Behavior Changes](#behavior-changes) for more info
568
+ * ML Job: Single-node ML Jobs are now in GA. Multi-node support is now in PuPr
569
+ * Moved less frequently used job submission parameters to `**kwargs`
570
+ * Platform metrics are now enabled by default
571
+ * `list_jobs()` behavior changed, see [Behavior Changes](#behavior-changes) for more info
540
572
 
541
573
  ## 1.8.6
542
574
 
543
575
  ### Bug Fixes
544
576
 
545
- - Fixed fatal errors from internal telemetry wrappers.
577
+ * Fixed fatal errors from internal telemetry wrappers.
546
578
 
547
579
  ### New Features
548
580
 
549
- - Registry: Add service container info to logs.
550
- - ML Job (PuPr): Add new `submit_from_stage()` API for submitting a payload from an existing stage path.
551
- - ML Job (PuPr): Add support for `snowpark.Session` objects in the argument list of
581
+ * Registry: Add service container info to logs.
582
+ * ML Job (PuPr): Add new `submit_from_stage()` API for submitting a payload from an existing stage path.
583
+ * ML Job (PuPr): Add support for `snowpark.Session` objects in the argument list of
552
584
  `@remote` decorated functions. `Session` object will be injected from context in
553
585
  the job execution environment.
554
586
 
@@ -556,75 +588,75 @@ with exp.start_run():
556
588
 
557
589
  ### Bug Fixes
558
590
 
559
- - Registry: Fixed a bug when listing and deleting container services.
560
- - Registry: Fixed explainability issue with scikit-learn pipelines, skipping explain function creation.
561
- - Explainability: bump minimum streamlit version down to 1.30
562
- - Modeling: Make XGBoost a required dependency (xgboost is not a required dependency in snowflake-ml-python 1.8.4).
591
+ * Registry: Fixed a bug when listing and deleting container services.
592
+ * Registry: Fixed explainability issue with scikit-learn pipelines, skipping explain function creation.
593
+ * Explainability: bump minimum streamlit version down to 1.30
594
+ * Modeling: Make XGBoost a required dependency (xgboost is not a required dependency in snowflake-ml-python 1.8.4).
563
595
 
564
596
  ### Behavior Changes
565
597
 
566
- - ML Job (Multi-node PrPr): Rename argument `num_instances` to `target_instances` in job submission APIs and
598
+ * ML Job (Multi-node PrPr): Rename argument `num_instances` to `target_instances` in job submission APIs and
567
599
  change type from `Optional[int]` to `int`
568
600
 
569
601
  ### New Features
570
602
 
571
- - Registry: No longer checks if the snowflake-ml-python version is available in the Snowflake Conda channel when logging
603
+ * Registry: No longer checks if the snowflake-ml-python version is available in the Snowflake Conda channel when logging
572
604
  an SPCS-only model.
573
- - ML Job (PuPr): Add `min_instances` argument to the job decorator to allow waiting for workers to be ready.
574
- - ML Job (PuPr): Adjust polling behavior to reduce number of SQL calls.
605
+ * ML Job (PuPr): Add `min_instances` argument to the job decorator to allow waiting for workers to be ready.
606
+ * ML Job (PuPr): Adjust polling behavior to reduce number of SQL calls.
575
607
 
576
608
  ### Deprecations
577
609
 
578
- - `SnowflakeLoginOptions` is deprecated and will be removed in a future release.
610
+ * `SnowflakeLoginOptions` is deprecated and will be removed in a future release.
579
611
 
580
612
  ## 1.8.4 (2025-05-12)
581
613
 
582
614
  ### Bug Fixes
583
615
 
584
- - Registry: Default `enable_explainability` to True when the model can be deployed to Warehouse.
585
- - Registry: Add `custom_model.partitioned_api` decorator and deprecate `partitioned_inference_api`.
586
- - Registry: Fixed a bug when logging pytroch and tensorflow models that caused
616
+ * Registry: Default `enable_explainability` to True when the model can be deployed to Warehouse.
617
+ * Registry: Add `custom_model.partitioned_api` decorator and deprecate `partitioned_inference_api`.
618
+ * Registry: Fixed a bug when logging pytroch and tensorflow models that caused
587
619
  `UnboundLocalError: local variable 'multiple_inputs' referenced before assignment`.
588
620
 
589
621
  ### Behavior Changes
590
622
 
591
- - ML Job (PuPr) Updated property `id` to be fully qualified name; Introduced new property `name`
623
+ * ML Job (PuPr) Updated property `id` to be fully qualified name; Introduced new property `name`
592
624
  to represent the ML Job name
593
- - ML Job (PuPr) Modified `list_jobs()` to return ML Job `name` instead of `id`
594
- - Registry: Error in `log_model` if `enable_explainability` is True and model is only deployed to
625
+ * ML Job (PuPr) Modified `list_jobs()` to return ML Job `name` instead of `id`
626
+ * Registry: Error in `log_model` if `enable_explainability` is True and model is only deployed to
595
627
  Snowpark Container Services, instead of just user warning.
596
628
 
597
629
  ### New Features
598
630
 
599
- - ML Job (PuPr): Extend `@remote` function decorator, `submit_file()` and `submit_directory()` to accept `database` and
631
+ * ML Job (PuPr): Extend `@remote` function decorator, `submit_file()` and `submit_directory()` to accept `database` and
600
632
  `schema` parameters
601
- - ML Job (PuPr): Support querying by fully qualified name in `get_job()`
602
- - Explainability: Added visualization functions to `snowflake.ml.monitoring` to plot explanations in notebooks.
603
- - Explainability: Support explain for categorical transforms for sklearn pipeline
604
- - Support categorical type for `xgboost.DMatrix` inputs.
633
+ * ML Job (PuPr): Support querying by fully qualified name in `get_job()`
634
+ * Explainability: Added visualization functions to `snowflake.ml.monitoring` to plot explanations in notebooks.
635
+ * Explainability: Support explain for categorical transforms for sklearn pipeline
636
+ * Support categorical type for `xgboost.DMatrix` inputs.
605
637
 
606
638
  ## 1.8.3
607
639
 
608
640
  ### New Features
609
641
 
610
- - Registry: Default to the runtime cuda version if available when logging a GPU model in Container Runtime.
611
- - ML Job (PuPr): Added `as_list` argument to `MLJob.get_logs()` to enable retrieving logs
642
+ * Registry: Default to the runtime cuda version if available when logging a GPU model in Container Runtime.
643
+ * ML Job (PuPr): Added `as_list` argument to `MLJob.get_logs()` to enable retrieving logs
612
644
  as a list of strings
613
- - Registry: Support `ModelVersion.run_job` to run inference with a single-node Snowpark Container Services job.
614
- - DataConnector: Removed PrPr decorators
615
- - Registry: Default the target platform to warehouse when logging a partitioned model.
645
+ * Registry: Support `ModelVersion.run_job` to run inference with a single-node Snowpark Container Services job.
646
+ * DataConnector: Removed PrPr decorators
647
+ * Registry: Default the target platform to warehouse when logging a partitioned model.
616
648
 
617
649
  ## 1.8.2
618
650
 
619
651
  ### New Features
620
652
 
621
- - ML Job now available as a PuPr feature
622
- - Add ability to retrieve results for `@remote` decorated functions using
653
+ * ML Job now available as a PuPr feature
654
+ * Add ability to retrieve results for `@remote` decorated functions using
623
655
  new `MLJobWithResult.result()` API, which will return the unpickled result
624
656
  or raise an exception if the job execution failed.
625
- - Pre-created Snowpark Session is now available inside job payloads using
657
+ * Pre-created Snowpark Session is now available inside job payloads using
626
658
  `snowflake.snowpark.context.get_active_session()`
627
- - Registry: Introducing `save_location` to `log_model` using the `options` argument.
659
+ * Registry: Introducing `save_location` to `log_model` using the `options` argument.
628
660
  Users can use the `save_location` option to specify a local directory where the model files and configuration are written.
629
661
  This is useful when the default temporary directory has space limitations.
630
662
 
@@ -638,44 +670,44 @@ reg.log_model(
638
670
  )
639
671
  ```
640
672
 
641
- - Registry: Include model dependencies in pip requirements by default when logging in Container Runtime.
642
- - Multi-node ML Job (PrPr): Add `instance_id` argument to `get_logs` and `show_logs` method to support multi node log retrieval
643
- - Multi-node ML Job (PrPr): Add `job.get_instance_status(instance_id=...)` API to support multi node status retrieval
673
+ * Registry: Include model dependencies in pip requirements by default when logging in Container Runtime.
674
+ * Multi-node ML Job (PrPr): Add `instance_id` argument to `get_logs` and `show_logs` method to support multi node log retrieval
675
+ * Multi-node ML Job (PrPr): Add `job.get_instance_status(instance_id=...)` API to support multi node status retrieval
644
676
 
645
677
  ## 1.8.1 (03-26-2025)
646
678
 
647
679
  ### Bug Fixes
648
680
 
649
- - Registry: Fix a bug that caused `unsupported model type` error while logging a sklearn model with `score_samples`
681
+ * Registry: Fix a bug that caused `unsupported model type` error while logging a sklearn model with `score_samples`
650
682
  inference method.
651
- - Registry: Fix a bug that model inference service creation fails on an existing and suspended service.
683
+ * Registry: Fix a bug that model inference service creation fails on an existing and suspended service.
652
684
 
653
685
  ### New Features
654
686
 
655
- - ML Job (PrPr): Update Container Runtime image version to `1.0.1`
656
- - ML Job (PrPr): Add `enable_metrics` argument to job submission APIs to enable publishing service metrics to Event Table.
687
+ * ML Job (PrPr): Update Container Runtime image version to `1.0.1`
688
+ * ML Job (PrPr): Add `enable_metrics` argument to job submission APIs to enable publishing service metrics to Event Table.
657
689
  See [Accessing Event Table service metrics](https://docs.snowflake.com/en/developer-guide/snowpark-container-services/monitoring-services#accessing-event-table-service-metrics)
658
690
  for retrieving published metrics
659
691
  and [Costs of telemetry data collection](https://docs.snowflake.com/en/developer-guide/logging-tracing/logging-tracing-billing)
660
692
  for cost implications.
661
- - Registry: When creating a copy of a `ModelVersion` with `log_model`, raise an exception if unsupported arguments are provided.
693
+ * Registry: When creating a copy of a `ModelVersion` with `log_model`, raise an exception if unsupported arguments are provided.
662
694
 
663
695
  ## 1.8.0 (03-20-2025)
664
696
 
665
697
  ### Bug Fixes
666
698
 
667
- - Modeling: Fix a bug in some metrics that allowed an unsupported version of numpy to be installed
699
+ * Modeling: Fix a bug in some metrics that allowed an unsupported version of numpy to be installed
668
700
  automatically in the stored procedure, resulting in a numpy error on execution
669
- - Registry: Fix a bug that leads to incorrect `Model is does not have _is_inference_api` error message when assigning
701
+ * Registry: Fix a bug that leads to incorrect `Model is does not have _is_inference_api` error message when assigning
670
702
  a supported model as a property of a CustomModel.
671
- - Registry: Fix a bug that inference is not working when models with more than 500 input features
703
+ * Registry: Fix a bug that inference is not working when models with more than 500 input features
672
704
  are deployed to SPCS.
673
705
 
674
706
  ### Behavior Change
675
707
 
676
- - Registry: With FeatureGroupSpec support, auto inferred model signature for `transformers.Pipeline` models have been
708
+ * Registry: With FeatureGroupSpec support, auto inferred model signature for `transformers.Pipeline` models have been
677
709
  updated, including:
678
- - Signature for fill-mask task has been changed from
710
+ * Signature for fill-mask task has been changed from
679
711
 
680
712
  ```python
681
713
  ModelSignature(
@@ -710,7 +742,7 @@ reg.log_model(
710
742
  )
711
743
  ```
712
744
 
713
- - Signature for token-classification task has been changed from
745
+ * Signature for token-classification task has been changed from
714
746
 
715
747
  ```python
716
748
  ModelSignature(
@@ -745,7 +777,7 @@ reg.log_model(
745
777
  )
746
778
  ```
747
779
 
748
- - Signature for question-answering task when top_k is larger than 1 has been changed from
780
+ * Signature for question-answering task when top_k is larger than 1 has been changed from
749
781
 
750
782
  ```python
751
783
  ModelSignature(
@@ -782,7 +814,7 @@ reg.log_model(
782
814
  )
783
815
  ```
784
816
 
785
- - Signature for text-classification task when top_k is `None` has been changed from
817
+ * Signature for text-classification task when top_k is `None` has been changed from
786
818
 
787
819
  ```python
788
820
  ModelSignature(
@@ -811,7 +843,7 @@ reg.log_model(
811
843
  )
812
844
  ```
813
845
 
814
- - Signature for text-classification task when top_k is not `None` has been changed from
846
+ * Signature for text-classification task when top_k is not `None` has been changed from
815
847
 
816
848
  ```python
817
849
  ModelSignature(
@@ -845,7 +877,7 @@ reg.log_model(
845
877
  )
846
878
  ```
847
879
 
848
- - Signature for text-generation task has been changed from
880
+ * Signature for text-generation task has been changed from
849
881
 
850
882
  ```python
851
883
  ModelSignature(
@@ -882,7 +914,7 @@ reg.log_model(
882
914
  )
883
915
  ```
884
916
 
885
- - Registry: PyTorch and TensorFlow models now expect a single tensor input/output by default when logging to Model
917
+ * Registry: PyTorch and TensorFlow models now expect a single tensor input/output by default when logging to Model
886
918
  Registry. To use multiple tensors (previous behavior), set `options={"multiple_inputs": True}`.
887
919
 
888
920
  Example with single tensor input:
@@ -928,130 +960,130 @@ reg.log_model(
928
960
  )
929
961
  ```
930
962
 
931
- - Registry: Default `enable_explainability` to False when the model can be deployed to Snowpark Container Services.
963
+ * Registry: Default `enable_explainability` to False when the model can be deployed to Snowpark Container Services.
932
964
 
933
965
  ### New Features
934
966
 
935
- - Registry: Added support to single `torch.Tensor`, `tensorflow.Tensor` and `tensorflow.Variable` as input or output
967
+ * Registry: Added support to single `torch.Tensor`, `tensorflow.Tensor` and `tensorflow.Variable` as input or output
936
968
  data.
937
- - Registry: Support [`xgboost.DMatrix`](https://xgboost.readthedocs.io/en/stable/python/python_api.html#xgboost.DMatrix)
969
+ * Registry: Support [`xgboost.DMatrix`](https://xgboost.readthedocs.io/en/stable/python/python_api.html#xgboost.DMatrix)
938
970
  datatype for XGBoost models.
939
971
 
940
972
  ## 1.7.5 (03-06-2025)
941
973
 
942
- - Support Python 3.12.
943
- - Explainability: Support native and snowflake.ml.modeling sklearn pipeline
974
+ * Support Python 3.12.
975
+ * Explainability: Support native and snowflake.ml.modeling sklearn pipeline
944
976
 
945
977
  ### Bug Fixes
946
978
 
947
- - Registry: Fixed a compatibility issue when using `snowflake-ml-python` 1.7.0 or greater to save a `tensorflow.keras`
979
+ * Registry: Fixed a compatibility issue when using `snowflake-ml-python` 1.7.0 or greater to save a `tensorflow.keras`
948
980
  model with `keras` 2.x, if `relax_version` is set or default to True, and newer version of `snowflake-ml-python`
949
981
  is available in Snowflake Anaconda Channel, model could not be run in Snowflake. If you have such model, you could
950
982
  use the latest version of `snowflake-ml-python` and call `ModelVersion.load` to load it back, and re-log it.
951
983
  Alternatively, you can prevent this issue by setting `relax_version=False` when saving the model.
952
- - Registry: Removed the validation that disallows data that does not have non-null values being passed to
984
+ * Registry: Removed the validation that disallows data that does not have non-null values being passed to
953
985
  `ModelVersion.run`.
954
- - ML Job (PrPr): No longer require CREATE STAGE privilege if `stage_name` points to an existing stage
955
- - ML Job (PrPr): Fixed a bug causing some payload source and entrypoint path
986
+ * ML Job (PrPr): No longer require CREATE STAGE privilege if `stage_name` points to an existing stage
987
+ * ML Job (PrPr): Fixed a bug causing some payload source and entrypoint path
956
988
  combinations to be erroneously rejected with
957
989
  `ValueError(f"{self.entrypoint} must be a subpath of {self.source}")`
958
- - ML Job (PrPr): Fixed a bug in Ray cluster startup config which caused certain Runtime APIs to fail
990
+ * ML Job (PrPr): Fixed a bug in Ray cluster startup config which caused certain Runtime APIs to fail
959
991
 
960
992
  ### New Features
961
993
 
962
- - Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality.
963
- - Registry: Added support for `keras` 3.x model with `tensorflow` and `pytorch` backend
994
+ * Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality.
995
+ * Registry: Added support for `keras` 3.x model with `tensorflow` and `pytorch` backend
964
996
 
965
997
  ## 1.7.4 (01-28-2025)
966
998
 
967
- - FileSet: The `snowflake.ml.fileset.FileSet` has been deprecated and will be removed in a future version.
999
+ * FileSet: The `snowflake.ml.fileset.FileSet` has been deprecated and will be removed in a future version.
968
1000
  Use [snowflake.ml.dataset.Dataset](https://docs.snowflake.com/en/developer-guide/snowflake-ml/dataset) and
969
1001
  [snowflake.ml.data.DataConnector](https://docs.snowflake.com/en/developer-guide/snowpark-ml/reference/latest/api/data/snowflake.ml.data.data_connector.DataConnector)
970
1002
  instead.
971
- - Registry: `ModelVersion.run` on a service would require redeploying the service once account opts into nested function.
1003
+ * Registry: `ModelVersion.run` on a service would require redeploying the service once account opts into nested function.
972
1004
 
973
1005
  ### Bug Fixes
974
1006
 
975
- - Registry: Fixed an issue that the hugging face pipeline is loaded using incorrect dtype.
976
- - Registry: Fixed an issue that only 1 row is used when infer the model signature in the modeling model.
1007
+ * Registry: Fixed an issue that the hugging face pipeline is loaded using incorrect dtype.
1008
+ * Registry: Fixed an issue that only 1 row is used when infer the model signature in the modeling model.
977
1009
 
978
1010
  ### New Features
979
1011
 
980
- - Add new `snowflake.ml.jobs` preview API for running headless workloads on SPCS using
1012
+ * Add new `snowflake.ml.jobs` preview API for running headless workloads on SPCS using
981
1013
  [Container Runtime for ML](https://docs.snowflake.com/en/developer-guide/snowflake-ml/container-runtime-ml)
982
- - Added `guardrails` option to Cortex `complete` function, enabling
1014
+ * Added `guardrails` option to Cortex `complete` function, enabling
983
1015
  [Cortex Guard](https://docs.snowflake.com/en/user-guide/snowflake-cortex/llm-functions#cortex-guard) support
984
- - Model Monitoring: Expose Model Monitoring Python API by default.
1016
+ * Model Monitoring: Expose Model Monitoring Python API by default.
985
1017
 
986
1018
  ## 1.7.3 (2025-01-08)
987
1019
 
988
- - Added lowercase versions of Cortex functions, added deprecation warning to Capitalized versions.
989
- - Bumped the requirements of `fsspec` and `s3fs` to `>=2024.6.1,<2026`
990
- - Bumped the requirement of `mlflow` to `>=2.16.0, <3`
991
- - Registry: Support 500+ features for model registry
992
- - Feature Store: Add support for `cluster_by` for feature views.
1020
+ * Added lowercase versions of Cortex functions, added deprecation warning to Capitalized versions.
1021
+ * Bumped the requirements of `fsspec` and `s3fs` to `>=2024.6.1,<2026`
1022
+ * Bumped the requirement of `mlflow` to `>=2.16.0, <3`
1023
+ * Registry: Support 500+ features for model registry
1024
+ * Feature Store: Add support for `cluster_by` for feature views.
993
1025
 
994
1026
  ### Bug Fixes
995
1027
 
996
- - Registry: Fixed a bug when providing non-range index pandas DataFrame as the input to a `ModelVersion.run`.
997
- - Registry: Improved random model version name generation to prevent collisions.
998
- - Registry: Fix an issue when inferring signature or running inference with Snowpark data that has a column whose type
1028
+ * Registry: Fixed a bug when providing non-range index pandas DataFrame as the input to a `ModelVersion.run`.
1029
+ * Registry: Improved random model version name generation to prevent collisions.
1030
+ * Registry: Fix an issue when inferring signature or running inference with Snowpark data that has a column whose type
999
1031
  is `ARRAY` and contains `NULL` value.
1000
- - Registry: `ModelVersion.run` now accepts fully qualified service name.
1001
- - Monitoring: Fix issue in SDK with creating monitors using fully qualified names.
1002
- - Registry: Fix error in log_model for any sklearn models with only data pre-processing including pre-processing only
1032
+ * Registry: `ModelVersion.run` now accepts fully qualified service name.
1033
+ * Monitoring: Fix issue in SDK with creating monitors using fully qualified names.
1034
+ * Registry: Fix error in log_model for any sklearn models with only data pre-processing including pre-processing only
1003
1035
  pipeline models due to default explainability enablement.
1004
1036
 
1005
1037
  ### New Features
1006
1038
 
1007
- - Added `user_files` argument to `Registry.log_model` for including images or any extra file with the model.
1008
- - Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality
1009
- - DataConnector: Add new `DataConnector.from_sql()` constructor
1010
- - Registry: Provided new arguments to `snowflake.ml.model.model_signature.infer_signature` method to specify rows limit
1039
+ * Added `user_files` argument to `Registry.log_model` for including images or any extra file with the model.
1040
+ * Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality
1041
+ * DataConnector: Add new `DataConnector.from_sql()` constructor
1042
+ * Registry: Provided new arguments to `snowflake.ml.model.model_signature.infer_signature` method to specify rows limit
1011
1043
  to be used when inferring the signature.
1012
1044
 
1013
1045
  ## 1.7.2 (2024-11-21)
1014
1046
 
1015
1047
  ### Bug Fixes
1016
1048
 
1017
- - Model Explainability: Fix issue that explain is enabled for scikit-learn pipeline
1049
+ * Model Explainability: Fix issue that explain is enabled for scikit-learn pipeline
1018
1050
  whose task is UNKNOWN and fails later when invoked.
1019
1051
 
1020
1052
  ### New Features
1021
1053
 
1022
- - Registry: Support asynchronous model inference service creation with the `block` option
1054
+ * Registry: Support asynchronous model inference service creation with the `block` option
1023
1055
  in `ModelVersion.create_service()` set to True by default.
1024
- - Registry: Allow specify `batch_size` when inferencing using sentence-transformers model.
1056
+ * Registry: Allow specify `batch_size` when inferencing using sentence-transformers model.
1025
1057
 
1026
1058
  ## 1.7.1 (2024-11-05)
1027
1059
 
1028
1060
  ### Bug Fixes
1029
1061
 
1030
- - Registry: Null value is now allowed in the dataframe used in model signature inference. Null values will be ignored
1062
+ * Registry: Null value is now allowed in the dataframe used in model signature inference. Null values will be ignored
1031
1063
  and others will be used to infer the signature.
1032
- - Registry: Pandas Extension DTypes (`pandas.StringDType()`, `pandas.BooleanDType()`, etc.) are now supported in model
1064
+ * Registry: Pandas Extension DTypes (`pandas.StringDType()`, `pandas.BooleanDType()`, etc.) are now supported in model
1033
1065
  signature inference.
1034
- - Registry: Null value is now allowed in the dataframe used to predict.
1035
- - Data: Fix missing `snowflake.ml.data.*` module exports in wheel
1036
- - Dataset: Fix missing `snowflake.ml.dataset.*` module exports in wheel.
1037
- - Registry: Fix the issue that `tf_keras.Model` is not recognized as keras model when logging.
1066
+ * Registry: Null value is now allowed in the dataframe used to predict.
1067
+ * Data: Fix missing `snowflake.ml.data.*` module exports in wheel
1068
+ * Dataset: Fix missing `snowflake.ml.dataset.*` module exports in wheel.
1069
+ * Registry: Fix the issue that `tf_keras.Model` is not recognized as keras model when logging.
1038
1070
 
1039
1071
  ### New Features
1040
1072
 
1041
- - Registry: Option to `enable_monitoring` set to False by default. This will gate access to preview features of Model Monitoring.
1042
- - Model Monitoring: `show_model_monitors` Registry method. This feature is still in Private Preview.
1043
- - Registry: Support `pd.Series` in input and output data.
1044
- - Model Monitoring: `add_monitor` Registry method. This feature is still in Private Preview.
1045
- - Model Monitoring: `resume` and `suspend` ModelMonitor. This feature is still in Private Preview.
1046
- - Model Monitoring: `get_monitor` Registry method. This feature is still in Private Preview.
1047
- - Model Monitoring: `delete_monitor` Registry method. This feature is still in Private Preview.
1073
+ * Registry: Option to `enable_monitoring` set to False by default. This will gate access to preview features of Model Monitoring.
1074
+ * Model Monitoring: `show_model_monitors` Registry method. This feature is still in Private Preview.
1075
+ * Registry: Support `pd.Series` in input and output data.
1076
+ * Model Monitoring: `add_monitor` Registry method. This feature is still in Private Preview.
1077
+ * Model Monitoring: `resume` and `suspend` ModelMonitor. This feature is still in Private Preview.
1078
+ * Model Monitoring: `get_monitor` Registry method. This feature is still in Private Preview.
1079
+ * Model Monitoring: `delete_monitor` Registry method. This feature is still in Private Preview.
1048
1080
 
1049
1081
  ## 1.7.0 (10-22-2024)
1050
1082
 
1051
1083
  ### Behavior Change
1052
1084
 
1053
- - Generic: Require python >= 3.9.
1054
- - Data Connector: Update `to_torch_dataset` and `to_torch_datapipe` to add a dimension for scalar data.
1085
+ * Generic: Require python >= 3.9.
1086
+ * Data Connector: Update `to_torch_dataset` and `to_torch_datapipe` to add a dimension for scalar data.
1055
1087
  This allows for more seamless integration with PyTorch `DataLoader`, which creates batches by stacking inputs of each batch.
1056
1088
 
1057
1089
  Examples:
@@ -1060,30 +1092,30 @@ Examples:
1060
1092
  ds = connector.to_torch_dataset(shuffle=False, batch_size=3)
1061
1093
  ```
1062
1094
 
1063
- - Input: "col1": [10, 11, 12]
1064
- - Previous batch: array([10., 11., 12.]) with shape (3,)
1065
- - New batch: array([[10.], [11.], [12.]]) with shape (3, 1)
1095
+ * Input: "col1": [10, 11, 12]
1096
+ * Previous batch: array([10., 11., 12.]) with shape (3,)
1097
+ * New batch: array([[10.], [11.], [12.]]) with shape (3, 1)
1066
1098
 
1067
- - Input: "col2": [[0, 100], [1, 110], [2, 200]]
1068
- - Previous batch: array([[ 0, 100], [ 1, 110], [ 2, 200]]) with shape (3,2)
1069
- - New batch: No change
1099
+ * Input: "col2": [[0, 100], [1, 110], [2, 200]]
1100
+ * Previous batch: array([[ 0, 100], [ 1, 110], [ 2, 200]]) with shape (3,2)
1101
+ * New batch: No change
1070
1102
 
1071
- - Model Registry: External access integrations are optional when creating a model inference service in
1103
+ * Model Registry: External access integrations are optional when creating a model inference service in
1072
1104
  Snowflake >= 8.40.0.
1073
- - Model Registry: Deprecate `build_external_access_integration` with `build_external_access_integrations` in
1105
+ * Model Registry: Deprecate `build_external_access_integration` with `build_external_access_integrations` in
1074
1106
  `ModelVersion.create_service()`.
1075
1107
 
1076
1108
  ### Bug Fixes
1077
1109
 
1078
- - Registry: Updated `log_model` API to accept both signature and sample_input_data parameters.
1079
- - Feature Store: ExampleHelper uses fully qualified path for table name. change weather features aggregation from 1d to 1h.
1080
- - Data Connector: Return numpy array with appropriate object type instead of list for multi-dimensional
1110
+ * Registry: Updated `log_model` API to accept both signature and sample_input_data parameters.
1111
+ * Feature Store: ExampleHelper uses fully qualified path for table name. change weather features aggregation from 1d to 1h.
1112
+ * Data Connector: Return numpy array with appropriate object type instead of list for multi-dimensional
1081
1113
  data from `to_torch_dataset` and `to_torch_datapipe`
1082
- - Model explainability: Incompatibility between SHAP 0.42.1 and XGB 2.1.1 resolved by using latest SHAP 0.46.0.
1114
+ * Model explainability: Incompatibility between SHAP 0.42.1 and XGB 2.1.1 resolved by using latest SHAP 0.46.0.
1083
1115
 
1084
1116
  ### New Features
1085
1117
 
1086
- - Registry: Provide pass keyworded variable length of arguments to class ModelContext. Example usage:
1118
+ * Registry: Provide pass keyworded variable length of arguments to class ModelContext. Example usage:
1087
1119
 
1088
1120
  ```python
1089
1121
  mc = custom_model.ModelContext(
@@ -1103,106 +1135,106 @@ class ExamplePipelineModel(custom_model.CustomModel):
1103
1135
  return pd.DataFrame({'output': model_output + self.bias})
1104
1136
  ```
1105
1137
 
1106
- - Model Development: Upgrade scikit-learn in UDTF backend for log_loss metric. As a result, `eps` argument is now ignored.
1107
- - Data Connector: Add the option of passing a `None` sized batch to `to_torch_dataset` for better
1138
+ * Model Development: Upgrade scikit-learn in UDTF backend for log_loss metric. As a result, `eps` argument is now ignored.
1139
+ * Data Connector: Add the option of passing a `None` sized batch to `to_torch_dataset` for better
1108
1140
  interoperability with PyTorch DataLoader.
1109
- - Model Registry: Support [pandas.CategoricalDtype](https://pandas.pydata.org/docs/reference/api/pandas.CategoricalDtype.html#pandas-categoricaldtype)
1110
- - Limitations:
1111
- - The native categorical data handling handling by XGBoost using `enable_categorical=True` is not supported.
1141
+ * Model Registry: Support [pandas.CategoricalDtype](https://pandas.pydata.org/docs/reference/api/pandas.CategoricalDtype.html#pandas-categoricaldtype)
1142
+ * Limitations:
1143
+ * The native categorical data handling handling by XGBoost using `enable_categorical=True` is not supported.
1112
1144
  Instead please use [`sklearn.pipeline`](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html)
1113
1145
  to preprocess the categorical datatype and log the pipeline with the XGBoost model.
1114
- - Registry: It is now possible to pass `signatures` and `sample_input_data` at the same time to capture background
1146
+ * Registry: It is now possible to pass `signatures` and `sample_input_data` at the same time to capture background
1115
1147
  data from explainablity and data lineage.
1116
1148
 
1117
1149
  ## 1.6.4 (2024-10-17)
1118
1150
 
1119
1151
  ### Bug Fixes
1120
1152
 
1121
- - Registry: Fix an issue that leads to incident when using `ModelVersion.run` with service.
1153
+ * Registry: Fix an issue that leads to incident when using `ModelVersion.run` with service.
1122
1154
 
1123
1155
  ## 1.6.3 (2024-10-07)
1124
1156
 
1125
- - Model Registry (PrPr) has been removed.
1157
+ * Model Registry (PrPr) has been removed.
1126
1158
 
1127
1159
  ### Bug Fixes
1128
1160
 
1129
- - Registry: Fix a bug that when package whose name does not follow PEP-508 is provided when logging the model,
1161
+ * Registry: Fix a bug that when package whose name does not follow PEP-508 is provided when logging the model,
1130
1162
  an unexpected normalization is happening.
1131
- - Registry: Fix `not a valid remote uri` error when logging mlflow models.
1132
- - Registry: Fix a bug that `ModelVersion.run` is called in a nested way.
1133
- - Registry: Fix an issue that leads to `log_model` failure when local package version contains parts other than
1163
+ * Registry: Fix `not a valid remote uri` error when logging mlflow models.
1164
+ * Registry: Fix a bug that `ModelVersion.run` is called in a nested way.
1165
+ * Registry: Fix an issue that leads to `log_model` failure when local package version contains parts other than
1134
1166
  base version.
1135
- - Fix issue where `sample_weights` were not being applied to search estimators.
1136
- - Model explainability: Fix bug which creates explain as a function instead of table function when enabling by default.
1137
- - Model explainability: Update lightgbm binary classification to return non-json values, from customer feedback.
1167
+ * Fix issue where `sample_weights` were not being applied to search estimators.
1168
+ * Model explainability: Fix bug which creates explain as a function instead of table function when enabling by default.
1169
+ * Model explainability: Update lightgbm binary classification to return non-json values, from customer feedback.
1138
1170
 
1139
1171
  ### New Features
1140
1172
 
1141
- - Data: Improve `DataConnector.to_pandas()` performance when loading from Snowpark DataFrames.
1142
- - Model Registry: Allow users to set a model task while using `log_model`.
1143
- - Feature Store: FeatureView supports ON_CREATE or ON_SCHEDULE initialize mode.
1173
+ * Data: Improve `DataConnector.to_pandas()` performance when loading from Snowpark DataFrames.
1174
+ * Model Registry: Allow users to set a model task while using `log_model`.
1175
+ * Feature Store: FeatureView supports ON_CREATE or ON_SCHEDULE initialize mode.
1144
1176
 
1145
1177
  ## 1.6.2 (2024-09-04)
1146
1178
 
1147
1179
  ### Bug Fixes
1148
1180
 
1149
- - Modeling: Support XGBoost version that is larger than 2.
1181
+ * Modeling: Support XGBoost version that is larger than 2.
1150
1182
 
1151
- - Data: Fix multiple epoch iteration over `DataConnector.to_torch_datapipe()` DataPipes.
1152
- - Generic: Fix a bug that when an invalid name is provided to argument where fully qualified name is expected, it will
1183
+ * Data: Fix multiple epoch iteration over `DataConnector.to_torch_datapipe()` DataPipes.
1184
+ * Generic: Fix a bug that when an invalid name is provided to argument where fully qualified name is expected, it will
1153
1185
  be parsed wrongly. Now it raises an exception correctly.
1154
- - Model Explainability: Handle explanations for multiclass XGBoost classification models
1155
- - Model Explainability: Workarounds and better error handling for XGB>2.1.0 not working with SHAP==0.42.1
1186
+ * Model Explainability: Handle explanations for multiclass XGBoost classification models
1187
+ * Model Explainability: Workarounds and better error handling for XGB>2.1.0 not working with SHAP==0.42.1
1156
1188
 
1157
1189
  ### New Features
1158
1190
 
1159
- - Data: Add top-level exports for `DataConnector` and `DataSource` to `snowflake.ml.data`.
1160
- - Data: Add native batching support via `batch_size` and `drop_last_batch` arguments to `DataConnector.to_torch_dataset()`
1161
- - Feature Store: update_feature_view() supports taking feature view object as argument.
1191
+ * Data: Add top-level exports for `DataConnector` and `DataSource` to `snowflake.ml.data`.
1192
+ * Data: Add native batching support via `batch_size` and `drop_last_batch` arguments to `DataConnector.to_torch_dataset()`
1193
+ * Feature Store: update_feature_view() supports taking feature view object as argument.
1162
1194
 
1163
1195
  ## 1.6.1 (2024-08-12)
1164
1196
 
1165
1197
  ### Bug Fixes
1166
1198
 
1167
- - Feature Store: Support large metadata blob when generating dataset
1168
- - Feature Store: Added a hidden knob in FeatureView as kargs for setting customized
1199
+ * Feature Store: Support large metadata blob when generating dataset
1200
+ * Feature Store: Added a hidden knob in FeatureView as kargs for setting customized
1169
1201
  refresh_mode
1170
- - Registry: Fix an error message in Model Version `run` when `function_name` is not mentioned and model has multiple
1202
+ * Registry: Fix an error message in Model Version `run` when `function_name` is not mentioned and model has multiple
1171
1203
  target methods.
1172
- - Cortex inference: snowflake.cortex.Complete now only uses the REST API for streaming and the use_rest_api_experimental
1204
+ * Cortex inference: snowflake.cortex.Complete now only uses the REST API for streaming and the use_rest_api_experimental
1173
1205
  is no longer needed.
1174
- - Feature Store: Add a new API: FeatureView.list_columns() which list all column information.
1175
- - Data: Fix `DataFrame` ingestion with `ArrowIngestor`.
1206
+ * Feature Store: Add a new API: FeatureView.list_columns() which list all column information.
1207
+ * Data: Fix `DataFrame` ingestion with `ArrowIngestor`.
1176
1208
 
1177
1209
  ### New Features
1178
1210
 
1179
- - Enable `set_params` to set the parameters of the underlying sklearn estimator, if the snowflake-ml model has been fit.
1180
- - Data: Add `snowflake.ml.data.ingestor_utils` module with utility functions helpful for `DataIngestor` implementations.
1181
- - Data: Add new `to_torch_dataset()` connector to `DataConnector` to replace deprecated DataPipe.
1182
- - Registry: Option to `enable_explainability` set to True by default for XGBoost, LightGBM and CatBoost as PuPr feature.
1183
- - Registry: Option to `enable_explainability` when registering SHAP supported sklearn models.
1211
+ * Enable `set_params` to set the parameters of the underlying sklearn estimator, if the snowflake-ml model has been fit.
1212
+ * Data: Add `snowflake.ml.data.ingestor_utils` module with utility functions helpful for `DataIngestor` implementations.
1213
+ * Data: Add new `to_torch_dataset()` connector to `DataConnector` to replace deprecated DataPipe.
1214
+ * Registry: Option to `enable_explainability` set to True by default for XGBoost, LightGBM and CatBoost as PuPr feature.
1215
+ * Registry: Option to `enable_explainability` when registering SHAP supported sklearn models.
1184
1216
 
1185
1217
  ## 1.6.0 (2024-07-29)
1186
1218
 
1187
1219
  ### Bug Fixes
1188
1220
 
1189
- - Modeling: `SimpleImputer` can impute integer columns with integer values.
1190
- - Registry: Fix an issue when providing a pandas Dataframe whose index is not starting from 0 as the input to
1221
+ * Modeling: `SimpleImputer` can impute integer columns with integer values.
1222
+ * Registry: Fix an issue when providing a pandas Dataframe whose index is not starting from 0 as the input to
1191
1223
  the `ModelVersion.run`.
1192
1224
 
1193
1225
  ### New Features
1194
1226
 
1195
- - Feature Store: Add overloads to APIs accept both object and name/version. Impacted APIs include read_feature_view(),
1227
+ * Feature Store: Add overloads to APIs accept both object and name/version. Impacted APIs include read_feature_view(),
1196
1228
  refresh_feature_view(), get_refresh_history(), resume_feature_view(), suspend_feature_view(), delete_feature_view().
1197
- - Feature Store: Add docstring inline examples for all public APIs.
1198
- - Feature Store: Add new utility class `ExampleHelper` to help with load source data to simplify public notebooks.
1199
- - Registry: Option to `enable_explainability` when registering XGBoost models as a pre-PuPr feature.
1200
- - Feature Store: add new API `update_entity()`.
1201
- - Registry: Option to `enable_explainability` when registering Catboost models as a pre-PuPr feature.
1202
- - Feature Store: Add new argument warehouse to FeatureView constructor to overwrite the default warehouse. Also add
1229
+ * Feature Store: Add docstring inline examples for all public APIs.
1230
+ * Feature Store: Add new utility class `ExampleHelper` to help with load source data to simplify public notebooks.
1231
+ * Registry: Option to `enable_explainability` when registering XGBoost models as a pre-PuPr feature.
1232
+ * Feature Store: add new API `update_entity()`.
1233
+ * Registry: Option to `enable_explainability` when registering Catboost models as a pre-PuPr feature.
1234
+ * Feature Store: Add new argument warehouse to FeatureView constructor to overwrite the default warehouse. Also add
1203
1235
  a new column 'warehouse' to the output of list_feature_views().
1204
- - Registry: Add support for logging model from a model version.
1205
- - Modeling: Distributed Hyperparameter Optimization now announce GA refresh version. The latest memory efficient version
1236
+ * Registry: Add support for logging model from a model version.
1237
+ * Modeling: Distributed Hyperparameter Optimization now announce GA refresh version. The latest memory efficient version
1206
1238
  will not have the 10GB training limitation for dataset any more. To turn off, please run
1207
1239
  `
1208
1240
  from snowflake.ml.modeling._internal.snowpark_implementations import (
@@ -1210,106 +1242,106 @@ data from explainablity and data lineage.
1210
1242
  )
1211
1243
  distributed_hpo_trainer.ENABLE_EFFICIENT_MEMORY_USAGE = False
1212
1244
  `
1213
- - Registry: Option to `enable_explainability` when registering LightGBM models as a pre-PuPr feature.
1214
- - Data: Add new `snowflake.ml.data` preview module which contains data reading utilities like `DataConnector`
1215
- - `DataConnector` provides efficient connectors from Snowpark `DataFrame`
1245
+ * Registry: Option to `enable_explainability` when registering LightGBM models as a pre-PuPr feature.
1246
+ * Data: Add new `snowflake.ml.data` preview module which contains data reading utilities like `DataConnector`
1247
+ * `DataConnector` provides efficient connectors from Snowpark `DataFrame`
1216
1248
  and Snowpark ML `Dataset` to external frameworks like PyTorch, TensorFlow, and Pandas. Create `DataConnector`
1217
1249
  instances using the classmethod constructors `DataConnector.from_dataset()` and `DataConnector.from_dataframe()`.
1218
- - Data: Add new `DataConnector.from_sources()` classmethod constructor for constructing from `DataSource` objects.
1219
- - Data: Add new `ingestor_class` arg to `DataConnector` classmethod constructors for easier `DataIngestor` injection.
1220
- - Dataset: `DatasetReader` now subclasses new `DataConnector` class.
1221
- - Add optional `limit` arg to `DatasetReader.to_pandas()`
1250
+ * Data: Add new `DataConnector.from_sources()` classmethod constructor for constructing from `DataSource` objects.
1251
+ * Data: Add new `ingestor_class` arg to `DataConnector` classmethod constructors for easier `DataIngestor` injection.
1252
+ * Dataset: `DatasetReader` now subclasses new `DataConnector` class.
1253
+ * Add optional `limit` arg to `DatasetReader.to_pandas()`
1222
1254
 
1223
1255
  ### Behavior Changes
1224
1256
 
1225
- - Feature Store: change some positional parameters to keyword arguments in following APIs:
1226
- - Entity(): desc.
1227
- - FeatureView(): timestamp_col, refresh_freq, desc.
1228
- - FeatureStore(): creation_mode.
1229
- - update_entity(): desc.
1230
- - register_feature_view(): block, overwrite.
1231
- - list_feature_views(): entity_name, feature_view_name.
1232
- - get_refresh_history(): verbose.
1233
- - retrieve_feature_values(): spine_timestamp_col, exclude_columns, include_feature_view_timestamp_col.
1234
- - generate_training_set(): save_as, spine_timestamp_col, spine_label_cols, exclude_columns,
1257
+ * Feature Store: change some positional parameters to keyword arguments in following APIs:
1258
+ * Entity(): desc.
1259
+ * FeatureView(): timestamp_col, refresh_freq, desc.
1260
+ * FeatureStore(): creation_mode.
1261
+ * update_entity(): desc.
1262
+ * register_feature_view(): block, overwrite.
1263
+ * list_feature_views(): entity_name, feature_view_name.
1264
+ * get_refresh_history(): verbose.
1265
+ * retrieve_feature_values(): spine_timestamp_col, exclude_columns, include_feature_view_timestamp_col.
1266
+ * generate_training_set(): save_as, spine_timestamp_col, spine_label_cols, exclude_columns,
1235
1267
  include_feature_view_timestamp_col.
1236
- - generate_dataset(): version, spine_timestamp_col, spine_label_cols, exclude_columns,
1268
+ * generate_dataset(): version, spine_timestamp_col, spine_label_cols, exclude_columns,
1237
1269
  include_feature_view_timestamp_col, desc, output_type.
1238
1270
 
1239
1271
  ## 1.5.4 (2024-07-11)
1240
1272
 
1241
1273
  ### Bug Fixes
1242
1274
 
1243
- - Model Registry (PrPr): Fix 401 Unauthorized issue when deploying model to SPCS.
1244
- - Feature Store: Downgrades exceptions to warnings for few property setters in feature view. Now you can set
1275
+ * Model Registry (PrPr): Fix 401 Unauthorized issue when deploying model to SPCS.
1276
+ * Feature Store: Downgrades exceptions to warnings for few property setters in feature view. Now you can set
1245
1277
  desc, refresh_freq and warehouse for draft feature views.
1246
- - Modeling: Fix an issue with calling `OrdinalEncoder` with `categories` as a dictionary and a pandas DataFrame
1247
- - Modeling: Fix an issue with calling `OneHotEncoder` with `categories` as a dictionary and a pandas DataFrame
1278
+ * Modeling: Fix an issue with calling `OrdinalEncoder` with `categories` as a dictionary and a pandas DataFrame
1279
+ * Modeling: Fix an issue with calling `OneHotEncoder` with `categories` as a dictionary and a pandas DataFrame
1248
1280
 
1249
1281
  ### New Features
1250
1282
 
1251
- - Registry: Allow overriding `device_map` and `device` when loading huggingface pipeline models.
1252
- - Registry: Add `set_alias` method to `ModelVersion` instance to set an alias to model version.
1253
- - Registry: Add `unset_alias` method to `ModelVersion` instance to unset an alias to model version.
1254
- - Registry: Add `partitioned_inference_api` allowing users to create partitioned inference functions in registered
1283
+ * Registry: Allow overriding `device_map` and `device` when loading huggingface pipeline models.
1284
+ * Registry: Add `set_alias` method to `ModelVersion` instance to set an alias to model version.
1285
+ * Registry: Add `unset_alias` method to `ModelVersion` instance to unset an alias to model version.
1286
+ * Registry: Add `partitioned_inference_api` allowing users to create partitioned inference functions in registered
1255
1287
  models. Enable model inference methods with table functions with vectorized process methods in registered models.
1256
- - Feature Store: add 3 more columns: refresh_freq, refresh_mode and scheduling_state to the result of
1288
+ * Feature Store: add 3 more columns: refresh_freq, refresh_mode and scheduling_state to the result of
1257
1289
  `list_feature_views()`.
1258
- - Feature Store: `update_feature_view()` supports updating description.
1259
- - Feature Store: add new API `refresh_feature_view()`.
1260
- - Feature Store: add new API `get_refresh_history()`.
1261
- - Feature Store: Add `generate_training_set()` API for generating table-backed feature snapshots.
1262
- - Feature Store: Add `DeprecationWarning` for `generate_dataset(..., output_type="table")`.
1263
- - Feature Store: `update_feature_view()` supports updating description.
1264
- - Feature Store: add new API `refresh_feature_view()`.
1265
- - Feature Store: add new API `get_refresh_history()`.
1266
- - Model Development: OrdinalEncoder supports a list of array-likes for `categories` argument.
1267
- - Model Development: OneHotEncoder supports a list of array-likes for `categories` argument.
1290
+ * Feature Store: `update_feature_view()` supports updating description.
1291
+ * Feature Store: add new API `refresh_feature_view()`.
1292
+ * Feature Store: add new API `get_refresh_history()`.
1293
+ * Feature Store: Add `generate_training_set()` API for generating table-backed feature snapshots.
1294
+ * Feature Store: Add `DeprecationWarning` for `generate_dataset(..., output_type="table")`.
1295
+ * Feature Store: `update_feature_view()` supports updating description.
1296
+ * Feature Store: add new API `refresh_feature_view()`.
1297
+ * Feature Store: add new API `get_refresh_history()`.
1298
+ * Model Development: OrdinalEncoder supports a list of array-likes for `categories` argument.
1299
+ * Model Development: OneHotEncoder supports a list of array-likes for `categories` argument.
1268
1300
 
1269
1301
  ## 1.5.3 (06-17-2024)
1270
1302
 
1271
1303
  ### Bug Fixes
1272
1304
 
1273
- - Modeling: Fix an issue causing lineage information to be missing for
1305
+ * Modeling: Fix an issue causing lineage information to be missing for
1274
1306
  `Pipeline`, `GridSearchCV` , `SimpleImputer`, and `RandomizedSearchCV`
1275
- - Registry: Fix an issue that leads to incorrect result when using pandas Dataframe with over 100, 000 rows as the input
1307
+ * Registry: Fix an issue that leads to incorrect result when using pandas Dataframe with over 100, 000 rows as the input
1276
1308
  of `ModelVersion.run` method in Stored Procedure.
1277
1309
 
1278
1310
  ### New Features
1279
1311
 
1280
- - Registry: Add support for TIMESTAMP_NTZ model signature data type, allowing timestamp input and output.
1281
- - Dataset: Add `DatasetVersion.label_cols` and `DatasetVersion.exclude_cols` properties.
1312
+ * Registry: Add support for TIMESTAMP_NTZ model signature data type, allowing timestamp input and output.
1313
+ * Dataset: Add `DatasetVersion.label_cols` and `DatasetVersion.exclude_cols` properties.
1282
1314
 
1283
1315
  ## 1.5.2 (06-10-2024)
1284
1316
 
1285
1317
  ### Bug Fixes
1286
1318
 
1287
- - Registry: Fix an issue that leads to unable to log model in store procedure.
1288
- - Modeling: Quick fix `import snowflake.ml.modeling.parameters.enable_anonymous_sproc` cannot be imported due to package
1319
+ * Registry: Fix an issue that leads to unable to log model in store procedure.
1320
+ * Modeling: Quick fix `import snowflake.ml.modeling.parameters.enable_anonymous_sproc` cannot be imported due to package
1289
1321
  dependency error.
1290
1322
 
1291
1323
  ## 1.5.1 (05-22-2024)
1292
1324
 
1293
1325
  ### Bug Fixes
1294
1326
 
1295
- - Dataset: Fix `snowflake.connector.errors.DataError: Query Result did not match expected number of rows` when accessing
1327
+ * Dataset: Fix `snowflake.connector.errors.DataError: Query Result did not match expected number of rows` when accessing
1296
1328
  DatasetVersion properties when case insensitive `SHOW VERSIONS IN DATASET` check matches multiple version names.
1297
- - Dataset: Fix bug in SnowFS bulk file read when used with DuckDB
1298
- - Registry: Fixed a bug when loading old models.
1299
- - Lineage: Fix Dataset source lineage propagation through `snowpark.DataFrame` transformations
1329
+ * Dataset: Fix bug in SnowFS bulk file read when used with DuckDB
1330
+ * Registry: Fixed a bug when loading old models.
1331
+ * Lineage: Fix Dataset source lineage propagation through `snowpark.DataFrame` transformations
1300
1332
 
1301
1333
  ### Behavior Changes
1302
1334
 
1303
- - Feature Store: convert clear() into a private function. Also make it deletes feature views and entities only.
1304
- - Feature Store: Use NULL as default value for timestamp tag value.
1335
+ * Feature Store: convert clear() into a private function. Also make it deletes feature views and entities only.
1336
+ * Feature Store: Use NULL as default value for timestamp tag value.
1305
1337
 
1306
1338
  ### New Features
1307
1339
 
1308
- - Feature Store: Added new `snowflake.ml.feature_store.setup_feature_store()` API to assist Feature Store RBAC setup.
1309
- - Feature Store: Add `output_type` argument to `FeatureStore.generate_dataset()` to allow generating data snapshots
1340
+ * Feature Store: Added new `snowflake.ml.feature_store.setup_feature_store()` API to assist Feature Store RBAC setup.
1341
+ * Feature Store: Add `output_type` argument to `FeatureStore.generate_dataset()` to allow generating data snapshots
1310
1342
  as Datasets or Tables.
1311
- - Registry: `log_model`, `get_model`, `delete_model` now supports fully qualified name.
1312
- - Modeling: Supports anonymous stored procedure during fit calls so that modeling would not require sufficient
1343
+ * Registry: `log_model`, `get_model`, `delete_model` now supports fully qualified name.
1344
+ * Modeling: Supports anonymous stored procedure during fit calls so that modeling would not require sufficient
1313
1345
  permissions to operate on schema. Please call
1314
1346
  `import snowflake.ml.modeling.parameters.enable_anonymous_sproc # noqa: F401`
1315
1347
 
@@ -1317,11 +1349,11 @@ data from explainablity and data lineage.
1317
1349
 
1318
1350
  ### Bug Fixes
1319
1351
 
1320
- - Registry: Fix invalid parameter 'SHOW_MODEL_DETAILS_IN_SHOW_VERSIONS_IN_MODEL' error.
1352
+ * Registry: Fix invalid parameter 'SHOW_MODEL_DETAILS_IN_SHOW_VERSIONS_IN_MODEL' error.
1321
1353
 
1322
1354
  ### Behavior Changes
1323
1355
 
1324
- - Model Development: The behavior of `fit_transform` for all estimators is changed.
1356
+ * Model Development: The behavior of `fit_transform` for all estimators is changed.
1325
1357
  Firstly, it will cover all the estimator that contains this function,
1326
1358
  secondly, the output would be the union of pandas DataFrame and snowpark DataFrame.
1327
1359
 
@@ -1329,167 +1361,167 @@ data from explainablity and data lineage.
1329
1361
 
1330
1362
  `snowflake.ml.registry.artifact` and related `snowflake.ml.model_registry.ModelRegistry` APIs have been removed.
1331
1363
 
1332
- - Removed `snowflake.ml.registry.artifact` module.
1333
- - Removed `ModelRegistry.log_artifact()`, `ModelRegistry.list_artifacts()`, `ModelRegistry.get_artifact()`
1334
- - Removed `artifacts` argument from `ModelRegistry.log_model()`
1364
+ * Removed `snowflake.ml.registry.artifact` module.
1365
+ * Removed `ModelRegistry.log_artifact()`, `ModelRegistry.list_artifacts()`, `ModelRegistry.get_artifact()`
1366
+ * Removed `artifacts` argument from `ModelRegistry.log_model()`
1335
1367
 
1336
1368
  #### Dataset (PrPr)
1337
1369
 
1338
1370
  `snowflake.ml.dataset.Dataset` has been redesigned to be backed by Snowflake Dataset entities.
1339
1371
 
1340
- - New `Dataset`s can be created with `Dataset.create()` and existing `Dataset`s may be loaded
1372
+ * New `Dataset`s can be created with `Dataset.create()` and existing `Dataset`s may be loaded
1341
1373
  with `Dataset.load()`.
1342
- - `Dataset`s now maintain an immutable `selected_version` state. The `Dataset.create_version()` and
1374
+ * `Dataset`s now maintain an immutable `selected_version` state. The `Dataset.create_version()` and
1343
1375
  `Dataset.load_version()` APIs return new `Dataset` objects with the requested `selected_version` state.
1344
- - Added `dataset.create_from_dataframe()` and `dataset.load_dataset()` convenience APIs as a shortcut
1376
+ * Added `dataset.create_from_dataframe()` and `dataset.load_dataset()` convenience APIs as a shortcut
1345
1377
  to creating and loading `Dataset`s with a pre-selected version.
1346
- - `Dataset.materialized_table` and `Dataset.snapshot_table` no longer exist with `Dataset.fully_qualified_name`
1378
+ * `Dataset.materialized_table` and `Dataset.snapshot_table` no longer exist with `Dataset.fully_qualified_name`
1347
1379
  as the closest equivalent.
1348
- - `Dataset.df` no longer exists. Instead, use `DatasetReader.read.to_snowpark_dataframe()`.
1349
- - `Dataset.owner` has been moved to `Dataset.selected_version.owner`
1350
- - `Dataset.desc` has been moved to `DatasetVersion.selected_version.comment`
1351
- - `Dataset.timestamp_col`, `Dataset.label_cols`, `Dataset.feature_store_metadata`, and
1380
+ * `Dataset.df` no longer exists. Instead, use `DatasetReader.read.to_snowpark_dataframe()`.
1381
+ * `Dataset.owner` has been moved to `Dataset.selected_version.owner`
1382
+ * `Dataset.desc` has been moved to `DatasetVersion.selected_version.comment`
1383
+ * `Dataset.timestamp_col`, `Dataset.label_cols`, `Dataset.feature_store_metadata`, and
1352
1384
  `Dataset.schema_version` have been removed.
1353
1385
 
1354
1386
  #### Feature Store (PrPr)
1355
1387
 
1356
- - `FeatureStore.generate_dataset` argument list has been changed to match the new
1388
+ * `FeatureStore.generate_dataset` argument list has been changed to match the new
1357
1389
  `snowflake.ml.dataset.Dataset` definition
1358
1390
 
1359
- - `materialized_table` has been removed and replaced with `name` and `version`.
1360
- - `name` moved to first positional argument
1361
- - `save_mode` has been removed as `merge` behavior is no longer supported. The new behavior is always `errorifexists`.
1391
+ * `materialized_table` has been removed and replaced with `name` and `version`.
1392
+ * `name` moved to first positional argument
1393
+ * `save_mode` has been removed as `merge` behavior is no longer supported. The new behavior is always `errorifexists`.
1362
1394
 
1363
- - Change feature view version type from str to `FeatureViewVersion`. It is a restricted string literal.
1395
+ * Change feature view version type from str to `FeatureViewVersion`. It is a restricted string literal.
1364
1396
 
1365
- - Remove as_dataframe arg from FeatureStore.list_feature_views(), now always returns result as DataFrame.
1397
+ * Remove as_dataframe arg from FeatureStore.list_feature_views(), now always returns result as DataFrame.
1366
1398
 
1367
- - Combines few metadata tags into a new tag: SNOWML_FEATURE_VIEW_METADATA. This will make previously created feature views
1399
+ * Combines few metadata tags into a new tag: SNOWML_FEATURE_VIEW_METADATA. This will make previously created feature views
1368
1400
  not readable by new SDK.
1369
1401
 
1370
1402
  ### New Features
1371
1403
 
1372
- - Registry: Add `export` method to `ModelVersion` instance to export model files.
1373
- - Registry: Add `load` method to `ModelVersion` instance to load the underlying object from the model.
1374
- - Registry: Add `Model.rename` method to `Model` instance to rename or move a model.
1404
+ * Registry: Add `export` method to `ModelVersion` instance to export model files.
1405
+ * Registry: Add `load` method to `ModelVersion` instance to load the underlying object from the model.
1406
+ * Registry: Add `Model.rename` method to `Model` instance to rename or move a model.
1375
1407
 
1376
1408
  #### Dataset (PrPr)
1377
1409
 
1378
- - Added Snowpark DataFrame integration using `Dataset.read.to_snowpark_dataframe()`
1379
- - Added Pandas DataFrame integration using `Dataset.read.to_pandas()`
1380
- - Added PyTorch and TensorFlow integrations using `Dataset.read.to_torch_datapipe()`
1410
+ * Added Snowpark DataFrame integration using `Dataset.read.to_snowpark_dataframe()`
1411
+ * Added Pandas DataFrame integration using `Dataset.read.to_pandas()`
1412
+ * Added PyTorch and TensorFlow integrations using `Dataset.read.to_torch_datapipe()`
1381
1413
  and `Dataset.read.to_tf_dataset()` respectively.
1382
- - Added `fsspec` style file integration using `Dataset.read.files()` and `Dataset.read.filesystem()`
1414
+ * Added `fsspec` style file integration using `Dataset.read.files()` and `Dataset.read.filesystem()`
1383
1415
 
1384
1416
  #### Feature Store
1385
1417
 
1386
- - use new tag_reference_internal to speed up metadata lookup.
1418
+ * use new tag_reference_internal to speed up metadata lookup.
1387
1419
 
1388
1420
  ## 1.4.1 (2024-04-18)
1389
1421
 
1390
1422
  ### New Features
1391
1423
 
1392
- - Registry: Add support for `catboost` model (`catboost.CatBoostClassifier`, `catboost.CatBoostRegressor`).
1393
- - Registry: Add support for `lightgbm` model (`lightgbm.Booster`, `lightgbm.LightGBMClassifier`, `lightgbm.LightGBMRegressor`).
1424
+ * Registry: Add support for `catboost` model (`catboost.CatBoostClassifier`, `catboost.CatBoostRegressor`).
1425
+ * Registry: Add support for `lightgbm` model (`lightgbm.Booster`, `lightgbm.LightGBMClassifier`, `lightgbm.LightGBMRegressor`).
1394
1426
 
1395
1427
  ### Bug Fixes
1396
1428
 
1397
- - Registry: Fix a bug that leads to relax_version option is not working.
1429
+ * Registry: Fix a bug that leads to relax_version option is not working.
1398
1430
 
1399
1431
  ### Behavior changes
1400
1432
 
1401
- - Feature Store: update_feature_view takes refresh_freq and warehouse as argument.
1433
+ * Feature Store: update_feature_view takes refresh_freq and warehouse as argument.
1402
1434
 
1403
1435
  ## 1.4.0 (2024-04-08)
1404
1436
 
1405
1437
  ### Bug Fixes
1406
1438
 
1407
- - Registry: Fix a bug when multiple models are being called from the same query, models other than the first one will
1439
+ * Registry: Fix a bug when multiple models are being called from the same query, models other than the first one will
1408
1440
  have incorrect result. This fix only works for newly logged model.
1409
- - Modeling: When registering a model, only method(s) that is mentioned in `save_model` would be added to model signature
1441
+ * Modeling: When registering a model, only method(s) that is mentioned in `save_model` would be added to model signature
1410
1442
  in SnowML models.
1411
- - Modeling: Fix a bug that when n_jobs is not 1, model cannot execute methods such as
1443
+ * Modeling: Fix a bug that when n_jobs is not 1, model cannot execute methods such as
1412
1444
  predict, predict_log_proba, and other batch inference methods. The n_jobs would automatically
1413
1445
  set to 1 because vectorized udf currently doesn't support joblib parallel backend.
1414
- - Modeling: Fix a bug that batch inference methods cannot infer the datatype when the first row of data contains NULL.
1415
- - Modeling: Matches Distributed HPO output column names with the snowflake identifier.
1416
- - Modeling: Relax package versions for all Distributed HPO methods if the installed version
1446
+ * Modeling: Fix a bug that batch inference methods cannot infer the datatype when the first row of data contains NULL.
1447
+ * Modeling: Matches Distributed HPO output column names with the snowflake identifier.
1448
+ * Modeling: Relax package versions for all Distributed HPO methods if the installed version
1417
1449
  is not available in the Snowflake conda channel
1418
- - Modeling: Add sklearn as required dependency for LightGBM package.
1450
+ * Modeling: Add sklearn as required dependency for LightGBM package.
1419
1451
 
1420
1452
  ### Behavior Changes
1421
1453
 
1422
- - Registry: `apply` method is no longer by default logged when logging a xgboost model. If that is required, it could
1454
+ * Registry: `apply` method is no longer by default logged when logging a xgboost model. If that is required, it could
1423
1455
  be specified manually when logging the model by `log_model(..., options={"target_methods": ["apply", ...]})`.
1424
- - Feature Store: register_entity returns an entity object.
1425
- - Feature Store: register_feature_view `block=true` becomes default.
1456
+ * Feature Store: register_entity returns an entity object.
1457
+ * Feature Store: register_feature_view `block=true` becomes default.
1426
1458
 
1427
1459
  ### New Features
1428
1460
 
1429
- - Registry: Add support for `sentence-transformers` model (`sentence_transformers.SentenceTransformer`).
1430
- - Registry: Now version name is no longer required when logging a model. If not provided, a random human readable ID
1461
+ * Registry: Add support for `sentence-transformers` model (`sentence_transformers.SentenceTransformer`).
1462
+ * Registry: Now version name is no longer required when logging a model. If not provided, a random human readable ID
1431
1463
  will be generated.
1432
1464
 
1433
1465
  ## 1.3.1 (2024-03-21)
1434
1466
 
1435
1467
  ### New Features
1436
1468
 
1437
- - FileSet: `snowflake.ml.fileset.sfcfs.SFFileSystem` can now be used in UDFs and stored procedures.
1469
+ * FileSet: `snowflake.ml.fileset.sfcfs.SFFileSystem` can now be used in UDFs and stored procedures.
1438
1470
 
1439
1471
  ## 1.3.0 (2024-03-12)
1440
1472
 
1441
1473
  ### Bug Fixes
1442
1474
 
1443
- - Registry: Fix a bug that leads to module in `code_paths` when `log_model` cannot be correctly imported.
1444
- - Registry: Fix incorrect error message when validating input Snowpark DataFrame with array feature.
1445
- - Model Registry: Fix an issue when deploying a model to SPCS that some files do not have proper permission.
1446
- - Model Development: Relax package versions for all inference methods if the installed version
1475
+ * Registry: Fix a bug that leads to module in `code_paths` when `log_model` cannot be correctly imported.
1476
+ * Registry: Fix incorrect error message when validating input Snowpark DataFrame with array feature.
1477
+ * Model Registry: Fix an issue when deploying a model to SPCS that some files do not have proper permission.
1478
+ * Model Development: Relax package versions for all inference methods if the installed version
1447
1479
  is not available in the Snowflake conda channel
1448
1480
 
1449
1481
  ### Behavior Changes
1450
1482
 
1451
- - Registry: When running the method of a model, the value range based input validation to avoid input from overflowing
1483
+ * Registry: When running the method of a model, the value range based input validation to avoid input from overflowing
1452
1484
  is now optional rather than enforced, this should improve the performance and should not lead to problem for most
1453
1485
  kinds of model. If you want to enable this check as previous, specify `strict_input_validation=True` when
1454
1486
  calling `run`.
1455
- - Registry: By default `relax_version=True` when logging a model instead of using the specific local dependency versions.
1487
+ * Registry: By default `relax_version=True` when logging a model instead of using the specific local dependency versions.
1456
1488
  This improves dependency versioning by using versions available in Snowflake. To switch back to the previous behavior
1457
1489
  and use specific local dependency versions, specify `relax_version=False` when calling `log_model`.
1458
- - Model Development: The behavior of `fit_predict` for all estimators is changed.
1490
+ * Model Development: The behavior of `fit_predict` for all estimators is changed.
1459
1491
  Firstly, it will cover all the estimator that contains this function,
1460
1492
  secondly, the output would be the union of pandas DataFrame and snowpark DataFrame.
1461
1493
 
1462
1494
  ### New Features
1463
1495
 
1464
- - FileSet: `snowflake.ml.fileset.sfcfs.SFFileSystem` can now be serialized with `pickle`.
1496
+ * FileSet: `snowflake.ml.fileset.sfcfs.SFFileSystem` can now be serialized with `pickle`.
1465
1497
 
1466
1498
  ## 1.2.3 (2024-02-26)
1467
1499
 
1468
1500
  ### Bug Fixes
1469
1501
 
1470
- - Registry: Now when providing Decimal Type column to a DOUBLE or FLOAT feature will not error out but auto cast with
1502
+ * Registry: Now when providing Decimal Type column to a DOUBLE or FLOAT feature will not error out but auto cast with
1471
1503
  warnings.
1472
- - Registry: Improve the error message when specifying currently unsupported `pip_requirements` argument.
1473
- - Model Development: Fix precision_recall_fscore_support incorrect results when `average="samples"`.
1474
- - Model Registry: Fix an issue that leads to description, metrics or tags are not correctly returned in newly created
1504
+ * Registry: Improve the error message when specifying currently unsupported `pip_requirements` argument.
1505
+ * Model Development: Fix precision_recall_fscore_support incorrect results when `average="samples"`.
1506
+ * Model Registry: Fix an issue that leads to description, metrics or tags are not correctly returned in newly created
1475
1507
  Model Registry (PrPr) due to Snowflake BCR [2024_01](https://docs.snowflake.com/en/release-notes/bcr-bundles/2024_01/bcr-1483)
1476
1508
 
1477
1509
  ### Behavior Changes
1478
1510
 
1479
- - Feature Store: `FeatureStore.suspend_feature_view` and `FeatureStore.resume_feature_view` doesn't mutate input feature
1511
+ * Feature Store: `FeatureStore.suspend_feature_view` and `FeatureStore.resume_feature_view` doesn't mutate input feature
1480
1512
  view argument any more. The updated status only reflected in the returned feature view object.
1481
1513
 
1482
1514
  ### New Features
1483
1515
 
1484
- - Model Development: support `score_samples` method for all the classes, including Pipeline,
1516
+ * Model Development: support `score_samples` method for all the classes, including Pipeline,
1485
1517
  GridSearchCV, RandomizedSearchCV, PCA, IsolationForest, ...
1486
- - Registry: Support deleting a version of a model.
1518
+ * Registry: Support deleting a version of a model.
1487
1519
 
1488
1520
  ## 1.2.2 (2024-02-13)
1489
1521
 
1490
1522
  ### New Features
1491
1523
 
1492
- - Model Registry: Support providing external access integrations when deploying a model to SPCS. This will help and be
1524
+ * Model Registry: Support providing external access integrations when deploying a model to SPCS. This will help and be
1493
1525
  required to make sure the deploying process work as long as SPCS will by default deny all network connections. The
1494
1526
  following endpoints must be allowed to make deployment work: docker.com:80, docker.com:443, anaconda.com:80,
1495
1527
  anaconda.com:443, anaconda.org:80, anaconda.org:443, pypi.org:80, pypi.org:443. If you are using
@@ -1500,30 +1532,30 @@ not readable by new SDK.
1500
1532
 
1501
1533
  ### New Features
1502
1534
 
1503
- - Model Development: Infers output column data type for transformers when possible.
1504
- - Registry: `relax_version` option is available in the `options` argument when logging the model.
1535
+ * Model Development: Infers output column data type for transformers when possible.
1536
+ * Registry: `relax_version` option is available in the `options` argument when logging the model.
1505
1537
 
1506
1538
  ## 1.2.0 (2024-01-11)
1507
1539
 
1508
1540
  ### Bug Fixes
1509
1541
 
1510
- - Model Registry: Fix "XGBoost version not compiled with GPU support" error when running CPU inference against open-source
1542
+ * Model Registry: Fix "XGBoost version not compiled with GPU support" error when running CPU inference against open-source
1511
1543
  XGBoost models deployed to SPCS.
1512
- - Model Registry: Fix model deployment to SPCS on Windows machines.
1544
+ * Model Registry: Fix model deployment to SPCS on Windows machines.
1513
1545
 
1514
1546
  ### New Features
1515
1547
 
1516
- - Model Development: Introduced XGBoost external memory training feature. This feature enables training XGBoost models
1548
+ * Model Development: Introduced XGBoost external memory training feature. This feature enables training XGBoost models
1517
1549
  on large datasets that don't fit into memory.
1518
- - Registry: New Registry class named `snowflake.ml.registry.Registry` providing similar APIs as the old one but works
1550
+ * Registry: New Registry class named `snowflake.ml.registry.Registry` providing similar APIs as the old one but works
1519
1551
  with new MODEL object in Snowflake SQL. Also, we are providing`snowflake.ml.model.Model` and
1520
1552
  `snowflake.ml.model.ModelVersion` to represent a model and a specific version of a model.
1521
- - Model Development: Add support for `fit_predict` method in `AgglomerativeClustering`, `DBSCAN`, and `OPTICS` classes;
1522
- - Model Development: Add support for `fit_transform` method in `MDS`, `SpectralEmbedding` and `TSNE` class.
1553
+ * Model Development: Add support for `fit_predict` method in `AgglomerativeClustering`, `DBSCAN`, and `OPTICS` classes;
1554
+ * Model Development: Add support for `fit_transform` method in `MDS`, `SpectralEmbedding` and `TSNE` class.
1523
1555
 
1524
1556
  ### Additional Notes
1525
1557
 
1526
- - Model Registry: The `snowflake.ml.registry.model_registry.ModelRegistry` has been deprecated starting from version
1558
+ * Model Registry: The `snowflake.ml.registry.model_registry.ModelRegistry` has been deprecated starting from version
1527
1559
  1.2.0. It will stay in the Private Preview phase. For future implementations, kindly utilize
1528
1560
  `snowflake.ml.registry.Registry`, except when specifically required. The old model registry will be removed once all
1529
1561
  its primary functionalities are fully integrated into the new registry.
@@ -1532,30 +1564,30 @@ not readable by new SDK.
1532
1564
 
1533
1565
  ### Bug Fixes
1534
1566
 
1535
- - Generic: Fix the issue that stack trace is hidden by telemetry unexpectedly.
1536
- - Model Development: Execute model signature inference without materializing full dataframe in memory.
1537
- - Model Registry: Fix occasional 'snowflake-ml-python library does not exist' error when deploying to SPCS.
1567
+ * Generic: Fix the issue that stack trace is hidden by telemetry unexpectedly.
1568
+ * Model Development: Execute model signature inference without materializing full dataframe in memory.
1569
+ * Model Registry: Fix occasional 'snowflake-ml-python library does not exist' error when deploying to SPCS.
1538
1570
 
1539
1571
  ### Behavior Changes
1540
1572
 
1541
- - Model Registry: When calling `predict` with Snowpark DataFrame, both inferred or normalized column names are accepted.
1542
- - Model Registry: When logging a Snowpark ML Modeling Model, sample input data or manually provided signature will be
1573
+ * Model Registry: When calling `predict` with Snowpark DataFrame, both inferred or normalized column names are accepted.
1574
+ * Model Registry: When logging a Snowpark ML Modeling Model, sample input data or manually provided signature will be
1543
1575
  ignored since they are not necessary.
1544
1576
 
1545
1577
  ### New Features
1546
1578
 
1547
- - Model Development: SQL implementation of binary `precision_score` metric.
1579
+ * Model Development: SQL implementation of binary `precision_score` metric.
1548
1580
 
1549
1581
  ## 1.1.1 (2023-12-05)
1550
1582
 
1551
1583
  ### Bug Fixes
1552
1584
 
1553
- - Model Registry: The `predict` target method on registered models is now compatible with unsupervised estimators.
1554
- - Model Development: Fix confusion_matrix incorrect results when the row number cannot be divided by the batch size.
1585
+ * Model Registry: The `predict` target method on registered models is now compatible with unsupervised estimators.
1586
+ * Model Development: Fix confusion_matrix incorrect results when the row number cannot be divided by the batch size.
1555
1587
 
1556
1588
  ### New Features
1557
1589
 
1558
- - Introduced passthrough_col param in Modeling API. This new param is helpful in scenarios
1590
+ * Introduced passthrough_col param in Modeling API. This new param is helpful in scenarios
1559
1591
  requiring automatic input_cols inference, but need to avoid using specific
1560
1592
  columns, like index columns, during training or inference.
1561
1593
 
@@ -1563,165 +1595,165 @@ not readable by new SDK.
1563
1595
 
1564
1596
  ### Bug Fixes
1565
1597
 
1566
- - Model Registry: Fix panda dataframe input not handling first row properly.
1567
- - Model Development: OrdinalEncoder and LabelEncoder output_columns do not need to be valid snowflake identifiers. They
1598
+ * Model Registry: Fix panda dataframe input not handling first row properly.
1599
+ * Model Development: OrdinalEncoder and LabelEncoder output_columns do not need to be valid snowflake identifiers. They
1568
1600
  would previously be excluded if the normalized name did not match the name specified in output_columns.
1569
1601
 
1570
1602
  ### New Features
1571
1603
 
1572
- - Model Registry: Add support for invoking public endpoint on SPCS service, by providing a "enable_ingress" SPCS
1604
+ * Model Registry: Add support for invoking public endpoint on SPCS service, by providing a "enable_ingress" SPCS
1573
1605
  deployment option.
1574
- - Model Development: Add support for distributed HPO - GridSearchCV and RandomizedSearchCV execution will be
1606
+ * Model Development: Add support for distributed HPO - GridSearchCV and RandomizedSearchCV execution will be
1575
1607
  distributed on multi-node warehouses.
1576
1608
 
1577
1609
  ## 1.0.12 (2023-11-13)
1578
1610
 
1579
1611
  ### Bug Fixes
1580
1612
 
1581
- - Model Registry: Fix regression issue that container logging is not shown during model deployment to SPCS.
1582
- - Model Development: Enhance the column capacity of OrdinalEncoder.
1583
- - Model Registry: Fix unbound `batch_size` error when deploying a model other than Hugging Face Pipeline
1613
+ * Model Registry: Fix regression issue that container logging is not shown during model deployment to SPCS.
1614
+ * Model Development: Enhance the column capacity of OrdinalEncoder.
1615
+ * Model Registry: Fix unbound `batch_size` error when deploying a model other than Hugging Face Pipeline
1584
1616
  and LLM with GPU on SPCS.
1585
1617
 
1586
1618
  ### Behavior Changes
1587
1619
 
1588
- - Model Registry: Raise early error when deploying to SPCS with db/schema that starts with underscore.
1589
- - Model Registry: `conda-forge` channel is now automatically added to channel lists when deploying to SPCS.
1590
- - Model Registry: `relax_version` will not strip all version specifier, instead it will relax `==x.y.z` specifier to
1620
+ * Model Registry: Raise early error when deploying to SPCS with db/schema that starts with underscore.
1621
+ * Model Registry: `conda-forge` channel is now automatically added to channel lists when deploying to SPCS.
1622
+ * Model Registry: `relax_version` will not strip all version specifier, instead it will relax `==x.y.z` specifier to
1591
1623
  `>=x.y,<(x+1)`.
1592
- - Model Registry: Python with different patchlevel but the same major and minor will not result a warning when loading
1624
+ * Model Registry: Python with different patchlevel but the same major and minor will not result a warning when loading
1593
1625
  the model via Model Registry and would be considered to use when deploying to SPCS.
1594
- - Model Registry: When logging a `snowflake.ml.model.models.huggingface_pipeline.HuggingFacePipelineModel` object,
1626
+ * Model Registry: When logging a `snowflake.ml.model.models.huggingface_pipeline.HuggingFacePipelineModel` object,
1595
1627
  versions of local installed libraries won't be picked as dependencies of models, instead it will pick up some pre-
1596
1628
  defined dependencies to improve user experience.
1597
1629
 
1598
1630
  ### New Features
1599
1631
 
1600
- - Model Registry: Enable best-effort SPCS job/service log streaming when logging level is set to INFO.
1632
+ * Model Registry: Enable best-effort SPCS job/service log streaming when logging level is set to INFO.
1601
1633
 
1602
1634
  ## 1.0.11 (2023-10-27)
1603
1635
 
1604
1636
  ### New Features
1605
1637
 
1606
- - Model Registry: Add log_artifact() public method.
1607
- - Model Development: Add support for `kneighbors`.
1638
+ * Model Registry: Add log_artifact() public method.
1639
+ * Model Development: Add support for `kneighbors`.
1608
1640
 
1609
1641
  ### Behavior Changes
1610
1642
 
1611
- - Model Registry: Change log_model() argument from TrainingDataset to List of Artifact.
1612
- - Model Registry: Change get_training_dataset() to get_artifact().
1643
+ * Model Registry: Change log_model() argument from TrainingDataset to List of Artifact.
1644
+ * Model Registry: Change get_training_dataset() to get_artifact().
1613
1645
 
1614
1646
  ### Bug Fixes
1615
1647
 
1616
- - Model Development: Fix support for XGBoost and LightGBM models using SKLearn Grid Search and Randomized Search model selectors.
1617
- - Model Development: DecimalType is now supported as a DataType.
1618
- - Model Development: Fix metrics compatibility with Snowpark Dataframes that use Snowflake identifiers
1619
- - Model Registry: Resolve 'delete_deployment' not deleting the SPCS service in certain cases.
1648
+ * Model Development: Fix support for XGBoost and LightGBM models using SKLearn Grid Search and Randomized Search model selectors.
1649
+ * Model Development: DecimalType is now supported as a DataType.
1650
+ * Model Development: Fix metrics compatibility with Snowpark Dataframes that use Snowflake identifiers
1651
+ * Model Registry: Resolve 'delete_deployment' not deleting the SPCS service in certain cases.
1620
1652
 
1621
1653
  ## 1.0.10 (2023-10-13)
1622
1654
 
1623
1655
  ### Behavior Changes
1624
1656
 
1625
- - Model Development: precision_score, recall_score, f1_score, fbeta_score, precision_recall_fscore_support,
1657
+ * Model Development: precision_score, recall_score, f1_score, fbeta_score, precision_recall_fscore_support,
1626
1658
  mean_absolute_error, mean_squared_error, and mean_absolute_percentage_error metric calculations are now distributed.
1627
- - Model Registry: `deploy` will now return `Deployment` for deployment information.
1659
+ * Model Registry: `deploy` will now return `Deployment` for deployment information.
1628
1660
 
1629
1661
  ### New Features
1630
1662
 
1631
- - Model Registry: When the model signature is auto-inferred, it will be printed to the log for reference.
1632
- - Model Registry: For SPCS deployment, `Deployment` details will contains `image_name`, `service_spec` and `service_function_sql`.
1663
+ * Model Registry: When the model signature is auto-inferred, it will be printed to the log for reference.
1664
+ * Model Registry: For SPCS deployment, `Deployment` details will contains `image_name`, `service_spec` and `service_function_sql`.
1633
1665
 
1634
1666
  ### Bug Fixes
1635
1667
 
1636
- - Model Development: Fix an issue that leading to UTF-8 decoding errors when using modeling modules on Windows.
1637
- - Model Development: Fix an issue that alias definitions cause `SnowparkSQLUnexpectedAliasException` in inference.
1638
- - Model Registry: Fix an issue that signature inference could be incorrect when using Snowpark DataFrame as sample input.
1639
- - Model Registry: Fix too strict data type validation when predicting. Now, for example, if you have a INT8
1668
+ * Model Development: Fix an issue that leading to UTF-8 decoding errors when using modeling modules on Windows.
1669
+ * Model Development: Fix an issue that alias definitions cause `SnowparkSQLUnexpectedAliasException` in inference.
1670
+ * Model Registry: Fix an issue that signature inference could be incorrect when using Snowpark DataFrame as sample input.
1671
+ * Model Registry: Fix too strict data type validation when predicting. Now, for example, if you have a INT8
1640
1672
  type feature in the signature, if providing a INT64 dataframe but all values are within the range, it would not fail.
1641
1673
 
1642
1674
  ## 1.0.9 (2023-09-28)
1643
1675
 
1644
1676
  ### Behavior Changes
1645
1677
 
1646
- - Model Development: log_loss metric calculation is now distributed.
1678
+ * Model Development: log_loss metric calculation is now distributed.
1647
1679
 
1648
1680
  ### Bug Fixes
1649
1681
 
1650
- - Model Registry: Fix an issue that building images fails with specific docker setup.
1651
- - Model Registry: Fix an issue that unable to embed local ML library when the library is imported by `zipimport`.
1652
- - Model Registry: Fix out-of-date doc about `platform` argument in the `deploy` function.
1653
- - Model Registry: Fix an issue that unable to deploy a GPU-trained PyTorch model to a platform where GPU is not available.
1682
+ * Model Registry: Fix an issue that building images fails with specific docker setup.
1683
+ * Model Registry: Fix an issue that unable to embed local ML library when the library is imported by `zipimport`.
1684
+ * Model Registry: Fix out-of-date doc about `platform` argument in the `deploy` function.
1685
+ * Model Registry: Fix an issue that unable to deploy a GPU-trained PyTorch model to a platform where GPU is not available.
1654
1686
 
1655
1687
  ## 1.0.8 (2023-09-15)
1656
1688
 
1657
1689
  ### Bug Fixes
1658
1690
 
1659
- - Model Development: Ordinal encoder can be used with mixed input column types.
1660
- - Model Development: Fix an issue when the sklearn default value is `np.nan`.
1661
- - Model Registry: Fix an issue that incorrect docker executable is used when building images.
1662
- - Model Registry: Fix an issue that specifying `token` argument when using
1691
+ * Model Development: Ordinal encoder can be used with mixed input column types.
1692
+ * Model Development: Fix an issue when the sklearn default value is `np.nan`.
1693
+ * Model Registry: Fix an issue that incorrect docker executable is used when building images.
1694
+ * Model Registry: Fix an issue that specifying `token` argument when using
1663
1695
  `snowflake.ml.model.models.huggingface_pipeline.HuggingFacePipelineModel` with `transformers < 4.32.0` is not effective.
1664
- - Model Registry: Fix an issue that incorrect system function call is used when deploying to SPCS.
1665
- - Model Registry: Fix an issue when using a `transformers.pipeline` that does not have a `tokenizer`.
1666
- - Model Registry: Fix incorrectly-inferred image repository name during model deployment to SPCS.
1667
- - Model Registry: Fix GPU resource retention issue caused by failed or stuck previous deployments in SPCS.
1696
+ * Model Registry: Fix an issue that incorrect system function call is used when deploying to SPCS.
1697
+ * Model Registry: Fix an issue when using a `transformers.pipeline` that does not have a `tokenizer`.
1698
+ * Model Registry: Fix incorrectly-inferred image repository name during model deployment to SPCS.
1699
+ * Model Registry: Fix GPU resource retention issue caused by failed or stuck previous deployments in SPCS.
1668
1700
 
1669
1701
  ## 1.0.7 (2023-09-05)
1670
1702
 
1671
1703
  ### Bug Fixes
1672
1704
 
1673
- - Model Development & Model Registry: Fix an error related to `pandas.io.json.json_normalize`.
1674
- - Allow disabling telemetry.
1705
+ * Model Development & Model Registry: Fix an error related to `pandas.io.json.json_normalize`.
1706
+ * Allow disabling telemetry.
1675
1707
 
1676
1708
  ## 1.0.6 (2023-09-01)
1677
1709
 
1678
1710
  ### New Features
1679
1711
 
1680
- - Model Registry: add `create_if_not_exists` parameter in constructor.
1681
- - Model Registry: Added get_or_create_model_registry API.
1682
- - Model Registry: Added support for using GPU inference when deploying XGBoost (`xgboost.XGBModel` and `xgboost.Booster`
1712
+ * Model Registry: add `create_if_not_exists` parameter in constructor.
1713
+ * Model Registry: Added get_or_create_model_registry API.
1714
+ * Model Registry: Added support for using GPU inference when deploying XGBoost (`xgboost.XGBModel` and `xgboost.Booster`
1683
1715
  ), PyTorch (`torch.nn.Module` and `torch.jit.ScriptModule`) and TensorFlow (`tensorflow.Module` and
1684
1716
  `tensorflow.keras.Model`) models to Snowpark Container Services.
1685
- - Model Registry: When inferring model signature, `Sequence` of built-in types, `Sequence` of `numpy.ndarray`,
1717
+ * Model Registry: When inferring model signature, `Sequence` of built-in types, `Sequence` of `numpy.ndarray`,
1686
1718
  `Sequence` of `torch.Tensor`, `Sequence` of `tensorflow.Tensor` and `Sequence` of `tensorflow.Tensor` can be used
1687
1719
  instead of only `List` of them.
1688
- - Model Registry: Added `get_training_dataset` API.
1689
- - Model Development: Size of metrics result can exceed previous 8MB limit.
1690
- - Model Registry: Added support save/load/deploy HuggingFace pipeline object (`transformers.Pipeline`) and our wrapper
1720
+ * Model Registry: Added `get_training_dataset` API.
1721
+ * Model Development: Size of metrics result can exceed previous 8MB limit.
1722
+ * Model Registry: Added support save/load/deploy HuggingFace pipeline object (`transformers.Pipeline`) and our wrapper
1691
1723
  (`snowflake.ml.model.models.huggingface_pipeline.HuggingFacePipelineModel`) to it. Using the wrapper to specify
1692
1724
  configurations and the model for the pipeline will be loaded dynamically when deploying. Currently, following tasks
1693
1725
  are supported to log without manually specifying model signatures:
1694
- - "conversational"
1695
- - "fill-mask"
1696
- - "question-answering"
1697
- - "summarization"
1698
- - "table-question-answering"
1699
- - "text2text-generation"
1700
- - "text-classification" (alias "sentiment-analysis" available)
1701
- - "text-generation"
1702
- - "token-classification" (alias "ner" available)
1703
- - "translation"
1704
- - "translation_xx_to_yy"
1705
- - "zero-shot-classification"
1726
+ * "conversational"
1727
+ * "fill-mask"
1728
+ * "question-answering"
1729
+ * "summarization"
1730
+ * "table-question-answering"
1731
+ * "text2text-generation"
1732
+ * "text-classification" (alias "sentiment-analysis" available)
1733
+ * "text-generation"
1734
+ * "token-classification" (alias "ner" available)
1735
+ * "translation"
1736
+ * "translation_xx_to_yy"
1737
+ * "zero-shot-classification"
1706
1738
 
1707
1739
  ### Bug Fixes
1708
1740
 
1709
- - Model Development: Fixed a bug when using simple imputer with numpy >= 1.25.
1710
- - Model Development: Fixed a bug when inferring the type of label columns.
1741
+ * Model Development: Fixed a bug when using simple imputer with numpy >= 1.25.
1742
+ * Model Development: Fixed a bug when inferring the type of label columns.
1711
1743
 
1712
1744
  ### Behavior Changes
1713
1745
 
1714
- - Model Registry: `log_model()` now return a `ModelReference` object instead of a model ID.
1715
- - Model Registry: When deploying a model with 1 `target method` only, the `target_method` argument can be omitted.
1716
- - Model Registry: When using the snowflake-ml-python with version newer than what is available in Snowflake Anaconda
1746
+ * Model Registry: `log_model()` now return a `ModelReference` object instead of a model ID.
1747
+ * Model Registry: When deploying a model with 1 `target method` only, the `target_method` argument can be omitted.
1748
+ * Model Registry: When using the snowflake-ml-python with version newer than what is available in Snowflake Anaconda
1717
1749
  Channel, `embed_local_ml_library` option will be set as `True` automatically if not.
1718
- - Model Registry: When deploying a model to Snowpark Container Services and using GPU, the default value of num_workers
1750
+ * Model Registry: When deploying a model to Snowpark Container Services and using GPU, the default value of num_workers
1719
1751
  will be 1.
1720
- - Model Registry: `keep_order` and `output_with_input_features` in the deploy options have been removed. Now the
1752
+ * Model Registry: `keep_order` and `output_with_input_features` in the deploy options have been removed. Now the
1721
1753
  behavior is controlled by the type of the input when calling `model.predict()`. If the input is a `pandas.DataFrame`,
1722
1754
  the behavior will be the same as `keep_order=True` and `output_with_input_features=False` before. If the input is a
1723
1755
  `snowpark.DataFrame`, the behavior will be the same as `keep_order=False` and `output_with_input_features=True` before.
1724
- - Model Registry: When logging and deploying PyTorch (`torch.nn.Module` and `torch.jit.ScriptModule`) and TensorFlow
1756
+ * Model Registry: When logging and deploying PyTorch (`torch.nn.Module` and `torch.jit.ScriptModule`) and TensorFlow
1725
1757
  (`tensorflow.Module` and `tensorflow.keras.Model`) models, we no longer accept models whose input is a list of tensor
1726
1758
  and output is a list of tensors. Instead, now we accept models whose input is 1 or more tensors as positional arguments,
1727
1759
  and output is a tensor or a tuple of tensors. The input and output dataframe when predicting keep the same as before,
@@ -1731,53 +1763,53 @@ not readable by new SDK.
1731
1763
 
1732
1764
  ### New Features
1733
1765
 
1734
- - Model Registry: Added support save/load/deploy xgboost Booster model.
1735
- - Model Registry: Added support to get the model name and the model version from model references.
1766
+ * Model Registry: Added support save/load/deploy xgboost Booster model.
1767
+ * Model Registry: Added support to get the model name and the model version from model references.
1736
1768
 
1737
1769
  ### Bug Fixes
1738
1770
 
1739
- - Model Registry: Restore the db/schema back to the session after `create_model_registry()`.
1740
- - Model Registry: Fixed an issue that the UDF name created when deploying a model is not identical to what is provided
1771
+ * Model Registry: Restore the db/schema back to the session after `create_model_registry()`.
1772
+ * Model Registry: Fixed an issue that the UDF name created when deploying a model is not identical to what is provided
1741
1773
  and cannot be correctly dropped when deployment getting dropped.
1742
- - connection_params.SnowflakeLoginOptions(): Added support for `private_key_path`.
1774
+ * connection_params.SnowflakeLoginOptions(): Added support for `private_key_path`.
1743
1775
 
1744
1776
  ## 1.0.4 (2023-07-28)
1745
1777
 
1746
1778
  ### New Features
1747
1779
 
1748
- - Model Registry: Added support save/load/deploy Tensorflow models (`tensorflow.Module`).
1749
- - Model Registry: Added support save/load/deploy MLFlow PyFunc models (`mlflow.pyfunc.PyFuncModel`).
1750
- - Model Development: Input dataframes can now be joined against data loaded from staged files.
1751
- - Model Development: Added support for non-English languages.
1780
+ * Model Registry: Added support save/load/deploy Tensorflow models (`tensorflow.Module`).
1781
+ * Model Registry: Added support save/load/deploy MLFlow PyFunc models (`mlflow.pyfunc.PyFuncModel`).
1782
+ * Model Development: Input dataframes can now be joined against data loaded from staged files.
1783
+ * Model Development: Added support for non-English languages.
1752
1784
 
1753
1785
  ### Bug Fixes
1754
1786
 
1755
- - Model Registry: Fix an issue that model dependencies are incorrectly reported as unresolvable on certain platforms.
1787
+ * Model Registry: Fix an issue that model dependencies are incorrectly reported as unresolvable on certain platforms.
1756
1788
 
1757
1789
  ## 1.0.3 (2023-07-14)
1758
1790
 
1759
1791
  ### Behavior Changes
1760
1792
 
1761
- - Model Registry: When predicting a model whose output is a list of NumPy ndarray, the output would not be flattened,
1793
+ * Model Registry: When predicting a model whose output is a list of NumPy ndarray, the output would not be flattened,
1762
1794
  instead, every ndarray will act as a feature(column) in the output.
1763
1795
 
1764
1796
  ### New Features
1765
1797
 
1766
- - Model Registry: Added support save/load/deploy PyTorch models (`torch.nn.Module` and `torch.jit.ScriptModule`).
1798
+ * Model Registry: Added support save/load/deploy PyTorch models (`torch.nn.Module` and `torch.jit.ScriptModule`).
1767
1799
 
1768
1800
  ### Bug Fixes
1769
1801
 
1770
- - Model Registry: Fix an issue that when database or schema name provided to `create_model_registry` contains special
1802
+ * Model Registry: Fix an issue that when database or schema name provided to `create_model_registry` contains special
1771
1803
  characters, the model registry cannot be created.
1772
- - Model Registry: Fix an issue that `get_model_description` returns with additional quotes.
1773
- - Model Registry: Fix incorrect error message when attempting to remove a unset tag of a model.
1774
- - Model Registry: Fix a typo in the default deployment table name.
1775
- - Model Registry: Snowpark dataframe for sample input or input for `predict` method that contains a column with
1804
+ * Model Registry: Fix an issue that `get_model_description` returns with additional quotes.
1805
+ * Model Registry: Fix incorrect error message when attempting to remove a unset tag of a model.
1806
+ * Model Registry: Fix a typo in the default deployment table name.
1807
+ * Model Registry: Snowpark dataframe for sample input or input for `predict` method that contains a column with
1776
1808
  Snowflake `NUMBER(precision, scale)` data type where `scale = 0` will not lead to error, and will now correctly
1777
1809
  recognized as `INT64` data type in model signature.
1778
- - Model Registry: Fix an issue that prevent model logged in the system whose default encoding is not UTF-8 compatible
1810
+ * Model Registry: Fix an issue that prevent model logged in the system whose default encoding is not UTF-8 compatible
1779
1811
  from deploying.
1780
- - Model Registry: Added earlier and better error message when any file name in the model or the file name of model
1812
+ * Model Registry: Added earlier and better error message when any file name in the model or the file name of model
1781
1813
  itself contains characters that are unable to be encoded using ASCII. It is currently not supported to deploy such a
1782
1814
  model.
1783
1815
 
@@ -1785,181 +1817,181 @@ not readable by new SDK.
1785
1817
 
1786
1818
  ### Behavior Changes
1787
1819
 
1788
- - Model Registry: Prohibit non-snowflake-native models from being logged.
1789
- - Model Registry: `_use_local_snowml` parameter in options of `deploy()` has been removed.
1790
- - Model Registry: A default `False` `embed_local_ml_library` parameter has been added to the options of `log_model()`.
1820
+ * Model Registry: Prohibit non-snowflake-native models from being logged.
1821
+ * Model Registry: `_use_local_snowml` parameter in options of `deploy()` has been removed.
1822
+ * Model Registry: A default `False` `embed_local_ml_library` parameter has been added to the options of `log_model()`.
1791
1823
  With this set to `False` (default), the version of the local snowflake-ml-python library will be recorded and used when
1792
1824
  deploying the model. With this set to `True`, local snowflake-ml-python library will be embedded into the logged model,
1793
1825
  and will be used when you load or deploy the model.
1794
1826
 
1795
1827
  ### New Features
1796
1828
 
1797
- - Model Registry: A new optional argument named `code_paths` has been added to the arguments of `log_model()` for users
1829
+ * Model Registry: A new optional argument named `code_paths` has been added to the arguments of `log_model()` for users
1798
1830
  to specify additional code paths to be imported when loading and deploying the model.
1799
- - Model Registry: A new optional argument named `options` has been added to the arguments of `log_model()` to specify
1831
+ * Model Registry: A new optional argument named `options` has been added to the arguments of `log_model()` to specify
1800
1832
  any additional options when saving the model.
1801
- - Model Development: Added metrics:
1802
- - d2_absolute_error_score
1803
- - d2_pinball_score
1804
- - explained_variance_score
1805
- - mean_absolute_error
1806
- - mean_absolute_percentage_error
1807
- - mean_squared_error
1833
+ * Model Development: Added metrics:
1834
+ * d2_absolute_error_score
1835
+ * d2_pinball_score
1836
+ * explained_variance_score
1837
+ * mean_absolute_error
1838
+ * mean_absolute_percentage_error
1839
+ * mean_squared_error
1808
1840
 
1809
1841
  ### Bug Fixes
1810
1842
 
1811
- - Model Development: `accuracy_score()` now works when given label column names are lists of a single value.
1843
+ * Model Development: `accuracy_score()` now works when given label column names are lists of a single value.
1812
1844
 
1813
1845
  ## 1.0.1 (2023-06-16)
1814
1846
 
1815
1847
  ### Behavior Changes
1816
1848
 
1817
- - Model Development: Changed Metrics APIs to imitate sklearn metrics modules:
1818
- - `accuracy_score()`, `confusion_matrix()`, `precision_recall_fscore_support()`, `precision_score()` methods move from
1849
+ * Model Development: Changed Metrics APIs to imitate sklearn metrics modules:
1850
+ * `accuracy_score()`, `confusion_matrix()`, `precision_recall_fscore_support()`, `precision_score()` methods move from
1819
1851
  respective modules to `metrics.classification`.
1820
- - Model Registry: The default table/stage created by the Registry now uses "_SYSTEM_" as a prefix.
1821
- - Model Registry: `get_model_history()` method as been enhanced to include the history of model deployment.
1852
+ * Model Registry: The default table/stage created by the Registry now uses "_SYSTEM_" as a prefix.
1853
+ * Model Registry: `get_model_history()` method as been enhanced to include the history of model deployment.
1822
1854
 
1823
1855
  ### New Features
1824
1856
 
1825
- - Model Registry: A default `False` flag named `replace_udf` has been added to the options of `deploy()`. Setting this
1857
+ * Model Registry: A default `False` flag named `replace_udf` has been added to the options of `deploy()`. Setting this
1826
1858
  to `True` will allow overwrite existing UDF with the same name when deploying.
1827
- - Model Development: Added metrics:
1828
- - f1_score
1829
- - fbeta_score
1830
- - recall_score
1831
- - roc_auc_score
1832
- - roc_curve
1833
- - log_loss
1834
- - precision_recall_curve
1835
- - Model Registry: A new argument named `permanent` has been added to the argument of `deploy()`. Setting this to `True`
1859
+ * Model Development: Added metrics:
1860
+ * f1_score
1861
+ * fbeta_score
1862
+ * recall_score
1863
+ * roc_auc_score
1864
+ * roc_curve
1865
+ * log_loss
1866
+ * precision_recall_curve
1867
+ * Model Registry: A new argument named `permanent` has been added to the argument of `deploy()`. Setting this to `True`
1836
1868
  allows the creation of a permanent deployment without needing to specify the UDF location.
1837
- - Model Registry: A new method `list_deployments()` has been added to enumerate all permanent deployments originating
1869
+ * Model Registry: A new method `list_deployments()` has been added to enumerate all permanent deployments originating
1838
1870
  from a specific model.
1839
- - Model Registry: A new method `get_deployment()` has been added to fetch a deployment by its deployment name.
1840
- - Model Registry: A new method `delete_deployment()` has been added to remove an existing permanent deployment.
1871
+ * Model Registry: A new method `get_deployment()` has been added to fetch a deployment by its deployment name.
1872
+ * Model Registry: A new method `delete_deployment()` has been added to remove an existing permanent deployment.
1841
1873
 
1842
1874
  ## 1.0.0 (2023-06-09)
1843
1875
 
1844
1876
  ### Behavior Changes
1845
1877
 
1846
- - Model Registry: `predict()` method moves from Registry to ModelReference.
1847
- - Model Registry: `_snowml_wheel_path` parameter in options of `deploy()`, is replaced with `_use_local_snowml` with
1878
+ * Model Registry: `predict()` method moves from Registry to ModelReference.
1879
+ * Model Registry: `_snowml_wheel_path` parameter in options of `deploy()`, is replaced with `_use_local_snowml` with
1848
1880
  default value of `False`. Setting this to `True` will have the same effect of uploading local SnowML code when executing
1849
1881
  model in the warehouse.
1850
- - Model Registry: Removed `id` field from `ModelReference` constructor.
1851
- - Model Development: Preprocessing and Metrics move to the modeling package: `snowflake.ml.modeling.preprocessing` and
1882
+ * Model Registry: Removed `id` field from `ModelReference` constructor.
1883
+ * Model Development: Preprocessing and Metrics move to the modeling package: `snowflake.ml.modeling.preprocessing` and
1852
1884
  `snowflake.ml.modeling.metrics`.
1853
- - Model Development: `get_sklearn_object()` method is renamed to `to_sklearn()`, `to_xgboost()`, and `to_lightgbm()` for
1885
+ * Model Development: `get_sklearn_object()` method is renamed to `to_sklearn()`, `to_xgboost()`, and `to_lightgbm()` for
1854
1886
  respective native models.
1855
1887
 
1856
1888
  ### New Features
1857
1889
 
1858
- - Added PolynomialFeatures transformer to the snowflake.ml.modeling.preprocessing module.
1859
- - Added metrics:
1860
- - accuracy_score
1861
- - confusion_matrix
1862
- - precision_recall_fscore_support
1863
- - precision_score
1890
+ * Added PolynomialFeatures transformer to the snowflake.ml.modeling.preprocessing module.
1891
+ * Added metrics:
1892
+ * accuracy_score
1893
+ * confusion_matrix
1894
+ * precision_recall_fscore_support
1895
+ * precision_score
1864
1896
 
1865
1897
  ### Bug Fixes
1866
1898
 
1867
- - Model Registry: Model version can now be any string (not required to be a valid identifier)
1868
- - Model Deployment: `deploy()` & `predict()` methods now correctly escapes identifiers
1899
+ * Model Registry: Model version can now be any string (not required to be a valid identifier)
1900
+ * Model Deployment: `deploy()` & `predict()` methods now correctly escapes identifiers
1869
1901
 
1870
1902
  ## 0.3.2 (2023-05-23)
1871
1903
 
1872
1904
  ### Behavior Changes
1873
1905
 
1874
- - Use cloudpickle to serialize and deserialize models throughout the codebase and removed dependency on joblib.
1906
+ * Use cloudpickle to serialize and deserialize models throughout the codebase and removed dependency on joblib.
1875
1907
 
1876
1908
  ### New Features
1877
1909
 
1878
- - Model Deployment: Added support for snowflake.ml models.
1910
+ * Model Deployment: Added support for snowflake.ml models.
1879
1911
 
1880
1912
  ## 0.3.1 (2023-05-18)
1881
1913
 
1882
1914
  ### Behavior Changes
1883
1915
 
1884
- - Standardized registry API with following
1885
- - Create & open registry taking same set of arguments
1886
- - Create & Open can choose schema to use
1887
- - Set_tag, set_metric, etc now explicitly calls out arg name as metric_name, tag_name, metric_name, etc.
1916
+ * Standardized registry API with following
1917
+ * Create & open registry taking same set of arguments
1918
+ * Create & Open can choose schema to use
1919
+ * Set_tag, set_metric, etc now explicitly calls out arg name as metric_name, tag_name, metric_name, etc.
1888
1920
 
1889
1921
  ### New Features
1890
1922
 
1891
- - Changes to support python 3.9, 3.10
1892
- - Added kBinsDiscretizer
1893
- - Support for deployment of XGBoost models & int8 types of data
1923
+ * Changes to support python 3.9, 3.10
1924
+ * Added kBinsDiscretizer
1925
+ * Support for deployment of XGBoost models & int8 types of data
1894
1926
 
1895
1927
  ## 0.3.0 (2023-05-11)
1896
1928
 
1897
1929
  ### Behavior Changes
1898
1930
 
1899
- - Big Model Registry Refresh
1900
- - Fixed API discrepancies between register_model & log_model.
1901
- - Model can be referred by Name + Version (no opaque internal id is required)
1931
+ * Big Model Registry Refresh
1932
+ * Fixed API discrepancies between register_model & log_model.
1933
+ * Model can be referred by Name + Version (no opaque internal id is required)
1902
1934
 
1903
1935
  ### New Features
1904
1936
 
1905
- - Model Registry: Added support save/load/deploy SKL & XGB Models
1937
+ * Model Registry: Added support save/load/deploy SKL & XGB Models
1906
1938
 
1907
1939
  ## 0.2.3 (2023-04-27)
1908
1940
 
1909
1941
  ### Bug Fixes
1910
1942
 
1911
- - Allow using OneHotEncoder along with sklearn style estimators in a pipeline.
1943
+ * Allow using OneHotEncoder along with sklearn style estimators in a pipeline.
1912
1944
 
1913
1945
  ### New Features
1914
1946
 
1915
- - Model Registry: Added support for delete_model. Use delete_artifact = False to not delete the underlying model data
1947
+ * Model Registry: Added support for delete_model. Use delete_artifact = False to not delete the underlying model data
1916
1948
  but just unregister.
1917
1949
 
1918
1950
  ## 0.2.2 (2023-04-11)
1919
1951
 
1920
1952
  ### New Features
1921
1953
 
1922
- - Initial version of snowflake-ml modeling package.
1923
- - Provide support for training most of scikit-learn and xgboost estimators and transformers.
1954
+ * Initial version of snowflake-ml modeling package.
1955
+ * Provide support for training most of scikit-learn and xgboost estimators and transformers.
1924
1956
 
1925
1957
  ### Bug Fixes
1926
1958
 
1927
- - Minor fixes in preprocessing package.
1959
+ * Minor fixes in preprocessing package.
1928
1960
 
1929
1961
  ## 0.2.1 (2023-03-23)
1930
1962
 
1931
1963
  ### New Features
1932
1964
 
1933
- - New in Preprocessing:
1934
- - SimpleImputer
1935
- - Covariance Matrix
1936
- - Optimization of Ordinal Encoder client computations.
1965
+ * New in Preprocessing:
1966
+ * SimpleImputer
1967
+ * Covariance Matrix
1968
+ * Optimization of Ordinal Encoder client computations.
1937
1969
 
1938
1970
  ### Bug Fixes
1939
1971
 
1940
- - Minor fixes in OneHotEncoder.
1972
+ * Minor fixes in OneHotEncoder.
1941
1973
 
1942
1974
  ## 0.2.0 (2023-02-27)
1943
1975
 
1944
1976
  ### New Features
1945
1977
 
1946
- - Model Registry
1947
- - PyTorch & Tensorflow connector file generic FileSet API
1948
- - New to Preprocessing:
1949
- - Binarizer
1950
- - Normalizer
1951
- - Pearson correlation Matrix
1952
- - Optimization in Ordinal Encoder to cache vocabulary in temp tables.
1978
+ * Model Registry
1979
+ * PyTorch & Tensorflow connector file generic FileSet API
1980
+ * New to Preprocessing:
1981
+ * Binarizer
1982
+ * Normalizer
1983
+ * Pearson correlation Matrix
1984
+ * Optimization in Ordinal Encoder to cache vocabulary in temp tables.
1953
1985
 
1954
1986
  ## 0.1.3 (2023-02-02)
1955
1987
 
1956
1988
  ### New Features
1957
1989
 
1958
- - Initial version of transformers including:
1959
- - Label Encoder
1960
- - Max Abs Scaler
1961
- - Min Max Scaler
1962
- - One Hot Encoder
1963
- - Ordinal Encoder
1964
- - Robust Scaler
1965
- - Standard Scaler
1990
+ * Initial version of transformers including:
1991
+ * Label Encoder
1992
+ * Max Abs Scaler
1993
+ * Min Max Scaler
1994
+ * One Hot Encoder
1995
+ * Ordinal Encoder
1996
+ * Robust Scaler
1997
+ * Standard Scaler