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.
- snowflake/ml/_internal/utils/mixins.py +6 -4
- snowflake/ml/_internal/utils/service_logger.py +118 -4
- snowflake/ml/data/_internal/arrow_ingestor.py +4 -1
- snowflake/ml/data/data_connector.py +4 -34
- snowflake/ml/dataset/dataset.py +1 -1
- snowflake/ml/dataset/dataset_reader.py +2 -8
- snowflake/ml/experiment/__init__.py +3 -0
- snowflake/ml/experiment/callback/lightgbm.py +55 -0
- snowflake/ml/experiment/callback/xgboost.py +63 -0
- snowflake/ml/experiment/utils.py +14 -0
- snowflake/ml/jobs/_utils/constants.py +15 -4
- snowflake/ml/jobs/_utils/payload_utils.py +159 -52
- snowflake/ml/jobs/_utils/scripts/constants.py +0 -22
- snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +126 -23
- snowflake/ml/jobs/_utils/spec_utils.py +1 -1
- snowflake/ml/jobs/_utils/stage_utils.py +30 -14
- snowflake/ml/jobs/_utils/types.py +64 -4
- snowflake/ml/jobs/job.py +22 -6
- snowflake/ml/jobs/manager.py +5 -3
- snowflake/ml/model/_client/model/model_version_impl.py +56 -48
- snowflake/ml/model/_client/ops/service_ops.py +194 -14
- snowflake/ml/model/_client/sql/service.py +1 -38
- snowflake/ml/model/_packager/model_handlers/sklearn.py +9 -5
- snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +1 -0
- snowflake/ml/model/_signatures/pandas_handler.py +3 -0
- snowflake/ml/model/_signatures/utils.py +4 -0
- snowflake/ml/model/event_handler.py +87 -18
- snowflake/ml/model/model_signature.py +2 -0
- snowflake/ml/model/models/huggingface_pipeline.py +71 -49
- snowflake/ml/model/type_hints.py +26 -1
- snowflake/ml/registry/_manager/model_manager.py +30 -35
- snowflake/ml/registry/_manager/model_parameter_reconciler.py +105 -0
- snowflake/ml/registry/registry.py +0 -19
- snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.9.1.dist-info → snowflake_ml_python-1.10.0.dist-info}/METADATA +542 -491
- {snowflake_ml_python-1.9.1.dist-info → snowflake_ml_python-1.10.0.dist-info}/RECORD +39 -34
- {snowflake_ml_python-1.9.1.dist-info → snowflake_ml_python-1.10.0.dist-info}/WHEEL +0 -0
- {snowflake_ml_python-1.9.1.dist-info → snowflake_ml_python-1.10.0.dist-info}/licenses/LICENSE.txt +0 -0
- {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.
|
|
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
|
|
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
|
|
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.
|
|
413
|
+
## 1.10.0
|
|
413
414
|
|
|
414
415
|
### Bug Fixes
|
|
415
416
|
|
|
416
|
-
|
|
417
|
+
### Behavior Changes
|
|
418
|
+
|
|
419
|
+
### New Features
|
|
420
|
+
|
|
421
|
+
* Registry: add progress bars for `ModelVersion.create_service` and `ModelVersion.log_model`.
|
|
422
|
+
* ModelRegistry: Logs emitted during `ModelVersion.create_service` will be written to a file. The file location
|
|
423
|
+
will be shown in the console.
|
|
424
|
+
|
|
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
|
-
|
|
422
|
-
|
|
423
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
516
|
+
* Registry: Fixed bug causing snowpark to pandas dataframe conversion to fail when `QUOTED_IDENTIFIERS_IGNORE_CASE`
|
|
466
517
|
parameter is enabled
|
|
467
|
-
|
|
468
|
-
|
|
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
|
-
|
|
531
|
+
* Registry: Fixed SQL queries during registry initialization that were forcing warehouse requirement
|
|
481
532
|
|
|
482
533
|
### Behavior Changes
|
|
483
534
|
|
|
484
|
-
|
|
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
|
-
|
|
490
|
-
|
|
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
|
-
|
|
545
|
+
* Registry: `target_platforms` supports `TargetPlatformMode`: `WAREHOUSE_ONLY`, `SNOWPARK_CONTAINER_SERVICES_ONLY`,
|
|
495
546
|
or `BOTH_WAREHOUSE_AND_SNOWPARK_CONTAINER_SERVICES`.
|
|
496
|
-
|
|
547
|
+
* Registry: Introduce `snowflake.ml.model.target_platform.TargetPlatform`, target platform constants, and
|
|
497
548
|
`snowflake.ml.model.task.Task`.
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
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
|
-
|
|
558
|
+
* Fixed fatal errors from internal telemetry wrappers.
|
|
508
559
|
|
|
509
560
|
### New Features
|
|
510
561
|
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
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
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
536
|
-
|
|
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
|
-
|
|
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
|
-
|
|
547
|
-
|
|
548
|
-
|
|
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
|
-
|
|
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
|
-
|
|
556
|
-
|
|
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
|
-
|
|
612
|
+
* ML Job (PuPr): Extend `@remote` function decorator, `submit_file()` and `submit_directory()` to accept `database` and
|
|
562
613
|
`schema` parameters
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
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
|
-
|
|
573
|
-
|
|
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
|
-
|
|
576
|
-
|
|
577
|
-
|
|
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
|
-
|
|
584
|
-
|
|
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
|
-
|
|
638
|
+
* Pre-created Snowpark Session is now available inside job payloads using
|
|
588
639
|
`snowflake.snowpark.context.get_active_session()`
|
|
589
|
-
|
|
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
|
-
|
|
604
|
-
|
|
605
|
-
|
|
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
|
-
|
|
662
|
+
* Registry: Fix a bug that caused `unsupported model type` error while logging a sklearn model with `score_samples`
|
|
612
663
|
inference method.
|
|
613
|
-
|
|
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
|
-
|
|
618
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
689
|
+
* Registry: With FeatureGroupSpec support, auto inferred model signature for `transformers.Pipeline` models have been
|
|
639
690
|
updated, including:
|
|
640
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
948
|
+
* Registry: Added support to single `torch.Tensor`, `tensorflow.Tensor` and `tensorflow.Variable` as input or output
|
|
898
949
|
data.
|
|
899
|
-
|
|
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
|
-
|
|
905
|
-
|
|
955
|
+
* Support Python 3.12.
|
|
956
|
+
* Explainability: Support native and snowflake.ml.modeling sklearn pipeline
|
|
906
957
|
|
|
907
958
|
### Bug Fixes
|
|
908
959
|
|
|
909
|
-
|
|
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
|
-
|
|
965
|
+
* Registry: Removed the validation that disallows data that does not have non-null values being passed to
|
|
915
966
|
`ModelVersion.run`.
|
|
916
|
-
|
|
917
|
-
|
|
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
|
-
|
|
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
|
-
|
|
925
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
938
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
997
|
+
* Model Monitoring: Expose Model Monitoring Python API by default.
|
|
947
998
|
|
|
948
999
|
## 1.7.3 (2025-01-08)
|
|
949
1000
|
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
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
|
-
|
|
959
|
-
|
|
960
|
-
|
|
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
|
-
|
|
963
|
-
|
|
964
|
-
|
|
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
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1035
|
+
* Registry: Support asynchronous model inference service creation with the `block` option
|
|
985
1036
|
in `ModelVersion.create_service()` set to True by default.
|
|
986
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1045
|
+
* Registry: Pandas Extension DTypes (`pandas.StringDType()`, `pandas.BooleanDType()`, etc.) are now supported in model
|
|
995
1046
|
signature inference.
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
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
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
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
|
-
|
|
1016
|
-
|
|
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
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
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
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
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
|
-
|
|
1084
|
+
* Model Registry: External access integrations are optional when creating a model inference service in
|
|
1034
1085
|
Snowflake >= 8.40.0.
|
|
1035
|
-
|
|
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
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1069
|
-
|
|
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
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1138
|
+
* Model Registry (PrPr) has been removed.
|
|
1088
1139
|
|
|
1089
1140
|
### Bug Fixes
|
|
1090
1141
|
|
|
1091
|
-
|
|
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
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
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
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
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
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
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
|
-
|
|
1162
|
+
* Modeling: Support XGBoost version that is larger than 2.
|
|
1112
1163
|
|
|
1113
|
-
|
|
1114
|
-
|
|
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
|
-
|
|
1117
|
-
|
|
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
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
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
|
-
|
|
1130
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1137
|
-
|
|
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
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
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
|
-
|
|
1152
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
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
|
-
|
|
1167
|
-
|
|
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
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
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
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
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
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1206
|
-
|
|
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
|
-
|
|
1209
|
-
|
|
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
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
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
|
-
|
|
1269
|
+
* Feature Store: add 3 more columns: refresh_freq, refresh_mode and scheduling_state to the result of
|
|
1219
1270
|
`list_feature_views()`.
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
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
|
-
|
|
1286
|
+
* Modeling: Fix an issue causing lineage information to be missing for
|
|
1236
1287
|
`Pipeline`, `GridSearchCV` , `SimpleImputer`, and `RandomizedSearchCV`
|
|
1237
|
-
|
|
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
|
-
|
|
1243
|
-
|
|
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
|
-
|
|
1250
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
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
|
-
|
|
1266
|
-
|
|
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
|
-
|
|
1271
|
-
|
|
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
|
-
|
|
1274
|
-
|
|
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
|
-
|
|
1333
|
+
* Registry: Fix invalid parameter 'SHOW_MODEL_DETAILS_IN_SHOW_VERSIONS_IN_MODEL' error.
|
|
1283
1334
|
|
|
1284
1335
|
### Behavior Changes
|
|
1285
1336
|
|
|
1286
|
-
|
|
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
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
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
|
-
|
|
1353
|
+
* New `Dataset`s can be created with `Dataset.create()` and existing `Dataset`s may be loaded
|
|
1303
1354
|
with `Dataset.load()`.
|
|
1304
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1359
|
+
* `Dataset.materialized_table` and `Dataset.snapshot_table` no longer exist with `Dataset.fully_qualified_name`
|
|
1309
1360
|
as the closest equivalent.
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
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
|
-
|
|
1369
|
+
* `FeatureStore.generate_dataset` argument list has been changed to match the new
|
|
1319
1370
|
`snowflake.ml.dataset.Dataset` definition
|
|
1320
1371
|
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
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
|
-
|
|
1376
|
+
* Change feature view version type from str to `FeatureViewVersion`. It is a restricted string literal.
|
|
1326
1377
|
|
|
1327
|
-
|
|
1378
|
+
* Remove as_dataframe arg from FeatureStore.list_feature_views(), now always returns result as DataFrame.
|
|
1328
1379
|
|
|
1329
|
-
|
|
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
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
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
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
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
|
-
|
|
1395
|
+
* Added `fsspec` style file integration using `Dataset.read.files()` and `Dataset.read.filesystem()`
|
|
1345
1396
|
|
|
1346
1397
|
#### Feature Store
|
|
1347
1398
|
|
|
1348
|
-
|
|
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
|
-
|
|
1355
|
-
|
|
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
|
-
|
|
1410
|
+
* Registry: Fix a bug that leads to relax_version option is not working.
|
|
1360
1411
|
|
|
1361
1412
|
### Behavior changes
|
|
1362
1413
|
|
|
1363
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
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
|
-
|
|
1431
|
+
* Modeling: Add sklearn as required dependency for LightGBM package.
|
|
1381
1432
|
|
|
1382
1433
|
### Behavior Changes
|
|
1383
1434
|
|
|
1384
|
-
|
|
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
|
-
|
|
1387
|
-
|
|
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
|
-
|
|
1392
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1497
|
+
* Model Development: support `score_samples` method for all the classes, including Pipeline,
|
|
1447
1498
|
GridSearchCV, RandomizedSearchCV, PCA, IsolationForest, ...
|
|
1448
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1466
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1525
|
+
* Model Registry: Fix model deployment to SPCS on Windows machines.
|
|
1475
1526
|
|
|
1476
1527
|
### New Features
|
|
1477
1528
|
|
|
1478
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1484
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
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
|
-
|
|
1504
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1516
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1529
|
-
|
|
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
|
-
|
|
1585
|
+
* Model Registry: Add support for invoking public endpoint on SPCS service, by providing a "enable_ingress" SPCS
|
|
1535
1586
|
deployment option.
|
|
1536
|
-
|
|
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
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
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
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1569
|
-
|
|
1619
|
+
* Model Registry: Add log_artifact() public method.
|
|
1620
|
+
* Model Development: Add support for `kneighbors`.
|
|
1570
1621
|
|
|
1571
1622
|
### Behavior Changes
|
|
1572
1623
|
|
|
1573
|
-
|
|
1574
|
-
|
|
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
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1640
|
+
* Model Registry: `deploy` will now return `Deployment` for deployment information.
|
|
1590
1641
|
|
|
1591
1642
|
### New Features
|
|
1592
1643
|
|
|
1593
|
-
|
|
1594
|
-
|
|
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
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
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
|
-
|
|
1659
|
+
* Model Development: log_loss metric calculation is now distributed.
|
|
1609
1660
|
|
|
1610
1661
|
### Bug Fixes
|
|
1611
1662
|
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
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
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
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
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
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
|
-
|
|
1636
|
-
|
|
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
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
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
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
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
|
-
|
|
1672
|
-
|
|
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
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1697
|
-
|
|
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
|
-
|
|
1702
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1780
|
-
|
|
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
|
-
|
|
1783
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
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
|
-
|
|
1850
|
+
* Model Registry: A new method `list_deployments()` has been added to enumerate all permanent deployments originating
|
|
1800
1851
|
from a specific model.
|
|
1801
|
-
|
|
1802
|
-
|
|
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
|
-
|
|
1809
|
-
|
|
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
|
-
|
|
1813
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
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
|
-
|
|
1830
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
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
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
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
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1924
|
+
* Allow using OneHotEncoder along with sklearn style estimators in a pipeline.
|
|
1874
1925
|
|
|
1875
1926
|
### New Features
|
|
1876
1927
|
|
|
1877
|
-
|
|
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
|
-
|
|
1885
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
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
|
-
|
|
1953
|
+
* Minor fixes in OneHotEncoder.
|
|
1903
1954
|
|
|
1904
1955
|
## 0.2.0 (2023-02-27)
|
|
1905
1956
|
|
|
1906
1957
|
### New Features
|
|
1907
1958
|
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
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
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
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
|