snowflake-ml-python 1.6.3__py3-none-any.whl → 1.7.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 (150) hide show
  1. snowflake/ml/_internal/telemetry.py +4 -2
  2. snowflake/ml/_internal/utils/import_utils.py +31 -0
  3. snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +13 -0
  4. snowflake/ml/data/_internal/arrow_ingestor.py +8 -0
  5. snowflake/ml/data/data_connector.py +1 -1
  6. snowflake/ml/data/torch_utils.py +33 -14
  7. snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +5 -3
  8. snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +7 -5
  9. snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +4 -2
  10. snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +3 -1
  11. snowflake/ml/feature_store/examples/example_helper.py +6 -3
  12. snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +4 -2
  13. snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +4 -2
  14. snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +3 -1
  15. snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +3 -1
  16. snowflake/ml/feature_store/feature_store.py +1 -2
  17. snowflake/ml/feature_store/feature_view.py +5 -1
  18. snowflake/ml/model/_client/model/model_version_impl.py +144 -10
  19. snowflake/ml/model/_client/ops/model_ops.py +25 -6
  20. snowflake/ml/model/_client/ops/service_ops.py +33 -28
  21. snowflake/ml/model/_client/service/model_deployment_spec.py +19 -8
  22. snowflake/ml/model/_client/service/model_deployment_spec_schema.py +3 -1
  23. snowflake/ml/model/_client/sql/model.py +14 -0
  24. snowflake/ml/model/_client/sql/service.py +6 -18
  25. snowflake/ml/model/_model_composer/model_composer.py +2 -0
  26. snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +4 -0
  27. snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +1 -0
  28. snowflake/ml/model/_model_composer/model_method/model_method.py +1 -1
  29. snowflake/ml/model/_packager/model_handlers/_utils.py +5 -1
  30. snowflake/ml/model/_packager/model_handlers/catboost.py +3 -6
  31. snowflake/ml/model/_packager/model_handlers/custom.py +2 -0
  32. snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +10 -1
  33. snowflake/ml/model/_packager/model_handlers/lightgbm.py +3 -6
  34. snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +8 -1
  35. snowflake/ml/model/_packager/model_handlers/sklearn.py +3 -6
  36. snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +7 -65
  37. snowflake/ml/model/_packager/model_handlers/xgboost.py +10 -40
  38. snowflake/ml/model/_packager/model_packager.py +0 -11
  39. snowflake/ml/model/_packager/{model_handlers/model_objective_utils.py → model_task/model_task_utils.py} +13 -25
  40. snowflake/ml/model/_signatures/pandas_handler.py +16 -0
  41. snowflake/ml/model/custom_model.py +47 -7
  42. snowflake/ml/model/model_signature.py +2 -0
  43. snowflake/ml/model/type_hints.py +8 -0
  44. snowflake/ml/modeling/_internal/estimator_utils.py +13 -0
  45. snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +7 -2
  46. snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +16 -5
  47. snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +8 -2
  48. snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +9 -3
  49. snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +1 -8
  50. snowflake/ml/modeling/cluster/agglomerative_clustering.py +17 -19
  51. snowflake/ml/modeling/cluster/dbscan.py +5 -2
  52. snowflake/ml/modeling/cluster/feature_agglomeration.py +7 -19
  53. snowflake/ml/modeling/cluster/k_means.py +14 -19
  54. snowflake/ml/modeling/cluster/mini_batch_k_means.py +3 -3
  55. snowflake/ml/modeling/cluster/optics.py +6 -6
  56. snowflake/ml/modeling/cluster/spectral_clustering.py +4 -3
  57. snowflake/ml/modeling/compose/column_transformer.py +15 -5
  58. snowflake/ml/modeling/compose/transformed_target_regressor.py +7 -6
  59. snowflake/ml/modeling/covariance/elliptic_envelope.py +1 -1
  60. snowflake/ml/modeling/covariance/graphical_lasso_cv.py +1 -1
  61. snowflake/ml/modeling/covariance/min_cov_det.py +2 -2
  62. snowflake/ml/modeling/covariance/oas.py +1 -1
  63. snowflake/ml/modeling/decomposition/kernel_pca.py +2 -2
  64. snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +5 -12
  65. snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +5 -12
  66. snowflake/ml/modeling/decomposition/pca.py +28 -15
  67. snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +6 -0
  68. snowflake/ml/modeling/ensemble/ada_boost_classifier.py +1 -12
  69. snowflake/ml/modeling/ensemble/ada_boost_regressor.py +1 -11
  70. snowflake/ml/modeling/ensemble/bagging_classifier.py +1 -8
  71. snowflake/ml/modeling/ensemble/bagging_regressor.py +1 -8
  72. snowflake/ml/modeling/ensemble/extra_trees_classifier.py +21 -2
  73. snowflake/ml/modeling/ensemble/extra_trees_regressor.py +18 -2
  74. snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +2 -0
  75. snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +2 -0
  76. snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +21 -8
  77. snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +21 -11
  78. snowflake/ml/modeling/ensemble/random_forest_classifier.py +21 -2
  79. snowflake/ml/modeling/ensemble/random_forest_regressor.py +18 -2
  80. snowflake/ml/modeling/feature_selection/generic_univariate_select.py +2 -1
  81. snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +5 -3
  82. snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +2 -2
  83. snowflake/ml/modeling/linear_model/ard_regression.py +5 -10
  84. snowflake/ml/modeling/linear_model/bayesian_ridge.py +5 -11
  85. snowflake/ml/modeling/linear_model/elastic_net.py +3 -0
  86. snowflake/ml/modeling/linear_model/elastic_net_cv.py +1 -1
  87. snowflake/ml/modeling/linear_model/lars.py +0 -10
  88. snowflake/ml/modeling/linear_model/lars_cv.py +1 -11
  89. snowflake/ml/modeling/linear_model/lasso_cv.py +1 -1
  90. snowflake/ml/modeling/linear_model/lasso_lars.py +0 -10
  91. snowflake/ml/modeling/linear_model/lasso_lars_cv.py +1 -11
  92. snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -10
  93. snowflake/ml/modeling/linear_model/logistic_regression.py +28 -22
  94. snowflake/ml/modeling/linear_model/logistic_regression_cv.py +30 -24
  95. snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +1 -1
  96. snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +1 -1
  97. snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +4 -13
  98. snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +4 -4
  99. snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +1 -1
  100. snowflake/ml/modeling/linear_model/perceptron.py +3 -3
  101. snowflake/ml/modeling/linear_model/ransac_regressor.py +3 -2
  102. snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +14 -6
  103. snowflake/ml/modeling/linear_model/ridge_cv.py +17 -11
  104. snowflake/ml/modeling/linear_model/sgd_classifier.py +2 -2
  105. snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +5 -1
  106. snowflake/ml/modeling/linear_model/sgd_regressor.py +12 -3
  107. snowflake/ml/modeling/manifold/isomap.py +1 -1
  108. snowflake/ml/modeling/manifold/mds.py +3 -3
  109. snowflake/ml/modeling/manifold/tsne.py +10 -4
  110. snowflake/ml/modeling/metrics/classification.py +12 -16
  111. snowflake/ml/modeling/metrics/ranking.py +3 -3
  112. snowflake/ml/modeling/metrics/regression.py +3 -3
  113. snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +3 -3
  114. snowflake/ml/modeling/naive_bayes/categorical_nb.py +3 -3
  115. snowflake/ml/modeling/naive_bayes/complement_nb.py +3 -3
  116. snowflake/ml/modeling/naive_bayes/multinomial_nb.py +3 -3
  117. snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +10 -4
  118. snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +5 -2
  119. snowflake/ml/modeling/neighbors/local_outlier_factor.py +2 -2
  120. snowflake/ml/modeling/neighbors/nearest_centroid.py +7 -14
  121. snowflake/ml/modeling/neighbors/nearest_neighbors.py +1 -1
  122. snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +6 -1
  123. snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +1 -1
  124. snowflake/ml/modeling/neural_network/mlp_classifier.py +7 -1
  125. snowflake/ml/modeling/neural_network/mlp_regressor.py +3 -0
  126. snowflake/ml/modeling/pipeline/pipeline.py +16 -14
  127. snowflake/ml/modeling/preprocessing/one_hot_encoder.py +8 -4
  128. snowflake/ml/modeling/preprocessing/ordinal_encoder.py +9 -7
  129. snowflake/ml/modeling/svm/linear_svc.py +25 -16
  130. snowflake/ml/modeling/svm/linear_svr.py +23 -17
  131. snowflake/ml/modeling/svm/nu_svc.py +5 -3
  132. snowflake/ml/modeling/svm/nu_svr.py +3 -1
  133. snowflake/ml/modeling/svm/svc.py +9 -5
  134. snowflake/ml/modeling/svm/svr.py +3 -1
  135. snowflake/ml/modeling/tree/decision_tree_classifier.py +21 -2
  136. snowflake/ml/modeling/tree/decision_tree_regressor.py +18 -2
  137. snowflake/ml/modeling/tree/extra_tree_classifier.py +28 -9
  138. snowflake/ml/modeling/tree/extra_tree_regressor.py +18 -2
  139. snowflake/ml/monitoring/_client/{monitor_sql_client.py → model_monitor_sql_client.py} +1 -1
  140. snowflake/ml/monitoring/{_client → _manager}/model_monitor_manager.py +9 -8
  141. snowflake/ml/monitoring/{_client/model_monitor.py → model_monitor.py} +3 -3
  142. snowflake/ml/registry/_manager/model_manager.py +15 -1
  143. snowflake/ml/registry/registry.py +15 -8
  144. snowflake/ml/version.py +1 -1
  145. {snowflake_ml_python-1.6.3.dist-info → snowflake_ml_python-1.7.0.dist-info}/METADATA +81 -9
  146. {snowflake_ml_python-1.6.3.dist-info → snowflake_ml_python-1.7.0.dist-info}/RECORD +150 -150
  147. {snowflake_ml_python-1.6.3.dist-info → snowflake_ml_python-1.7.0.dist-info}/WHEEL +1 -1
  148. /snowflake/ml/monitoring/{_client/model_monitor_version.py → model_monitor_version.py} +0 -0
  149. {snowflake_ml_python-1.6.3.dist-info → snowflake_ml_python-1.7.0.dist-info}/LICENSE.txt +0 -0
  150. {snowflake_ml_python-1.6.3.dist-info → snowflake_ml_python-1.7.0.dist-info}/top_level.txt +0 -0
