snowflake-ml-python 1.9.1__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.
Files changed (39) hide show
  1. snowflake/ml/_internal/utils/mixins.py +6 -4
  2. snowflake/ml/_internal/utils/service_logger.py +118 -4
  3. snowflake/ml/data/_internal/arrow_ingestor.py +4 -1
  4. snowflake/ml/data/data_connector.py +4 -34
  5. snowflake/ml/dataset/dataset.py +1 -1
  6. snowflake/ml/dataset/dataset_reader.py +2 -8
  7. snowflake/ml/experiment/__init__.py +3 -0
  8. snowflake/ml/experiment/callback/lightgbm.py +55 -0
  9. snowflake/ml/experiment/callback/xgboost.py +63 -0
  10. snowflake/ml/experiment/utils.py +14 -0
  11. snowflake/ml/jobs/_utils/constants.py +15 -4
  12. snowflake/ml/jobs/_utils/payload_utils.py +159 -52
  13. snowflake/ml/jobs/_utils/scripts/constants.py +0 -22
  14. snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +126 -23
  15. snowflake/ml/jobs/_utils/spec_utils.py +1 -1
  16. snowflake/ml/jobs/_utils/stage_utils.py +30 -14
  17. snowflake/ml/jobs/_utils/types.py +64 -4
  18. snowflake/ml/jobs/job.py +22 -6
  19. snowflake/ml/jobs/manager.py +5 -3
  20. snowflake/ml/model/_client/model/model_version_impl.py +56 -48
  21. snowflake/ml/model/_client/ops/service_ops.py +194 -14
  22. snowflake/ml/model/_client/sql/service.py +1 -38
  23. snowflake/ml/model/_packager/model_handlers/sklearn.py +9 -5
  24. snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +1 -0
  25. snowflake/ml/model/_signatures/pandas_handler.py +3 -0
  26. snowflake/ml/model/_signatures/utils.py +4 -0
  27. snowflake/ml/model/event_handler.py +87 -18
  28. snowflake/ml/model/model_signature.py +2 -0
  29. snowflake/ml/model/models/huggingface_pipeline.py +71 -49
  30. snowflake/ml/model/type_hints.py +26 -1
  31. snowflake/ml/registry/_manager/model_manager.py +30 -35
  32. snowflake/ml/registry/_manager/model_parameter_reconciler.py +105 -0
  33. snowflake/ml/registry/registry.py +0 -19
  34. snowflake/ml/version.py +1 -1
  35. {snowflake_ml_python-1.9.1.dist-info → snowflake_ml_python-1.10.0.dist-info}/METADATA +542 -491
  36. {snowflake_ml_python-1.9.1.dist-info → snowflake_ml_python-1.10.0.dist-info}/RECORD +39 -34
  37. {snowflake_ml_python-1.9.1.dist-info → snowflake_ml_python-1.10.0.dist-info}/WHEEL +0 -0
  38. {snowflake_ml_python-1.9.1.dist-info → snowflake_ml_python-1.10.0.dist-info}/licenses/LICENSE.txt +0 -0
  39. {snowflake_ml_python-1.9.1.dist-info → snowflake_ml_python-1.10.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.9.1
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:
@@ -243,6 +243,7 @@ Requires-Dist: importlib_resources<7,>=6.1.1
243
243
  Requires-Dist: numpy<3,>=1.23
244
244
  Requires-Dist: packaging<25,>=20.9
245
245
  Requires-Dist: pandas<3,>=2.1.4
246
+ Requires-Dist: platformdirs<5
246
247
  Requires-Dist: pyarrow
247
248
  Requires-Dist: pydantic<3,>=2.8.2
248
249
  Requires-Dist: pyjwt<3,>=2.0.0
@@ -273,7 +274,7 @@ Requires-Dist: tensorflow<3,>=2.17.0; extra == "all"
273
274
  Requires-Dist: tokenizers<1,>=0.15.1; extra == "all"
274
275
  Requires-Dist: torch<3,>=2.0.1; extra == "all"
275
276
  Requires-Dist: torchdata<1,>=0.4; extra == "all"
276
- Requires-Dist: transformers<5,>=4.39.3; extra == "all"
277
+ Requires-Dist: transformers!=4.51.3,<5,>=4.39.3; extra == "all"
277
278
  Provides-Extra: altair
278
279
  Requires-Dist: altair<6,>=5; extra == "altair"
279
280
  Provides-Extra: catboost
@@ -298,7 +299,7 @@ Requires-Dist: sentence-transformers<4,>=2.7.0; extra == "transformers"
298
299
  Requires-Dist: sentencepiece<0.2.0,>=0.1.95; extra == "transformers"
299
300
  Requires-Dist: tokenizers<1,>=0.15.1; extra == "transformers"
300
301
  Requires-Dist: torch<3,>=2.0.1; extra == "transformers"
301
- Requires-Dist: transformers<5,>=4.39.3; extra == "transformers"
302
+ Requires-Dist: transformers!=4.51.3,<5,>=4.39.3; extra == "transformers"
302
303
  Dynamic: license-file
303
304
 
304
305
  # Snowpark ML
@@ -409,18 +410,68 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
409
410
 
410
411
  # Release History
411
412
 
412
- ## 1.9.1
413
+ ## 1.10.0
413
414
 
414
415
  ### Bug Fixes
415
416
 
416
- - Registry: Fix a bug when trying to set the PAD token the HuggingFace `text-generation` model had multiple EOS tokens.
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
+
425
+ ## 1.9.2
426
+
427
+ ### Bug Fixes
428
+
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.
431
+
432
+ ### New Features
433
+
434
+ * Experiment Tracking (PrPr): Automatically log the model, metrics, and parameters while training
435
+ XGBoost and LightGBM models.
436
+
437
+ ```python
438
+ from snowflake.ml.experiment import ExperimentTracking
439
+
440
+ exp = ExperimentTracking(session=sp_session, database_name="ML", schema_name="PUBLIC")
441
+
442
+ exp.set_experiment("MY_EXPERIMENT")
443
+
444
+ # XGBoost
445
+ from snowflake.ml.experiment.callback.xgboost import SnowflakeXgboostCallback
446
+ callback = SnowflakeXgboostCallback(
447
+ exp, log_model=True, log_metrics=True, log_params=True, model_name="model_name", model_signature=sig
448
+ )
449
+ model = XGBClassifier(callbacks=[callback])
450
+ with exp.start_run():
451
+ model.fit(X, y, eval_set=[(X_test, y_test)])
452
+
453
+ # LightGBM
454
+ from snowflake.ml.experiment.callback.lightgbm import SnowflakeLightgbmCallback
455
+ callback = SnowflakeLightgbmCallback(
456
+ exp, log_model=True, log_metrics=True, log_params=True, model_name="model_name", model_signature=sig
457
+ )
458
+ model = LGBMClassifier()
459
+ with exp.start_run():
460
+ model.fit(X, y, eval_set=[(X_test, y_test)], callbacks=[callback])
461
+ ```
462
+
463
+ ## 1.9.1 (07-18-2025)
464
+
465
+ ### Bug Fixes
466
+
467
+ * Registry: Fix a bug when trying to set the PAD token the HuggingFace `text-generation` model had multiple EOS tokens.
417
468
  The handler picks the first EOS token as PAD token now.
418
469
 
419
470
  ### New Features
420
471
 
421
- - DataConnector: DataConnector objects can now be pickled
422
- - Dataset: Dataset objects can now be pickled
423
- - 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`
424
475
  which creates a service to log a HF model and upon successful logging, an inference service is created.
425
476
 
426
477
  ```python
@@ -441,7 +492,7 @@ hf_model_ref.create_service(
441
492
  )
442
493
  ```
443
494
 
444
- - 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.
445
496
 
446
497
  ```python
447
498
  from snowflake.ml.experiment import ExperimentTracking
@@ -456,16 +507,16 @@ with exp.start_run():
456
507
  exp.log_model(my_model, model_name="MY_MODEL")
457
508
  ```
458
509
 
459
- - 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
460
511
 
461
512
  ## 1.9.0
462
513
 
463
514
  ### Bug Fixes
464
515
 
465
- - 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`
466
517
  parameter is enabled
467
- - Registry: Fixed duplicate UserWarning logs during model packaging
468
- - 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
469
520
  is assigned to the tokenizer.
470
521
 
471
522
  ```shell
@@ -477,40 +528,40 @@ with exp.start_run():
477
528
  {% endif %}"
478
529
  ```
479
530
 
480
- - 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
481
532
 
482
533
  ### Behavior Changes
483
534
 
484
- - 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,
485
536
  optional `database` and `schema` parameters have been added, the return type has changed
486
537
  from `snowpark.DataFrame` to `pandas.DataFrame`, and the returned columns have been updated
487
538
  to `name`, `status`, `message`, `database_name`, `schema_name`, `owner`, `compute_pool`,
488
539
  `target_instances`, `created_time`, and `completed_time`.
489
- - Registry: Set `relax_version` to false when pip_requirements are specified while logging model
490
- - 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)
491
542
 
