snowflake-ml-python 1.4.0__py3-none-any.whl → 1.5.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 (234) hide show
  1. snowflake/ml/_internal/env_utils.py +77 -32
  2. snowflake/ml/_internal/exceptions/dataset_error_messages.py +5 -0
  3. snowflake/ml/_internal/exceptions/dataset_errors.py +24 -0
  4. snowflake/ml/_internal/exceptions/error_codes.py +3 -0
  5. snowflake/ml/_internal/lineage/data_source.py +10 -0
  6. snowflake/ml/_internal/lineage/dataset_dataframe.py +44 -0
  7. snowflake/ml/_internal/utils/identifier.py +3 -1
  8. snowflake/ml/_internal/utils/sql_identifier.py +2 -6
  9. snowflake/ml/dataset/__init__.py +10 -0
  10. snowflake/ml/dataset/dataset.py +454 -129
  11. snowflake/ml/dataset/dataset_factory.py +53 -0
  12. snowflake/ml/dataset/dataset_metadata.py +103 -0
  13. snowflake/ml/dataset/dataset_reader.py +202 -0
  14. snowflake/ml/feature_store/feature_store.py +531 -332
  15. snowflake/ml/feature_store/feature_view.py +40 -23
  16. snowflake/ml/fileset/embedded_stage_fs.py +146 -0
  17. snowflake/ml/fileset/sfcfs.py +56 -54
  18. snowflake/ml/fileset/snowfs.py +159 -0
  19. snowflake/ml/fileset/stage_fs.py +49 -17
  20. snowflake/ml/model/__init__.py +2 -2
  21. snowflake/ml/model/_api.py +16 -1
  22. snowflake/ml/model/_client/model/model_impl.py +27 -0
  23. snowflake/ml/model/_client/model/model_version_impl.py +137 -50
  24. snowflake/ml/model/_client/ops/model_ops.py +159 -40
  25. snowflake/ml/model/_client/sql/model.py +25 -2
  26. snowflake/ml/model/_client/sql/model_version.py +131 -2
  27. snowflake/ml/model/_deploy_client/image_builds/server_image_builder.py +5 -1
  28. snowflake/ml/model/_deploy_client/image_builds/templates/dockerfile_template +1 -0
  29. snowflake/ml/model/_deploy_client/snowservice/deploy.py +2 -0
  30. snowflake/ml/model/_deploy_client/utils/constants.py +0 -5
  31. snowflake/ml/model/_deploy_client/utils/snowservice_client.py +21 -50
  32. snowflake/ml/model/_model_composer/model_composer.py +22 -1
  33. snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +38 -51
  34. snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +19 -1
  35. snowflake/ml/model/_model_composer/model_method/model_method.py +6 -10
  36. snowflake/ml/model/_packager/model_env/model_env.py +41 -0
  37. snowflake/ml/model/_packager/model_handlers/catboost.py +206 -0
  38. snowflake/ml/model/_packager/model_handlers/lightgbm.py +218 -0
  39. snowflake/ml/model/_packager/model_handlers/sklearn.py +3 -0
  40. snowflake/ml/model/_packager/model_meta/_core_requirements.py +1 -1
  41. snowflake/ml/model/_packager/model_meta/model_meta.py +37 -11
  42. snowflake/ml/model/_packager/model_meta/model_meta_schema.py +20 -1
  43. snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +3 -1
  44. snowflake/ml/model/_packager/model_packager.py +2 -5
  45. snowflake/ml/model/{_model_composer/model_runtime/_runtime_requirements.py → _packager/model_runtime/_snowml_inference_alternative_requirements.py} +1 -1
  46. snowflake/ml/model/_packager/model_runtime/model_runtime.py +137 -0
  47. snowflake/ml/model/type_hints.py +21 -2
  48. snowflake/ml/modeling/_internal/estimator_utils.py +16 -11
  49. snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +4 -1
  50. snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +55 -3
  51. snowflake/ml/modeling/_internal/ml_runtime_implementations/ml_runtime_handlers.py +34 -18
  52. snowflake/ml/modeling/_internal/model_trainer.py +7 -0
  53. snowflake/ml/modeling/_internal/model_trainer_builder.py +42 -9
  54. snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +13 -14
  55. snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +29 -7
  56. snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +261 -16
  57. snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +246 -175
  58. snowflake/ml/modeling/cluster/affinity_propagation.py +246 -175
  59. snowflake/ml/modeling/cluster/agglomerative_clustering.py +246 -175
  60. snowflake/ml/modeling/cluster/birch.py +248 -175
  61. snowflake/ml/modeling/cluster/bisecting_k_means.py +248 -175
  62. snowflake/ml/modeling/cluster/dbscan.py +246 -175
  63. snowflake/ml/modeling/cluster/feature_agglomeration.py +248 -175
  64. snowflake/ml/modeling/cluster/k_means.py +248 -175
  65. snowflake/ml/modeling/cluster/mean_shift.py +246 -175
  66. snowflake/ml/modeling/cluster/mini_batch_k_means.py +248 -175
  67. snowflake/ml/modeling/cluster/optics.py +246 -175
  68. snowflake/ml/modeling/cluster/spectral_biclustering.py +246 -175
  69. snowflake/ml/modeling/cluster/spectral_clustering.py +246 -175
  70. snowflake/ml/modeling/cluster/spectral_coclustering.py +246 -175
  71. snowflake/ml/modeling/compose/column_transformer.py +248 -175
  72. snowflake/ml/modeling/compose/transformed_target_regressor.py +246 -175
  73. snowflake/ml/modeling/covariance/elliptic_envelope.py +246 -175
  74. snowflake/ml/modeling/covariance/empirical_covariance.py +246 -175
  75. snowflake/ml/modeling/covariance/graphical_lasso.py +246 -175
  76. snowflake/ml/modeling/covariance/graphical_lasso_cv.py +246 -175
  77. snowflake/ml/modeling/covariance/ledoit_wolf.py +246 -175
  78. snowflake/ml/modeling/covariance/min_cov_det.py +246 -175
  79. snowflake/ml/modeling/covariance/oas.py +246 -175
  80. snowflake/ml/modeling/covariance/shrunk_covariance.py +246 -175
  81. snowflake/ml/modeling/decomposition/dictionary_learning.py +248 -175
  82. snowflake/ml/modeling/decomposition/factor_analysis.py +248 -175
  83. snowflake/ml/modeling/decomposition/fast_ica.py +248 -175
  84. snowflake/ml/modeling/decomposition/incremental_pca.py +248 -175
  85. snowflake/ml/modeling/decomposition/kernel_pca.py +248 -175
  86. snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +248 -175
  87. snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +248 -175
  88. snowflake/ml/modeling/decomposition/pca.py +248 -175
  89. snowflake/ml/modeling/decomposition/sparse_pca.py +248 -175
  90. snowflake/ml/modeling/decomposition/truncated_svd.py +248 -175
  91. snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +248 -175
  92. snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +246 -175
  93. snowflake/ml/modeling/ensemble/ada_boost_classifier.py +246 -175
  94. snowflake/ml/modeling/ensemble/ada_boost_regressor.py +246 -175
  95. snowflake/ml/modeling/ensemble/bagging_classifier.py +246 -175
  96. snowflake/ml/modeling/ensemble/bagging_regressor.py +246 -175
  97. snowflake/ml/modeling/ensemble/extra_trees_classifier.py +246 -175
  98. snowflake/ml/modeling/ensemble/extra_trees_regressor.py +246 -175
  99. snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +246 -175
  100. snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +246 -175
  101. snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +246 -175
  102. snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +246 -175
  103. snowflake/ml/modeling/ensemble/isolation_forest.py +246 -175
  104. snowflake/ml/modeling/ensemble/random_forest_classifier.py +246 -175
  105. snowflake/ml/modeling/ensemble/random_forest_regressor.py +246 -175
  106. snowflake/ml/modeling/ensemble/stacking_regressor.py +248 -175
  107. snowflake/ml/modeling/ensemble/voting_classifier.py +248 -175
  108. snowflake/ml/modeling/ensemble/voting_regressor.py +248 -175
  109. snowflake/ml/modeling/feature_selection/generic_univariate_select.py +248 -175
  110. snowflake/ml/modeling/feature_selection/select_fdr.py +248 -175
  111. snowflake/ml/modeling/feature_selection/select_fpr.py +248 -175
  112. snowflake/ml/modeling/feature_selection/select_fwe.py +248 -175
  113. snowflake/ml/modeling/feature_selection/select_k_best.py +248 -175
  114. snowflake/ml/modeling/feature_selection/select_percentile.py +248 -175
  115. snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +248 -175
  116. snowflake/ml/modeling/feature_selection/variance_threshold.py +248 -175
  117. snowflake/ml/modeling/framework/_utils.py +8 -1
  118. snowflake/ml/modeling/framework/base.py +72 -37
  119. snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +246 -175
  120. snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +246 -175
  121. snowflake/ml/modeling/impute/iterative_imputer.py +248 -175
  122. snowflake/ml/modeling/impute/knn_imputer.py +248 -175
  123. snowflake/ml/modeling/impute/missing_indicator.py +248 -175
  124. snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +248 -175
  125. snowflake/ml/modeling/kernel_approximation/nystroem.py +248 -175
  126. snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +248 -175
  127. snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +248 -175
  128. snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +248 -175
  129. snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +246 -175
  130. snowflake/ml/modeling/lightgbm/lgbm_classifier.py +246 -175
  131. snowflake/ml/modeling/lightgbm/lgbm_regressor.py +246 -175
  132. snowflake/ml/modeling/linear_model/ard_regression.py +246 -175
  133. snowflake/ml/modeling/linear_model/bayesian_ridge.py +246 -175
  134. snowflake/ml/modeling/linear_model/elastic_net.py +246 -175
  135. snowflake/ml/modeling/linear_model/elastic_net_cv.py +246 -175
  136. snowflake/ml/modeling/linear_model/gamma_regressor.py +246 -175
  137. snowflake/ml/modeling/linear_model/huber_regressor.py +246 -175
  138. snowflake/ml/modeling/linear_model/lars.py +246 -175
  139. snowflake/ml/modeling/linear_model/lars_cv.py +246 -175
  140. snowflake/ml/modeling/linear_model/lasso.py +246 -175
  141. snowflake/ml/modeling/linear_model/lasso_cv.py +246 -175
  142. snowflake/ml/modeling/linear_model/lasso_lars.py +246 -175
  143. snowflake/ml/modeling/linear_model/lasso_lars_cv.py +246 -175
  144. snowflake/ml/modeling/linear_model/lasso_lars_ic.py +246 -175
  145. snowflake/ml/modeling/linear_model/linear_regression.py +246 -175
  146. snowflake/ml/modeling/linear_model/logistic_regression.py +246 -175
  147. snowflake/ml/modeling/linear_model/logistic_regression_cv.py +246 -175
  148. snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +246 -175
  149. snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +246 -175
  150. snowflake/ml/modeling/linear_model/multi_task_lasso.py +246 -175
  151. snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +246 -175
  152. snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +246 -175
  153. snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +246 -175
  154. snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +246 -175
  155. snowflake/ml/modeling/linear_model/perceptron.py +246 -175
  156. snowflake/ml/modeling/linear_model/poisson_regressor.py +246 -175
  157. snowflake/ml/modeling/linear_model/ransac_regressor.py +246 -175
  158. snowflake/ml/modeling/linear_model/ridge.py +246 -175
  159. snowflake/ml/modeling/linear_model/ridge_classifier.py +246 -175
  160. snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +246 -175
  161. snowflake/ml/modeling/linear_model/ridge_cv.py +246 -175
  162. snowflake/ml/modeling/linear_model/sgd_classifier.py +246 -175
  163. snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +246 -175
  164. snowflake/ml/modeling/linear_model/sgd_regressor.py +246 -175
  165. snowflake/ml/modeling/linear_model/theil_sen_regressor.py +246 -175
  166. snowflake/ml/modeling/linear_model/tweedie_regressor.py +246 -175
  167. snowflake/ml/modeling/manifold/isomap.py +248 -175
  168. snowflake/ml/modeling/manifold/mds.py +248 -175
  169. snowflake/ml/modeling/manifold/spectral_embedding.py +248 -175
  170. snowflake/ml/modeling/manifold/tsne.py +248 -175
  171. snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +246 -175
  172. snowflake/ml/modeling/mixture/gaussian_mixture.py +246 -175
  173. snowflake/ml/modeling/model_selection/grid_search_cv.py +63 -41
  174. snowflake/ml/modeling/model_selection/randomized_search_cv.py +80 -38
  175. snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +246 -175
  176. snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +246 -175
  177. snowflake/ml/modeling/multiclass/output_code_classifier.py +246 -175
  178. snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +246 -175
  179. snowflake/ml/modeling/naive_bayes/categorical_nb.py +246 -175
  180. snowflake/ml/modeling/naive_bayes/complement_nb.py +246 -175
  181. snowflake/ml/modeling/naive_bayes/gaussian_nb.py +246 -175
  182. snowflake/ml/modeling/naive_bayes/multinomial_nb.py +246 -175
  183. snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +246 -175
  184. snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +246 -175
  185. snowflake/ml/modeling/neighbors/kernel_density.py +246 -175
  186. snowflake/ml/modeling/neighbors/local_outlier_factor.py +246 -175
  187. snowflake/ml/modeling/neighbors/nearest_centroid.py +246 -175
  188. snowflake/ml/modeling/neighbors/nearest_neighbors.py +246 -175
  189. snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +248 -175
  190. snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +246 -175
  191. snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +246 -175
  192. snowflake/ml/modeling/neural_network/bernoulli_rbm.py +248 -175
  193. snowflake/ml/modeling/neural_network/mlp_classifier.py +246 -175
  194. snowflake/ml/modeling/neural_network/mlp_regressor.py +246 -175
  195. snowflake/ml/modeling/pipeline/pipeline.py +517 -35
  196. snowflake/ml/modeling/preprocessing/binarizer.py +1 -5
  197. snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +1 -5
  198. snowflake/ml/modeling/preprocessing/label_encoder.py +1 -5
  199. snowflake/ml/modeling/preprocessing/max_abs_scaler.py +1 -5
  200. snowflake/ml/modeling/preprocessing/min_max_scaler.py +10 -12
  201. snowflake/ml/modeling/preprocessing/normalizer.py +1 -5
  202. snowflake/ml/modeling/preprocessing/one_hot_encoder.py +13 -5
  203. snowflake/ml/modeling/preprocessing/ordinal_encoder.py +1 -5
  204. snowflake/ml/modeling/preprocessing/polynomial_features.py +248 -175
  205. snowflake/ml/modeling/preprocessing/robust_scaler.py +1 -5
  206. snowflake/ml/modeling/preprocessing/standard_scaler.py +11 -11
  207. snowflake/ml/modeling/semi_supervised/label_propagation.py +246 -175
  208. snowflake/ml/modeling/semi_supervised/label_spreading.py +246 -175
  209. snowflake/ml/modeling/svm/linear_svc.py +246 -175
  210. snowflake/ml/modeling/svm/linear_svr.py +246 -175
  211. snowflake/ml/modeling/svm/nu_svc.py +246 -175
  212. snowflake/ml/modeling/svm/nu_svr.py +246 -175
  213. snowflake/ml/modeling/svm/svc.py +246 -175
  214. snowflake/ml/modeling/svm/svr.py +246 -175
  215. snowflake/ml/modeling/tree/decision_tree_classifier.py +246 -175
  216. snowflake/ml/modeling/tree/decision_tree_regressor.py +246 -175
  217. snowflake/ml/modeling/tree/extra_tree_classifier.py +246 -175
  218. snowflake/ml/modeling/tree/extra_tree_regressor.py +246 -175
  219. snowflake/ml/modeling/xgboost/xgb_classifier.py +246 -175
  220. snowflake/ml/modeling/xgboost/xgb_regressor.py +246 -175
  221. snowflake/ml/modeling/xgboost/xgbrf_classifier.py +246 -175
  222. snowflake/ml/modeling/xgboost/xgbrf_regressor.py +246 -175
  223. snowflake/ml/registry/model_registry.py +3 -149
  224. snowflake/ml/registry/registry.py +1 -1
  225. snowflake/ml/version.py +1 -1
  226. {snowflake_ml_python-1.4.0.dist-info → snowflake_ml_python-1.5.0.dist-info}/METADATA +129 -57
  227. snowflake_ml_python-1.5.0.dist-info/RECORD +380 -0
  228. snowflake/ml/model/_model_composer/model_runtime/model_runtime.py +0 -97
  229. snowflake/ml/registry/_artifact_manager.py +0 -156
  230. snowflake/ml/registry/artifact.py +0 -46
  231. snowflake_ml_python-1.4.0.dist-info/RECORD +0 -370
  232. {snowflake_ml_python-1.4.0.dist-info → snowflake_ml_python-1.5.0.dist-info}/LICENSE.txt +0 -0
  233. {snowflake_ml_python-1.4.0.dist-info → snowflake_ml_python-1.5.0.dist-info}/WHEEL +0 -0
  234. {snowflake_ml_python-1.4.0.dist-info → snowflake_ml_python-1.5.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: snowflake-ml-python
3
- Version: 1.4.0
3
+ Version: 1.5.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:
@@ -236,12 +236,13 @@ License-File: LICENSE.txt
236
236
  Requires-Dist: absl-py <2,>=0.15
237
237
  Requires-Dist: anyio <4,>=3.5.0
238
238
  Requires-Dist: cachetools <6,>=3.1.1
239
+ Requires-Dist: catboost <1.3,>=1.2.0
239
240
  Requires-Dist: cloudpickle >=2.0.0
240
241
  Requires-Dist: fsspec[http] <2024,>=2022.11
241
242
  Requires-Dist: importlib-resources <7,>=6.1.1
242
243
  Requires-Dist: numpy <2,>=1.23
243
244
  Requires-Dist: packaging <24,>=20.9
244
- Requires-Dist: pandas <2,>=1.0.0
245
+ Requires-Dist: pandas <3,>=1.0.0
245
246
  Requires-Dist: pyarrow
246
247
  Requires-Dist: pytimeparse <2,>=1.1.8
247
248
  Requires-Dist: pyyaml <7,>=6.0
@@ -255,7 +256,7 @@ Requires-Dist: sqlparse <1,>=0.4
255
256
  Requires-Dist: typing-extensions <5,>=4.1.0
256
257
  Requires-Dist: xgboost <2,>=1.7.3
257
258
  Provides-Extra: all
258
- Requires-Dist: lightgbm ==3.3.5 ; extra == 'all'
259
+ Requires-Dist: lightgbm <4.2,>=3.3.5 ; extra == 'all'
259
260
  Requires-Dist: mlflow <2.4,>=2.1.0 ; extra == 'all'
260
261
  Requires-Dist: peft <1,>=0.5.0 ; extra == 'all'
261
262
  Requires-Dist: sentence-transformers <3,>=2.2.2 ; extra == 'all'
@@ -263,11 +264,11 @@ Requires-Dist: sentencepiece <0.2,>=0.1.95 ; extra == 'all'
263
264
  Requires-Dist: shap ==0.42.1 ; extra == 'all'
264
265
  Requires-Dist: tensorflow <3,>=2.10 ; extra == 'all'
265
266
  Requires-Dist: tokenizers <1,>=0.10 ; extra == 'all'
267
+ Requires-Dist: torch <3,>=2.0.1 ; extra == 'all'
266
268
  Requires-Dist: torchdata <1,>=0.4 ; extra == 'all'
267
269
  Requires-Dist: transformers <5,>=4.32.1 ; extra == 'all'
268
- Requires-Dist: torch <2.1.0,>=2.0.1 ; (platform_system == "Windows") and extra == 'all'
269
270
  Provides-Extra: lightgbm
270
- Requires-Dist: lightgbm ==3.3.5 ; extra == 'lightgbm'
271
+ Requires-Dist: lightgbm <4.2,>=3.3.5 ; extra == 'lightgbm'
271
272
  Provides-Extra: llm
272
273
  Requires-Dist: peft <1,>=0.5.0 ; extra == 'llm'
273
274
  Provides-Extra: mlflow
@@ -277,8 +278,8 @@ Requires-Dist: shap ==0.42.1 ; extra == 'shap'
277
278
  Provides-Extra: tensorflow
278
279
  Requires-Dist: tensorflow <3,>=2.10 ; extra == 'tensorflow'
279
280
  Provides-Extra: torch
281
+ Requires-Dist: torch <3,>=2.0.1 ; extra == 'torch'
280
282
  Requires-Dist: torchdata <1,>=0.4 ; extra == 'torch'
281
- Requires-Dist: torch <2.1.0,>=2.0.1 ; (platform_system == "Windows") and extra == 'torch'
282
283
  Provides-Extra: transformers
283
284
  Requires-Dist: sentence-transformers <3,>=2.2.2 ; extra == 'transformers'
284
285
  Requires-Dist: sentencepiece <0.2,>=0.1.95 ; extra == 'transformers'
@@ -370,17 +371,89 @@ be compatibility issues. Server-side functionality that `snowflake-ml-python` de
370
371
 
371
372
  # Release History
372
373
 
373
- ## 1.4.0
374
+ ## 1.5.0
375
+
376
+ ### Bug Fixes
377
+
378
+ - Registry: Fix invalid parameter 'SHOW_MODEL_DETAILS_IN_SHOW_VERSIONS_IN_MODEL' error.
379
+
380
+ ### Behavior Changes
381
+
382
+ - Model Development: The behavior of `fit_transform` for all estimators is changed.
383
+ Firstly, it will cover all the estimator that contains this function,
384
+ secondly, the output would be the union of pandas DataFrame and snowpark DataFrame.
385
+
386
+ #### Model Registry (PrPr)
387
+
388
+ `snowflake.ml.registry.artifact` and related `snowflake.ml.model_registry.ModelRegistry` APIs have been removed.
389
+
390
+ - Removed `snowflake.ml.registry.artifact` module.
391
+ - Removed `ModelRegistry.log_artifact()`, `ModelRegistry.list_artifacts()`, `ModelRegistry.get_artifact()`
392
+ - Removed `artifacts` argument from `ModelRegistry.log_model()`
393
+
394
+ #### Dataset (PrPr)
395
+
396
+ `snowflake.ml.dataset.Dataset` has been redesigned to be backed by Snowflake Dataset entities.
397
+
398
+ - New `Dataset`s can be created with `Dataset.create()` and existing `Dataset`s may be loaded
399
+ with `Dataset.load()`.
400
+ - `Dataset`s now maintain an immutable `selected_version` state. The `Dataset.create_version()` and
401
+ `Dataset.load_version()` APIs return new `Dataset` objects with the requested `selected_version` state.
402
+ - Added `dataset.create_from_dataframe()` and `dataset.load_dataset()` convenience APIs as a shortcut
403
+ to creating and loading `Dataset`s with a pre-selected version.
404
+ - `Dataset.materialized_table` and `Dataset.snapshot_table` no longer exist with `Dataset.fully_qualified_name`
405
+ as the closest equivalent.
406
+ - `Dataset.df` no longer exists. Instead, use `DatasetReader.read.to_snowpark_dataframe()`.
407
+ - `Dataset.owner` has been moved to `Dataset.selected_version.owner`
408
+ - `Dataset.desc` has been moved to `DatasetVersion.selected_version.comment`
409
+ - `Dataset.timestamp_col`, `Dataset.label_cols`, `Dataset.feature_store_metadata`, and
410
+ `Dataset.schema_version` have been removed.
411
+
412
+ #### Feature Store (PrPr)
413
+
414
+ `FeatureStore.generate_dataset` argument list has been changed to match the new
415
+ `snowflake.ml.dataset.Dataset` definition
416
+
417
+ - `materialized_table` has been removed and replaced with `name` and `version`.
418
+ - `name` moved to first positional argument
419
+ - `save_mode` has been removed as `merge` behavior is no longer supported. The new behavior is always `errorifexists`.
420
+
421
+ ### New Features
422
+
423
+ - Registry: Add `export` method to `ModelVersion` instance to export model files.
424
+ - Registry: Add `load` method to `ModelVersion` instance to load the underlying object from the model.
425
+ - Registry: Add `Model.rename` method to `Model` instance to rename or move a model.
426
+
427
+ #### Dataset (PrPr)
428
+
429
+ - Added Snowpark DataFrame integration using `Dataset.read.to_snowpark_dataframe()`
430
+ - Added Pandas DataFrame integration using `Dataset.read.to_pandas()`
431
+ - Added PyTorch and TensorFlow integrations using `Dataset.read.to_torch_datapipe()`
432
+ and `Dataset.read.to_tf_dataset()` respectively.
433
+ - Added `fsspec` style file integration using `Dataset.read.files()` and `Dataset.read.filesystem()`
434
+
435
+ ## 1.4.1 (2024-04-18)
436
+
437
+ ### New Features
438
+
439
+ - Registry: Add support for `catboost` model (`catboost.CatBoostClassifier`, `catboost.CatBoostRegressor`).
440
+ - Registry: Add support for `lightgbm` model (`lightgbm.Booster`, `lightgbm.LightGBMClassifier`, `lightgbm.LightGBMRegressor`).
441
+
442
+ ### Bug Fixes
443
+
444
+ - Registry: Fix a bug that leads to relax_version option is not working.
445
+
446
+ ## 1.4.0 (2024-04-08)
374
447
 
375
448
  ### Bug Fixes
376
449
 
377
450
  - Registry: Fix a bug when multiple models are being called from the same query, models other than the first one will
378
451
  have incorrect result. This fix only works for newly logged model.
379
452
  - Modeling: When registering a model, only method(s) that is mentioned in `save_model` would be added to model signature
380
- in SnowML models.
453
+ in SnowML models.
381
454
  - Modeling: Fix a bug that when n_jobs is not 1, model cannot execute methods such as
382
- predict, predict_log_proba, and other batch inference methods. The n_jobs would automatically
383
- set to 1 because vectorized udf currently doesn't support joblib parallel backend.
455
+ predict, predict_log_proba, and other batch inference methods. The n_jobs would automatically
456
+ set to 1 because vectorized udf currently doesn't support joblib parallel backend.
384
457
  - Modeling: Fix a bug that batch inference methods cannot infer the datatype when the first row of data contains NULL.
385
458
  - Modeling: Matches Distributed HPO output column names with the snowflake identifier.
386
459
  - Modeling: Relax package versions for all Distributed HPO methods if the installed version
@@ -440,8 +513,7 @@ set to 1 because vectorized udf currently doesn't support joblib parallel backen
440
513
  - Registry: Improve the error message when specifying currently unsupported `pip_requirements` argument.
441
514
  - Model Development: Fix precision_recall_fscore_support incorrect results when `average="samples"`.
442
515
  - Model Registry: Fix an issue that leads to description, metrics or tags are not correctly returned in newly created
443
- Model Registry (PrPr) due to Snowflake BCR [2024_01](
444
- https://docs.snowflake.com/en/release-notes/bcr-bundles/2024_01/bcr-1483)
516
+ Model Registry (PrPr) due to Snowflake BCR [2024_01](https://docs.snowflake.com/en/release-notes/bcr-bundles/2024_01/bcr-1483)
445
517
 
446
518
  ### Behavior Changes
447
519
 
@@ -493,9 +565,9 @@ set to 1 because vectorized udf currently doesn't support joblib parallel backen
493
565
  ### Additional Notes
494
566
 
495
567
  - Model Registry: The `snowflake.ml.registry.model_registry.ModelRegistry` has been deprecated starting from version
496
- 1.2.0. It will stay in the Private Preview phase. For future implementations, kindly utilize
497
- `snowflake.ml.registry.Registry`, except when specifically required. The old model registry will be removed once all
498
- its primary functionalities are fully integrated into the new registry.
568
+ 1.2.0. It will stay in the Private Preview phase. For future implementations, kindly utilize
569
+ `snowflake.ml.registry.Registry`, except when specifically required. The old model registry will be removed once all
570
+ its primary functionalities are fully integrated into the new registry.
499
571
 
500
572
  ## 1.1.2 (2023-12-18)
501
573
 
@@ -550,7 +622,7 @@ its primary functionalities are fully integrated into the new registry.
550
622
  - Model Registry: Fix regression issue that container logging is not shown during model deployment to SPCS.
551
623
  - Model Development: Enhance the column capacity of OrdinalEncoder.
552
624
  - Model Registry: Fix unbound `batch_size` error when deploying a model other than Hugging Face Pipeline
553
- and LLM with GPU on SPCS.
625
+ and LLM with GPU on SPCS.
554
626
 
555
627
  ### Behavior Changes
556
628
 
@@ -592,7 +664,7 @@ its primary functionalities are fully integrated into the new registry.
592
664
  ### Behavior Changes
593
665
 
594
666
  - Model Development: precision_score, recall_score, f1_score, fbeta_score, precision_recall_fscore_support,
595
- mean_absolute_error, mean_squared_error, and mean_absolute_percentage_error metric calculations are now distributed.
667
+ mean_absolute_error, mean_squared_error, and mean_absolute_percentage_error metric calculations are now distributed.
596
668
  - Model Registry: `deploy` will now return `Deployment` for deployment information.
597
669
 
598
670
  ### New Features
@@ -606,7 +678,7 @@ mean_absolute_error, mean_squared_error, and mean_absolute_percentage_error metr
606
678
  - Model Development: Fix an issue that alias definitions cause `SnowparkSQLUnexpectedAliasException` in inference.
607
679
  - Model Registry: Fix an issue that signature inference could be incorrect when using Snowpark DataFrame as sample input.
608
680
  - Model Registry: Fix too strict data type validation when predicting. Now, for example, if you have a INT8
609
- type feature in the signature, if providing a INT64 dataframe but all values are within the range, it would not fail.
681
+ type feature in the signature, if providing a INT64 dataframe but all values are within the range, it would not fail.
610
682
 
611
683
  ## 1.0.9 (2023-09-28)
612
684
 
@@ -629,7 +701,7 @@ mean_absolute_error, mean_squared_error, and mean_absolute_percentage_error metr
629
701
  - Model Development: Fix an issue when the sklearn default value is `np.nan`.
630
702
  - Model Registry: Fix an issue that incorrect docker executable is used when building images.
631
703
  - Model Registry: Fix an issue that specifying `token` argument when using
632
- `snowflake.ml.model.models.huggingface_pipeline.HuggingFacePipelineModel` with `transformers < 4.32.0` is not effective.
704
+ `snowflake.ml.model.models.huggingface_pipeline.HuggingFacePipelineModel` with `transformers < 4.32.0` is not effective.
633
705
  - Model Registry: Fix an issue that incorrect system function call is used when deploying to SPCS.
634
706
  - Model Registry: Fix an issue when using a `transformers.pipeline` that does not have a `tokenizer`.
635
707
  - Model Registry: Fix incorrectly-inferred image repository name during model deployment to SPCS.
@@ -649,17 +721,17 @@ mean_absolute_error, mean_squared_error, and mean_absolute_percentage_error metr
649
721
  - Model Registry: add `create_if_not_exists` parameter in constructor.
650
722
  - Model Registry: Added get_or_create_model_registry API.
651
723
  - Model Registry: Added support for using GPU inference when deploying XGBoost (`xgboost.XGBModel` and `xgboost.Booster`
652
- ), PyTorch (`torch.nn.Module` and `torch.jit.ScriptModule`) and TensorFlow (`tensorflow.Module` and
653
- `tensorflow.keras.Model`) models to Snowpark Container Services.
724
+ ), PyTorch (`torch.nn.Module` and `torch.jit.ScriptModule`) and TensorFlow (`tensorflow.Module` and
725
+ `tensorflow.keras.Model`) models to Snowpark Container Services.
654
726
  - Model Registry: When inferring model signature, `Sequence` of built-in types, `Sequence` of `numpy.ndarray`,
655
- `Sequence` of `torch.Tensor`, `Sequence` of `tensorflow.Tensor` and `Sequence` of `tensorflow.Tensor` can be used
656
- instead of only `List` of them.
727
+ `Sequence` of `torch.Tensor`, `Sequence` of `tensorflow.Tensor` and `Sequence` of `tensorflow.Tensor` can be used
728
+ instead of only `List` of them.
657
729
  - Model Registry: Added `get_training_dataset` API.
658
730
  - Model Development: Size of metrics result can exceed previous 8MB limit.
659
731
  - Model Registry: Added support save/load/deploy HuggingFace pipeline object (`transformers.Pipeline`) and our wrapper
660
- (`snowflake.ml.model.models.huggingface_pipeline.HuggingFacePipelineModel`) to it. Using the wrapper to specify
661
- configurations and the model for the pipeline will be loaded dynamically when deploying. Currently, following tasks
662
- are supported to log without manually specifying model signatures:
732
+ (`snowflake.ml.model.models.huggingface_pipeline.HuggingFacePipelineModel`) to it. Using the wrapper to specify
733
+ configurations and the model for the pipeline will be loaded dynamically when deploying. Currently, following tasks
734
+ are supported to log without manually specifying model signatures:
663
735
  - "conversational"
664
736
  - "fill-mask"
665
737
  - "question-answering"
@@ -683,18 +755,18 @@ are supported to log without manually specifying model signatures:
683
755
  - Model Registry: `log_model()` now return a `ModelReference` object instead of a model ID.
684
756
  - Model Registry: When deploying a model with 1 `target method` only, the `target_method` argument can be omitted.
685
757
  - Model Registry: When using the snowflake-ml-python with version newer than what is available in Snowflake Anaconda
686
- Channel, `embed_local_ml_library` option will be set as `True` automatically if not.
758
+ Channel, `embed_local_ml_library` option will be set as `True` automatically if not.
687
759
  - Model Registry: When deploying a model to Snowpark Container Services and using GPU, the default value of num_workers
688
- will be 1.
760
+ will be 1.
689
761
  - Model Registry: `keep_order` and `output_with_input_features` in the deploy options have been removed. Now the
690
- behavior is controlled by the type of the input when calling `model.predict()`. If the input is a `pandas.DataFrame`,
691
- the behavior will be the same as `keep_order=True` and `output_with_input_features=False` before. If the input is a
692
- `snowpark.DataFrame`, the behavior will be the same as `keep_order=False` and `output_with_input_features=True` before.
762
+ behavior is controlled by the type of the input when calling `model.predict()`. If the input is a `pandas.DataFrame`,
763
+ the behavior will be the same as `keep_order=True` and `output_with_input_features=False` before. If the input is a
764
+ `snowpark.DataFrame`, the behavior will be the same as `keep_order=False` and `output_with_input_features=True` before.
693
765
  - Model Registry: When logging and deploying PyTorch (`torch.nn.Module` and `torch.jit.ScriptModule`) and TensorFlow
694
- (`tensorflow.Module` and `tensorflow.keras.Model`) models, we no longer accept models whose input is a list of tensor
695
- and output is a list of tensors. Instead, now we accept models whose input is 1 or more tensors as positional arguments,
696
- and output is a tensor or a tuple of tensors. The input and output dataframe when predicting keep the same as before,
697
- that is every column is an array feature and contains a tensor.
766
+ (`tensorflow.Module` and `tensorflow.keras.Model`) models, we no longer accept models whose input is a list of tensor
767
+ and output is a list of tensors. Instead, now we accept models whose input is 1 or more tensors as positional arguments,
768
+ and output is a tensor or a tuple of tensors. The input and output dataframe when predicting keep the same as before,
769
+ that is every column is an array feature and contains a tensor.
698
770
 
699
771
  ## 1.0.5 (2023-08-17)
700
772
 
@@ -707,7 +779,7 @@ and output is a list of tensors. Instead, now we accept models whose input is 1
707
779
 
708
780
  - Model Registry: Restore the db/schema back to the session after `create_model_registry()`.
709
781
  - Model Registry: Fixed an issue that the UDF name created when deploying a model is not identical to what is provided
710
- and cannot be correctly dropped when deployment getting dropped.
782
+ and cannot be correctly dropped when deployment getting dropped.
711
783
  - connection_params.SnowflakeLoginOptions(): Added support for `private_key_path`.
712
784
 
713
785
  ## 1.0.4 (2023-07-28)
@@ -728,7 +800,7 @@ and cannot be correctly dropped when deployment getting dropped.
728
800
  ### Behavior Changes
729
801
 
730
802
  - Model Registry: When predicting a model whose output is a list of NumPy ndarray, the output would not be flattened,
731
- instead, every ndarray will act as a feature(column) in the output.
803
+ instead, every ndarray will act as a feature(column) in the output.
732
804
 
733
805
  ### New Features
734
806
 
@@ -737,18 +809,18 @@ instead, every ndarray will act as a feature(column) in the output.
737
809
  ### Bug Fixes
738
810
 
739
811
  - Model Registry: Fix an issue that when database or schema name provided to `create_model_registry` contains special
740
- characters, the model registry cannot be created.
812
+ characters, the model registry cannot be created.
741
813
  - Model Registry: Fix an issue that `get_model_description` returns with additional quotes.
742
814
  - Model Registry: Fix incorrect error message when attempting to remove a unset tag of a model.
743
815
  - Model Registry: Fix a typo in the default deployment table name.
744
816
  - Model Registry: Snowpark dataframe for sample input or input for `predict` method that contains a column with
745
- Snowflake `NUMBER(precision, scale)` data type where `scale = 0` will not lead to error, and will now correctly
746
- recognized as `INT64` data type in model signature.
817
+ Snowflake `NUMBER(precision, scale)` data type where `scale = 0` will not lead to error, and will now correctly
818
+ recognized as `INT64` data type in model signature.
747
819
  - Model Registry: Fix an issue that prevent model logged in the system whose default encoding is not UTF-8 compatible
748
- from deploying.
820
+ from deploying.
749
821
  - Model Registry: Added earlier and better error message when any file name in the model or the file name of model
750
- itself contains characters that are unable to be encoded using ASCII. It is currently not supported to deploy such a
751
- model.
822
+ itself contains characters that are unable to be encoded using ASCII. It is currently not supported to deploy such a
823
+ model.
752
824
 
753
825
  ## 1.0.2 (2023-06-22)
754
826
 
@@ -757,16 +829,16 @@ model.
757
829
  - Model Registry: Prohibit non-snowflake-native models from being logged.
758
830
  - Model Registry: `_use_local_snowml` parameter in options of `deploy()` has been removed.
759
831
  - Model Registry: A default `False` `embed_local_ml_library` parameter has been added to the options of `log_model()`.
760
- With this set to `False` (default), the version of the local snowflake-ml-python library will be recorded and used when
761
- deploying the model. With this set to `True`, local snowflake-ml-python library will be embedded into the logged model,
762
- and will be used when you load or deploy the model.
832
+ With this set to `False` (default), the version of the local snowflake-ml-python library will be recorded and used when
833
+ deploying the model. With this set to `True`, local snowflake-ml-python library will be embedded into the logged model,
834
+ and will be used when you load or deploy the model.
763
835
 
764
836
  ### New Features
765
837
 
766
838
  - Model Registry: A new optional argument named `code_paths` has been added to the arguments of `log_model()` for users
767
- to specify additional code paths to be imported when loading and deploying the model.
839
+ to specify additional code paths to be imported when loading and deploying the model.
768
840
  - Model Registry: A new optional argument named `options` has been added to the arguments of `log_model()` to specify
769
- any additional options when saving the model.
841
+ any additional options when saving the model.
770
842
  - Model Development: Added metrics:
771
843
  - d2_absolute_error_score
772
844
  - d2_pinball_score
@@ -785,14 +857,14 @@ any additional options when saving the model.
785
857
 
786
858
  - Model Development: Changed Metrics APIs to imitate sklearn metrics modules:
787
859
  - `accuracy_score()`, `confusion_matrix()`, `precision_recall_fscore_support()`, `precision_score()` methods move from
788
- respective modules to `metrics.classification`.
860
+ respective modules to `metrics.classification`.
789
861
  - Model Registry: The default table/stage created by the Registry now uses "_SYSTEM_" as a prefix.
790
862
  - Model Registry: `get_model_history()` method as been enhanced to include the history of model deployment.
791
863
 
792
864
  ### New Features
793
865
 
794
866
  - Model Registry: A default `False` flag named `replace_udf` has been added to the options of `deploy()`. Setting this
795
- to `True` will allow overwrite existing UDF with the same name when deploying.
867
+ to `True` will allow overwrite existing UDF with the same name when deploying.
796
868
  - Model Development: Added metrics:
797
869
  - f1_score
798
870
  - fbeta_score
@@ -802,9 +874,9 @@ to `True` will allow overwrite existing UDF with the same name when deploying.
802
874
  - log_loss
803
875
  - precision_recall_curve
804
876
  - Model Registry: A new argument named `permanent` has been added to the argument of `deploy()`. Setting this to `True`
805
- allows the creation of a permanent deployment without needing to specify the UDF location.
877
+ allows the creation of a permanent deployment without needing to specify the UDF location.
806
878
  - Model Registry: A new method `list_deployments()` has been added to enumerate all permanent deployments originating
807
- from a specific model.
879
+ from a specific model.
808
880
  - Model Registry: A new method `get_deployment()` has been added to fetch a deployment by its deployment name.
809
881
  - Model Registry: A new method `delete_deployment()` has been added to remove an existing permanent deployment.
810
882
 
@@ -814,13 +886,13 @@ from a specific model.
814
886
 
815
887
  - Model Registry: `predict()` method moves from Registry to ModelReference.
816
888
  - Model Registry: `_snowml_wheel_path` parameter in options of `deploy()`, is replaced with `_use_local_snowml` with
817
- default value of `False`. Setting this to `True` will have the same effect of uploading local SnowML code when executing
818
- model in the warehouse.
889
+ default value of `False`. Setting this to `True` will have the same effect of uploading local SnowML code when executing
890
+ model in the warehouse.
819
891
  - Model Registry: Removed `id` field from `ModelReference` constructor.
820
892
  - Model Development: Preprocessing and Metrics move to the modeling package: `snowflake.ml.modeling.preprocessing` and
821
- `snowflake.ml.modeling.metrics`.
893
+ `snowflake.ml.modeling.metrics`.
822
894
  - Model Development: `get_sklearn_object()` method is renamed to `to_sklearn()`, `to_xgboost()`, and `to_lightgbm()` for
823
- respective native models.
895
+ respective native models.
824
896
 
825
897
  ### New Features
826
898
 
@@ -882,7 +954,7 @@ respective native models.
882
954
  ### New Features
883
955
 
884
956
  - Model Registry: Added support for delete_model. Use delete_artifact = False to not delete the underlying model data
885
- but just unregister.
957
+ but just unregister.
886
958
 
887
959
  ## 0.2.2 (2023-04-11)
888
960