@@ -14,11 +14,8 @@ from snowflake.ml.model import (
14
14
  type_hints as model_types,
15
15
  )
16
16
  from snowflake.ml.model._client.model import model_version_impl
17
- from snowflake.ml.monitoring._client import (
18
- model_monitor,
19
- model_monitor_manager,
20
- model_monitor_version,
21
- )
17
+ from snowflake.ml.monitoring import model_monitor, model_monitor_version
18
+ from snowflake.ml.monitoring._manager import model_monitor_manager
22
19
  from snowflake.ml.monitoring.entities import model_monitor_config
23
20
  from snowflake.ml.registry._manager import model_manager
24
21
  from snowflake.snowpark import session
@@ -107,6 +104,7 @@ class Registry:
107
104
  metrics: Optional[Dict[str, Any]] = None,
108
105
  conda_dependencies: Optional[List[str]] = None,
109
106
  pip_requirements: Optional[List[str]] = None,
107
+ target_platforms: Optional[List[model_types.SupportedTargetPlatformType]] = None,
110
108
  python_version: Optional[str] = None,
111
109
  signatures: Optional[Dict[str, model_signature.ModelSignature]] = None,
112
110
  sample_input_data: Optional[model_types.SupportedDataType] = None,
@@ -128,14 +126,17 @@ class Registry:
128
126
  metrics: A JSON serializable dictionary containing metrics linked to the model version. Defaults to None.
