snowflake-ml-python 1.24.0__py3-none-any.whl → 1.25.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 (33) hide show
  1. snowflake/ml/_internal/utils/mixins.py +26 -1
  2. snowflake/ml/data/_internal/arrow_ingestor.py +5 -1
  3. snowflake/ml/data/data_connector.py +2 -2
  4. snowflake/ml/data/data_ingestor.py +2 -1
  5. snowflake/ml/experiment/_experiment_info.py +3 -3
  6. snowflake/ml/jobs/_interop/data_utils.py +8 -8
  7. snowflake/ml/jobs/_interop/dto_schema.py +52 -7
  8. snowflake/ml/jobs/_interop/protocols.py +124 -7
  9. snowflake/ml/jobs/_interop/utils.py +92 -33
  10. snowflake/ml/jobs/_utils/arg_protocol.py +7 -0
  11. snowflake/ml/jobs/_utils/constants.py +4 -0
  12. snowflake/ml/jobs/_utils/feature_flags.py +97 -13
  13. snowflake/ml/jobs/_utils/payload_utils.py +6 -40
  14. snowflake/ml/jobs/_utils/runtime_env_utils.py +12 -111
  15. snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +204 -27
  16. snowflake/ml/jobs/decorators.py +17 -22
  17. snowflake/ml/jobs/job.py +25 -10
  18. snowflake/ml/jobs/job_definition.py +100 -8
  19. snowflake/ml/model/_client/model/model_version_impl.py +25 -14
  20. snowflake/ml/model/_client/ops/service_ops.py +6 -6
  21. snowflake/ml/model/_client/service/model_deployment_spec.py +3 -0
  22. snowflake/ml/model/_client/service/model_deployment_spec_schema.py +1 -0
  23. snowflake/ml/model/models/huggingface_pipeline.py +3 -0
  24. snowflake/ml/model/openai_signatures.py +154 -0
  25. snowflake/ml/registry/_manager/model_parameter_reconciler.py +2 -3
  26. snowflake/ml/version.py +1 -1
  27. {snowflake_ml_python-1.24.0.dist-info → snowflake_ml_python-1.25.0.dist-info}/METADATA +41 -2
  28. {snowflake_ml_python-1.24.0.dist-info → snowflake_ml_python-1.25.0.dist-info}/RECORD +31 -32
  29. {snowflake_ml_python-1.24.0.dist-info → snowflake_ml_python-1.25.0.dist-info}/WHEEL +1 -1
  30. snowflake/ml/jobs/_utils/function_payload_utils.py +0 -43
  31. snowflake/ml/jobs/_utils/spec_utils.py +0 -22
  32. {snowflake_ml_python-1.24.0.dist-info → snowflake_ml_python-1.25.0.dist-info}/licenses/LICENSE.txt +0 -0
  33. {snowflake_ml_python-1.24.0.dist-info → snowflake_ml_python-1.25.0.dist-info}/top_level.txt +0 -0
@@ -88,6 +88,96 @@ _OPENAI_CHAT_SIGNATURE_SPEC = core.ModelSignature(
88
88
  ],
89
89
  )
90
90
 