492
543
  ### New Features
493
544
 
494
- - Registry: `target_platforms` supports `TargetPlatformMode`: `WAREHOUSE_ONLY`, `SNOWPARK_CONTAINER_SERVICES_ONLY`,
545
+ * Registry: `target_platforms` supports `TargetPlatformMode`: `WAREHOUSE_ONLY`, `SNOWPARK_CONTAINER_SERVICES_ONLY`,
495
546
  or `BOTH_WAREHOUSE_AND_SNOWPARK_CONTAINER_SERVICES`.
496
- - 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
497
548
  `snowflake.ml.model.task.Task`.
498
- - ML Job: Single-node ML Jobs are now in GA. Multi-node support is now in PuPr
499
- - Moved less frequently used job submission parameters to `**kwargs`
500
- - Platform metrics are now enabled by default
501
- - `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
502
553
 
503
554
  ## 1.8.6
504
555
 
505
556
  ### Bug Fixes
506
557
 
507
- - Fixed fatal errors from internal telemetry wrappers.
558
+ * Fixed fatal errors from internal telemetry wrappers.
508
559
 
509
560
  ### New Features
510
561
 
511
- - Registry: Add service container info to logs.
512
- - ML Job (PuPr): Add new `submit_from_stage()` API for submitting a payload from an existing stage path.
513
- - 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
514
565
  `@remote` decorated functions. `Session` object will be injected from context in
515
566
  the job execution environment.
516
567
 
@@ -518,75 +569,75 @@ with exp.start_run():
518
569
 
519
570
  ### Bug Fixes
520
571
 
521
- - Registry: Fixed a bug when listing and deleting container services.
522
- - Registry: Fixed explainability issue with scikit-learn pipelines, skipping explain function creation.
523
- - Explainability: bump minimum streamlit version down to 1.30
524
- - 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).
525
576
 
526
577
  ### Behavior Changes
527
578
 
528
- - 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
529
580
  change type from `Optional[int]` to `int`
530
581
 
531
582
  ### New Features
532
583
 
533
- - 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
534
585
  an SPCS-only model.
535
- - ML Job (PuPr): Add `min_instances` argument to the job decorator to allow waiting for workers to be ready.
536
- - 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.
537
588
 
538
589
  ### Deprecations
539
590
 
540
- - `SnowflakeLoginOptions` is deprecated and will be removed in a future release.
591
+ * `SnowflakeLoginOptions` is deprecated and will be removed in a future release.
541
592
 
542
593
  ## 1.8.4 (2025-05-12)
543
594
 
544
595
  ### Bug Fixes
545
596
 
546
- - Registry: Default `enable_explainability` to True when the model can be deployed to Warehouse.
547
- - Registry: Add `custom_model.partitioned_api` decorator and deprecate `partitioned_inference_api`.
548
- - 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
549
600
  `UnboundLocalError: local variable 'multiple_inputs' referenced before assignment`.
550
601
 
551
602
  ### Behavior Changes
552
603
 
553
- - 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`
554
605
  to represent the ML Job name
555
- - ML Job (PuPr) Modified `list_jobs()` to return ML Job `name` instead of `id`
556
- - 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
557
608
  Snowpark Container Services, instead of just user warning.
558
609
 
559
610
  ### New Features
560
611
 
561
- - 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
562
613
  `schema` parameters
563
- - ML Job (PuPr): Support querying by fully qualified name in `get_job()`
564
- - Explainability: Added visualization functions to `snowflake.ml.monitoring` to plot explanations in notebooks.
565
- - Explainability: Support explain for categorical transforms for sklearn pipeline
566
- - 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.
567
618
 
568
619
  ## 1.8.3
569
620
 
570
621
  ### New Features
571
622
 
572
- - Registry: Default to the runtime cuda version if available when logging a GPU model in Container Runtime.
573
- - 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
574
625
  as a list of strings
575
- - Registry: Support `ModelVersion.run_job` to run inference with a single-node Snowpark Container Services job.
576
- - DataConnector: Removed PrPr decorators
577
- - 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.
578
629
 
579
630
  ## 1.8.2
580
631
 
581
632
  ### New Features
582
633
 
583
- - ML Job now available as a PuPr feature
584
- - 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
585
636
  new `MLJobWithResult.result()` API, which will return the unpickled result
586
637
  or raise an exception if the job execution failed.
587
- - Pre-created Snowpark Session is now available inside job payloads using
638
+ * Pre-created Snowpark Session is now available inside job payloads using
588
639
  `snowflake.snowpark.context.get_active_session()`
589
- - Registry: Introducing `save_location` to `log_model` using the `options` argument.
640
+ * Registry: Introducing `save_location` to `log_model` using the `options` argument.
590
641
  Users can use the `save_location` option to specify a local directory where the model files and configuration are written.
591
642
  This is useful when the default temporary directory has space limitations.
592
643
 
@@ -600,44 +651,44 @@ reg.log_model(
600
651
  )
601
652
  ```
602
653
 
603
- - Registry: Include model dependencies in pip requirements by default when logging in Container Runtime.
604
- - Multi-node ML Job (PrPr): Add `instance_id` argument to `get_logs` and `show_logs` method to support multi node log retrieval
605
- - 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
606
657
 
607
658
  ## 1.8.1 (03-26-2025)
608
659
 
609
660
  ### Bug Fixes
610
661
 
611
- - 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`
612
663
  inference method.
613
- - 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.
614
665
 
615
666
  ### New Features
616
667
 