129
127
  signatures: Model data signatures for inputs and outputs for various target methods. If it is None,
130
128
  sample_input_data would be used to infer the signatures for those models that cannot automatically
131
- infer the signature. If not None, sample_input_data should not be specified. Defaults to None.
132
- sample_input_data: Sample input data to infer model signatures from. Defaults to None.
129
+ infer the signature. Defaults to None.
130
+ sample_input_data: Sample input data to infer model signatures from.
131
+ It would also be used as background data in explanation and to capture data lineage. Defaults to None.
133
132
  conda_dependencies: List of Conda package specifications. Use "[channel::]package [operator version]" syntax
134
133
  to specify a dependency. It is a recommended way to specify your dependencies using conda. When channel
135
134
  is not specified, Snowflake Anaconda Channel will be used. Defaults to None.
136
135
  pip_requirements: List of Pip package specifications. Defaults to None.
137
136
  Currently it is not supported since Model can only executed in Snowflake Warehouse where all
138
137
  dependencies are required to be retrieved from Snowflake Anaconda Channel.
138
+ target_platforms: List of target platforms to run the model. The only acceptable inputs are a combination of
139
+ {"WAREHOUSE", "SNOWPARK_CONTAINER_SERVICES"}. Defaults to None.
139
140
  python_version: Python version in which the model is run. Defaults to None.