91
+ _OPENAI_CHAT_SIGNATURE_WITH_PARAMS_SPEC = core.ModelSignature(
92
+ inputs=[
93
+ core.FeatureGroupSpec(
94
+ name="messages",
95
+ specs=[
96
+ core.FeatureGroupSpec(
97
+ name="content",
98
+ specs=[
99
+ core.FeatureSpec(name="type", dtype=core.DataType.STRING),
100
+ # Text prompts
101
+ core.FeatureSpec(name="text", dtype=core.DataType.STRING),
102
+ # Image URL prompts
103
+ core.FeatureGroupSpec(
104
+ name="image_url",
105
+ specs=[
106
+ # Base64 encoded image URL or image URL
107
+ core.FeatureSpec(name="url", dtype=core.DataType.STRING),
108
+ # Image detail level (e.g., "low", "high", "auto")
109
+ core.FeatureSpec(name="detail", dtype=core.DataType.STRING),
110
+ ],
111
+ ),
112
+ # Video URL prompts
113
+ core.FeatureGroupSpec(
114
+ name="video_url",
115
+ specs=[
116
+ # Base64 encoded video URL
117
+ core.FeatureSpec(name="url", dtype=core.DataType.STRING),
118
+ ],
119
+ ),
120
+ # Audio prompts
121
+ core.FeatureGroupSpec(
122
+ name="input_audio",
123
+ specs=[
124
+ core.FeatureSpec(name="data", dtype=core.DataType.STRING),
125
+ core.FeatureSpec(name="format", dtype=core.DataType.STRING),
126
+ ],
127
+ ),
128
+ ],
129
+ shape=(-1,),
130
+ ),
131
+ core.FeatureSpec(name="name", dtype=core.DataType.STRING),
132
+ core.FeatureSpec(name="role", dtype=core.DataType.STRING),
133
+ core.FeatureSpec(name="title", dtype=core.DataType.STRING),
134
+ ],
135
+ shape=(-1,),
136
+ ),
137
+ ],
138
+ outputs=[
139
+ core.FeatureSpec(name="id", dtype=core.DataType.STRING),
140
+ core.FeatureSpec(name="object", dtype=core.DataType.STRING),
141
+ core.FeatureSpec(name="created", dtype=core.DataType.FLOAT),
142
+ core.FeatureSpec(name="model", dtype=core.DataType.STRING),
143
+ core.FeatureGroupSpec(
144
+ name="choices",
145
+ specs=[
146
+ core.FeatureSpec(name="index", dtype=core.DataType.INT32),
147
+ core.FeatureGroupSpec(
148
+ name="message",
149
+ specs=[
150
+ core.FeatureSpec(name="content", dtype=core.DataType.STRING),
151
+ core.FeatureSpec(name="name", dtype=core.DataType.STRING),
152
+ core.FeatureSpec(name="role", dtype=core.DataType.STRING),
153
+ ],
154
+ ),
155
+ core.FeatureSpec(name="logprobs", dtype=core.DataType.STRING),
156
+ core.FeatureSpec(name="finish_reason", dtype=core.DataType.STRING),
157
+ ],
158
+ shape=(-1,),
159
+ ),
160
+ core.FeatureGroupSpec(
161
+ name="usage",
162
+ specs=[
163
+ core.FeatureSpec(name="completion_tokens", dtype=core.DataType.INT32),
164
+ core.FeatureSpec(name="prompt_tokens", dtype=core.DataType.INT32),
165
+ core.FeatureSpec(name="total_tokens", dtype=core.DataType.INT32),
166
+ ],
167
+ ),
168
+ ],
169
+ params=[
170
+ core.ParamSpec(name="temperature", dtype=core.DataType.DOUBLE, default_value=1.0),
171
+ core.ParamSpec(name="max_completion_tokens", dtype=core.DataType.INT64, default_value=250),
172
+ core.ParamSpec(name="stop", dtype=core.DataType.STRING, default_value=""),
173
+ core.ParamSpec(name="n", dtype=core.DataType.INT32, default_value=1),
174
+ core.ParamSpec(name="stream", dtype=core.DataType.BOOL, default_value=False),
175
+ core.ParamSpec(name="top_p", dtype=core.DataType.DOUBLE, default_value=1.0),
176
+ core.ParamSpec(name="frequency_penalty", dtype=core.DataType.DOUBLE, default_value=0.0),
177
+ core.ParamSpec(name="presence_penalty", dtype=core.DataType.DOUBLE, default_value=0.0),
178
+ ],
179
+ )
180
+
91
181
  _OPENAI_CHAT_SIGNATURE_SPEC_WITH_CONTENT_FORMAT_STRING = core.ModelSignature(
92
182
  inputs=[
93
183
  core.FeatureGroupSpec(
@@ -142,6 +232,62 @@ _OPENAI_CHAT_SIGNATURE_SPEC_WITH_CONTENT_FORMAT_STRING = core.ModelSignature(
142
232
  ],
143
233
  )
144
234
 
235
+ _OPENAI_CHAT_SIGNATURE_WITH_PARAMS_SPEC_WITH_CONTENT_FORMAT_STRING = core.ModelSignature(
236
+ inputs=[
237
+ core.FeatureGroupSpec(
238
+ name="messages",
239
+ specs=[
240
+ core.FeatureSpec(name="content", dtype=core.DataType.STRING),
241
+ core.FeatureSpec(name="name", dtype=core.DataType.STRING),
242
+ core.FeatureSpec(name="role", dtype=core.DataType.STRING),
243
+ core.FeatureSpec(name="title", dtype=core.DataType.STRING),
244
+ ],
245
+ shape=(-1,),
246
+ ),
247
+ ],
248
+ outputs=[
249
+ core.FeatureSpec(name="id", dtype=core.DataType.STRING),
250
+ core.FeatureSpec(name="object", dtype=core.DataType.STRING),
251
+ core.FeatureSpec(name="created", dtype=core.DataType.FLOAT),
252
+ core.FeatureSpec(name="model", dtype=core.DataType.STRING),
253
+ core.FeatureGroupSpec(
254
+ name="choices",
255
+ specs=[
256
+ core.FeatureSpec(name="index", dtype=core.DataType.INT32),
257
+ core.FeatureGroupSpec(
258
+ name="message",
259
+ specs=[
260
+ core.FeatureSpec(name="content", dtype=core.DataType.STRING),
261
+ core.FeatureSpec(name="name", dtype=core.DataType.STRING),
262
+ core.FeatureSpec(name="role", dtype=core.DataType.STRING),
263
+ ],
264
+ ),
265
+ core.FeatureSpec(name="logprobs", dtype=core.DataType.STRING),
266
+ core.FeatureSpec(name="finish_reason", dtype=core.DataType.STRING),
267
+ ],
268
+ shape=(-1,),
269
+ ),
270
+ core.FeatureGroupSpec(
271
+ name="usage",
272
+ specs=[
273
+ core.FeatureSpec(name="completion_tokens", dtype=core.DataType.INT32),
274
+ core.FeatureSpec(name="prompt_tokens", dtype=core.DataType.INT32),
275
+ core.FeatureSpec(name="total_tokens", dtype=core.DataType.INT32),
276
+ ],
277
+ ),
278
+ ],
279
+ params=[
280
+ core.ParamSpec(name="temperature", dtype=core.DataType.DOUBLE, default_value=1.0),
281
+ core.ParamSpec(name="max_completion_tokens", dtype=core.DataType.INT64, default_value=250),
282
+ core.ParamSpec(name="stop", dtype=core.DataType.STRING, default_value=""),
283
+ core.ParamSpec(name="n", dtype=core.DataType.INT32, default_value=1),
284
+ core.ParamSpec(name="stream", dtype=core.DataType.BOOL, default_value=False),
285
+ core.ParamSpec(name="top_p", dtype=core.DataType.DOUBLE, default_value=1.0),
286
+ core.ParamSpec(name="frequency_penalty", dtype=core.DataType.DOUBLE, default_value=0.0),
287
+ core.ParamSpec(name="presence_penalty", dtype=core.DataType.DOUBLE, default_value=0.0),
288
+ ],
289
+ )
290
+
145
291
 
146
292
  # Refer vLLM documentation: https://docs.vllm.ai/en/stable/serving/openai_compatible_server/#chat-template
147
293
 
@@ -152,3 +298,11 @@ OPENAI_CHAT_SIGNATURE_WITH_CONTENT_FORMAT_STRING = {"__call__": _OPENAI_CHAT_SIG
152
298
  # This is the default signature.
153
299
  # The content format allows vLLM to handler content parts like text, image, video, audio, file, etc.
154
300
  OPENAI_CHAT_SIGNATURE = {"__call__": _OPENAI_CHAT_SIGNATURE_SPEC}
301
+
302
+ # Use this signature to leverage ParamSpec with the default ChatML template.
303
+ OPENAI_CHAT_WITH_PARAMS_SIGNATURE = {"__call__": _OPENAI_CHAT_SIGNATURE_WITH_PARAMS_SPEC}
304
+
305
+ # Use this signature to leverage ParamSpec with the content format string.
306
+ OPENAI_CHAT_WITH_PARAMS_SIGNATURE_WITH_CONTENT_FORMAT_STRING = {
307
+ "__call__": _OPENAI_CHAT_SIGNATURE_WITH_PARAMS_SPEC_WITH_CONTENT_FORMAT_STRING
308
+ }
@@ -193,12 +193,11 @@ class ModelParameterReconciler:
193
193
  if enable_explainability:
194
194
  if only_spcs or not is_warehouse_runnable:
195
195
  raise ValueError(
196
- "`enable_explainability` cannot be set to True when the model is not runnable in WH "
197
- "or the target platforms include SPCS."
196
+ "`enable_explainability` cannot be set to True when the model cannot run in Warehouse."
198
197
  )
199
198
  elif has_both_platforms:
200
199
  warnings.warn(
201
- ("Explain function will only be available for model deployed to warehouse."),
200
+ ("Explain function will only be available for model deployed to Warehouse."),
202
201
  category=UserWarning,
203
202
  stacklevel=2,
204
203
  )
snowflake/ml/version.py CHANGED
@@ -1,2 +1,2 @@
1
1
  # This is parsed by regex in conda recipe meta file. Make sure not to break it.
2
- VERSION = "1.24.0"
2
+ VERSION = "1.25.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-ml-python
3
- Version: 1.24.0
3
+ Version: 1.25.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:
@@ -417,6 +417,37 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
417
417
 
418
418
  # Release History
419
419
 
420
+ ## 1.25.0
421
+
422
+ ### New Features
423
+
424
+ * ML Job: Added support for creating ML job definitions and launching jobs with different
425
+ arguments without re-uploading payloads.
426
+
427
+ * Inference Autocapture (PuPr): The `create_service` API will now accept `autocapture` as a new argument to indicate
428
+ whether inference data will be captured.
429
+
430
+ * Model serving: Introduced the `min_instances` field in the `mv.create_service()` and
431
+ `HuggingFacePipelineModel.log_model_and_create_service()` APIs (defaulting to 0). The service now launches
432
+ with the `min_instances` and automatically scales between `min_instances` and `max_instances` based on
433
+ traffic and hardware utilization. When `min_instances` is set to 0, the service will automatically suspend
434
+ if no traffic is detected for a period of time.
435
+
436
+ ### Bug Fixes
437
+
438
+ ### Behavior Changes
439
+
440
+ * Inference Autocapture (PuPr): `list_services()` now shows `autocapture_enabled` column to indicate if model
441
+ service has autocapture enabled.
442
+
443
+ * Model serving: The `mv.create_service()` and `HuggingFacePipelineModel.log_model_and_create_service()` APIs now
444
+ include a `min_instances` field (defaulting to 0). When these APIs are called without specifying `min_instances`,
445
+ the system will now launch the service with 1 instance and enable auto scaling. This replaces the previous behavior,
446
+ where `min_instances` was automatically set to match `max_instances`, resulting in the immediate launch of the
447
+ maximum number of instances.
448
+
449
+ ### Deprecations
450
+
420
451
  ## 1.24.0
421
452
 
422
453
  ### New Features
@@ -520,7 +551,15 @@ x_df = pd.DataFrame.from_records(
520
551
  [
521
552
  {
522
553
  "messages": [
523
- {"role": "system", "content": "Complete the sentence."},
554
+ {
555
+ "role": "system",
556
+ "content": [
557
+ {
558
+ "type": "text",
559
+ "text": "Complete the sentence."
560
+ },
561
+ ]
562
+ },
524
563
  {
525
564
  "role": "user",
526
565
  "content": [
@@ -10,7 +10,7 @@ snowflake/cortex/_sse_client.py,sha256=sLYgqAfTOPADCnaWH2RWAJi8KbU_7gSRsTUDcDD5T
10
10
  snowflake/cortex/_summarize.py,sha256=7GH8zqfIdOiHA5w4b6EvJEKEWhaTrL4YA6iDGbn7BNM,1307
11
11
  snowflake/cortex/_translate.py,sha256=9ZGjvAnJFisbzJ_bXnt4pyug5UzhHJRXW8AhGQEersM,1652
12
12
  snowflake/cortex/_util.py,sha256=krNTpbkFLXwdFqy1bd0xi7ZmOzOHRnIfHdQCPiLZJxk,3288
13
- snowflake/ml/version.py,sha256=esv6fY3HPIokUy4DELkMBOWM2pRI2gTUZ-kkGwHiP-M,99
13
+ snowflake/ml/version.py,sha256=V1sQKmkr-QMsegsFN8N1EoPDeU1CzZe6ofRecCIByco,99
14
14
  snowflake/ml/_internal/env.py,sha256=EY_2KVe8oR3LgKWdaeRb5rRU-NDNXJppPDsFJmMZUUY,265
15
15
  snowflake/ml/_internal/env_utils.py,sha256=Xx03pV_qEIVJJY--J3ZmnqK9Ugf0Os3O2vrF8xOyq_c,31500
16
16
  snowflake/ml/_internal/file_utils.py,sha256=7sA6loOeSfmGP4yx16P4usT9ZtRqG3ycnXu7_Tk7dOs,14206
@@ -40,7 +40,7 @@ snowflake/ml/_internal/utils/formatting.py,sha256=PswZ6Xas7sx3Ok1MBLoH2o7nfXOxaJ
40
40
  snowflake/ml/_internal/utils/identifier.py,sha256=HrcCBOyn93fRjMj4K1YJG37ONtw7e3EZnt29LzhEgLA,12586
41
41
  snowflake/ml/_internal/utils/import_utils.py,sha256=msvUDaCcJpAcNCS-5Ynz4F1CvUhXjRsuZyOv1rN6Yhk,3213
42
42
  snowflake/ml/_internal/utils/jwt_generator.py,sha256=X8D_bjVRnpcSCuJFjrA71KBJDRFXD_73tVu4VL9agpE,5441
43
- snowflake/ml/_internal/utils/mixins.py,sha256=0_jJN_-iNvLim0-GsJ4geqK4Ja91O-M527uWzj3vBtw,3511
43
+ snowflake/ml/_internal/utils/mixins.py,sha256=FxpB5ZJBJk9Cv3dI_YiJDkBzMRel60aOD_xn67TFR5s,4708
44
44
  snowflake/ml/_internal/utils/parallelize.py,sha256=l8Zjo-hp8zqoLgHxBlpz9Zmn2Z-MRQ0fS_NnrR4jWR8,4522
45
45
  snowflake/ml/_internal/utils/pkg_version_utils.py,sha256=EaY_3IsVOZ9BCH28F5VLjp-0AiEqDlL7L715vkPsgrY,5149
46
46
  snowflake/ml/_internal/utils/query_result_checker.py,sha256=1PR41Xn9BUIXvp-UmJ9FgEbj8WfgU7RUhz3PqvvVQ5E,10656
@@ -53,19 +53,19 @@ snowflake/ml/_internal/utils/table_manager.py,sha256=Wf3JXLUzdCiffKF9PJj7edHY7us
53
53
  snowflake/ml/_internal/utils/temp_file_utils.py,sha256=eHyyvxHfj4Z3FIS6VWgNyw5bFjNi5cSGYmY1hzyqzwY,1534
54
54
  snowflake/ml/_internal/utils/url.py,sha256=V3Y5zwNhJouy_cyLTa2rogg5nQZ-Ag-7Rmq-qPPEjmg,1219
55
55
  snowflake/ml/data/__init__.py,sha256=nm5VhN98Lzxr4kb679kglQfqbDbHhd9zYsnFJiQiThg,351
56
- snowflake/ml/data/data_connector.py,sha256=ZAgnXWEmOjR_3tremS2gNgLen7Rzrt1Z3ZtkXJrZtCo,14154
57
- snowflake/ml/data/data_ingestor.py,sha256=0TFc8qo4TZwdHMaBUBTZ7T8kkZfLGVmStvEx9KrXPHU,1165
56
+ snowflake/ml/data/data_connector.py,sha256=rzSW-z6YR5RQZH8aj7gbjyHhdwecCYKbrkk6-SReE68,14174
57
+ snowflake/ml/data/data_ingestor.py,sha256=Fxy1wuw0-6dWjJhBn9o5ZhzXKIpaaM5Y6Ji9XZGO5g0,1203
58
58
  snowflake/ml/data/data_source.py,sha256=HjBO1xqTyJfAvEAGESUIdke0KvSj5S5-FcI2D2zgejI,512
59
59
  snowflake/ml/data/ingestor_utils.py,sha256=JOv7Kvs0DNhsXUjl940ZULDkeTjIcePCfQ9aL_NteV0,2721
60
60
  snowflake/ml/data/torch_utils.py,sha256=1IgXiqxLgUh0yyNqchOSps5gLqmMOglSctoifjJIDFI,3591
61
- snowflake/ml/data/_internal/arrow_ingestor.py,sha256=8QSHNrFfvOmlMHxbF0Uexnw0KBpfvqXuVKbqjxiLOFk,15901
61
+ snowflake/ml/data/_internal/arrow_ingestor.py,sha256=0YfgMGDqq72O28nrV_LOgH-lpM1oljDhyn--BdNYKG0,16025
62
62
  snowflake/ml/dataset/__init__.py,sha256=nESj7YEI2u90Oxyit_hKCQMWb7N1BlEM3Ho2Fm0MfHo,274
63
63
  snowflake/ml/dataset/dataset.py,sha256=Uo99ZfAIpY9LZ4_gMsQfY_SwUpPnbfkuEcViHmSV6HA,21067
64
64
  snowflake/ml/dataset/dataset_factory.py,sha256=Fym4ICK-B1j6Om4ENwWxEvryq3ZKoCslBSZDBenmjOo,1615
65
65
  snowflake/ml/dataset/dataset_metadata.py,sha256=lcNvugBkP8YEkGMQqaV8SlHs5mwUKsUS8GgaPGNm6wM,4145
66
66
  snowflake/ml/dataset/dataset_reader.py,sha256=mZsG9HyWUGgfotrGkLrunyEsOm_659mH-Sn2OyG6A-Q,5036
67
67
  snowflake/ml/experiment/__init__.py,sha256=r7qdyPd3jwxzqvksim2ju5j_LrnYQrta0ZI6XpWUqmc,109
68
- snowflake/ml/experiment/_experiment_info.py,sha256=iaJ65x6nzBYJ5djleSOzBtMpZUJCUDlRpaDw0pu-dcU,2533
68
+ snowflake/ml/experiment/_experiment_info.py,sha256=B47YwCfp7qr1ZNnvDXzjFuk69R4_Qa3a-nVs5gE1OXc,2592
69
69
  snowflake/ml/experiment/experiment_tracking.py,sha256=X4R4S6TjWkRB6F6RkPoFY4iOO44of4YMj_whcKoSayk,21841
70
70
  snowflake/ml/experiment/utils.py,sha256=5lanWEq6tgWnOMHCX4FnfBmpIQEIgH57Cz0YtpaAa2Y,830
71
71
  snowflake/ml/experiment/_client/artifact.py,sha256=R2WB4Y_kqv43BWLfXv8SEDINn1Bnevzgb-mH5LyvgGk,3035
@@ -114,31 +114,30 @@ snowflake/ml/fileset/sfcfs.py,sha256=FJFc9-gc0KXaNyc10ZovN_87aUCShb0WztVwa02t0io
114
114
  snowflake/ml/fileset/snowfs.py,sha256=uF5QluYtiJ-HezGIhF55dONi3t0E6N7ByaVAIAlM3nk,5133
115
115
  snowflake/ml/fileset/stage_fs.py,sha256=SnkgCta6_5G6Ljl-Nzctr4yavhHUSlNKN3je0ojp54E,20685
116
116
  snowflake/ml/jobs/__init__.py,sha256=JypKzxERpcn4yJ7FILA98Gl0sFDEGkAIQ35b1iSzaXg,741
117
- snowflake/ml/jobs/decorators.py,sha256=mQgdWvvCwD7q79cSFKZHKegXGh2j1u8WM64UD3lCKr4,3428
118
- snowflake/ml/jobs/job.py,sha256=wEeIk5RZhkaJ56Zb1cBxsTAUJIo4QyhpRWaZaiYBuGY,27697
119
- snowflake/ml/jobs/job_definition.py,sha256=f1lZoTdn1AulJTHstAN8yDd-8Cx4kv4A0KBm-TAxJq4,10377
117
+ snowflake/ml/jobs/decorators.py,sha256=ugaVGOLTlYFyohYbErCyWU5Aqh2gwSlNAmn7Yr55dsE,3241
118
+ snowflake/ml/jobs/job.py,sha256=t1kk2Il8NQcDsVphw38_V6Hha5c0ToO9sI6M8lws-NE,28275
119
+ snowflake/ml/jobs/job_definition.py,sha256=qTB2T9UrZXCS5xaznDCsFHG4mdyFzymOPOInHbIRRwc,14822
120
120
  snowflake/ml/jobs/manager.py,sha256=heuOXEn7Y5Gb5s2y55GEx6i9mr-Z2tTL-b0rPGYv3ao,20469
121
121
  snowflake/ml/jobs/_interop/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
- snowflake/ml/jobs/_interop/data_utils.py,sha256=xUO5YlhUKFVCDtbjam5gP2lka3lfoknTLr7syNAVxK0,4074
123
- snowflake/ml/jobs/_interop/dto_schema.py,sha256=NhoQ6WJa7uLO9VJojEENVVZhZMfL_G1VPPSSUYmmhO8,2750
122
+ snowflake/ml/jobs/_interop/data_utils.py,sha256=Cw0Mpa_bs-Co_z3EVf93fLjlXE9U6gMfILrU8BHjj_k,4109
123
+ snowflake/ml/jobs/_interop/dto_schema.py,sha256=QlFYvlarJNI_gALZgVdNej08oBy2E7dPRdpMQTrvoHc,4272
124
124
  snowflake/ml/jobs/_interop/exception_utils.py,sha256=ZCphBkaaNINFATXZmjPzzNLKZZxKvGPROZ2azU8w13g,16348
125
125
  snowflake/ml/jobs/_interop/legacy.py,sha256=8BuC197e6nPmAzh4urYiuBuCNP-RlOlvWnWpSHTduqQ,9238
126
- snowflake/ml/jobs/_interop/protocols.py,sha256=I-RGWUDUc_FsKsq_mtczO7n93O_IzUvmEKXTznSJyK8,18413
126
+ snowflake/ml/jobs/_interop/protocols.py,sha256=YNCIT_FzjFPfEGp78QlolIYBxo3IMbsSRo9tBfeB0Ic,23026
127
127
  snowflake/ml/jobs/_interop/results.py,sha256=nQ07XJ1BZEkPB4xa12pbGyaKqR8sWCoSzx0IKQlub4w,1714
128
- snowflake/ml/jobs/_interop/utils.py,sha256=TWFkUcAYmb-fpTwEL8idkk3XxlZ8vLz4X_gyS78PSi4,5552
128
+ snowflake/ml/jobs/_interop/utils.py,sha256=WkScRL88GmDD-cm_xqSIhCelK-793ERfwY3Y8U8zMMY,8102
129
129
  snowflake/ml/jobs/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
- snowflake/ml/jobs/_utils/constants.py,sha256=7KMhM-7KEursLjFBlj4xaQ4uGFJtjJ12rlx55hcBCQ0,4677
131
- snowflake/ml/jobs/_utils/feature_flags.py,sha256=dLWBVIjyB2vsa4Vtm7Yhty6DOi8Nn73_YSjuYf73Y7A,1669
132
- snowflake/ml/jobs/_utils/function_payload_utils.py,sha256=4LBaStMdhRxcqwRkwFje-WwiEKRWnBfkaOYouF3N3Kg,1308
133
- snowflake/ml/jobs/_utils/payload_utils.py,sha256=X9nG3kKlxr-2EfnLXhLwHdXoAhQS_MaTPfXPydlE_JU,33824
130
+ snowflake/ml/jobs/_utils/arg_protocol.py,sha256=SP60NjjxFEvGBWftfSSj2lU0PIrDMBdGzZ6fgA_VZOE,89
131
+ snowflake/ml/jobs/_utils/constants.py,sha256=rLT2gTT_iv2Cia0b_fERb5U0Lc7Zuuu67QP8csNeR8I,4785
132
+ snowflake/ml/jobs/_utils/feature_flags.py,sha256=j1PvXFTc83ds6I1575X0xnfIz-qRlnUwna8ZhQN1pUw,4831
133
+ snowflake/ml/jobs/_utils/payload_utils.py,sha256=fAe9CN_mbbqtgfaUe61nKZTTPbeSPy4G1EB6wQImNwA,32681
134
134
  snowflake/ml/jobs/_utils/query_helper.py,sha256=DxezZzftVT7WZzf0uzEn0l6U7BFLNU4U4W_IRCzgbaI,1265
135
- snowflake/ml/jobs/_utils/runtime_env_utils.py,sha256=EHESq95LhgKi1E68u9vlp8Brc4Ff8R0dFlIXAXoB1EA,4472
136
- snowflake/ml/jobs/_utils/spec_utils.py,sha256=eC24LFiHtHQiswrZy7m94jixIInJFXNZ_-Km-xr9NJg,871
135
+ snowflake/ml/jobs/_utils/runtime_env_utils.py,sha256=l7IegZo_UYeQQEXs8gptP8UBEnikGcxP49Ocp0t2d0I,751
137
136
  snowflake/ml/jobs/_utils/stage_utils.py,sha256=vUWBj5nAsdcYe5Gtv_JhHYMbE5sKGFW6w7qh6uPtBUI,5912
138
137
  snowflake/ml/jobs/_utils/types.py,sha256=UJ_WjiHcMxR3DZb5LQm-bUs7i74tZi7DHXrWRyvqlpg,3154
139
138
  snowflake/ml/jobs/_utils/scripts/constants.py,sha256=YyIWZqQPYOTtgCY6SfyJjk2A98I5RQVmrOuLtET5Pqg,173
140
139
  snowflake/ml/jobs/_utils/scripts/get_instance_ip.py,sha256=N2wJYMPlwg-hidwgHhDhiBWOE6TskqCfWLMRRNnZBQs,5776
141
- snowflake/ml/jobs/_utils/scripts/mljob_launcher.py,sha256=D2yheAux0GrIcxzD7IPEuUaRb4JyDdDpxRXXNlxszWQ,19912
140
+ snowflake/ml/jobs/_utils/scripts/mljob_launcher.py,sha256=HuhAai6JL1Zdbo50Pg257Zeyfog90fJKVIvujmCASPw,26904
142
141
  snowflake/ml/jobs/_utils/scripts/signal_workers.py,sha256=AR1Pylkm4-FGh10WXfrCtcxaV0rI7IQ2ZiO0Li7zZ3U,7433
143
142
  snowflake/ml/jobs/_utils/scripts/start_mlruntime.sh,sha256=EIhhpEeu1Ph3J-QsAvugkhESkTMSZP3lWubmBCw5Z4w,3671
144
143
  snowflake/ml/jobs/_utils/scripts/startup.sh,sha256=OwJjQczoNwqf6v2vq6MeChNoa79NHfLeZG8VngRQMvQ,4148
@@ -152,7 +151,7 @@ snowflake/ml/model/custom_model.py,sha256=sdyKhT-QNNtTeu3idu6BExZNVyjUD4YTU8cru3
152
151
  snowflake/ml/model/event_handler.py,sha256=pojleQVM9TPNeDvliTvon2Sfxqbf2WWxrOebo1SaEHo,7211
153
152
  snowflake/ml/model/inference_engine.py,sha256=L0nwySY2Qwp3JzuRpPS87r0--m3HTUNUgZXYyOPJjyk,66
154
153
  snowflake/ml/model/model_signature.py,sha256=ae1tkh3Rw9MzJSxmVT9kb0PwD3TANtKbWwp6b8-cItE,32847
155
- snowflake/ml/model/openai_signatures.py,sha256=wu7l9V6-fWNJoAdE3R25hYBAmVfND5oaWdsUXilxBDo,7329
154
+ snowflake/ml/model/openai_signatures.py,sha256=ny3aAd301t3h_4Pb60MkrY0LZO6QxpyIlHYnjv120VQ,14755
156
155
  snowflake/ml/model/target_platform.py,sha256=H5d-wtuKQyVlq9x33vPtYZAlR5ka0ytcKRYgwlKl0bQ,390
157
156
  snowflake/ml/model/task.py,sha256=Zp5JaLB-YfX5p_HSaw81P3J7UnycQq5EMa87A35VOaQ,286
158
157
  snowflake/ml/model/type_hints.py,sha256=Xxa6b9ezbvXYvSIN5R4Zv6Dro4ZH74-eW4cno92VTJE,11475
@@ -160,15 +159,15 @@ snowflake/ml/model/volatility.py,sha256=qu-wqe9oKkRwXwE2qkKygxTWzUypQYEk3UjsqOGR
160
159
  snowflake/ml/model/_client/model/batch_inference_specs.py,sha256=6q3XzYWaO1CH-JqonJr12n6NuRhQDvPns_FAq3yvrN4,6114
161
160
  snowflake/ml/model/_client/model/inference_engine_utils.py,sha256=yPkdImi2qP1uG1WzLKCBZgXV-DiIBVpImEosIjYJk8Y,1958
162
161
  snowflake/ml/model/_client/model/model_impl.py,sha256=Yabrbir5vPMOnsVmQJ23YN7vqhi756Jcm6pfO8Aq92o,17469
163
- snowflake/ml/model/_client/model/model_version_impl.py,sha256=kJ9tG_MQJzmIXss4K7IISoB7uO9rkjcH8kef5ypBy2s,69613
162
+ snowflake/ml/model/_client/model/model_version_impl.py,sha256=3R39U2xAWJdvZktJ_h1sAaxHmum7wd1dQP1dJE5PmbE,70403
164
163
  snowflake/ml/model/_client/ops/deployment_step.py,sha256=9kxKDr9xcD4KmVM-9O4_tm3ytkllQVoElJD793VI84Q,1428
165
164
  snowflake/ml/model/_client/ops/metadata_ops.py,sha256=qpK6PL3OyfuhyOmpvLCpHLy6vCxbZbp1HlEvakFGwv4,4884
166
165
  snowflake/ml/model/_client/ops/model_ops.py,sha256=s5-N9RlaJzndh0D1sQa4BnYb0N-FKYgx86O0d2H5mKg,53819
167
166
  snowflake/ml/model/_client/ops/param_utils.py,sha256=MPPerO8wYNYIuig4rFoG_YI5idD_dBlrWXgmAXcR2nM,5160
168
- snowflake/ml/model/_client/ops/service_ops.py,sha256=ZPZDJFEAaiQPS1Rni_cZ-mWCE_gxHixTV6cWmoTZZBE,48049
167
+ snowflake/ml/model/_client/ops/service_ops.py,sha256=9eWK3R_iOCkqafR_bK2OpAy0fdpjqYAK447ozZZF_Lg,47910
169
168
  snowflake/ml/model/_client/service/import_model_spec_schema.py,sha256=SlEX1GiPlB8whMCmiwKUopnrGlm4fkQOQbTW2KyVTFU,554
170
- snowflake/ml/model/_client/service/model_deployment_spec.py,sha256=Qg7cR9jQTnbWHIV5FyxUZocxWH0nFEem9wdOt5osKIw,20149
171
- snowflake/ml/model/_client/service/model_deployment_spec_schema.py,sha256=2FCfhyg7F2XYVWKFybeEQ9Fq3goZ3XKmJdH_CuRqPpI,2649
169
+ snowflake/ml/model/_client/service/model_deployment_spec.py,sha256=pRwwlD9h6V76fAOtFR1XgxXEv1fQjfdJCxBZgjgocE0,20286
170
+ snowflake/ml/model/_client/service/model_deployment_spec_schema.py,sha256=axEX0gnUqnLav575xzpJ9lDWNwr9vyjyay7soo7Hwgk,2672
172
171
  snowflake/ml/model/_client/sql/_base.py,sha256=Qrm8M92g3MHb-QnSLUlbd8iVKCRxLhG_zr5M2qmXwJ8,1473
173
172
  snowflake/ml/model/_client/sql/model.py,sha256=nstZ8zR7MkXVEfhqLt7PWMik6dZr06nzq7VsF5NVNow,5840
174
173
  snowflake/ml/model/_client/sql/model_version.py,sha256=SOYr13YEq0mxgIatsSchOq0aKUgdPhKO3clRQ6AMa7U,24766
@@ -230,7 +229,7 @@ snowflake/ml/model/_signatures/snowpark_handler.py,sha256=aNGPa2v0kTMuSZ80NBdHeA
230
229
  snowflake/ml/model/_signatures/tensorflow_handler.py,sha256=_yrvMg-w_jJoYuyrGXKPX4Dv7Vt8z1e6xIKiWGuZcc4,5660
231
230
  snowflake/ml/model/_signatures/utils.py,sha256=hoc_UuMxfPWkVmoMEE7U-XNRcSgDPyRIdyDVK0JLcfE,21685
232
231
  snowflake/ml/model/models/huggingface.py,sha256=VO84lBizmSALntWCnK4O_eY_Cq2uzMooyHtfJXuFkew,13791
233
- snowflake/ml/model/models/huggingface_pipeline.py,sha256=yJ7NW97EW5GRtOPYCYuNjoPIgXbAIyOEKW9P1trt9vY,14226
232
+ snowflake/ml/model/models/huggingface_pipeline.py,sha256=tLTj1YJumNs_pdHGmA1Us5HIi8EYm38X6jqv2j85TMo,14378
234
233
  snowflake/ml/modeling/_internal/estimator_utils.py,sha256=dfPPWO-RHf5C3Tya3VQ4KEqoa32pm-WKwRrjzjDInLk,13956
235
234
  snowflake/ml/modeling/_internal/model_specifications.py,sha256=3wFMcKPCSoiEzU7Mx6RVem89BRlBBENpX__-Rd7GwdU,4851
236
235
  snowflake/ml/modeling/_internal/model_trainer.py,sha256=5Ck1lbdyzcd-TpzAxEyovIN9fjaaVIqugyMHXt0wzH0,971
@@ -459,14 +458,14 @@ snowflake/ml/monitoring/entities/model_monitor_config.py,sha256=auy9BD0IoyUpZPZX
459
458
  snowflake/ml/registry/__init__.py,sha256=XdPQK9ejYkSJVrSQ7HD3jKQO0hKq2mC4bPCB6qrtH3U,76
460
459
  snowflake/ml/registry/registry.py,sha256=_vtQCh4DmhnPusTKWJteRPJkDpLFEfG150cjED70sOA,34611
461
460
  snowflake/ml/registry/_manager/model_manager.py,sha256=splK5YGErt-eDIy6UbZAB3VKsGMZSJk2_MzfgrIQOhY,26306
462
- snowflake/ml/registry/_manager/model_parameter_reconciler.py,sha256=BTi8WNQCW1TiW8jd9LbR6mrIHE29ehocKSh6mVQX0vI,15325
461
+ snowflake/ml/registry/_manager/model_parameter_reconciler.py,sha256=92YX67YMLmqbJN_emr49c3QWyFVGc1DUn6JvA3Y2qqo,15267
463
462
  snowflake/ml/utils/authentication.py,sha256=TQV3E8YDHAPXA3dS8JWDmb_Zm8P0d9c8kCexRI4nefo,3106
464
463
  snowflake/ml/utils/connection_params.py,sha256=NSBUgcs-DXPRHs1BKpxdSubbJx1yrFRlMPBp-bE3Ugc,8308
465
464
  snowflake/ml/utils/html_utils.py,sha256=4g1EPuD8EnOAK7BCYiY8Wp3ZrdDkNOcUDrDAbUYxLfs,9954
466
465
  snowflake/ml/utils/sparse.py,sha256=zLBNh-ynhGpKH5TFtopk0YLkHGvv0yq1q-sV59YQKgg,3819
467
466
  snowflake/ml/utils/sql_client.py,sha256=pSe2od6Pkh-8NwG3D-xqN76_uNf-ohOtVbT55HeQg1Y,668
468
- snowflake_ml_python-1.24.0.dist-info/licenses/LICENSE.txt,sha256=PdEp56Av5m3_kl21iFkVTX_EbHJKFGEdmYeIO1pL_Yk,11365
469
- snowflake_ml_python-1.24.0.dist-info/METADATA,sha256=sR-h6xi0sM7Z04GM-Jd3clq-_jE_I9fC-3VyPcUB8r0,105348
470
- snowflake_ml_python-1.24.0.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
471
- snowflake_ml_python-1.24.0.dist-info/top_level.txt,sha256=TY0gFSHKDdZy3THb0FGomyikWQasEGldIR1O0HGOHVw,10
472
- snowflake_ml_python-1.24.0.dist-info/RECORD,,
467
+ snowflake_ml_python-1.25.0.dist-info/licenses/LICENSE.txt,sha256=PdEp56Av5m3_kl21iFkVTX_EbHJKFGEdmYeIO1pL_Yk,11365
468
+ snowflake_ml_python-1.25.0.dist-info/METADATA,sha256=hV6uhSQvACNGp9jEdujaC9Y_F5r5rf1eBI22Hh6FBe0,107037
469
+ snowflake_ml_python-1.25.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
470
+ snowflake_ml_python-1.25.0.dist-info/top_level.txt,sha256=TY0gFSHKDdZy3THb0FGomyikWQasEGldIR1O0HGOHVw,10
471
+ snowflake_ml_python-1.25.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.10.1)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,43 +0,0 @@
1
- import inspect
2
- from typing import Any, Callable, Optional
3
-
4
- from snowflake import snowpark
5
- from snowflake.snowpark import context as sp_context
6
-
7
-
8
- class FunctionPayload:
9
- def __init__(
10
- self,
11
- func: Callable[..., Any],
12
- session: Optional[snowpark.Session] = None,
13
- session_argument: str = "",
14
- *args: Any,
15
- **kwargs: Any
16
- ) -> None:
17
- self.function = func
18
- self.args = args
19
- self.kwargs = kwargs
20
- self._session = session
21
- self._session_argument = session_argument
22
-
23
- @property
24
- def session(self) -> Optional[snowpark.Session]:
25
- return self._session
26
-
27
- def __getstate__(self) -> dict[str, Any]:
28
- """Customize pickling to exclude session."""
29
- state = self.__dict__.copy()
30
- state["_session"] = None
31
- return state
32
-
33
- def __setstate__(self, state: dict[str, Any]) -> None:
34
- """Restore session from context during unpickling."""
35
- self.__dict__.update(state)
36
- self._session = sp_context.get_active_session()
37
-
38
- def __call__(self) -> Any:
39
- sig = inspect.signature(self.function)
40
- bound = sig.bind_partial(*self.args, **self.kwargs)
41
- bound.arguments[self._session_argument] = self._session
42
-
43
- return self.function(*bound.args, **bound.kwargs)
@@ -1,22 +0,0 @@
1
- from snowflake import snowpark
2
- from snowflake.ml._internal.utils import snowflake_env
3
- from snowflake.ml.jobs._utils import constants, query_helper, types
4
-
5
-
6
- def _get_node_resources(session: snowpark.Session, compute_pool: str) -> types.ComputeResources:
7
- """Extract resource information for the specified compute pool"""
8
- # Get the instance family
9
- rows = query_helper.run_query(
10
- session,
11
- "show compute pools like ?",
12
- params=[compute_pool],
13
- )
14
- if not rows:
15
- raise ValueError(f"Compute pool '{compute_pool}' not found")
16
- instance_family: str = rows[0]["instance_family"]
17
- cloud = snowflake_env.get_current_cloud(session, default=snowflake_env.SnowflakeCloudType.AWS)
18
-
19
- return (
20
- constants.COMMON_INSTANCE_FAMILIES.get(instance_family)
21
- or constants.CLOUD_INSTANCE_FAMILIES[cloud][instance_family]
22
- )