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