140
141
  code_paths: List of directories containing code to import. Defaults to None.
141
142
  ext_modules: List of external modules to pickle with the model object.
@@ -190,6 +191,7 @@ class Registry:
190
191
  "metrics",
191
192
  "conda_dependencies",
192
193
  "pip_requirements",
194
+ "target_platforms",
193
195
  "python_version",
194
196
  "signatures",
195
197
  ],
@@ -204,6 +206,7 @@ class Registry:
204
206
  metrics: Optional[Dict[str, Any]] = None,
205
207
  conda_dependencies: Optional[List[str]] = None,
206
208
  pip_requirements: Optional[List[str]] = None,
209
+ target_platforms: Optional[List[model_types.SupportedTargetPlatformType]] = None,
207
210
  python_version: Optional[str] = None,
208
211
  signatures: Optional[Dict[str, model_signature.ModelSignature]] = None,
209
212
  sample_input_data: Optional[model_types.SupportedDataType] = None,
@@ -229,13 +232,16 @@ class Registry:
229
232
  signatures: Model data signatures for inputs and outputs for various target methods. If it is None,
230
233
  sample_input_data would be used to infer the signatures for those models that cannot automatically
231
234
  infer the signature. If not None, sample_input_data should not be specified. Defaults to None.
232
- sample_input_data: Sample input data to infer model signatures from. Defaults to None.
235
+ sample_input_data: Sample input data to infer model signatures from.
236
+ It would also be used as background data in explanation and to capture data lineage. Defaults to None.
233
237
  conda_dependencies: List of Conda package specifications. Use "[channel::]package [operator version]" syntax
234
238
  to specify a dependency. It is a recommended way to specify your dependencies using conda. When channel
235
239
  is not specified, Snowflake Anaconda Channel will be used. Defaults to None.
236
240
  pip_requirements: List of Pip package specifications. Defaults to None.
237
241
  Currently it is not supported since Model can only executed in Snowflake Warehouse where all
238
242
  dependencies are required to be retrieved from Snowflake Anaconda Channel.
243
+ target_platforms: List of target platforms to run the model. The only acceptable inputs are a combination of
244
+ {"WAREHOUSE", "SNOWPARK_CONTAINER_SERVICES"}. Defaults to None.
239
245
  python_version: Python version in which the model is run. Defaults to None.
240
246
  code_paths: List of directories containing code to import. Defaults to None.
241
247
  ext_modules: List of external modules to pickle with the model object.
@@ -287,6 +293,7 @@ class Registry:
287
293
  metrics=metrics,
288
294
  conda_dependencies=conda_dependencies,
289
295
  pip_requirements=pip_requirements,
296
+ target_platforms=target_platforms,
290
297
  python_version=python_version,
291
298
  signatures=signatures,
292
299
  sample_input_data=sample_input_data,
snowflake/ml/version.py CHANGED
@@ -1 +1 @@
1
- VERSION="1.6.3"
1
+ VERSION="1.7.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: snowflake-ml-python
3
- Version: 1.6.3
3
+ Version: 1.7.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:
@@ -220,7 +220,6 @@ Classifier: Intended Audience :: Information Technology
220
220
  Classifier: Intended Audience :: System Administrators
221
221
  Classifier: License :: OSI Approved :: Apache Software License
222
222
  Classifier: Operating System :: OS Independent
223
- Classifier: Programming Language :: Python :: 3.8
224
223
  Classifier: Programming Language :: Python :: 3.9
225
224
  Classifier: Programming Language :: Python :: 3.10
226
225
  Classifier: Programming Language :: Python :: 3.11
@@ -230,7 +229,7 @@ Classifier: Topic :: Software Development :: Libraries
230
229
  Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
