snowflake-ml-python 1.3.1__py3-none-any.whl → 1.4.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/human_readable_id/adjectives.txt +128 -0
- snowflake/ml/_internal/human_readable_id/animals.txt +128 -0
- snowflake/ml/_internal/human_readable_id/hrid_generator.py +40 -0
- snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +135 -0
- snowflake/ml/_internal/utils/formatting.py +1 -1
- snowflake/ml/feature_store/feature_store.py +15 -106
- snowflake/ml/model/_client/model/model_version_impl.py +20 -15
- snowflake/ml/model/_deploy_client/image_builds/server_image_builder.py +1 -3
- snowflake/ml/model/_deploy_client/snowservice/deploy.py +5 -2
- snowflake/ml/model/_model_composer/model_composer.py +7 -5
- snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +1 -1
- snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +13 -1
- snowflake/ml/model/_packager/model_handlers/xgboost.py +1 -1
- snowflake/ml/model/custom_model.py +3 -1
- snowflake/ml/modeling/_internal/model_specifications.py +3 -1
- snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +546 -0
- snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +3 -0
- snowflake/ml/modeling/framework/base.py +15 -5
- snowflake/ml/modeling/impute/simple_imputer.py +4 -15
- snowflake/ml/modeling/lightgbm/lgbm_classifier.py +3 -2
- snowflake/ml/modeling/lightgbm/lgbm_regressor.py +3 -2
- snowflake/ml/registry/_manager/model_manager.py +5 -1
- snowflake/ml/registry/model_registry.py +99 -26
- snowflake/ml/registry/registry.py +2 -1
- snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.3.1.dist-info → snowflake_ml_python-1.4.0.dist-info}/METADATA +31 -3
- {snowflake_ml_python-1.3.1.dist-info → snowflake_ml_python-1.4.0.dist-info}/RECORD +30 -26
- {snowflake_ml_python-1.3.1.dist-info → snowflake_ml_python-1.4.0.dist-info}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.3.1.dist-info → snowflake_ml_python-1.4.0.dist-info}/WHEEL +0 -0
- {snowflake_ml_python-1.3.1.dist-info → snowflake_ml_python-1.4.0.dist-info}/top_level.txt +0 -0
@@ -16,6 +16,7 @@ from numpy import typing as npt
|
|
16
16
|
|
17
17
|
|
18
18
|
import numpy
|
19
|
+
import sklearn
|
19
20
|
import lightgbm
|
20
21
|
from sklearn.utils.metaestimators import available_if
|
21
22
|
|
@@ -160,7 +161,7 @@ class LGBMClassifier(BaseTransformer):
|
|
160
161
|
self.set_sample_weight_col(sample_weight_col)
|
161
162
|
self._use_external_memory_version = False
|
162
163
|
self._batch_size = -1
|
163
|
-
deps: Set[str] = set([f'numpy=={np.__version__}', f'lightgbm=={lightgbm.__version__}', f'cloudpickle=={cp.__version__}'])
|
164
|
+
deps: Set[str] = set([f'numpy=={np.__version__}', f'lightgbm=={lightgbm.__version__}', f'cloudpickle=={cp.__version__}', f'scikit-learn=={sklearn.__version__}'])
|
164
165
|
|
165
166
|
self._deps = list(deps)
|
166
167
|
|
@@ -841,7 +842,7 @@ class LGBMClassifier(BaseTransformer):
|
|
841
842
|
transform_kwargs = dict(
|
842
843
|
session=dataset._session,
|
843
844
|
dependencies=["snowflake-snowpark-python"] + self._deps,
|
844
|
-
score_sproc_imports=['lightgbm'],
|
845
|
+
score_sproc_imports=['lightgbm', 'sklearn'],
|
845
846
|
)
|
846
847
|
elif isinstance(dataset, pd.DataFrame):
|
847
848
|
# pandas_handler.score() does not require any extra kwargs.
|
@@ -16,6 +16,7 @@ from numpy import typing as npt
|
|
16
16
|
|
17
17
|
|
18
18
|
import numpy
|
19
|
+
import sklearn
|
19
20
|
import lightgbm
|
20
21
|
from sklearn.utils.metaestimators import available_if
|
21
22
|
|
@@ -160,7 +161,7 @@ class LGBMRegressor(BaseTransformer):
|
|
160
161
|
self.set_sample_weight_col(sample_weight_col)
|
161
162
|
self._use_external_memory_version = False
|
162
163
|
self._batch_size = -1
|
163
|
-
deps: Set[str] = set([f'numpy=={np.__version__}', f'lightgbm=={lightgbm.__version__}', f'cloudpickle=={cp.__version__}'])
|
164
|
+
deps: Set[str] = set([f'numpy=={np.__version__}', f'lightgbm=={lightgbm.__version__}', f'cloudpickle=={cp.__version__}', f'scikit-learn=={sklearn.__version__}'])
|
164
165
|
|
165
166
|
self._deps = list(deps)
|
166
167
|
|
@@ -837,7 +838,7 @@ class LGBMRegressor(BaseTransformer):
|
|
837
838
|
transform_kwargs = dict(
|
838
839
|
session=dataset._session,
|
839
840
|
dependencies=["snowflake-snowpark-python"] + self._deps,
|
840
|
-
score_sproc_imports=['lightgbm'],
|
841
|
+
score_sproc_imports=['lightgbm', 'sklearn'],
|
841
842
|
)
|
842
843
|
elif isinstance(dataset, pd.DataFrame):
|
843
844
|
# pandas_handler.score() does not require any extra kwargs.
|
@@ -4,6 +4,7 @@ from typing import Any, Dict, List, Optional
|
|
4
4
|
import pandas as pd
|
5
5
|
from absl.logging import logging
|
6
6
|
|
7
|
+
from snowflake.ml._internal.human_readable_id import hrid_generator
|
7
8
|
from snowflake.ml._internal.utils import sql_identifier
|
8
9
|
from snowflake.ml.model import model_signature, type_hints as model_types
|
9
10
|
from snowflake.ml.model._client.model import model_impl, model_version_impl
|
@@ -27,13 +28,14 @@ class ModelManager:
|
|
27
28
|
self._model_ops = model_ops.ModelOperator(
|
28
29
|
session, database_name=self._database_name, schema_name=self._schema_name
|
29
30
|
)
|
31
|
+
self._hrid_generator = hrid_generator.HRID16()
|
30
32
|
|
31
33
|
def log_model(
|
32
34
|
self,
|
33
35
|
model: model_types.SupportedModelType,
|
34
36
|
*,
|
35
37
|
model_name: str,
|
36
|
-
version_name: str,
|
38
|
+
version_name: Optional[str] = None,
|
37
39
|
comment: Optional[str] = None,
|
38
40
|
metrics: Optional[Dict[str, Any]] = None,
|
39
41
|
conda_dependencies: Optional[List[str]] = None,
|
@@ -48,6 +50,8 @@ class ModelManager:
|
|
48
50
|
) -> model_version_impl.ModelVersion:
|
49
51
|
model_name_id = sql_identifier.SqlIdentifier(model_name)
|
50
52
|
|
53
|
+
if not version_name:
|
54
|
+
version_name = self._hrid_generator.generate()[1]
|
51
55
|
version_name_id = sql_identifier.SqlIdentifier(version_name)
|
52
56
|
|
53
57
|
if self._model_ops.validate_existence(
|
@@ -103,7 +103,10 @@ def _create_registry_database(
|
|
103
103
|
|
104
104
|
|
105
105
|
def _create_registry_schema(
|
106
|
-
session: snowpark.Session,
|
106
|
+
session: snowpark.Session,
|
107
|
+
database_name: str,
|
108
|
+
schema_name: str,
|
109
|
+
statement_params: Dict[str, Any],
|
107
110
|
) -> None:
|
108
111
|
"""Private helper to create the model registry schema.
|
109
112
|
|
@@ -161,7 +164,11 @@ def _create_registry_views(
|
|
161
164
|
|
162
165
|
# Create a view on active permanent deployments.
|
163
166
|
_create_active_permanent_deployment_view(
|
164
|
-
session,
|
167
|
+
session,
|
168
|
+
fully_qualified_schema_name,
|
169
|
+
registry_table_name,
|
170
|
+
deployment_table_name,
|
171
|
+
statement_params,
|
165
172
|
)
|
166
173
|
|
167
174
|
# Create views on most recent metadata items.
|
@@ -437,10 +444,12 @@ fully integrated into the new registry.
|
|
437
444
|
# Could do a multi-table insert here with some pros and cons:
|
438
445
|
# [PRO] Atomic insert across multiple tables.
|
439
446
|
# [CON] Code logic becomes messy depending on which fields are set.
|
440
|
-
# [CON] Harder to
|
447
|
+
# [CON] Harder to reuse existing methods like set_model_name.
|
441
448
|
# Context: https://docs.snowflake.com/en/sql-reference/sql/insert-multi-table.html
|
442
449
|
return table_manager.insert_table_entry(
|
443
|
-
self._session,
|
450
|
+
self._session,
|
451
|
+
table=self._fully_qualified_registry_table_name(),
|
452
|
+
columns=properties,
|
444
453
|
)
|
445
454
|
|
446
455
|
def _insert_metadata_entry(self, *, id: str, attribute: str, value: Any, operation: str) -> List[snowpark.Row]:
|
@@ -471,7 +480,9 @@ fully integrated into the new registry.
|
|
471
480
|
columns["VALUE"] = value
|
472
481
|
|
473
482
|
return table_manager.insert_table_entry(
|
474
|
-
self._session,
|
483
|
+
self._session,
|
484
|
+
table=self._fully_qualified_metadata_table_name(),
|
485
|
+
columns=columns,
|
475
486
|
)
|
476
487
|
|
477
488
|
def _insert_deployment_entry(
|
@@ -484,7 +495,10 @@ fully integrated into the new registry.
|
|
484
495
|
signature: Dict[str, Any],
|
485
496
|
target_method: str,
|
486
497
|
options: Optional[
|
487
|
-
Union[
|
498
|
+
Union[
|
499
|
+
model_types.WarehouseDeployOptions,
|
500
|
+
model_types.SnowparkContainerServiceDeployOptions,
|
501
|
+
]
|
488
502
|
] = None,
|
489
503
|
) -> List[snowpark.Row]:
|
490
504
|
"""Insert a new row into the model deployment table.
|
@@ -521,7 +535,9 @@ fully integrated into the new registry.
|
|
521
535
|
columns["OPTIONS"] = options
|
522
536
|
|
523
537
|
return table_manager.insert_table_entry(
|
524
|
-
self._session,
|
538
|
+
self._session,
|
539
|
+
table=self._fully_qualified_deployment_table_name(),
|
540
|
+
columns=columns,
|
525
541
|
)
|
526
542
|
|
527
543
|
def _prepare_deployment_stage(self) -> str:
|
@@ -596,7 +612,11 @@ fully integrated into the new registry.
|
|
596
612
|
return identifier.get_schema_level_object_identifier(db, schema, stage)
|
597
613
|
|
598
614
|
def _list_selected_models(
|
599
|
-
self,
|
615
|
+
self,
|
616
|
+
*,
|
617
|
+
id: Optional[str] = None,
|
618
|
+
model_name: Optional[str] = None,
|
619
|
+
model_version: Optional[str] = None,
|
600
620
|
) -> snowpark.DataFrame:
|
601
621
|
"""Retrieve the Snowpark dataframe of models matching the specified ID or (name and version).
|
602
622
|
|
@@ -724,7 +744,12 @@ fully integrated into the new registry.
|
|
724
744
|
assert id is not None
|
725
745
|
|
726
746
|
try:
|
727
|
-
self._insert_metadata_entry(
|
747
|
+
self._insert_metadata_entry(
|
748
|
+
id=id,
|
749
|
+
attribute=attribute,
|
750
|
+
value={attribute: value},
|
751
|
+
operation=operation,
|
752
|
+
)
|
728
753
|
except connector.DataError:
|
729
754
|
raise connector.DataError(f"Setting {attribute} for mode id {id} failed.")
|
730
755
|
|
@@ -760,7 +785,10 @@ fully integrated into the new registry.
|
|
760
785
|
return str(result)
|
761
786
|
|
762
787
|
def _get_model_path(
|
763
|
-
self,
|
788
|
+
self,
|
789
|
+
id: Optional[str] = None,
|
790
|
+
model_name: Optional[str] = None,
|
791
|
+
model_version: Optional[str] = None,
|
764
792
|
) -> str:
|
765
793
|
"""Get the stage path for the model with the given (model name + model version) or `id` from the registry.
|
766
794
|
|
@@ -889,10 +917,17 @@ fully integrated into the new registry.
|
|
889
917
|
value=new_model,
|
890
918
|
)
|
891
919
|
if description:
|
892
|
-
self.set_model_description(
|
920
|
+
self.set_model_description(
|
921
|
+
model_name=model_name,
|
922
|
+
model_version=model_version,
|
923
|
+
description=description,
|
924
|
+
)
|
893
925
|
if tags:
|
894
926
|
self._set_metadata_attribute(
|
895
|
-
_METADATA_ATTRIBUTE_TAGS,
|
927
|
+
_METADATA_ATTRIBUTE_TAGS,
|
928
|
+
value=tags,
|
929
|
+
model_name=model_name,
|
930
|
+
model_version=model_version,
|
896
931
|
)
|
897
932
|
else:
|
898
933
|
raise connector.DatabaseError("Failed to insert the model properties to the registry table.")
|
@@ -961,7 +996,10 @@ fully integrated into the new registry.
|
|
961
996
|
model_tags = self.get_tags(model_name=model_name, model_version=model_version)
|
962
997
|
model_tags[tag_name] = tag_value
|
963
998
|
self._set_metadata_attribute(
|
964
|
-
_METADATA_ATTRIBUTE_TAGS,
|
999
|
+
_METADATA_ATTRIBUTE_TAGS,
|
1000
|
+
model_tags,
|
1001
|
+
model_name=model_name,
|
1002
|
+
model_version=model_version,
|
965
1003
|
)
|
966
1004
|
|
967
1005
|
@telemetry.send_api_usage_telemetry(
|
@@ -991,7 +1029,10 @@ fully integrated into the new registry.
|
|
991
1029
|
)
|
992
1030
|
|
993
1031
|
self._set_metadata_attribute(
|
994
|
-
_METADATA_ATTRIBUTE_TAGS,
|
1032
|
+
_METADATA_ATTRIBUTE_TAGS,
|
1033
|
+
model_tags,
|
1034
|
+
model_name=model_name,
|
1035
|
+
model_version=model_version,
|
995
1036
|
)
|
996
1037
|
|
997
1038
|
@telemetry.send_api_usage_telemetry(
|
@@ -1089,7 +1130,9 @@ fully integrated into the new registry.
|
|
1089
1130
|
Description of the model or None.
|
1090
1131
|
"""
|
1091
1132
|
result = self._get_metadata_attribute(
|
1092
|
-
_METADATA_ATTRIBUTE_DESCRIPTION,
|
1133
|
+
_METADATA_ATTRIBUTE_DESCRIPTION,
|
1134
|
+
model_name=model_name,
|
1135
|
+
model_version=model_version,
|
1093
1136
|
)
|
1094
1137
|
return None if result is None else json.loads(result)
|
1095
1138
|
|
@@ -1112,7 +1155,10 @@ fully integrated into the new registry.
|
|
1112
1155
|
description: Desired new model description.
|
1113
1156
|
"""
|
1114
1157
|
self._set_metadata_attribute(
|
1115
|
-
_METADATA_ATTRIBUTE_DESCRIPTION,
|
1158
|
+
_METADATA_ATTRIBUTE_DESCRIPTION,
|
1159
|
+
description,
|
1160
|
+
model_name=model_name,
|
1161
|
+
model_version=model_version,
|
1116
1162
|
)
|
1117
1163
|
|
1118
1164
|
@telemetry.send_api_usage_telemetry(
|
@@ -1165,7 +1211,10 @@ fully integrated into the new registry.
|
|
1165
1211
|
snowpark.DataFrame with the history of the model.
|
1166
1212
|
"""
|
1167
1213
|
id = self._get_model_id(model_name=model_name, model_version=model_version)
|
1168
|
-
return cast(
|
1214
|
+
return cast(
|
1215
|
+
snowpark.DataFrame,
|
1216
|
+
self.get_history().filter(snowpark.Column("MODEL_ID") == id),
|
1217
|
+
)
|
1169
1218
|
|
1170
1219
|
@telemetry.send_api_usage_telemetry(
|
1171
1220
|
project=_TELEMETRY_PROJECT,
|
@@ -1194,7 +1243,10 @@ fully integrated into the new registry.
|
|
1194
1243
|
model_metrics = self.get_metrics(model_name=model_name, model_version=model_version)
|
1195
1244
|
model_metrics[metric_name] = metric_value
|
1196
1245
|
self._set_metadata_attribute(
|
1197
|
-
_METADATA_ATTRIBUTE_METRICS,
|
1246
|
+
_METADATA_ATTRIBUTE_METRICS,
|
1247
|
+
model_metrics,
|
1248
|
+
model_name=model_name,
|
1249
|
+
model_version=model_version,
|
1198
1250
|
)
|
1199
1251
|
|
1200
1252
|
@telemetry.send_api_usage_telemetry(
|
@@ -1230,7 +1282,10 @@ fully integrated into the new registry.
|
|
1230
1282
|
)
|
1231
1283
|
|
1232
1284
|
self._set_metadata_attribute(
|
1233
|
-
_METADATA_ATTRIBUTE_METRICS,
|
1285
|
+
_METADATA_ATTRIBUTE_METRICS,
|
1286
|
+
model_metrics,
|
1287
|
+
model_name=model_name,
|
1288
|
+
model_version=model_version,
|
1234
1289
|
)
|
1235
1290
|
|
1236
1291
|
@telemetry.send_api_usage_telemetry(
|
@@ -1290,7 +1345,9 @@ fully integrated into the new registry.
|
|
1290
1345
|
# Snowpark snowpark.dataframe returns dictionary objects as strings. We need to convert it back to a dictionary
|
1291
1346
|
# here.
|
1292
1347
|
result = self._get_metadata_attribute(
|
1293
|
-
_METADATA_ATTRIBUTE_METRICS,
|
1348
|
+
_METADATA_ATTRIBUTE_METRICS,
|
1349
|
+
model_name=model_name,
|
1350
|
+
model_version=model_version,
|
1294
1351
|
)
|
1295
1352
|
|
1296
1353
|
if result:
|
@@ -1507,7 +1564,10 @@ fully integrated into the new registry.
|
|
1507
1564
|
permanent: bool = False,
|
1508
1565
|
platform: deploy_platforms.TargetPlatform = deploy_platforms.TargetPlatform.WAREHOUSE,
|
1509
1566
|
options: Optional[
|
1510
|
-
Union[
|
1567
|
+
Union[
|
1568
|
+
model_types.WarehouseDeployOptions,
|
1569
|
+
model_types.SnowparkContainerServiceDeployOptions,
|
1570
|
+
]
|
1511
1571
|
] = None,
|
1512
1572
|
) -> model_types.Deployment:
|
1513
1573
|
"""Deploy the model with the given deployment name.
|
@@ -1772,7 +1832,9 @@ fully integrated into the new registry.
|
|
1772
1832
|
|
1773
1833
|
"""
|
1774
1834
|
deployment = self._get_deployment(
|
1775
|
-
model_name=model_name,
|
1835
|
+
model_name=model_name,
|
1836
|
+
model_version=model_version,
|
1837
|
+
deployment_name=deployment_name,
|
1776
1838
|
)
|
1777
1839
|
|
1778
1840
|
# TODO(SNOW-759526): The following sequence should be a transaction.
|
@@ -1845,7 +1907,8 @@ fully integrated into the new registry.
|
|
1845
1907
|
|
1846
1908
|
# Step 1/3: Delete the registry entry.
|
1847
1909
|
query_result_checker.SqlResultValidator(
|
1848
|
-
self._session,
|
1910
|
+
self._session,
|
1911
|
+
f"DELETE FROM {self._fully_qualified_registry_table_name()} WHERE ID='{id}'",
|
1849
1912
|
).deletion_success(expected_num_rows=1).validate()
|
1850
1913
|
|
1851
1914
|
# Step 2/3: Delete the artifact (if desired).
|
@@ -1966,7 +2029,11 @@ class ModelReference:
|
|
1966
2029
|
|
1967
2030
|
def build_method(m: Callable[..., Any]) -> Callable[..., Any]:
|
1968
2031
|
return lambda self, *args, **kwargs: m(
|
1969
|
-
self._registry,
|
2032
|
+
self._registry,
|
2033
|
+
self._model_name,
|
2034
|
+
self._model_version,
|
2035
|
+
*args,
|
2036
|
+
**kwargs,
|
1970
2037
|
)
|
1971
2038
|
|
1972
2039
|
method = build_method(m=obj)
|
@@ -2027,7 +2094,10 @@ class ModelReference:
|
|
2027
2094
|
|
2028
2095
|
if di:
|
2029
2096
|
return model_api.predict(
|
2030
|
-
session=self._registry._session,
|
2097
|
+
session=self._registry._session,
|
2098
|
+
deployment=di,
|
2099
|
+
X=data,
|
2100
|
+
statement_params=statement_params,
|
2031
2101
|
)
|
2032
2102
|
|
2033
2103
|
# Mypy enforce to refer to the registry for calling the function
|
@@ -2059,7 +2129,10 @@ class ModelReference:
|
|
2059
2129
|
options=options,
|
2060
2130
|
)
|
2061
2131
|
return model_api.predict(
|
2062
|
-
session=self._registry._session,
|
2132
|
+
session=self._registry._session,
|
2133
|
+
deployment=di,
|
2134
|
+
X=data,
|
2135
|
+
statement_params=statement_params,
|
2063
2136
|
)
|
2064
2137
|
|
2065
2138
|
|
@@ -77,7 +77,7 @@ class Registry:
|
|
77
77
|
model: model_types.SupportedModelType,
|
78
78
|
*,
|
79
79
|
model_name: str,
|
80
|
-
version_name: str,
|
80
|
+
version_name: Optional[str] = None,
|
81
81
|
comment: Optional[str] = None,
|
82
82
|
metrics: Optional[Dict[str, Any]] = None,
|
83
83
|
conda_dependencies: Optional[List[str]] = None,
|
@@ -98,6 +98,7 @@ class Registry:
|
|
98
98
|
Sentence Transformers, Peft-finetuned LLM, or Custom Model.
|
99
99
|
model_name: Name to identify the model.
|
100
100
|
version_name: Version identifier for the model. Combination of model_name and version_name must be unique.
|
101
|
+
If not specified, a random name will be generated.
|
101
102
|
comment: Comment associated with the model version. Defaults to None.
|
102
103
|
metrics: A JSON serializable dictionary containing metrics linked to the model version. Defaults to None.
|
103
104
|
signatures: Model data signatures for inputs and outputs for various target methods. If it is None,
|
snowflake/ml/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
VERSION="1.
|
1
|
+
VERSION="1.4.0"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: snowflake-ml-python
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.4.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:
|
@@ -370,13 +370,41 @@ be compatibility issues. Server-side functionality that `snowflake-ml-python` de
|
|
370
370
|
|
371
371
|
# Release History
|
372
372
|
|
373
|
-
## 1.
|
373
|
+
## 1.4.0
|
374
|
+
|
375
|
+
### Bug Fixes
|
376
|
+
|
377
|
+
- Registry: Fix a bug when multiple models are being called from the same query, models other than the first one will
|
378
|
+
have incorrect result. This fix only works for newly logged model.
|
379
|
+
- Modeling: When registering a model, only method(s) that is mentioned in `save_model` would be added to model signature
|
380
|
+
in SnowML models.
|
381
|
+
- 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.
|
384
|
+
- Modeling: Fix a bug that batch inference methods cannot infer the datatype when the first row of data contains NULL.
|
385
|
+
- Modeling: Matches Distributed HPO output column names with the snowflake identifier.
|
386
|
+
- Modeling: Relax package versions for all Distributed HPO methods if the installed version
|
387
|
+
is not available in the Snowflake conda channel
|
388
|
+
- Modeling: Add sklearn as required dependency for LightGBM package.
|
389
|
+
|
390
|
+
### Behavior Changes
|
391
|
+
|
392
|
+
- Registry: `apply` method is no longer by default logged when logging a xgboost model. If that is required, it could
|
393
|
+
be specified manually when logging the model by `log_model(..., options={"target_methods": ["apply", ...]})`.
|
394
|
+
|
395
|
+
### New Features
|
396
|
+
|
397
|
+
- Registry: Add support for `sentence-transformers` model (`sentence_transformers.SentenceTransformer`).
|
398
|
+
- Registry: Now version name is no longer required when logging a model. If not provided, a random human readable ID
|
399
|
+
will be generated.
|
400
|
+
|
401
|
+
## 1.3.1 (2024-03-21)
|
374
402
|
|
375
403
|
### New Features
|
376
404
|
|
377
405
|
- FileSet: `snowflake.ml.fileset.sfcfs.SFFileSystem` can now be used in UDFs and stored procedures.
|
378
406
|
|
379
|
-
## 1.3.0
|
407
|
+
## 1.3.0 (2024-03-12)
|
380
408
|
|
381
409
|
### Bug Fixes
|
382
410
|
|
@@ -5,7 +5,7 @@ snowflake/cortex/_sentiment.py,sha256=7X_a8qJNFFgn-Y1tjwMDkyNJHz5yYl0PvnezVCc4Ts
|
|
5
5
|
snowflake/cortex/_summarize.py,sha256=DJRxUrPrTVmtQNgus0ZPF1z8nPmn4Rs5oL3U25CfXxQ,1075
|
6
6
|
snowflake/cortex/_translate.py,sha256=JPMIXxHTgJPfJqT5Hw_WtYM6FZ8NuQufZ4XR-M8wnyo,1420
|
7
7
|
snowflake/cortex/_util.py,sha256=0xDaDSctenhuj59atZenZp5q9zuhji0WQ77KPjqqNoc,1557
|
8
|
-
snowflake/ml/version.py,sha256=
|
8
|
+
snowflake/ml/version.py,sha256=X9n40H72i_qUrqdGO45MIHs_PUCysRlD1xrJRZ97KiU,16
|
9
9
|
snowflake/ml/_internal/env.py,sha256=kCrJTRnqQ97VGUVI1cWUPD8HuBWeL5vOOtwUR0NB9Mg,161
|
10
10
|
snowflake/ml/_internal/env_utils.py,sha256=nkBk8bDDKi5zIK9ZD8hBlKd3krccNZ4XC2pt6bgb4L4,25797
|
11
11
|
snowflake/ml/_internal/file_utils.py,sha256=OyXHv-UcItiip1YgLnab6etonUQkYuyDtmplZA0CaoU,13622
|
@@ -23,7 +23,11 @@ snowflake/ml/_internal/exceptions/exceptions.py,sha256=ub0fthrNTVoKhpj1pXnKRfO1G
|
|
23
23
|
snowflake/ml/_internal/exceptions/fileset_error_messages.py,sha256=dqPpRu0cKyQA_0gahvbizgQBTwNhnwveN286JrJLvi8,419
|
24
24
|
snowflake/ml/_internal/exceptions/fileset_errors.py,sha256=ZJfkpeDgRIw3qA876fk9FIzxIrm-yZ8I9RXUbzaeM84,1040
|
25
25
|
snowflake/ml/_internal/exceptions/modeling_error_messages.py,sha256=q1Nh7KvnUebdKCwwAPmotdAVS578CgAXcfDOfKoweVw,665
|
26
|
-
snowflake/ml/_internal/
|
26
|
+
snowflake/ml/_internal/human_readable_id/adjectives.txt,sha256=5o4MbVeHoELAqyLpyuKleOKR47jPjC_nKoziOIZMwT0,804
|
27
|
+
snowflake/ml/_internal/human_readable_id/animals.txt,sha256=GDLzMwzxiL07PhIMxw4t89bhYqqg0bQfPiuQT8VNeME,837
|
28
|
+
snowflake/ml/_internal/human_readable_id/hrid_generator.py,sha256=LYWB86qZgsVBvnc6Q5VjfDOmnGSQU3cTRKfId_nJSPY,1341
|
29
|
+
snowflake/ml/_internal/human_readable_id/hrid_generator_base.py,sha256=D1yoVG1vmAFUhWQ5xCRRU6HCCBPbXHpOXagFd0jK0O8,4519
|
30
|
+
snowflake/ml/_internal/utils/formatting.py,sha256=PswZ6Xas7sx3Ok1MBLoH2o7nfXOxaJqpUPg_UqXrQb8,3676
|
27
31
|
snowflake/ml/_internal/utils/identifier.py,sha256=_NAW00FGtQsQESxF2b30_T4kkmzQITsdfykvJ2PqPUo,10870
|
28
32
|
snowflake/ml/_internal/utils/import_utils.py,sha256=eexwIe7auT17s4aVxAns7se0_K15rcq3O17MkIvDpPI,2068
|
29
33
|
snowflake/ml/_internal/utils/log_stream_processor.py,sha256=pBf8ycEamhHjEzUT55Rx_tFqSkYRpD5Dt71Mx9ZdaS8,1001
|
@@ -43,7 +47,7 @@ snowflake/ml/_internal/utils/uri.py,sha256=pvskcWoeS0M66DaU2XlJzK9wce55z4J5dn5kT
|
|
43
47
|
snowflake/ml/dataset/dataset.py,sha256=OG_RonPgj86mRKRgN-xhJV0uZfa78ohVBpxsoYYnceY,6078
|
44
48
|
snowflake/ml/feature_store/__init__.py,sha256=dYtqk_GD_hAAZjGfH1maWlZQ30h4hu_KGaf-_y9_AD8,298
|
45
49
|
snowflake/ml/feature_store/entity.py,sha256=dCpzLC3jrt5wDHqFYJXbAYkMiZ0zEmiVDMGkks6MXkA,3378
|
46
|
-
snowflake/ml/feature_store/feature_store.py,sha256=
|
50
|
+
snowflake/ml/feature_store/feature_store.py,sha256=aNcbXHwpq9qja3785kpvgvahGtooY2KGjqspLM26W1o,69115
|
47
51
|
snowflake/ml/feature_store/feature_view.py,sha256=APSn-xqm1Yv_iIKCckPdsvAqFb7D0-3BUW6URjSNut8,17806
|
48
52
|
snowflake/ml/fileset/fileset.py,sha256=QRhxLeKf1QBqvXO4RyyRd1c8TixhYpHuBEII8Qi3C_M,26201
|
49
53
|
snowflake/ml/fileset/parquet_parser.py,sha256=sjyRB59cGBzSzvbcYLvu_ApMPtrR-zwZsQkxekMR4FA,6884
|
@@ -53,12 +57,12 @@ snowflake/ml/fileset/tf_dataset.py,sha256=K8jafWBsyRaIYEmxaYAYNDj3dLApK82cg0Mlx5
|
|
53
57
|
snowflake/ml/fileset/torch_datapipe.py,sha256=O2irHckqLzPDnXemEbAEjc3ZCVnLufPdPbt9WKYiBp0,2386
|
54
58
|
snowflake/ml/model/__init__.py,sha256=fk8OMvOyrSIkAhX0EcrgBBvdz1VGRsdMmfYFV2GCf14,367
|
55
59
|
snowflake/ml/model/_api.py,sha256=Y3r-Rm1-TJ0rnuydcWs6ENGdNp86T57PbmCWJlB0o0U,21595
|
56
|
-
snowflake/ml/model/custom_model.py,sha256=
|
60
|
+
snowflake/ml/model/custom_model.py,sha256=xvu7WZ1YmOdvuPePyAj6qMwKq-HNeVV9bNfkOT09CRI,8267
|
57
61
|
snowflake/ml/model/deploy_platforms.py,sha256=r6cS3gTNWG9i4P00fHehY6Q8eBiNva6501OTyp_E5m0,144
|
58
62
|
snowflake/ml/model/model_signature.py,sha256=UQSGieGJcnmC02V4feCYMdhMXnGoOUa9KBuDrbeivBM,29342
|
59
63
|
snowflake/ml/model/type_hints.py,sha256=qe9U01Br4zYN0Uo0Pm7OC8eyjIuAoVwzweSvEe9SMzQ,12195
|
60
64
|
snowflake/ml/model/_client/model/model_impl.py,sha256=QmTJr1JLdqBHWrFFpR2xARfbx0INYPzbfKWJn--3yX4,12525
|
61
|
-
snowflake/ml/model/_client/model/model_version_impl.py,sha256=
|
65
|
+
snowflake/ml/model/_client/model/model_version_impl.py,sha256=A9d4ipgiymX35Hsk7j4GkO908u0aVUAf95kUWybTT9M,13548
|
62
66
|
snowflake/ml/model/_client/ops/metadata_ops.py,sha256=XFNolmueu0nC3nAjb2Lj3v1NffDAhAq0JWMek9JVO38,4094
|
63
67
|
snowflake/ml/model/_client/ops/model_ops.py,sha256=cL791mSAr4fJvPco6PtMdpwqicHhSTc8nsn4jdcEuEA,17767
|
64
68
|
snowflake/ml/model/_client/sql/model.py,sha256=diuyGfFtLu1Z9yBThP-SjGOG9Zy4gflRKh6JoyUBDHk,4525
|
@@ -69,12 +73,12 @@ snowflake/ml/model/_deploy_client/image_builds/base_image_builder.py,sha256=clCa
|
|
69
73
|
snowflake/ml/model/_deploy_client/image_builds/client_image_builder.py,sha256=G74D9lV2B3d544YzFN-YrjPkaST7tbQeh-rM17dtoJc,10681
|
70
74
|
snowflake/ml/model/_deploy_client/image_builds/docker_context.py,sha256=7uhAJsHsk7LbiZv_w3xOCE2O88rTUVnS3_B6OAz-JG4,6129
|
71
75
|
snowflake/ml/model/_deploy_client/image_builds/gunicorn_run.sh,sha256=1pntXgqFthW4gdomqlyWx9CJF-Wqv8VMoLkgSiTHEJ0,1578
|
72
|
-
snowflake/ml/model/_deploy_client/image_builds/server_image_builder.py,sha256=
|
76
|
+
snowflake/ml/model/_deploy_client/image_builds/server_image_builder.py,sha256=HnTaj0v27R9PCRuXpcP1nWv5tGBsXGSq6Xwep1m0bb0,9947
|
73
77
|
snowflake/ml/model/_deploy_client/image_builds/inference_server/main.py,sha256=Ltk7KrYsp-nrghMhbMWKqi3snU8inbqmKLHFFyBCeBY,11148
|
74
78
|
snowflake/ml/model/_deploy_client/image_builds/templates/dockerfile_template,sha256=WAqYQaaY5AFywg9yNLKRw350c2fpM4vxgdjYJ50VJJA,1752
|
75
79
|
snowflake/ml/model/_deploy_client/image_builds/templates/image_build_job_spec_template,sha256=g8mEvpJmwQ9OnAkZomeErPQ6h4OJ5NdtRCoylyIp7f4,1225
|
76
80
|
snowflake/ml/model/_deploy_client/image_builds/templates/kaniko_shell_script_template,sha256=nEK7fqo_XHJEVKLNe--EkES4oiDm7M5E9CacxGItFU0,3633
|
77
|
-
snowflake/ml/model/_deploy_client/snowservice/deploy.py,sha256=
|
81
|
+
snowflake/ml/model/_deploy_client/snowservice/deploy.py,sha256=U0axqxy9YdJTsGz0bXSRSM2f7nziRnB83mvK6Rz9tlI,29141
|
78
82
|
snowflake/ml/model/_deploy_client/snowservice/deploy_options.py,sha256=X4ncWgcgS9DKaNDiauOR9aVC6D27yb3DNouXDEHEjMQ,5989
|
79
83
|
snowflake/ml/model/_deploy_client/snowservice/instance_types.py,sha256=YHI5D7UXNlEbV_Bzk0Nq6nrzfv2VUJfxwchLe7hY-lA,232
|
80
84
|
snowflake/ml/model/_deploy_client/snowservice/templates/service_spec_template,sha256=hZX8XYPAlEU2R6JhZLj46js91g7XSfe2pysflCYH4HM,734
|
@@ -83,12 +87,12 @@ snowflake/ml/model/_deploy_client/utils/constants.py,sha256=ysEBrEs0sBCGHnk9uBX-
|
|
83
87
|
snowflake/ml/model/_deploy_client/utils/snowservice_client.py,sha256=R_ilt8SGwQR6qh_roaUvst0YrnjbJbAyxYIPn4efo4E,13284
|
84
88
|
snowflake/ml/model/_deploy_client/warehouse/deploy.py,sha256=yZR9M76oh6JbPQJHb6t3wGO3wuD04w0zLEXiEyZW_tg,8358
|
85
89
|
snowflake/ml/model/_deploy_client/warehouse/infer_template.py,sha256=1THMd6JX1nW-OozECyxXbn9HJXDgNBUIdhfC9ODPDWY,3011
|
86
|
-
snowflake/ml/model/_model_composer/model_composer.py,sha256=
|
90
|
+
snowflake/ml/model/_model_composer/model_composer.py,sha256=ShoSp74xImfdXuIMTVJKt09sIBS8uxz-0rCbYBxLX9o,6337
|
87
91
|
snowflake/ml/model/_model_composer/model_manifest/model_manifest.py,sha256=wdMTFH8St31mr88Fj8lQLTj_gvskHQu8fQOxAPQoXuQ,6677
|
88
92
|
snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py,sha256=R4oX50Rlpr0C6zTYJRPuuZqImzYcBSTCQJfuSGutULI,2029
|
89
93
|
snowflake/ml/model/_model_composer/model_method/function_generator.py,sha256=2B-fykyanYlGWA4Ie2nOwXx2N5D2qZEvTbbPuSSreeI,1837
|
90
94
|
snowflake/ml/model/_model_composer/model_method/infer_function.py_template,sha256=QpQXAIKDs9cotLOL0JdI6xLet1QJU7KtaF7O10nDQcs,2291
|
91
|
-
snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template,sha256=
|
95
|
+
snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template,sha256=gex5if17PZ6t6fPcr2i_LO_3IRY03Ykcv_XAyKJt8pg,2170
|
92
96
|
snowflake/ml/model/_model_composer/model_method/model_method.py,sha256=Lk32tVHAN_oMRuKx_9hiFKuk7gqCDcJe-D0fN56BzvM,6693
|
93
97
|
snowflake/ml/model/_model_composer/model_runtime/_runtime_requirements.py,sha256=z3V7mRgdP-TYpZSX7TrW2k_4hNQ3ZsR4YO4ZQ0YSm8s,248
|
94
98
|
snowflake/ml/model/_model_composer/model_runtime/model_runtime.py,sha256=y6gZURScuGFZK6-n_YEdzDIzJHCiHXctKuSGv_ObRwc,4307
|
@@ -104,10 +108,10 @@ snowflake/ml/model/_packager/model_handlers/mlflow.py,sha256=Itw1fPiBdU2euOmjLU3
|
|
104
108
|
snowflake/ml/model/_packager/model_handlers/pytorch.py,sha256=dSxKO530_IlF1OK3t9_UYpVntdPiszKy-x_7XGk0bzQ,8033
|
105
109
|
snowflake/ml/model/_packager/model_handlers/sentence_transformers.py,sha256=JRPargMNEJaDFQIpzqEVvOml62G_UVVvJdqBH8Lhu_Y,9051
|
106
110
|
snowflake/ml/model/_packager/model_handlers/sklearn.py,sha256=bb-3AkK5T5HlFLSzviGKKRjhVcGvKIClDU7OP1OsNHg,8065
|
107
|
-
snowflake/ml/model/_packager/model_handlers/snowmlmodel.py,sha256=
|
111
|
+
snowflake/ml/model/_packager/model_handlers/snowmlmodel.py,sha256=le4Y_dbiPlcjhiFpK1shla3pVgQ5UASdx2g7a70tYYY,7967
|
108
112
|
snowflake/ml/model/_packager/model_handlers/tensorflow.py,sha256=ujBcbJ1-Ymv7ZeLfuxuDBe7QZ7KNU7x1p2k6OM_yi-0,8179
|
109
113
|
snowflake/ml/model/_packager/model_handlers/torchscript.py,sha256=8s8sMWQ9ydJpK1Nk2uPQ-FVeB-xclfX5qzRDr9G1bdk,8104
|
110
|
-
snowflake/ml/model/_packager/model_handlers/xgboost.py,sha256=
|
114
|
+
snowflake/ml/model/_packager/model_handlers/xgboost.py,sha256=x5bXz5DRzb3O7DMDOF535LBPGnydCa78JHP_7-vsnjY,8874
|
111
115
|
snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py,sha256=BZo14UrywGZM1kTqzN4VFQcYjl7dggDp1U90ZBCMuOg,1409
|
112
116
|
snowflake/ml/model/_packager/model_meta/_core_requirements.py,sha256=BE-T6xd48OmUIthNAapbI6w7cmUsJwd32I7c1slaXpE,274
|
113
117
|
snowflake/ml/model/_packager/model_meta/_packaging_requirements.py,sha256=TfJNtrfyZoNiJZYFfmTbmiWMlXKM-QxkOBIJVFvPit0,44
|
@@ -130,7 +134,7 @@ snowflake/ml/model/models/huggingface_pipeline.py,sha256=62GpPZxBheqCnFNxNOggiDE
|
|
130
134
|
snowflake/ml/model/models/llm.py,sha256=ofrdHH4LQEQmnxYAGwmHV2sWLPenf0WcgBLg9MPwSmY,3616
|
131
135
|
snowflake/ml/modeling/_internal/constants.py,sha256=xI4ofa3ATQ2UszRPpkfUAxghV_gXmvxleqOew4UI1PM,45
|
132
136
|
snowflake/ml/modeling/_internal/estimator_utils.py,sha256=Szhpip5g7ddmT1-nfRg8WFRRCBx9QIjsSW9ey7jkTLo,8855
|
133
|
-
snowflake/ml/modeling/_internal/model_specifications.py,sha256
|
137
|
+
snowflake/ml/modeling/_internal/model_specifications.py,sha256=nAqgw7i1LcYMKRQq9mg2I50Kl0tsayh2_do5UMDXdT0,4801
|
134
138
|
snowflake/ml/modeling/_internal/model_trainer.py,sha256=AlnTRnIowaF39Qjy2Zv4U3JsMydzCxfcBB2pgLIzNpk,694
|
135
139
|
snowflake/ml/modeling/_internal/model_trainer_builder.py,sha256=0zazMgVNmBly7jKLGEwwjirb6VUsmA5bnplCzWxfTP8,7269
|
136
140
|
snowflake/ml/modeling/_internal/model_transformer_builder.py,sha256=Y6Y8XSr7X7xAy1FvjPuHTb9Opy7tnGoCuOUBc5WEBJ4,3364
|
@@ -139,8 +143,8 @@ snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py,sha256=
|
|
139
143
|
snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py,sha256=QuXUeeFzktfxStkXFlFSzB7QAuaTG2mPQJVBlRkb0WI,3169
|
140
144
|
snowflake/ml/modeling/_internal/ml_runtime_implementations/ml_runtime_handlers.py,sha256=y9PZ3xgPGDHPBcNHY0f2Fk0nMZMRsPcLWy2cIDTALT4,4850
|
141
145
|
snowflake/ml/modeling/_internal/ml_runtime_implementations/ml_runtime_trainer.py,sha256=lM1vYwpJ1jgTh8vnuyMp4tnFibM6UFf50W1IpPWwUWE,2535
|
142
|
-
snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py,sha256=
|
143
|
-
snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py,sha256=
|
146
|
+
snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py,sha256=1kfwnUzaBFcxrN_YjWdlbT6ZR_vqcBjUwscwDzTsQyQ,54431
|
147
|
+
snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py,sha256=qtizLi4azYYCPL0BzuxohK81BpxRPidQQGhwVgp2bAQ,13590
|
144
148
|
snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py,sha256=w3zCrv-TwDB1o9eFppMaiXWmMeEPz_EAn_vl_2_6GL8,21699
|
145
149
|
snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py,sha256=VBYWGTy6ajQ-u2aiEvVU6NnKobEqJyz65oaHJS-ZjBs,17208
|
146
150
|
snowflake/ml/modeling/calibration/__init__.py,sha256=rY5qSOkHj59bHiTV6LhBiEhUA0StoCb0ACNR2vkV4v0,297
|
@@ -212,7 +216,7 @@ snowflake/ml/modeling/feature_selection/select_percentile.py,sha256=10-R2ijOsTVR
|
|
212
216
|
snowflake/ml/modeling/feature_selection/sequential_feature_selector.py,sha256=kRZ4HPQgzawll6ZGZ76ZseVA3qhLYtNRFmq4d_9u0gc,46442
|
213
217
|
snowflake/ml/modeling/feature_selection/variance_threshold.py,sha256=8i6_ALx-0XY2FxRGnBeOY2Jd29PYz6ALFDAouC6ysoQ,43402
|
214
218
|
snowflake/ml/modeling/framework/_utils.py,sha256=85q83_QVwAQmnzMYefSE5FaxiGMYnOpRatyvdpemU6w,9974
|
215
|
-
snowflake/ml/modeling/framework/base.py,sha256=
|
219
|
+
snowflake/ml/modeling/framework/base.py,sha256=PteCPFStrGyeH1HP3oQLkY7AaNoWj8abHYwZuLoHfso,30157
|
216
220
|
snowflake/ml/modeling/gaussian_process/__init__.py,sha256=rY5qSOkHj59bHiTV6LhBiEhUA0StoCb0ACNR2vkV4v0,297
|
217
221
|
snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py,sha256=igmWhHpuU27OtYDAHbduJHNltCTKwakCu5ch3Q0brew,49376
|
218
222
|
snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py,sha256=VXIWTMMM80zqzBBdwQLeEAdzf67jZ0pXhJ50O_do2UQ,48441
|
@@ -220,7 +224,7 @@ snowflake/ml/modeling/impute/__init__.py,sha256=dYtqk_GD_hAAZjGfH1maWlZQ30h4hu_K
|
|
220
224
|
snowflake/ml/modeling/impute/iterative_imputer.py,sha256=jF_H8WvECHavwzaOKYqsR0ijM3VnyWzBC3Gl70Qd4zc,49939
|
221
225
|
snowflake/ml/modeling/impute/knn_imputer.py,sha256=49U_EkD-kQ6uSIxC8BOKqc9IxS1IHuvW1gfOeGeEFCA,45696
|
222
226
|
snowflake/ml/modeling/impute/missing_indicator.py,sha256=sdwF5ip-u7g3ioeK7ImdEmvCZE-D6xigAbiXP4kkduc,44524
|
223
|
-
snowflake/ml/modeling/impute/simple_imputer.py,sha256=
|
227
|
+
snowflake/ml/modeling/impute/simple_imputer.py,sha256=awM33HugS5jGs3JXud1U8eEMm2VLdIAf7z_eVXAzKD0,18499
|
224
228
|
snowflake/ml/modeling/kernel_approximation/__init__.py,sha256=rY5qSOkHj59bHiTV6LhBiEhUA0StoCb0ACNR2vkV4v0,297
|
225
229
|
snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py,sha256=McvxnMNfyv3O2fNXsIMmGFFWfbKnEulj11Z0D4X8bDo,43515
|
226
230
|
snowflake/ml/modeling/kernel_approximation/nystroem.py,sha256=fMANo2btM_MaJRID8RrF7Ni66uwcsvmyUlOXPEgo_4w,45319
|
@@ -230,8 +234,8 @@ snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py,sha256=0kB3UCP
|
|
230
234
|
snowflake/ml/modeling/kernel_ridge/__init__.py,sha256=rY5qSOkHj59bHiTV6LhBiEhUA0StoCb0ACNR2vkV4v0,297
|
231
235
|
snowflake/ml/modeling/kernel_ridge/kernel_ridge.py,sha256=Hm9RoSJqOvd6xQrNByvKU3NAjGktUF__Txsj5HrO66s,45755
|
232
236
|
snowflake/ml/modeling/lightgbm/__init__.py,sha256=rY5qSOkHj59bHiTV6LhBiEhUA0StoCb0ACNR2vkV4v0,297
|
233
|
-
snowflake/ml/modeling/lightgbm/lgbm_classifier.py,sha256=
|
234
|
-
snowflake/ml/modeling/lightgbm/lgbm_regressor.py,sha256=
|
237
|
+
snowflake/ml/modeling/lightgbm/lgbm_classifier.py,sha256=tQWAMmWECo7i7q6L-RhzJZPTJ-EW90_U7VM0w7JCk5g,45323
|
238
|
+
snowflake/ml/modeling/lightgbm/lgbm_regressor.py,sha256=llkP12nu04eOcC8DfeKyYx2YRLspxGXRP75V47YajSY,44826
|
235
239
|
snowflake/ml/modeling/linear_model/__init__.py,sha256=rY5qSOkHj59bHiTV6LhBiEhUA0StoCb0ACNR2vkV4v0,297
|
236
240
|
snowflake/ml/modeling/linear_model/ard_regression.py,sha256=BE0Mp7qtXFltlRrh25dytZla50nuyLeIvcE19wDsxDU,45700
|
237
241
|
snowflake/ml/modeling/linear_model/bayesian_ridge.py,sha256=qU5_D_0H34X14gZa4EAdlxluPXqQIe5tRPPRctiZzOY,46116
|
@@ -354,13 +358,13 @@ snowflake/ml/registry/_schema.py,sha256=GOA427_mVKkq9RWRENHuqDimRS0SmmP4EWThNCu1
|
|
354
358
|
snowflake/ml/registry/_schema_upgrade_plans.py,sha256=LxZNXYGjGG-NmB7w7_SxgaJpZuXUO66XVMuh04oL6SI,4209
|
355
359
|
snowflake/ml/registry/_schema_version_manager.py,sha256=-9wGH-7ELSZxp7-fW7hXTMqkJSIebXdSpwwgzdvnoYs,6922
|
356
360
|
snowflake/ml/registry/artifact.py,sha256=9JDcr4aaR0d4cp4YSRnGMFRIdu-k0tABbs6jDH4VDGQ,1263
|
357
|
-
snowflake/ml/registry/model_registry.py,sha256=
|
358
|
-
snowflake/ml/registry/registry.py,sha256=
|
359
|
-
snowflake/ml/registry/_manager/model_manager.py,sha256=
|
361
|
+
snowflake/ml/registry/model_registry.py,sha256=MgI4Dj9kvxfNd3kQ3tWY6ygmxUd6kzb430-GKkn4BA0,91007
|
362
|
+
snowflake/ml/registry/registry.py,sha256=LIwExLFPMOvbJbB7nRToDkMk93wl1ZMhGiN1Mo5HRGk,10939
|
363
|
+
snowflake/ml/registry/_manager/model_manager.py,sha256=LYX_nS_egwum7F_LCbz_a3hibIHOTDK8LO1DPOWxPrE,5809
|
360
364
|
snowflake/ml/utils/connection_params.py,sha256=JRpQppuWRk6bhdLzVDhMfz3Y6yInobFNLHmIBaXD7po,8005
|
361
365
|
snowflake/ml/utils/sparse.py,sha256=XqDQkw39Ml6YIknswdkvFIwUwBk_GBXAbP8IACfPENg,3817
|
362
|
-
snowflake_ml_python-1.
|
363
|
-
snowflake_ml_python-1.
|
364
|
-
snowflake_ml_python-1.
|
365
|
-
snowflake_ml_python-1.
|
366
|
-
snowflake_ml_python-1.
|
366
|
+
snowflake_ml_python-1.4.0.dist-info/LICENSE.txt,sha256=PdEp56Av5m3_kl21iFkVTX_EbHJKFGEdmYeIO1pL_Yk,11365
|
367
|
+
snowflake_ml_python-1.4.0.dist-info/METADATA,sha256=g26kO8pTVbH7coUpl7H3P4ceLOBSnilZNkT6U5ZTxGA,46650
|
368
|
+
snowflake_ml_python-1.4.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
369
|
+
snowflake_ml_python-1.4.0.dist-info/top_level.txt,sha256=TY0gFSHKDdZy3THb0FGomyikWQasEGldIR1O0HGOHVw,10
|
370
|
+
snowflake_ml_python-1.4.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|