617
- - ML Job (PrPr): Update Container Runtime image version to `1.0.1`
618
- - 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.
619
670
  See [Accessing Event Table service metrics](https://docs.snowflake.com/en/developer-guide/snowpark-container-services/monitoring-services#accessing-event-table-service-metrics)
620
671
  for retrieving published metrics
621
672
  and [Costs of telemetry data collection](https://docs.snowflake.com/en/developer-guide/logging-tracing/logging-tracing-billing)
622
673
  for cost implications.
623
- - 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.
624
675
 
625
676
  ## 1.8.0 (03-20-2025)
626
677
 
627
678
  ### Bug Fixes
628
679
 
629
- - 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
630
681
  automatically in the stored procedure, resulting in a numpy error on execution
631
- - 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
632
683
  a supported model as a property of a CustomModel.
633
- - 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
634
685
  are deployed to SPCS.
635
686
 
636
687
  ### Behavior Change
637
688
 
638
- - 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
639
690
  updated, including:
640
- - Signature for fill-mask task has been changed from
691
+ * Signature for fill-mask task has been changed from
641
692
 
642
693
  ```python
643
694
  ModelSignature(
@@ -672,7 +723,7 @@ reg.log_model(
672
723
  )
673
724
  ```
674
725
 
675
- - Signature for token-classification task has been changed from
726
+ * Signature for token-classification task has been changed from
676
727
 
677
728
  ```python
678
729
  ModelSignature(
@@ -707,7 +758,7 @@ reg.log_model(
707
758
  )
708
759
  ```
709
760
 
710
- - 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
711
762
 
712
763
  ```python
713
764
  ModelSignature(
@@ -744,7 +795,7 @@ reg.log_model(
744
795
  )
745
796
  ```
746
797
 
747
- - 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
748
799
 
749
800
  ```python
750
801
  ModelSignature(
@@ -773,7 +824,7 @@ reg.log_model(
773
824
  )
774
825
  ```
775
826
 
776
- - 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
777
828
 
778
829
  ```python
779
830
  ModelSignature(
@@ -807,7 +858,7 @@ reg.log_model(
807
858
  )
808
859
  ```
809
860
 
810
- - Signature for text-generation task has been changed from
861
+ * Signature for text-generation task has been changed from
811
862
 
812
863
  ```python
813
864
  ModelSignature(
@@ -844,7 +895,7 @@ reg.log_model(
844
895
  )
845
896
  ```
846
897
 
847
- - 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
848
899
  Registry. To use multiple tensors (previous behavior), set `options={"multiple_inputs": True}`.
849
900
 
850
901
  Example with single tensor input:
@@ -890,130 +941,130 @@ reg.log_model(
890
941
  )
891
942
  ```
892
943
 
893
- - 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.
894
945
 
895
946
  ### New Features
896
947
 
897
- - 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
898
949
  data.
899
- - 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)
900
951
  datatype for XGBoost models.
901
952
 
902
953
  ## 1.7.5 (03-06-2025)
903
954
 
904
- - Support Python 3.12.
905
- - Explainability: Support native and snowflake.ml.modeling sklearn pipeline
955
+ * Support Python 3.12.
956
+ * Explainability: Support native and snowflake.ml.modeling sklearn pipeline
906
957
 
907
958
  ### Bug Fixes
908
959
 
909
- - 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`
910
961
  model with `keras` 2.x, if `relax_version` is set or default to True, and newer version of `snowflake-ml-python`
911
962
  is available in Snowflake Anaconda Channel, model could not be run in Snowflake. If you have such model, you could
912
963
  use the latest version of `snowflake-ml-python` and call `ModelVersion.load` to load it back, and re-log it.
913
964
  Alternatively, you can prevent this issue by setting `relax_version=False` when saving the model.
914
- - 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
915
966
  `ModelVersion.run`.
916
- - ML Job (PrPr): No longer require CREATE STAGE privilege if `stage_name` points to an existing stage
917
- - 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
918
969
  combinations to be erroneously rejected with
919
970
  `ValueError(f"{self.entrypoint} must be a subpath of {self.source}")`
920
- - 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
921
972
 
922
973
  ### New Features
923
974
 
924
- - Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality.
925
- - 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
926
977
 
927
978
  ## 1.7.4 (01-28-2025)
928
979
 
929
- - 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.
930
981
  Use [snowflake.ml.dataset.Dataset](https://docs.snowflake.com/en/developer-guide/snowflake-ml/dataset) and
931
982
  [snowflake.ml.data.DataConnector](https://docs.snowflake.com/en/developer-guide/snowpark-ml/reference/latest/api/data/snowflake.ml.data.data_connector.DataConnector)
932
983
  instead.
933
- - 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.
934
985
 
935
986
  ### Bug Fixes
936
987
 
937
- - Registry: Fixed an issue that the hugging face pipeline is loaded using incorrect dtype.
938
- - 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.
939
990
 
940
991
  ### New Features
941
992
 
942
- - 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
943
994
  [Container Runtime for ML](https://docs.snowflake.com/en/developer-guide/snowflake-ml/container-runtime-ml)
944
- - Added `guardrails` option to Cortex `complete` function, enabling
995
+ * Added `guardrails` option to Cortex `complete` function, enabling
945
996
  [Cortex Guard](https://docs.snowflake.com/en/user-guide/snowflake-cortex/llm-functions#cortex-guard) support
946
- - Model Monitoring: Expose Model Monitoring Python API by default.
997
+ * Model Monitoring: Expose Model Monitoring Python API by default.
947
998
 
948
999
  ## 1.7.3 (2025-01-08)
949
1000
 
950
- - Added lowercase versions of Cortex functions, added deprecation warning to Capitalized versions.
951
- - Bumped the requirements of `fsspec` and `s3fs` to `>=2024.6.1,<2026`
952
- - Bumped the requirement of `mlflow` to `>=2.16.0, <3`
953
- - Registry: Support 500+ features for model registry
954
- - 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.
955
1006
 
956
1007
  ### Bug Fixes
957
1008
 
958
- - Registry: Fixed a bug when providing non-range index pandas DataFrame as the input to a `ModelVersion.run`.
959
- - Registry: Improved random model version name generation to prevent collisions.
960
- - 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
961
1012
  is `ARRAY` and contains `NULL` value.
962
- - Registry: `ModelVersion.run` now accepts fully qualified service name.
963
- - Monitoring: Fix issue in SDK with creating monitors using fully qualified names.
964
- - 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
965
1016
  pipeline models due to default explainability enablement.
966
1017
 
967
1018
  ### New Features
968
1019
 
969
- - Added `user_files` argument to `Registry.log_model` for including images or any extra file with the model.
970
- - Registry: Added support for handling Hugging Face model configurations with auto-mapping functionality
971
- - DataConnector: Add new `DataConnector.from_sql()` constructor
972
- - 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
973
1024
  to be used when inferring the signature.
974
1025
 
975
1026
  ## 1.7.2 (2024-11-21)
976
1027
 
977
1028
  ### Bug Fixes
978
1029
 
979
- - 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
980
1031
  whose task is UNKNOWN and fails later when invoked.
981
1032
 
982
1033
  ### New Features
983
1034
 
984
- - Registry: Support asynchronous model inference service creation with the `block` option
1035
+ * Registry: Support asynchronous model inference service creation with the `block` option
985
1036
  in `ModelVersion.create_service()` set to True by default.
986
- - Registry: Allow specify `batch_size` when inferencing using sentence-transformers model.
1037
+ * Registry: Allow specify `batch_size` when inferencing using sentence-transformers model.
987
1038
 
988
1039
  ## 1.7.1 (2024-11-05)
989
1040
 
990
1041
  ### Bug Fixes
991
1042
 
992
- - 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
993
1044
  and others will be used to infer the signature.
994
- - 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
995
1046
  signature inference.
996
- - Registry: Null value is now allowed in the dataframe used to predict.
997
- - Data: Fix missing `snowflake.ml.data.*` module exports in wheel
998
- - Dataset: Fix missing `snowflake.ml.dataset.*` module exports in wheel.
999
- - 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.
1000
1051
 
1001
1052
  ### New Features
1002
1053
 
1003
- - Registry: Option to `enable_monitoring` set to False by default. This will gate access to preview features of Model Monitoring.
1004
- - Model Monitoring: `show_model_monitors` Registry method. This feature is still in Private Preview.
1005
- - Registry: Support `pd.Series` in input and output data.
1006
- - Model Monitoring: `add_monitor` Registry method. This feature is still in Private Preview.
1007
- - Model Monitoring: `resume` and `suspend` ModelMonitor. This feature is still in Private Preview.
1008
- - Model Monitoring: `get_monitor` Registry method. This feature is still in Private Preview.
1009
- - 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.
1010
1061
 
1011
1062
  ## 1.7.0 (10-22-2024)
1012
1063
 
1013
1064
  ### Behavior Change
1014
1065
 
1015
- - Generic: Require python >= 3.9.
1016
- - 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.
1017
1068
  This allows for more seamless integration with PyTorch `DataLoader`, which creates batches by stacking inputs of each batch.
1018
1069
 
1019
1070
  Examples:
@@ -1022,30 +1073,30 @@ Examples:
1022
1073
  ds = connector.to_torch_dataset(shuffle=False, batch_size=3)
1023
1074
  ```
1024
1075
 
1025
- - Input: "col1": [10, 11, 12]
1026
- - Previous batch: array([10., 11., 12.]) with shape (3,)
1027
- - 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)
1028
1079
 
1029
- - Input: "col2": [[0, 100], [1, 110], [2, 200]]
1030
- - Previous batch: array([[ 0, 100], [ 1, 110], [ 2, 200]]) with shape (3,2)
1031
- - 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
1032
1083
 
1033
- - 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
1034
1085
  Snowflake >= 8.40.0.
1035
- - 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
1036
1087
  `ModelVersion.create_service()`.
1037
1088
 
1038
1089
  ### Bug Fixes
1039
1090
 
1040
- - Registry: Updated `log_model` API to accept both signature and sample_input_data parameters.
1041
- - Feature Store: ExampleHelper uses fully qualified path for table name. change weather features aggregation from 1d to 1h.
1042
- - 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
1043
1094
  data from `to_torch_dataset` and `to_torch_datapipe`
1044
- - 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.
1045
1096
 
1046
1097
  ### New Features
1047
1098
 
1048
- - 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:
1049
1100
 
1050
1101
  ```python
1051
1102
  mc = custom_model.ModelContext(
@@ -1065,106 +1116,106 @@ class ExamplePipelineModel(custom_model.CustomModel):
1065
1116
  return pd.DataFrame({'output': model_output + self.bias})
1066
1117
  ```
1067
1118
 
1068
- - Model Development: Upgrade scikit-learn in UDTF backend for log_loss metric. As a result, `eps` argument is now ignored.
1069
- - 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
1070
1121
  interoperability with PyTorch DataLoader.
1071
- - Model Registry: Support [pandas.CategoricalDtype](https://pandas.pydata.org/docs/reference/api/pandas.CategoricalDtype.html#pandas-categoricaldtype)
1072
- - Limitations:
1073
- - 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.
1074
1125
  Instead please use [`sklearn.pipeline`](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html)
1075
1126
  to preprocess the categorical datatype and log the pipeline with the XGBoost model.
1076
- - 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
1077
1128
  data from explainablity and data lineage.
1078
1129
 
1079
1130
  ## 1.6.4 (2024-10-17)
1080
1131
 
1081
1132
  ### Bug Fixes
1082
1133
 
1083
- - 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.
1084
1135
 
1085
1136
  ## 1.6.3 (2024-10-07)
1086
1137
 
1087
- - Model Registry (PrPr) has been removed.
1138
+ * Model Registry (PrPr) has been removed.
1088
1139
 
1089
1140
  ### Bug Fixes
1090
1141
 
1091
- - 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,
1092
1143
  an unexpected normalization is happening.
1093
- - Registry: Fix `not a valid remote uri` error when logging mlflow models.
1094
- - Registry: Fix a bug that `ModelVersion.run` is called in a nested way.
1095
- - 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
1096
1147
  base version.
1097
- - Fix issue where `sample_weights` were not being applied to search estimators.
1098
- - Model explainability: Fix bug which creates explain as a function instead of table function when enabling by default.
1099
- - 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.
1100
1151
 
1101
1152
  ### New Features
1102
1153
 
1103
- - Data: Improve `DataConnector.to_pandas()` performance when loading from Snowpark DataFrames.
1104
- - Model Registry: Allow users to set a model task while using `log_model`.
1105
- - 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.
1106
1157
 
1107
1158
  ## 1.6.2 (2024-09-04)
1108
1159
 
1109
1160
  ### Bug Fixes
1110
1161
 
1111
- - Modeling: Support XGBoost version that is larger than 2.
1162
+ * Modeling: Support XGBoost version that is larger than 2.
1112
1163
 
1113
- - Data: Fix multiple epoch iteration over `DataConnector.to_torch_datapipe()` DataPipes.
1114
- - 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
1115
1166
  be parsed wrongly. Now it raises an exception correctly.
1116
- - Model Explainability: Handle explanations for multiclass XGBoost classification models
1117
- - 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
1118
1169
 
1119
1170
  ### New Features
1120
1171
 
1121
- - Data: Add top-level exports for `DataConnector` and `DataSource` to `snowflake.ml.data`.
1122
- - Data: Add native batching support via `batch_size` and `drop_last_batch` arguments to `DataConnector.to_torch_dataset()`
1123
- - 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.
1124
1175
 
1125
1176
  ## 1.6.1 (2024-08-12)
1126
1177
 
1127
1178
  ### Bug Fixes
1128
1179
 
1129
- - Feature Store: Support large metadata blob when generating dataset
1130
- - 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
1131
1182
  refresh_mode
1132
- - 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
1133
1184
  target methods.
1134
- - 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
1135
1186
  is no longer needed.
1136
- - Feature Store: Add a new API: FeatureView.list_columns() which list all column information.
1137
- - 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`.
1138
1189
 
1139
1190
  ### New Features
1140
1191
 
1141
- - Enable `set_params` to set the parameters of the underlying sklearn estimator, if the snowflake-ml model has been fit.
1142
- - Data: Add `snowflake.ml.data.ingestor_utils` module with utility functions helpful for `DataIngestor` implementations.
1143
- - Data: Add new `to_torch_dataset()` connector to `DataConnector` to replace deprecated DataPipe.
1144
- - Registry: Option to `enable_explainability` set to True by default for XGBoost, LightGBM and CatBoost as PuPr feature.
1145
- - 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.
1146
1197
 
1147
1198
  ## 1.6.0 (2024-07-29)
1148
1199
 
1149
1200
  ### Bug Fixes
1150
1201
 
1151
- - Modeling: `SimpleImputer` can impute integer columns with integer values.
1152
- - 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
1153
1204
  the `ModelVersion.run`.
1154
1205
 
1155
1206
  ### New Features
1156
1207
 
1157
- - 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(),
1158
1209
  refresh_feature_view(), get_refresh_history(), resume_feature_view(), suspend_feature_view(), delete_feature_view().
1159
- - Feature Store: Add docstring inline examples for all public APIs.
1160
- - Feature Store: Add new utility class `ExampleHelper` to help with load source data to simplify public notebooks.
1161
- - Registry: Option to `enable_explainability` when registering XGBoost models as a pre-PuPr feature.
1162
- - Feature Store: add new API `update_entity()`.
1163
- - Registry: Option to `enable_explainability` when registering Catboost models as a pre-PuPr feature.
1164
- - 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
1165
1216
  a new column 'warehouse' to the output of list_feature_views().
1166
- - Registry: Add support for logging model from a model version.
1167
- - 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
1168
1219
  will not have the 10GB training limitation for dataset any more. To turn off, please run
1169
1220
  `
1170
1221
  from snowflake.ml.modeling._internal.snowpark_implementations import (
@@ -1172,106 +1223,106 @@ data from explainablity and data lineage.
1172
1223
  )
1173
1224
  distributed_hpo_trainer.ENABLE_EFFICIENT_MEMORY_USAGE = False
1174
1225
  `
1175
- - Registry: Option to `enable_explainability` when registering LightGBM models as a pre-PuPr feature.
1176
- - Data: Add new `snowflake.ml.data` preview module which contains data reading utilities like `DataConnector`
1177
- - `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`
1178
1229
  and Snowpark ML `Dataset` to external frameworks like PyTorch, TensorFlow, and Pandas. Create `DataConnector`
1179
1230
  instances using the classmethod constructors `DataConnector.from_dataset()` and `DataConnector.from_dataframe()`.
1180
- - Data: Add new `DataConnector.from_sources()` classmethod constructor for constructing from `DataSource` objects.
1181
- - Data: Add new `ingestor_class` arg to `DataConnector` classmethod constructors for easier `DataIngestor` injection.
1182
- - Dataset: `DatasetReader` now subclasses new `DataConnector` class.
1183
- - 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()`
1184
1235
 
1185
1236
  ### Behavior Changes
1186
1237
 
1187
- - Feature Store: change some positional parameters to keyword arguments in following APIs:
1188
- - Entity(): desc.
1189
- - FeatureView(): timestamp_col, refresh_freq, desc.
1190
- - FeatureStore(): creation_mode.
1191
- - update_entity(): desc.
1192
- - register_feature_view(): block, overwrite.
1193
- - list_feature_views(): entity_name, feature_view_name.
1194
- - get_refresh_history(): verbose.
1195
- - retrieve_feature_values(): spine_timestamp_col, exclude_columns, include_feature_view_timestamp_col.
1196
- - 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,
1197
1248
  include_feature_view_timestamp_col.
1198
- - generate_dataset(): version, spine_timestamp_col, spine_label_cols, exclude_columns,
1249
+ * generate_dataset(): version, spine_timestamp_col, spine_label_cols, exclude_columns,
1199
1250
  include_feature_view_timestamp_col, desc, output_type.
1200
1251
 
1201
1252
  ## 1.5.4 (2024-07-11)
1202
1253
 
1203
1254
  ### Bug Fixes
1204
1255
 
1205
- - Model Registry (PrPr): Fix 401 Unauthorized issue when deploying model to SPCS.
1206
- - 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
1207
1258
  desc, refresh_freq and warehouse for draft feature views.
1208
- - Modeling: Fix an issue with calling `OrdinalEncoder` with `categories` as a dictionary and a pandas DataFrame
1209
- - 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
1210
1261
 
1211
1262
  ### New Features
1212
1263
 
1213
- - Registry: Allow overriding `device_map` and `device` when loading huggingface pipeline models.
1214
- - Registry: Add `set_alias` method to `ModelVersion` instance to set an alias to model version.
1215
- - Registry: Add `unset_alias` method to `ModelVersion` instance to unset an alias to model version.
1216
- - 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
1217
1268
  models. Enable model inference methods with table functions with vectorized process methods in registered models.
1218
- - 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
1219
1270
  `list_feature_views()`.
1220
- - Feature Store: `update_feature_view()` supports updating description.
1221
- - Feature Store: add new API `refresh_feature_view()`.
1222
- - Feature Store: add new API `get_refresh_history()`.
1223
- - Feature Store: Add `generate_training_set()` API for generating table-backed feature snapshots.
1224
- - Feature Store: Add `DeprecationWarning` for `generate_dataset(..., output_type="table")`.
1225
- - Feature Store: `update_feature_view()` supports updating description.
1226
- - Feature Store: add new API `refresh_feature_view()`.
1227
- - Feature Store: add new API `get_refresh_history()`.
1228
- - Model Development: OrdinalEncoder supports a list of array-likes for `categories` argument.
1229
- - 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.
1230
1281
 
1231
1282
  ## 1.5.3 (06-17-2024)
1232
1283
 
1233
1284
  ### Bug Fixes
1234
1285
 
1235
- - Modeling: Fix an issue causing lineage information to be missing for
1286
+ * Modeling: Fix an issue causing lineage information to be missing for
1236
1287
  `Pipeline`, `GridSearchCV` , `SimpleImputer`, and `RandomizedSearchCV`
1237
- - 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
1238
1289
  of `ModelVersion.run` method in Stored Procedure.
1239
1290
 
1240
1291
  ### New Features
1241
1292
 
1242
- - Registry: Add support for TIMESTAMP_NTZ model signature data type, allowing timestamp input and output.
1243
- - 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.
1244
1295
 
1245
1296
  ## 1.5.2 (06-10-2024)
1246
1297
 
1247
1298
  ### Bug Fixes
1248
1299
 
1249
- - Registry: Fix an issue that leads to unable to log model in store procedure.
1250
- - 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
1251
1302
  dependency error.
1252
1303
 
1253
1304
  ## 1.5.1 (05-22-2024)
1254
1305
 
1255
1306
  ### Bug Fixes
1256
1307
 
1257
- - 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
1258
1309
  DatasetVersion properties when case insensitive `SHOW VERSIONS IN DATASET` check matches multiple version names.
1259
- - Dataset: Fix bug in SnowFS bulk file read when used with DuckDB
1260
- - Registry: Fixed a bug when loading old models.
1261
- - 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
1262
1313
 
1263
1314
  ### Behavior Changes
1264
1315
 
1265
- - Feature Store: convert clear() into a private function. Also make it deletes feature views and entities only.
1266
- - 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.
1267
1318
 
1268
1319
  ### New Features
1269
1320
 
1270
- - Feature Store: Added new `snowflake.ml.feature_store.setup_feature_store()` API to assist Feature Store RBAC setup.
1271
- - 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
1272
1323
  as Datasets or Tables.
1273
- - Registry: `log_model`, `get_model`, `delete_model` now supports fully qualified name.
1274
- - 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
1275
1326
  permissions to operate on schema. Please call
1276
1327
  `import snowflake.ml.modeling.parameters.enable_anonymous_sproc # noqa: F401`
1277
1328
 
@@ -1279,11 +1330,11 @@ data from explainablity and data lineage.
1279
1330
 
1280
1331
  ### Bug Fixes
1281
1332
 
1282
- - 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.
1283
1334
 
1284
1335
  ### Behavior Changes
1285
1336
 
1286
- - 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.
1287
1338
  Firstly, it will cover all the estimator that contains this function,
1288
1339
  secondly, the output would be the union of pandas DataFrame and snowpark DataFrame.
1289
1340
 
@@ -1291,167 +1342,167 @@ data from explainablity and data lineage.
1291
1342
 
1292
1343
  `snowflake.ml.registry.artifact` and related `snowflake.ml.model_registry.ModelRegistry` APIs have been removed.
1293
1344
 
1294
- - Removed `snowflake.ml.registry.artifact` module.
1295
- - Removed `ModelRegistry.log_artifact()`, `ModelRegistry.list_artifacts()`, `ModelRegistry.get_artifact()`
1296
- - 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()`
1297
1348
 
1298
1349
  #### Dataset (PrPr)
1299
1350
 
1300
1351
  `snowflake.ml.dataset.Dataset` has been redesigned to be backed by Snowflake Dataset entities.
1301
1352
 
1302
- - 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
1303
1354
  with `Dataset.load()`.
1304
- - `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
1305
1356
  `Dataset.load_version()` APIs return new `Dataset` objects with the requested `selected_version` state.
1306
- - 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
1307
1358
  to creating and loading `Dataset`s with a pre-selected version.
1308
- - `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`
1309
1360
  as the closest equivalent.
1310
- - `Dataset.df` no longer exists. Instead, use `DatasetReader.read.to_snowpark_dataframe()`.
1311
- - `Dataset.owner` has been moved to `Dataset.selected_version.owner`
1312
- - `Dataset.desc` has been moved to `DatasetVersion.selected_version.comment`
1313
- - `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
1314
1365
  `Dataset.schema_version` have been removed.
1315
1366
 
1316
1367
  #### Feature Store (PrPr)
1317
1368
 
1318
- - `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
1319
1370
  `snowflake.ml.dataset.Dataset` definition
1320
1371
 
1321
- - `materialized_table` has been removed and replaced with `name` and `version`.
1322
- - `name` moved to first positional argument
1323
- - `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`.
1324
1375
 
1325
- - 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.
1326
1377
 
1327
- - 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.
1328
1379
 
1329
- - 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
1330
1381
  not readable by new SDK.
1331
1382
 
1332
1383
  ### New Features
1333
1384
 
1334
- - Registry: Add `export` method to `ModelVersion` instance to export model files.
1335
- - Registry: Add `load` method to `ModelVersion` instance to load the underlying object from the model.
1336
- - 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.
1337
1388
 
1338
1389
  #### Dataset (PrPr)
1339
1390
 
1340
- - Added Snowpark DataFrame integration using `Dataset.read.to_snowpark_dataframe()`
1341
- - Added Pandas DataFrame integration using `Dataset.read.to_pandas()`
1342
- - 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()`
1343
1394
  and `Dataset.read.to_tf_dataset()` respectively.
1344
- - 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()`
1345
1396
 
1346
1397
  #### Feature Store
1347
1398
 
1348
- - use new tag_reference_internal to speed up metadata lookup.
1399
+ * use new tag_reference_internal to speed up metadata lookup.
1349
1400
 
1350
1401
  ## 1.4.1 (2024-04-18)
1351
1402
 
1352
1403
  ### New Features
1353
1404
 
1354
- - Registry: Add support for `catboost` model (`catboost.CatBoostClassifier`, `catboost.CatBoostRegressor`).
1355
- - 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`).
1356
1407
 
1357
1408
  ### Bug Fixes
1358
1409
 
1359
- - 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.
1360
1411
 
1361
1412
  ### Behavior changes
1362
1413
 
1363
- - 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.
1364
1415
 
1365
1416
  ## 1.4.0 (2024-04-08)
1366
1417
 
1367
1418
  ### Bug Fixes
1368
1419
 
1369
- - 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
1370
1421
  have incorrect result. This fix only works for newly logged model.
1371
- - 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
1372
1423
  in SnowML models.
1373
- - 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
1374
1425
  predict, predict_log_proba, and other batch inference methods. The n_jobs would automatically
1375
1426
  set to 1 because vectorized udf currently doesn't support joblib parallel backend.
1376
- - Modeling: Fix a bug that batch inference methods cannot infer the datatype when the first row of data contains NULL.
1377
- - Modeling: Matches Distributed HPO output column names with the snowflake identifier.
1378
- - 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
1379
1430
  is not available in the Snowflake conda channel
1380
- - Modeling: Add sklearn as required dependency for LightGBM package.
1431
+ * Modeling: Add sklearn as required dependency for LightGBM package.
1381
1432
 
1382
1433
  ### Behavior Changes
1383
1434
 
1384
- - 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
1385
1436
  be specified manually when logging the model by `log_model(..., options={"target_methods": ["apply", ...]})`.
1386
- - Feature Store: register_entity returns an entity object.
1387
- - 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.
1388
1439
 
1389
1440
  ### New Features
1390
1441
 
1391
- - Registry: Add support for `sentence-transformers` model (`sentence_transformers.SentenceTransformer`).
1392
- - 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
1393
1444
  will be generated.
1394
1445
 
1395
1446
  ## 1.3.1 (2024-03-21)
1396
1447
 
1397
1448
  ### New Features
1398
1449
 
1399
- - 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.
1400
1451
 
1401
1452
  ## 1.3.0 (2024-03-12)
1402
1453
 
1403
1454
  ### Bug Fixes
1404
1455
 
1405
- - Registry: Fix a bug that leads to module in `code_paths` when `log_model` cannot be correctly imported.
1406
- - Registry: Fix incorrect error message when validating input Snowpark DataFrame with array feature.
1407
- - Model Registry: Fix an issue when deploying a model to SPCS that some files do not have proper permission.
1408
- - 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
1409
1460
  is not available in the Snowflake conda channel
1410
1461
 
1411
1462
  ### Behavior Changes
1412
1463
 
1413
- - 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
1414
1465
  is now optional rather than enforced, this should improve the performance and should not lead to problem for most
1415
1466
  kinds of model. If you want to enable this check as previous, specify `strict_input_validation=True` when
1416
1467
  calling `run`.
1417
- - 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.
1418
1469
  This improves dependency versioning by using versions available in Snowflake. To switch back to the previous behavior
1419
1470
  and use specific local dependency versions, specify `relax_version=False` when calling `log_model`.
1420
- - 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.
1421
1472
  Firstly, it will cover all the estimator that contains this function,
1422
1473
  secondly, the output would be the union of pandas DataFrame and snowpark DataFrame.
1423
1474
 
1424
1475
  ### New Features
1425
1476
 
1426
- - 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`.
1427
1478
 
1428
1479
  ## 1.2.3 (2024-02-26)
1429
1480
 
1430
1481
  ### Bug Fixes
1431
1482
 
1432
- - 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
1433
1484
  warnings.
1434
- - Registry: Improve the error message when specifying currently unsupported `pip_requirements` argument.
1435
- - Model Development: Fix precision_recall_fscore_support incorrect results when `average="samples"`.
1436
- - 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
1437
1488
  Model Registry (PrPr) due to Snowflake BCR [2024_01](https://docs.snowflake.com/en/release-notes/bcr-bundles/2024_01/bcr-1483)
1438
1489
 
1439
1490
  ### Behavior Changes
1440
1491
 
1441
- - 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
1442
1493
  view argument any more. The updated status only reflected in the returned feature view object.
1443
1494
 
1444
1495
  ### New Features
1445
1496
 
1446
- - 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,
1447
1498
  GridSearchCV, RandomizedSearchCV, PCA, IsolationForest, ...
1448
- - Registry: Support deleting a version of a model.
1499
+ * Registry: Support deleting a version of a model.
1449
1500
 
1450
1501
  ## 1.2.2 (2024-02-13)
1451
1502
 
1452
1503
  ### New Features
1453
1504
 
1454
- - 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
1455
1506
  required to make sure the deploying process work as long as SPCS will by default deny all network connections. The
1456
1507
  following endpoints must be allowed to make deployment work: docker.com:80, docker.com:443, anaconda.com:80,
1457
1508
  anaconda.com:443, anaconda.org:80, anaconda.org:443, pypi.org:80, pypi.org:443. If you are using
@@ -1462,30 +1513,30 @@ not readable by new SDK.
1462
1513
 
1463
1514
  ### New Features
1464
1515
 
1465
- - Model Development: Infers output column data type for transformers when possible.
1466
- - 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.
1467
1518
 
1468
1519
  ## 1.2.0 (2024-01-11)
1469
1520
 
1470
1521
  ### Bug Fixes
1471
1522
 
1472
- - 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
1473
1524
  XGBoost models deployed to SPCS.
1474
- - Model Registry: Fix model deployment to SPCS on Windows machines.
1525
+ * Model Registry: Fix model deployment to SPCS on Windows machines.
1475
1526
 
1476
1527
  ### New Features
1477
1528
 
1478
- - 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
1479
1530
  on large datasets that don't fit into memory.
1480
- - 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
1481
1532
  with new MODEL object in Snowflake SQL. Also, we are providing`snowflake.ml.model.Model` and
1482
1533
  `snowflake.ml.model.ModelVersion` to represent a model and a specific version of a model.
1483
- - Model Development: Add support for `fit_predict` method in `AgglomerativeClustering`, `DBSCAN`, and `OPTICS` classes;
1484
- - 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.
1485
1536
 
1486
1537
  ### Additional Notes
1487
1538
 
1488
- - 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
1489
1540
  1.2.0. It will stay in the Private Preview phase. For future implementations, kindly utilize
1490
1541
  `snowflake.ml.registry.Registry`, except when specifically required. The old model registry will be removed once all
1491
1542
  its primary functionalities are fully integrated into the new registry.
@@ -1494,30 +1545,30 @@ not readable by new SDK.
1494
1545
 
1495
1546
  ### Bug Fixes
1496
1547
 
1497
- - Generic: Fix the issue that stack trace is hidden by telemetry unexpectedly.
1498
- - Model Development: Execute model signature inference without materializing full dataframe in memory.
1499
- - 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.
1500
1551
 
1501
1552
  ### Behavior Changes
1502
1553
 
1503
- - Model Registry: When calling `predict` with Snowpark DataFrame, both inferred or normalized column names are accepted.
1504
- - 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
1505
1556
  ignored since they are not necessary.
1506
1557
 
1507
1558
  ### New Features
1508
1559
 
1509
- - Model Development: SQL implementation of binary `precision_score` metric.
1560
+ * Model Development: SQL implementation of binary `precision_score` metric.
1510
1561
 
1511
1562
  ## 1.1.1 (2023-12-05)
1512
1563
 
1513
1564
  ### Bug Fixes
1514
1565
 
1515
- - Model Registry: The `predict` target method on registered models is now compatible with unsupervised estimators.
1516
- - 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.
1517
1568
 
1518
1569
  ### New Features
1519
1570
 
1520
- - 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
1521
1572
  requiring automatic input_cols inference, but need to avoid using specific
1522
1573
  columns, like index columns, during training or inference.
1523
1574
 
@@ -1525,165 +1576,165 @@ not readable by new SDK.
1525
1576
 
1526
1577
  ### Bug Fixes
1527
1578
 
1528
- - Model Registry: Fix panda dataframe input not handling first row properly.
1529
- - 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
1530
1581
  would previously be excluded if the normalized name did not match the name specified in output_columns.
1531
1582
 
1532
1583
  ### New Features
1533
1584
 
1534
- - 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
1535
1586
  deployment option.
1536
- - 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
1537
1588
  distributed on multi-node warehouses.
1538
1589
 
1539
1590
  ## 1.0.12 (2023-11-13)
1540
1591
 
1541
1592
  ### Bug Fixes
1542
1593
 
1543
- - Model Registry: Fix regression issue that container logging is not shown during model deployment to SPCS.
1544
- - Model Development: Enhance the column capacity of OrdinalEncoder.
1545
- - 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
1546
1597
  and LLM with GPU on SPCS.
1547
1598
 
1548
1599
  ### Behavior Changes
1549
1600
 
1550
- - Model Registry: Raise early error when deploying to SPCS with db/schema that starts with underscore.
1551
- - Model Registry: `conda-forge` channel is now automatically added to channel lists when deploying to SPCS.
1552
- - 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
1553
1604
  `>=x.y,<(x+1)`.
1554
- - 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
1555
1606
  the model via Model Registry and would be considered to use when deploying to SPCS.
1556
- - 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,
1557
1608
  versions of local installed libraries won't be picked as dependencies of models, instead it will pick up some pre-
1558
1609
  defined dependencies to improve user experience.
1559
1610
 
1560
1611
  ### New Features
1561
1612
 
1562
- - 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.
1563
1614
 
1564
1615
  ## 1.0.11 (2023-10-27)
1565
1616
 
1566
1617
  ### New Features
1567
1618
 
1568
- - Model Registry: Add log_artifact() public method.
1569
- - Model Development: Add support for `kneighbors`.
1619
+ * Model Registry: Add log_artifact() public method.
1620
+ * Model Development: Add support for `kneighbors`.
1570
1621
 
1571
1622
  ### Behavior Changes
1572
1623
 
1573
- - Model Registry: Change log_model() argument from TrainingDataset to List of Artifact.
1574
- - 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().
1575
1626
 
1576
1627
  ### Bug Fixes
1577
1628
 
1578
- - Model Development: Fix support for XGBoost and LightGBM models using SKLearn Grid Search and Randomized Search model selectors.
1579
- - Model Development: DecimalType is now supported as a DataType.
1580
- - Model Development: Fix metrics compatibility with Snowpark Dataframes that use Snowflake identifiers
1581
- - 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.
1582
1633
 
1583
1634
  ## 1.0.10 (2023-10-13)
1584
1635
 
1585
1636
  ### Behavior Changes
1586
1637
 
1587
- - 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,
1588
1639
  mean_absolute_error, mean_squared_error, and mean_absolute_percentage_error metric calculations are now distributed.
1589
- - Model Registry: `deploy` will now return `Deployment` for deployment information.
1640
+ * Model Registry: `deploy` will now return `Deployment` for deployment information.
1590
1641
 
1591
1642
  ### New Features
1592
1643
 
1593
- - Model Registry: When the model signature is auto-inferred, it will be printed to the log for reference.
1594
- - 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`.
1595
1646
 
1596
1647
  ### Bug Fixes
1597
1648
 
1598
- - Model Development: Fix an issue that leading to UTF-8 decoding errors when using modeling modules on Windows.
1599
- - Model Development: Fix an issue that alias definitions cause `SnowparkSQLUnexpectedAliasException` in inference.
1600
- - Model Registry: Fix an issue that signature inference could be incorrect when using Snowpark DataFrame as sample input.
1601
- - 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
1602
1653
  type feature in the signature, if providing a INT64 dataframe but all values are within the range, it would not fail.
1603
1654
 
1604
1655
  ## 1.0.9 (2023-09-28)
1605
1656
 
1606
1657
  ### Behavior Changes
1607
1658
 
1608
- - Model Development: log_loss metric calculation is now distributed.
1659
+ * Model Development: log_loss metric calculation is now distributed.
1609
1660
 
1610
1661
  ### Bug Fixes
1611
1662
 
1612
- - Model Registry: Fix an issue that building images fails with specific docker setup.
1613
- - Model Registry: Fix an issue that unable to embed local ML library when the library is imported by `zipimport`.
1614
- - Model Registry: Fix out-of-date doc about `platform` argument in the `deploy` function.
1615
- - 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.
1616
1667
 
1617
1668
  ## 1.0.8 (2023-09-15)
1618
1669
 
1619
1670
  ### Bug Fixes
1620
1671
 
1621
- - Model Development: Ordinal encoder can be used with mixed input column types.
1622
- - Model Development: Fix an issue when the sklearn default value is `np.nan`.
1623
- - Model Registry: Fix an issue that incorrect docker executable is used when building images.
1624
- - 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
1625
1676
  `snowflake.ml.model.models.huggingface_pipeline.HuggingFacePipelineModel` with `transformers < 4.32.0` is not effective.
1626
- - Model Registry: Fix an issue that incorrect system function call is used when deploying to SPCS.
1627
- - Model Registry: Fix an issue when using a `transformers.pipeline` that does not have a `tokenizer`.
1628
- - Model Registry: Fix incorrectly-inferred image repository name during model deployment to SPCS.
1629
- - 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.
1630
1681
 
1631
1682
  ## 1.0.7 (2023-09-05)
1632
1683
 
1633
1684
  ### Bug Fixes
1634
1685
 
1635
- - Model Development & Model Registry: Fix an error related to `pandas.io.json.json_normalize`.
1636
- - Allow disabling telemetry.
1686
+ * Model Development & Model Registry: Fix an error related to `pandas.io.json.json_normalize`.
1687
+ * Allow disabling telemetry.
1637
1688
 
1638
1689
  ## 1.0.6 (2023-09-01)
1639
1690
 
1640
1691
  ### New Features
1641
1692
 
1642
- - Model Registry: add `create_if_not_exists` parameter in constructor.
1643
- - Model Registry: Added get_or_create_model_registry API.
1644
- - 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`
1645
1696
  ), PyTorch (`torch.nn.Module` and `torch.jit.ScriptModule`) and TensorFlow (`tensorflow.Module` and
1646
1697
  `tensorflow.keras.Model`) models to Snowpark Container Services.
1647
- - 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`,
1648
1699
  `Sequence` of `torch.Tensor`, `Sequence` of `tensorflow.Tensor` and `Sequence` of `tensorflow.Tensor` can be used
1649
1700
  instead of only `List` of them.
1650
- - Model Registry: Added `get_training_dataset` API.
1651
- - Model Development: Size of metrics result can exceed previous 8MB limit.
1652
- - 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
1653
1704
  (`snowflake.ml.model.models.huggingface_pipeline.HuggingFacePipelineModel`) to it. Using the wrapper to specify
1654
1705
  configurations and the model for the pipeline will be loaded dynamically when deploying. Currently, following tasks
1655
1706
  are supported to log without manually specifying model signatures:
1656
- - "conversational"
1657
- - "fill-mask"
1658
- - "question-answering"
1659
- - "summarization"
1660
- - "table-question-answering"
1661
- - "text2text-generation"
1662
- - "text-classification" (alias "sentiment-analysis" available)
1663
- - "text-generation"
1664
- - "token-classification" (alias "ner" available)
1665
- - "translation"
1666
- - "translation_xx_to_yy"
1667
- - "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"
1668
1719
 
1669
1720
  ### Bug Fixes
1670
1721
 
1671
- - Model Development: Fixed a bug when using simple imputer with numpy >= 1.25.
1672
- - 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.
1673
1724
 
1674
1725
  ### Behavior Changes
1675
1726
 
1676
- - Model Registry: `log_model()` now return a `ModelReference` object instead of a model ID.
1677
- - Model Registry: When deploying a model with 1 `target method` only, the `target_method` argument can be omitted.
1678
- - 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
1679
1730
  Channel, `embed_local_ml_library` option will be set as `True` automatically if not.
1680
- - 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
1681
1732
  will be 1.
1682
- - 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
1683
1734
  behavior is controlled by the type of the input when calling `model.predict()`. If the input is a `pandas.DataFrame`,
1684
1735
  the behavior will be the same as `keep_order=True` and `output_with_input_features=False` before. If the input is a
1685
1736
  `snowpark.DataFrame`, the behavior will be the same as `keep_order=False` and `output_with_input_features=True` before.
1686
- - 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
1687
1738
  (`tensorflow.Module` and `tensorflow.keras.Model`) models, we no longer accept models whose input is a list of tensor
1688
1739
  and output is a list of tensors. Instead, now we accept models whose input is 1 or more tensors as positional arguments,
1689
1740
  and output is a tensor or a tuple of tensors. The input and output dataframe when predicting keep the same as before,
@@ -1693,53 +1744,53 @@ not readable by new SDK.
1693
1744
 
1694
1745
  ### New Features
1695
1746
 
1696
- - Model Registry: Added support save/load/deploy xgboost Booster model.
1697
- - 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.
1698
1749
 
1699
1750
  ### Bug Fixes
1700
1751
 
1701
- - Model Registry: Restore the db/schema back to the session after `create_model_registry()`.
1702
- - 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
1703
1754
  and cannot be correctly dropped when deployment getting dropped.
1704
- - connection_params.SnowflakeLoginOptions(): Added support for `private_key_path`.
1755
+ * connection_params.SnowflakeLoginOptions(): Added support for `private_key_path`.
1705
1756
 
1706
1757
  ## 1.0.4 (2023-07-28)
1707
1758
 
1708
1759
  ### New Features
1709
1760
 
1710
- - Model Registry: Added support save/load/deploy Tensorflow models (`tensorflow.Module`).
1711
- - Model Registry: Added support save/load/deploy MLFlow PyFunc models (`mlflow.pyfunc.PyFuncModel`).
1712
- - Model Development: Input dataframes can now be joined against data loaded from staged files.
1713
- - 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.
1714
1765
 
1715
1766
  ### Bug Fixes
1716
1767
 
1717
- - 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.
1718
1769
 
1719
1770
  ## 1.0.3 (2023-07-14)
1720
1771
 
1721
1772
  ### Behavior Changes
1722
1773
 
1723
- - 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,
1724
1775
  instead, every ndarray will act as a feature(column) in the output.
1725
1776
 
1726
1777
  ### New Features
1727
1778
 
1728
- - 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`).
1729
1780
 
1730
1781
  ### Bug Fixes
1731
1782
 
1732
- - 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
1733
1784
  characters, the model registry cannot be created.
1734
- - Model Registry: Fix an issue that `get_model_description` returns with additional quotes.
1735
- - Model Registry: Fix incorrect error message when attempting to remove a unset tag of a model.
1736
- - Model Registry: Fix a typo in the default deployment table name.
1737
- - 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
1738
1789
  Snowflake `NUMBER(precision, scale)` data type where `scale = 0` will not lead to error, and will now correctly
1739
1790
  recognized as `INT64` data type in model signature.
1740
- - 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
1741
1792
  from deploying.
1742
- - 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
1743
1794
  itself contains characters that are unable to be encoded using ASCII. It is currently not supported to deploy such a
1744
1795
  model.
1745
1796
 
@@ -1747,181 +1798,181 @@ not readable by new SDK.
1747
1798
 
1748
1799
  ### Behavior Changes
1749
1800
 
1750
- - Model Registry: Prohibit non-snowflake-native models from being logged.
1751
- - Model Registry: `_use_local_snowml` parameter in options of `deploy()` has been removed.
1752
- - 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()`.
1753
1804
  With this set to `False` (default), the version of the local snowflake-ml-python library will be recorded and used when
1754
1805
  deploying the model. With this set to `True`, local snowflake-ml-python library will be embedded into the logged model,
1755
1806
  and will be used when you load or deploy the model.
1756
1807
 
1757
1808
  ### New Features
1758
1809
 
1759
- - 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
1760
1811
  to specify additional code paths to be imported when loading and deploying the model.
1761
- - 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
1762
1813
  any additional options when saving the model.
1763
- - Model Development: Added metrics:
1764
- - d2_absolute_error_score
1765
- - d2_pinball_score
1766
- - explained_variance_score
1767
- - mean_absolute_error
1768
- - mean_absolute_percentage_error
1769
- - 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
1770
1821
 
1771
1822
  ### Bug Fixes
1772
1823
 
1773
- - 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.
1774
1825
 
1775
1826
  ## 1.0.1 (2023-06-16)
1776
1827
 
1777
1828
  ### Behavior Changes
1778
1829
 
1779
- - Model Development: Changed Metrics APIs to imitate sklearn metrics modules:
1780
- - `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
1781
1832
  respective modules to `metrics.classification`.
1782
- - Model Registry: The default table/stage created by the Registry now uses "_SYSTEM_" as a prefix.
1783
- - 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.
1784
1835
 
1785
1836
  ### New Features
1786
1837
 
1787
- - 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
1788
1839
  to `True` will allow overwrite existing UDF with the same name when deploying.
1789
- - Model Development: Added metrics:
1790
- - f1_score
1791
- - fbeta_score
1792
- - recall_score
1793
- - roc_auc_score
1794
- - roc_curve
1795
- - log_loss
1796
- - precision_recall_curve
1797
- - 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`
1798
1849
  allows the creation of a permanent deployment without needing to specify the UDF location.
1799
- - 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
1800
1851
  from a specific model.
1801
- - Model Registry: A new method `get_deployment()` has been added to fetch a deployment by its deployment name.
1802
- - 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.
1803
1854
 
1804
1855
  ## 1.0.0 (2023-06-09)
1805
1856
 
1806
1857
  ### Behavior Changes
1807
1858
 
1808
- - Model Registry: `predict()` method moves from Registry to ModelReference.
1809
- - 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
1810
1861
  default value of `False`. Setting this to `True` will have the same effect of uploading local SnowML code when executing
1811
1862
  model in the warehouse.
1812
- - Model Registry: Removed `id` field from `ModelReference` constructor.
1813
- - 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
1814
1865
  `snowflake.ml.modeling.metrics`.
1815
- - 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
1816
1867
  respective native models.
1817
1868
 
1818
1869
  ### New Features
1819
1870
 
1820
- - Added PolynomialFeatures transformer to the snowflake.ml.modeling.preprocessing module.
1821
- - Added metrics:
1822
- - accuracy_score
1823
- - confusion_matrix
1824
- - precision_recall_fscore_support
1825
- - 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
1826
1877
 
1827
1878
  ### Bug Fixes
1828
1879
 
1829
- - Model Registry: Model version can now be any string (not required to be a valid identifier)
1830
- - 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
1831
1882
 
1832
1883
  ## 0.3.2 (2023-05-23)
1833
1884
 
1834
1885
  ### Behavior Changes
1835
1886
 
1836
- - 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.
1837
1888
 
1838
1889
  ### New Features
1839
1890
 
1840
- - Model Deployment: Added support for snowflake.ml models.
1891
+ * Model Deployment: Added support for snowflake.ml models.
1841
1892
 
1842
1893
  ## 0.3.1 (2023-05-18)
1843
1894
 
1844
1895
  ### Behavior Changes
1845
1896
 
1846
- - Standardized registry API with following
1847
- - Create & open registry taking same set of arguments
1848
- - Create & Open can choose schema to use
1849
- - 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.
1850
1901
 
1851
1902
  ### New Features
1852
1903
 
1853
- - Changes to support python 3.9, 3.10
1854
- - Added kBinsDiscretizer
1855
- - 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
1856
1907
 
1857
1908
  ## 0.3.0 (2023-05-11)
1858
1909
 
1859
1910
  ### Behavior Changes
1860
1911
 
1861
- - Big Model Registry Refresh
1862
- - Fixed API discrepancies between register_model & log_model.
1863
- - 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)
1864
1915
 
1865
1916
  ### New Features
1866
1917
 
1867
- - Model Registry: Added support save/load/deploy SKL & XGB Models
1918
+ * Model Registry: Added support save/load/deploy SKL & XGB Models
1868
1919
 
1869
1920
  ## 0.2.3 (2023-04-27)
1870
1921
 
1871
1922
  ### Bug Fixes
1872
1923
 
1873
- - Allow using OneHotEncoder along with sklearn style estimators in a pipeline.
1924
+ * Allow using OneHotEncoder along with sklearn style estimators in a pipeline.
1874
1925
 
1875
1926
  ### New Features
1876
1927
 
1877
- - 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
1878
1929
  but just unregister.
1879
1930
 
1880
1931
  ## 0.2.2 (2023-04-11)
1881
1932
 
1882
1933
  ### New Features
1883
1934
 
1884
- - Initial version of snowflake-ml modeling package.
1885
- - 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.
1886
1937
 
1887
1938
  ### Bug Fixes
1888
1939
 
1889
- - Minor fixes in preprocessing package.
1940
+ * Minor fixes in preprocessing package.
1890
1941
 
1891
1942
  ## 0.2.1 (2023-03-23)
1892
1943
 
1893
1944
  ### New Features
1894
1945
 
1895
- - New in Preprocessing:
1896
- - SimpleImputer
1897
- - Covariance Matrix
1898
- - Optimization of Ordinal Encoder client computations.
1946
+ * New in Preprocessing:
1947
+ * SimpleImputer
1948
+ * Covariance Matrix
1949
+ * Optimization of Ordinal Encoder client computations.
1899
1950
 
1900
1951
  ### Bug Fixes
1901
1952
 
1902
- - Minor fixes in OneHotEncoder.
1953
+ * Minor fixes in OneHotEncoder.
1903
1954
 
1904
1955
  ## 0.2.0 (2023-02-27)
1905
1956
 
1906
1957
  ### New Features
1907
1958
 
1908
- - Model Registry
1909
- - PyTorch & Tensorflow connector file generic FileSet API
1910
- - New to Preprocessing:
1911
- - Binarizer
1912
- - Normalizer
1913
- - Pearson correlation Matrix
1914
- - 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.
1915
1966
 
1916
1967
  ## 0.1.3 (2023-02-02)
1917
1968
 
1918
1969
  ### New Features
1919
1970
 
1920
- - Initial version of transformers including:
1921
- - Label Encoder
1922
- - Max Abs Scaler
1923
- - Min Max Scaler
1924
- - One Hot Encoder
1925
- - Ordinal Encoder
1926
- - Robust Scaler
1927
- - 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