231
230
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
232
231
  Classifier: Topic :: Scientific/Engineering :: Information Analysis
233
- Requires-Python: <3.12,>=3.8
232
+ Requires-Python: <3.12,>=3.9
234
233
  Description-Content-Type: text/markdown
235
234
  License-File: LICENSE.txt
236
235
  Requires-Dist: absl-py <2,>=0.15
@@ -247,13 +246,13 @@ Requires-Dist: pytimeparse <2,>=1.1.8
247
246
  Requires-Dist: pyyaml <7,>=6.0
248
247
  Requires-Dist: retrying <2,>=1.3.3
249
248
  Requires-Dist: s3fs <2024,>=2022.11
250
- Requires-Dist: scikit-learn <1.6,>=1.2.1
249
+ Requires-Dist: scikit-learn <1.6,>=1.4
251
250
  Requires-Dist: scipy <2,>=1.9
252
251
  Requires-Dist: snowflake-connector-python[pandas] <4,>=3.5.0
253
252
  Requires-Dist: snowflake-snowpark-python <2,>=1.17.0
254
253
  Requires-Dist: sqlparse <1,>=0.4
255
254
  Requires-Dist: typing-extensions <5,>=4.1.0
256
- Requires-Dist: xgboost <2.1,>=1.7.3
255
+ Requires-Dist: xgboost <3,>=1.7.3
257
256
  Provides-Extra: all
258
257
  Requires-Dist: catboost <2,>=1.2.0 ; extra == 'all'
259
258
  Requires-Dist: lightgbm <5,>=3.3.5 ; extra == 'all'
@@ -261,7 +260,7 @@ Requires-Dist: mlflow <2.4,>=2.1.0 ; extra == 'all'
261
260
  Requires-Dist: peft <1,>=0.5.0 ; extra == 'all'
262
261
  Requires-Dist: sentence-transformers <3,>=2.2.2 ; extra == 'all'
263
262
  Requires-Dist: sentencepiece <1,>=0.1.95 ; extra == 'all'
264
- Requires-Dist: shap <1,>=0.42.0 ; extra == 'all'
263
+ Requires-Dist: shap <1,>=0.46.0 ; extra == 'all'
265
264
  Requires-Dist: tensorflow <3,>=2.10 ; extra == 'all'
266
265
  Requires-Dist: tokenizers <1,>=0.10 ; extra == 'all'
267
266
  Requires-Dist: torch <2.3.0,>=2.0.1 ; extra == 'all'
@@ -276,7 +275,7 @@ Requires-Dist: peft <1,>=0.5.0 ; extra == 'llm'
276
275
  Provides-Extra: mlflow
277
276
  Requires-Dist: mlflow <2.4,>=2.1.0 ; extra == 'mlflow'
278
277
  Provides-Extra: shap
279
- Requires-Dist: shap <1,>=0.42.0 ; extra == 'shap'
278
+ Requires-Dist: shap <1,>=0.46.0 ; extra == 'shap'
280
279
  Provides-Extra: tensorflow
281
280
  Requires-Dist: tensorflow <3,>=2.10 ; extra == 'tensorflow'
282
281
  Provides-Extra: torch
@@ -336,7 +335,7 @@ If you don't have a Snowflake account yet, you can [sign up for a 30-day free tr
336
335
  Follow the [installation instructions](https://docs.snowflake.com/en/developer-guide/snowpark-ml/index#installing-snowpark-ml)
337
336
  in the Snowflake documentation.
338
337
 
339
- Python versions 3.8 to 3.11 are supported. You can use [miniconda](https://docs.conda.io/en/latest/miniconda.html) or
338
+ Python versions 3.9 to 3.11 are supported. You can use [miniconda](https://docs.conda.io/en/latest/miniconda.html) or
340
339
  [anaconda](https://www.anaconda.com/) to create a Conda environment (recommended),
341
340
  or [virtualenv](https://docs.python.org/3/tutorial/venv.html) to create a virtual environment.
342
341
 
@@ -373,7 +372,77 @@ be compatibility issues. Server-side functionality that `snowflake-ml-python` de
373
372
 
374
373
  # Release History
375
374
 
376
- ## 1.6.3
375
+ ## 1.7.0
376
+
377
+ ### Behavior Change
378
+
379
+ - Generic: Require python >= 3.9.
380
+ - Data Connector: Update `to_torch_dataset` and `to_torch_datapipe` to add a dimension for scalar data.
381
+ This allows for more seamless integration with PyTorch `DataLoader`, which creates batches by stacking inputs of each batch.
382
+
383
+ Examples:
384
+
385
+ ```python
386
+ ds = connector.to_torch_dataset(shuffle=False, batch_size=3)
387
+ ```
388
+
389
+ - Input: "col1": [10, 11, 12]
390
+ - Previous batch: array([10., 11., 12.]) with shape (3,)
391
+ - New batch: array([[10.], [11.], [12.]]) with shape (3, 1)
392
+
393
+ - Input: "col2": [[0, 100], [1, 110], [2, 200]]
394
+ - Previous batch: array([[ 0, 100], [ 1, 110], [ 2, 200]]) with shape (3,2)
395
+ - New batch: No change
396
+
397
+ - Model Registry: External access integrations are optional when creating a model inference service in
398
+ Snowflake >= 8.40.0.
399
+ - Model Registry: Deprecate `build_external_access_integration` with `build_external_access_integrations` in
400
+ `ModelVersion.create_service()`.
401
+
402
+ ### Bug Fixes
403
+
404
+ - Registry: Updated `log_model` API to accept both signature and sample_input_data parameters.
405
+ - Feature Store: ExampleHelper uses fully qualified path for table name. change weather features aggregation from 1d to 1h.
406
+ - Data Connector: Return numpy array with appropriate object type instead of list for multi-dimensional
407
+ data from `to_torch_dataset` and `to_torch_datapipe`
408
+ - Model explainability: Incompatibility between SHAP 0.42.1 and XGB 2.1.1 resolved by using latest SHAP 0.46.0.
409
+
410
+ ### New Features
411
+
412
+ - Registry: Provide pass keyworded variable length of arguments to class ModelContext. Example usage:
413
+
414
+ ```python
415
+ mc = custom_model.ModelContext(
416
+ config = 'local_model_dir/config.json',
417
+ m1 = model1
418
+ )
419
+
420
+ class ExamplePipelineModel(custom_model.CustomModel):
421
+ def __init__(self, context: custom_model.ModelContext) -> None:
422
+ super().__init__(context)
423
+ v = open(self.context['config']).read()
424
+ self.bias = json.loads(v)['bias']
425
+
426
+ @custom_model.inference_api
427
+ def predict(self, input: pd.DataFrame) -> pd.DataFrame:
428
+ model_output = self.context['m1'].predict(input)
429
+ return pd.DataFrame({'output': model_output + self.bias})
430
+ ```
431
+
432
+ - Model Development: Upgrade scikit-learn in UDTF backend for log_loss metric. As a result, `eps` argument is now ignored.
433
+ - Data Connector: Add the option of passing a `None` sized batch to `to_torch_dataset` for better
434
+ interoperability with PyTorch DataLoader.
435
+ - Model Registry: Support [pandas.CategoricalDtype](https://pandas.pydata.org/docs/reference/api/pandas.CategoricalDtype.html#pandas-categoricaldtype)
436
+ - Registry: It is now possible to pass `signatures` and `sample_input_data` at the same time to capture background
437
+ data from explainablity and data lineage.
438
+
439
+ ## 1.6.4 (2024-10-17)
440
+
441
+ ### Bug Fixes
442
+
443
+ - Registry: Fix an issue that leads to incident when using `ModelVersion.run` with service.
444
+
445
+ ## 1.6.3 (2024-10-07)
377
446
 
378
447
  - Model Registry (PrPr) has been removed.
379
448
 
@@ -385,6 +454,9 @@ be compatibility issues. Server-side functionality that `snowflake-ml-python` de
385
454
  - Registry: Fix a bug that `ModelVersion.run` is called in a nested way.
386
455
  - Registry: Fix an issue that leads to `log_model` failure when local package version contains parts other than
387
456
  base version.
457
+ - Fix issue where `sample_weights` were not being applied to search estimators.
458
+ - Model explainability: Fix bug which creates explain as a function instead of table function when enabling by default.
459
+ - Model explainability: Update lightgbm binary classification to return non-json values, from customer feedback.
388
460
 
389
461
  ### New Features
390
462