sagemaker-core 1.0.62__py3-none-any.whl → 2.3.1__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 (358) hide show
  1. sagemaker/__init__.py +2 -0
  2. sagemaker/core/__init__.py +16 -0
  3. sagemaker/core/_studio.py +116 -0
  4. sagemaker/core/_version.py +11 -0
  5. sagemaker/core/accept_types.py +131 -0
  6. sagemaker/core/analytics.py +744 -0
  7. sagemaker/core/apiutils/__init__.py +13 -0
  8. sagemaker/core/apiutils/_base_types.py +228 -0
  9. sagemaker/core/apiutils/_boto_functions.py +130 -0
  10. sagemaker/core/apiutils/_utils.py +34 -0
  11. sagemaker/core/base_deserializers.py +35 -0
  12. sagemaker/core/base_serializers.py +35 -0
  13. sagemaker/core/clarify/__init__.py +2898 -0
  14. sagemaker/core/collection.py +467 -0
  15. sagemaker/core/common_utils.py +2399 -0
  16. sagemaker/core/compute_resource_requirements/__init__.py +18 -0
  17. sagemaker/core/compute_resource_requirements/resource_requirements.py +94 -0
  18. sagemaker/core/config/__init__.py +181 -0
  19. sagemaker/core/config/config.py +238 -0
  20. sagemaker/core/config/config_manager.py +595 -0
  21. sagemaker/core/config/config_schema.py +1220 -0
  22. sagemaker/core/config/config_utils.py +297 -0
  23. {sagemaker_core/main → sagemaker/core}/config_schema.py +408 -3
  24. sagemaker/core/constants.py +73 -0
  25. sagemaker/core/content_types.py +137 -0
  26. sagemaker/core/debugger/__init__.py +39 -0
  27. sagemaker/core/debugger/debugger.py +945 -0
  28. sagemaker/core/debugger/framework_profile.py +292 -0
  29. sagemaker/core/debugger/metrics_config.py +468 -0
  30. sagemaker/core/debugger/profiler.py +42 -0
  31. sagemaker/core/debugger/profiler_config.py +190 -0
  32. sagemaker/core/debugger/profiler_constants.py +40 -0
  33. sagemaker/core/debugger/utils.py +148 -0
  34. sagemaker/core/deprecations.py +254 -0
  35. sagemaker/core/deserializers/__init__.py +10 -0
  36. sagemaker/core/deserializers/base.py +424 -0
  37. sagemaker/core/deserializers/implementations.py +157 -0
  38. sagemaker/core/drift_check_baselines.py +106 -0
  39. sagemaker/core/enums.py +51 -0
  40. sagemaker/core/environment_variables.py +101 -0
  41. sagemaker/core/exceptions.py +108 -0
  42. sagemaker/core/experiments/__init__.py +53 -0
  43. sagemaker/core/experiments/_api_types.py +251 -0
  44. sagemaker/core/experiments/_environment.py +124 -0
  45. sagemaker/core/experiments/_helper.py +294 -0
  46. sagemaker/core/experiments/_metrics.py +333 -0
  47. sagemaker/core/experiments/_run_context.py +58 -0
  48. sagemaker/core/experiments/_utils.py +216 -0
  49. sagemaker/core/experiments/experiment.py +247 -0
  50. sagemaker/core/experiments/run.py +970 -0
  51. sagemaker/core/experiments/trial.py +296 -0
  52. sagemaker/core/experiments/trial_component.py +387 -0
  53. sagemaker/core/explainer/__init__.py +24 -0
  54. sagemaker/core/explainer/clarify_explainer_config.py +298 -0
  55. sagemaker/core/explainer/explainer_config.py +44 -0
  56. sagemaker/core/fw_utils.py +1220 -0
  57. sagemaker/core/git_utils.py +415 -0
  58. sagemaker/core/helper/pipeline_variable.py +82 -0
  59. sagemaker/core/helper/session_helper.py +2977 -0
  60. sagemaker/core/hyperparameters.py +172 -0
  61. sagemaker/core/image_retriever/__init__.py +3 -0
  62. sagemaker/core/image_retriever/image_retriever.py +640 -0
  63. sagemaker/core/image_retriever/image_retriever_utils.py +509 -0
  64. sagemaker/core/image_retriever/test.py +7 -0
  65. sagemaker/core/image_uri_config/autogluon.json +1335 -0
  66. sagemaker/core/image_uri_config/blazingtext.json +50 -0
  67. sagemaker/core/image_uri_config/chainer.json +104 -0
  68. sagemaker/core/image_uri_config/clarify.json +39 -0
  69. sagemaker/core/image_uri_config/coach-mxnet.json +70 -0
  70. sagemaker/core/image_uri_config/coach-tensorflow.json +186 -0
  71. sagemaker/core/image_uri_config/data-wrangler.json +91 -0
  72. sagemaker/core/image_uri_config/debugger.json +34 -0
  73. sagemaker/core/image_uri_config/detailed-profiler.json +18 -0
  74. sagemaker/core/image_uri_config/djl-deepspeed.json +385 -0
  75. sagemaker/core/image_uri_config/djl-fastertransformer.json +167 -0
  76. sagemaker/core/image_uri_config/djl-lmi.json +136 -0
  77. sagemaker/core/image_uri_config/djl-neuronx.json +258 -0
  78. sagemaker/core/image_uri_config/djl-tensorrtllm.json +262 -0
  79. sagemaker/core/image_uri_config/factorization-machines.json +50 -0
  80. sagemaker/core/image_uri_config/forecasting-deepar.json +50 -0
  81. sagemaker/core/image_uri_config/huggingface-llm-neuronx.json +770 -0
  82. sagemaker/core/image_uri_config/huggingface-llm.json +1267 -0
  83. sagemaker/core/image_uri_config/huggingface-neuron.json +52 -0
  84. sagemaker/core/image_uri_config/huggingface-neuronx.json +686 -0
  85. sagemaker/core/image_uri_config/huggingface-tei-cpu.json +298 -0
  86. sagemaker/core/image_uri_config/huggingface-tei.json +298 -0
  87. sagemaker/core/image_uri_config/huggingface-training-compiler.json +195 -0
  88. sagemaker/core/image_uri_config/huggingface-vllm-neuronx.json +38 -0
  89. sagemaker/core/image_uri_config/huggingface.json +2287 -0
  90. sagemaker/core/image_uri_config/hyperpod-recipes-neuron.json +52 -0
  91. sagemaker/core/image_uri_config/image-classification-neo.json +43 -0
  92. sagemaker/core/image_uri_config/image-classification.json +50 -0
  93. sagemaker/core/image_uri_config/inferentia-mxnet.json +88 -0
  94. sagemaker/core/image_uri_config/inferentia-pytorch.json +127 -0
  95. sagemaker/core/image_uri_config/inferentia-tensorflow.json +88 -0
  96. sagemaker/core/image_uri_config/instance_gpu_info.json +782 -0
  97. sagemaker/core/image_uri_config/ipinsights.json +50 -0
  98. sagemaker/core/image_uri_config/kmeans.json +50 -0
  99. sagemaker/core/image_uri_config/knn.json +50 -0
  100. sagemaker/core/image_uri_config/lda.json +26 -0
  101. sagemaker/core/image_uri_config/linear-learner.json +50 -0
  102. sagemaker/core/image_uri_config/model-monitor.json +42 -0
  103. sagemaker/core/image_uri_config/mxnet.json +1154 -0
  104. sagemaker/core/image_uri_config/neo-mxnet.json +64 -0
  105. sagemaker/core/image_uri_config/neo-pytorch.json +341 -0
  106. sagemaker/core/image_uri_config/neo-tensorflow.json +109 -0
  107. sagemaker/core/image_uri_config/ntm.json +50 -0
  108. sagemaker/core/image_uri_config/object-detection.json +50 -0
  109. sagemaker/core/image_uri_config/object2vec.json +50 -0
  110. sagemaker/core/image_uri_config/pca.json +50 -0
  111. sagemaker/core/image_uri_config/pytorch-neuron.json +43 -0
  112. sagemaker/core/image_uri_config/pytorch-smp.json +218 -0
  113. sagemaker/core/image_uri_config/pytorch-training-compiler.json +80 -0
  114. sagemaker/core/image_uri_config/pytorch.json +3101 -0
  115. sagemaker/core/image_uri_config/randomcutforest.json +50 -0
  116. sagemaker/core/image_uri_config/ray-pytorch.json +46 -0
  117. sagemaker/core/image_uri_config/ray-tensorflow.json +194 -0
  118. sagemaker/core/image_uri_config/sagemaker-base-python.json +46 -0
  119. sagemaker/core/image_uri_config/sagemaker-distribution.json +37 -0
  120. sagemaker/core/image_uri_config/sagemaker-geospatial.json +13 -0
  121. sagemaker/core/image_uri_config/sagemaker-tritonserver.json +252 -0
  122. sagemaker/core/image_uri_config/semantic-segmentation.json +50 -0
  123. sagemaker/core/image_uri_config/seq2seq.json +50 -0
  124. sagemaker/core/image_uri_config/sklearn.json +494 -0
  125. sagemaker/core/image_uri_config/spark.json +280 -0
  126. sagemaker/core/image_uri_config/sparkml-serving.json +97 -0
  127. sagemaker/core/image_uri_config/stabilityai.json +53 -0
  128. sagemaker/core/image_uri_config/tensorflow.json +5086 -0
  129. sagemaker/core/image_uri_config/vw.json +25 -0
  130. sagemaker/core/image_uri_config/xgboost-neo.json +43 -0
  131. sagemaker/core/image_uri_config/xgboost.json +972 -0
  132. sagemaker/core/image_uris.py +816 -0
  133. sagemaker/core/inference_config.py +144 -0
  134. sagemaker/core/inference_recommender/__init__.py +18 -0
  135. sagemaker/core/inference_recommender/inference_recommender_mixin.py +622 -0
  136. sagemaker/core/inputs.py +366 -0
  137. sagemaker/core/instance_group.py +61 -0
  138. sagemaker/core/instance_types.py +164 -0
  139. sagemaker/core/instance_types_gpu_info.py +43 -0
  140. sagemaker/core/interactive_apps/__init__.py +41 -0
  141. sagemaker/core/interactive_apps/base_interactive_app.py +204 -0
  142. sagemaker/core/interactive_apps/detail_profiler_app.py +139 -0
  143. sagemaker/core/interactive_apps/tensorboard.py +149 -0
  144. sagemaker/core/iterators.py +197 -0
  145. sagemaker/core/job.py +380 -0
  146. sagemaker/core/jumpstart/__init__.py +156 -0
  147. sagemaker/core/jumpstart/accessors.py +390 -0
  148. sagemaker/core/jumpstart/artifacts/__init__.py +69 -0
  149. sagemaker/core/jumpstart/artifacts/environment_variables.py +252 -0
  150. sagemaker/core/jumpstart/artifacts/hyperparameters.py +120 -0
  151. sagemaker/core/jumpstart/artifacts/image_uris.py +139 -0
  152. sagemaker/core/jumpstart/artifacts/incremental_training.py +87 -0
  153. sagemaker/core/jumpstart/artifacts/instance_types.py +223 -0
  154. sagemaker/core/jumpstart/artifacts/kwargs.py +289 -0
  155. sagemaker/core/jumpstart/artifacts/metric_definitions.py +117 -0
  156. sagemaker/core/jumpstart/artifacts/model_packages.py +202 -0
  157. sagemaker/core/jumpstart/artifacts/model_uris.py +252 -0
  158. sagemaker/core/jumpstart/artifacts/payloads.py +96 -0
  159. sagemaker/core/jumpstart/artifacts/predictors.py +540 -0
  160. sagemaker/core/jumpstart/artifacts/resource_names.py +86 -0
  161. sagemaker/core/jumpstart/artifacts/resource_requirements.py +162 -0
  162. sagemaker/core/jumpstart/artifacts/script_uris.py +172 -0
  163. sagemaker/core/jumpstart/cache.py +663 -0
  164. sagemaker/core/jumpstart/configs.py +50 -0
  165. sagemaker/core/jumpstart/constants.py +198 -0
  166. sagemaker/core/jumpstart/deserializers.py +81 -0
  167. sagemaker/core/jumpstart/document.py +76 -0
  168. sagemaker/core/jumpstart/enums.py +168 -0
  169. sagemaker/core/jumpstart/exceptions.py +236 -0
  170. sagemaker/core/jumpstart/factory/utils.py +833 -0
  171. sagemaker/core/jumpstart/filters.py +597 -0
  172. sagemaker/core/jumpstart/hub/constants.py +16 -0
  173. sagemaker/core/jumpstart/hub/hub.py +291 -0
  174. sagemaker/core/jumpstart/hub/interfaces.py +936 -0
  175. sagemaker/core/jumpstart/hub/parser_utils.py +70 -0
  176. sagemaker/core/jumpstart/hub/parsers.py +288 -0
  177. sagemaker/core/jumpstart/hub/types.py +35 -0
  178. sagemaker/core/jumpstart/hub/utils.py +260 -0
  179. sagemaker/core/jumpstart/models.py +501 -0
  180. sagemaker/core/jumpstart/notebook_utils.py +575 -0
  181. sagemaker/core/jumpstart/parameters.py +20 -0
  182. sagemaker/core/jumpstart/payload_utils.py +239 -0
  183. sagemaker/core/jumpstart/region_config.json +171 -0
  184. sagemaker/core/jumpstart/search.py +171 -0
  185. sagemaker/core/jumpstart/serializers.py +81 -0
  186. sagemaker/core/jumpstart/session_utils.py +234 -0
  187. sagemaker/core/jumpstart/types.py +3044 -0
  188. sagemaker/core/jumpstart/utils.py +1731 -0
  189. sagemaker/core/jumpstart/validators.py +257 -0
  190. sagemaker/core/lambda_helper.py +312 -0
  191. sagemaker/core/lineage/__init__.py +42 -0
  192. sagemaker/core/lineage/_api_types.py +239 -0
  193. sagemaker/core/lineage/_utils.py +49 -0
  194. sagemaker/core/lineage/action.py +345 -0
  195. sagemaker/core/lineage/artifact.py +646 -0
  196. sagemaker/core/lineage/association.py +190 -0
  197. sagemaker/core/lineage/context.py +505 -0
  198. sagemaker/core/lineage/lineage_trial_component.py +191 -0
  199. sagemaker/core/lineage/query.py +732 -0
  200. sagemaker/core/lineage/visualizer.py +346 -0
  201. sagemaker/core/local/__init__.py +18 -0
  202. sagemaker/core/local/data.py +423 -0
  203. sagemaker/core/local/entities.py +678 -0
  204. sagemaker/core/local/exceptions.py +17 -0
  205. sagemaker/core/local/image.py +1243 -0
  206. sagemaker/core/local/local_session.py +739 -0
  207. sagemaker/core/local/utils.py +246 -0
  208. sagemaker/core/logs.py +181 -0
  209. sagemaker/core/metadata_properties.py +56 -0
  210. sagemaker/core/metric_definitions.py +91 -0
  211. sagemaker/core/mlflow/__init__.py +38 -0
  212. sagemaker/core/mlflow/forward_sagemaker_metrics.py +44 -0
  213. sagemaker/core/model_card/__init__.py +26 -0
  214. sagemaker/core/model_life_cycle.py +51 -0
  215. sagemaker/core/model_metrics.py +160 -0
  216. sagemaker/core/model_monitor/__init__.py +66 -0
  217. sagemaker/core/model_monitor/clarify_model_monitoring.py +1497 -0
  218. sagemaker/core/model_monitor/cron_expression_generator.py +82 -0
  219. sagemaker/core/model_monitor/data_capture_config.py +115 -0
  220. sagemaker/core/model_monitor/data_quality_monitoring_config.py +66 -0
  221. sagemaker/core/model_monitor/dataset_format.py +102 -0
  222. sagemaker/core/model_monitor/model_monitoring.py +4266 -0
  223. sagemaker/core/model_monitor/monitoring_alert.py +76 -0
  224. sagemaker/core/model_monitor/monitoring_files.py +506 -0
  225. sagemaker/core/model_monitor/utils.py +793 -0
  226. sagemaker/core/model_registry.py +480 -0
  227. sagemaker/core/model_uris.py +97 -0
  228. sagemaker/core/modules/__init__.py +19 -0
  229. sagemaker/core/modules/configs.py +239 -0
  230. sagemaker/core/modules/constants.py +37 -0
  231. sagemaker/core/modules/distributed.py +182 -0
  232. sagemaker/core/modules/local_core/local_container.py +605 -0
  233. sagemaker/core/modules/templates.py +83 -0
  234. sagemaker/core/modules/train/__init__.py +14 -0
  235. sagemaker/core/modules/train/container_drivers/__init__.py +14 -0
  236. sagemaker/core/modules/train/container_drivers/common/__init__.py +14 -0
  237. sagemaker/core/modules/train/container_drivers/common/utils.py +205 -0
  238. sagemaker/core/modules/train/container_drivers/distributed_drivers/__init__.py +14 -0
  239. sagemaker/core/modules/train/container_drivers/distributed_drivers/basic_script_driver.py +81 -0
  240. sagemaker/core/modules/train/container_drivers/distributed_drivers/mpi_driver.py +123 -0
  241. sagemaker/core/modules/train/container_drivers/distributed_drivers/mpi_utils.py +302 -0
  242. sagemaker/core/modules/train/container_drivers/distributed_drivers/torchrun_driver.py +129 -0
  243. sagemaker/core/modules/train/container_drivers/scripts/__init__.py +14 -0
  244. sagemaker/core/modules/train/container_drivers/scripts/environment.py +305 -0
  245. sagemaker/core/modules/train/sm_recipes/__init__.py +0 -0
  246. sagemaker/core/modules/train/sm_recipes/utils.py +330 -0
  247. sagemaker/core/modules/types.py +19 -0
  248. sagemaker/core/modules/utils.py +194 -0
  249. sagemaker/core/network.py +185 -0
  250. sagemaker/core/parameter.py +173 -0
  251. sagemaker/core/payloads.py +185 -0
  252. sagemaker/core/processing.py +1599 -0
  253. sagemaker/core/remote_function/__init__.py +19 -0
  254. sagemaker/core/remote_function/checkpoint_location.py +47 -0
  255. sagemaker/core/remote_function/client.py +1310 -0
  256. sagemaker/core/remote_function/core/__init__.py +0 -0
  257. sagemaker/core/remote_function/core/_custom_dispatch_table.py +72 -0
  258. sagemaker/core/remote_function/core/pipeline_variables.py +347 -0
  259. sagemaker/core/remote_function/core/serialization.py +410 -0
  260. sagemaker/core/remote_function/core/stored_function.py +223 -0
  261. sagemaker/core/remote_function/custom_file_filter.py +128 -0
  262. sagemaker/core/remote_function/errors.py +102 -0
  263. sagemaker/core/remote_function/invoke_function.py +167 -0
  264. sagemaker/core/remote_function/job.py +2121 -0
  265. sagemaker/core/remote_function/logging_config.py +38 -0
  266. sagemaker/core/remote_function/runtime_environment/__init__.py +14 -0
  267. sagemaker/core/remote_function/runtime_environment/bootstrap_runtime_environment.py +605 -0
  268. sagemaker/core/remote_function/runtime_environment/mpi_utils_remote.py +252 -0
  269. sagemaker/core/remote_function/runtime_environment/runtime_environment_manager.py +554 -0
  270. sagemaker/core/remote_function/runtime_environment/spark_app.py +18 -0
  271. sagemaker/core/remote_function/spark_config.py +149 -0
  272. sagemaker/core/resource_requirements.py +168 -0
  273. {sagemaker_core/main → sagemaker/core}/resources.py +19098 -10895
  274. sagemaker/core/s3/__init__.py +41 -0
  275. sagemaker/core/s3/client.py +367 -0
  276. sagemaker/core/s3/utils.py +175 -0
  277. sagemaker/core/script_uris.py +93 -0
  278. sagemaker/core/serializers/__init__.py +11 -0
  279. sagemaker/core/serializers/base.py +510 -0
  280. sagemaker/core/serializers/implementations.py +159 -0
  281. sagemaker/core/serializers/utils.py +223 -0
  282. sagemaker/core/serverless_inference_config.py +63 -0
  283. sagemaker/core/session_settings.py +55 -0
  284. sagemaker/core/shapes/__init__.py +3 -0
  285. sagemaker/core/shapes/model_card_shapes.py +159 -0
  286. {sagemaker_core/main → sagemaker/core/shapes}/shapes.py +5810 -1806
  287. sagemaker/core/spark/__init__.py +16 -0
  288. sagemaker/core/spark/defaults.py +16 -0
  289. sagemaker/core/spark/processing.py +1380 -0
  290. sagemaker/core/telemetry/__init__.py +23 -0
  291. sagemaker/core/telemetry/constants.py +82 -0
  292. sagemaker/core/telemetry/telemetry_logging.py +285 -0
  293. sagemaker/core/tools/__init__.py +1 -0
  294. {sagemaker_core → sagemaker/core}/tools/codegen.py +4 -4
  295. {sagemaker_core → sagemaker/core}/tools/constants.py +23 -15
  296. {sagemaker_core → sagemaker/core}/tools/data_extractor.py +1 -1
  297. {sagemaker_core → sagemaker/core}/tools/method.py +1 -1
  298. sagemaker/core/tools/model_card/generate_model_card_from_schema.py +562 -0
  299. {sagemaker_core → sagemaker/core}/tools/resources_codegen.py +165 -98
  300. {sagemaker_core → sagemaker/core}/tools/resources_extractor.py +5 -13
  301. {sagemaker_core → sagemaker/core}/tools/shapes_codegen.py +16 -17
  302. {sagemaker_core → sagemaker/core}/tools/shapes_extractor.py +29 -67
  303. {sagemaker_core → sagemaker/core}/tools/templates.py +39 -17
  304. sagemaker/core/training/__init__.py +14 -0
  305. sagemaker/core/training/configs.py +345 -0
  306. sagemaker/core/training/constants.py +37 -0
  307. sagemaker/core/training/utils.py +77 -0
  308. sagemaker/core/training_compiler/__init__.py +16 -0
  309. sagemaker/core/training_compiler/config.py +197 -0
  310. sagemaker/core/training_compiler_config.py +197 -0
  311. sagemaker/core/transformer.py +793 -0
  312. sagemaker/core/user_agent.py +76 -0
  313. sagemaker/core/utilities/__init__.py +24 -0
  314. sagemaker/core/utilities/cache.py +169 -0
  315. sagemaker/core/utilities/search_expression.py +133 -0
  316. sagemaker/core/utils/__init__.py +48 -0
  317. sagemaker/core/utils/code_injection/__init__.py +0 -0
  318. {sagemaker_core/main → sagemaker/core/utils}/code_injection/codec.py +2 -2
  319. {sagemaker_core/main → sagemaker/core/utils}/code_injection/shape_dag.py +5979 -176
  320. {sagemaker_core/main → sagemaker/core/utils}/exceptions.py +8 -8
  321. sagemaker_core/main/default_configs_helper.py → sagemaker/core/utils/intelligent_defaults_helper.py +5 -6
  322. {sagemaker_core/main → sagemaker/core/utils}/logs.py +1 -2
  323. {sagemaker_core/main → sagemaker/core/utils}/utils.py +27 -22
  324. sagemaker/core/workflow/__init__.py +152 -0
  325. sagemaker/core/workflow/conditions.py +313 -0
  326. sagemaker/core/workflow/entities.py +58 -0
  327. sagemaker/core/workflow/execution_variables.py +89 -0
  328. sagemaker/core/workflow/functions.py +193 -0
  329. sagemaker/core/workflow/parameters.py +222 -0
  330. sagemaker/core/workflow/pipeline_context.py +394 -0
  331. sagemaker/core/workflow/pipeline_definition_config.py +31 -0
  332. sagemaker/core/workflow/properties.py +285 -0
  333. sagemaker/core/workflow/step_outputs.py +65 -0
  334. sagemaker/core/workflow/utilities.py +514 -0
  335. sagemaker/lineage/__init__.py +33 -0
  336. sagemaker/lineage/action.py +28 -0
  337. sagemaker/lineage/artifact.py +28 -0
  338. sagemaker/lineage/context.py +28 -0
  339. sagemaker/lineage/lineage_trial_component.py +28 -0
  340. {sagemaker_core-1.0.62.dist-info → sagemaker_core-2.3.1.dist-info}/METADATA +28 -9
  341. sagemaker_core-2.3.1.dist-info/RECORD +351 -0
  342. sagemaker_core-2.3.1.dist-info/top_level.txt +1 -0
  343. sagemaker_core/_version.py +0 -3
  344. sagemaker_core/helper/session_helper.py +0 -769
  345. sagemaker_core/resources/__init__.py +0 -1
  346. sagemaker_core/shapes/__init__.py +0 -1
  347. sagemaker_core/tools/__init__.py +0 -1
  348. sagemaker_core-1.0.62.dist-info/RECORD +0 -35
  349. sagemaker_core-1.0.62.dist-info/top_level.txt +0 -1
  350. {sagemaker_core → sagemaker/core/helper}/__init__.py +0 -0
  351. {sagemaker_core/helper → sagemaker/core/jumpstart/factory}/__init__.py +0 -0
  352. {sagemaker_core/main → sagemaker/core/jumpstart/hub}/__init__.py +0 -0
  353. {sagemaker_core/main/code_injection → sagemaker/core/modules/local_core}/__init__.py +0 -0
  354. {sagemaker_core/main → sagemaker/core/utils}/code_injection/base.py +0 -0
  355. {sagemaker_core/main → sagemaker/core/utils}/code_injection/constants.py +0 -0
  356. {sagemaker_core/main → sagemaker/core/utils}/user_agent.py +0 -0
  357. {sagemaker_core-1.0.62.dist-info → sagemaker_core-2.3.1.dist-info}/WHEEL +0 -0
  358. {sagemaker_core-1.0.62.dist-info → sagemaker_core-2.3.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,390 @@
1
+ # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+ # pylint: skip-file
14
+ """This module contains accessors related to SageMaker JumpStart."""
15
+ from __future__ import absolute_import
16
+ import functools
17
+ import logging
18
+ from typing import Any, Dict, List, Optional
19
+ import boto3
20
+
21
+ from sagemaker.core.deprecations import deprecated
22
+ from sagemaker.core.jumpstart.types import JumpStartModelHeader, JumpStartModelSpecs, HubContentType
23
+ from sagemaker.core.jumpstart.enums import JumpStartModelType
24
+ from sagemaker.core.jumpstart import cache
25
+ from sagemaker.core.jumpstart.hub.utils import (
26
+ construct_hub_model_arn_from_inputs,
27
+ construct_hub_model_reference_arn_from_inputs,
28
+ )
29
+ from sagemaker.core.jumpstart.constants import JUMPSTART_DEFAULT_REGION_NAME
30
+ from sagemaker.core.helper.session_helper import Session
31
+ from sagemaker.core.jumpstart import constants
32
+
33
+
34
+ class SageMakerSettings(object):
35
+ """Static class for storing the SageMaker settings."""
36
+
37
+ _parsed_sagemaker_version = ""
38
+
39
+ @staticmethod
40
+ def set_sagemaker_version(version: str) -> None:
41
+ """Set SageMaker version."""
42
+ SageMakerSettings._parsed_sagemaker_version = version
43
+
44
+ @staticmethod
45
+ def get_sagemaker_version() -> str:
46
+ """Return SageMaker version."""
47
+ return SageMakerSettings._parsed_sagemaker_version
48
+
49
+
50
+ class JumpStartS3PayloadAccessor(object):
51
+ """Static class for storing and retrieving S3 payload artifacts."""
52
+
53
+ MAX_CACHE_SIZE_BYTES = int(100 * 1e6)
54
+ MAX_PAYLOAD_SIZE_BYTES = int(6 * 1e6)
55
+
56
+ CACHE_SIZE = MAX_CACHE_SIZE_BYTES // MAX_PAYLOAD_SIZE_BYTES
57
+
58
+ @staticmethod
59
+ def clear_cache() -> None:
60
+ """Clears LRU caches associated with S3 client and retrieved objects."""
61
+
62
+ JumpStartS3PayloadAccessor._get_default_s3_client.cache_clear()
63
+ JumpStartS3PayloadAccessor.get_object_cached.cache_clear()
64
+
65
+ @staticmethod
66
+ @functools.lru_cache()
67
+ def _get_default_s3_client(region: str = JUMPSTART_DEFAULT_REGION_NAME) -> boto3.client:
68
+ """Returns default S3 client associated with the region.
69
+
70
+ Result is cached so multiple clients in memory are not created.
71
+ """
72
+ return boto3.client("s3", region_name=region)
73
+
74
+ @staticmethod
75
+ @functools.lru_cache(maxsize=CACHE_SIZE)
76
+ def get_object_cached(
77
+ bucket: str,
78
+ key: str,
79
+ region: str = JUMPSTART_DEFAULT_REGION_NAME,
80
+ s3_client: Optional[boto3.client] = None,
81
+ ) -> bytes:
82
+ """Returns S3 object located at the bucket and key.
83
+
84
+ Requests are cached so that the same S3 request is never made more
85
+ than once, unless a different region or client is used.
86
+ """
87
+ return JumpStartS3PayloadAccessor.get_object(
88
+ bucket=bucket, key=key, region=region, s3_client=s3_client
89
+ )
90
+
91
+ @staticmethod
92
+ def _get_object_size_bytes(
93
+ bucket: str,
94
+ key: str,
95
+ region: str = JUMPSTART_DEFAULT_REGION_NAME,
96
+ s3_client: Optional[boto3.client] = None,
97
+ ) -> bytes:
98
+ """Returns size in bytes of S3 object using S3.HeadObject operation."""
99
+ if s3_client is None:
100
+ s3_client = JumpStartS3PayloadAccessor._get_default_s3_client(region)
101
+
102
+ return s3_client.head_object(Bucket=bucket, Key=key)["ContentLength"]
103
+
104
+ @staticmethod
105
+ def get_object(
106
+ bucket: str,
107
+ key: str,
108
+ region: str = JUMPSTART_DEFAULT_REGION_NAME,
109
+ s3_client: Optional[boto3.client] = None,
110
+ ) -> bytes:
111
+ """Returns S3 object located at the bucket and key.
112
+
113
+ Raises:
114
+ ValueError: The object size is too large.
115
+ """
116
+ if s3_client is None:
117
+ s3_client = JumpStartS3PayloadAccessor._get_default_s3_client(region)
118
+
119
+ object_size_bytes = JumpStartS3PayloadAccessor._get_object_size_bytes(
120
+ bucket=bucket, key=key, region=region, s3_client=s3_client
121
+ )
122
+ if object_size_bytes > JumpStartS3PayloadAccessor.MAX_PAYLOAD_SIZE_BYTES:
123
+ raise ValueError(
124
+ f"s3://{bucket}/{key} has size of {object_size_bytes} bytes, "
125
+ "which exceeds maximum allowed size of "
126
+ f"{JumpStartS3PayloadAccessor.MAX_PAYLOAD_SIZE_BYTES} bytes."
127
+ )
128
+
129
+ return s3_client.get_object(Bucket=bucket, Key=key)["Body"].read()
130
+
131
+
132
+ class JumpStartModelsAccessor(object):
133
+ """Static class for storing the JumpStart models cache."""
134
+
135
+ _cache: Optional[cache.JumpStartModelsCache] = None
136
+ _curr_region = JUMPSTART_DEFAULT_REGION_NAME
137
+
138
+ _content_bucket: Optional[str] = None
139
+ _gated_content_bucket: Optional[str] = None
140
+
141
+ _cache_kwargs: Dict[str, Any] = {}
142
+
143
+ @staticmethod
144
+ def set_jumpstart_content_bucket(content_bucket: str) -> None:
145
+ """Sets JumpStart content bucket."""
146
+ JumpStartModelsAccessor._content_bucket = content_bucket
147
+
148
+ @staticmethod
149
+ def get_jumpstart_content_bucket() -> Optional[str]:
150
+ """Returns JumpStart content bucket."""
151
+ return JumpStartModelsAccessor._content_bucket
152
+
153
+ @staticmethod
154
+ def set_jumpstart_gated_content_bucket(gated_content_bucket: str) -> None:
155
+ """Sets JumpStart gated content bucket."""
156
+ JumpStartModelsAccessor._gated_content_bucket = gated_content_bucket
157
+
158
+ @staticmethod
159
+ def get_jumpstart_gated_content_bucket() -> Optional[str]:
160
+ """Returns JumpStart gated content bucket."""
161
+ return JumpStartModelsAccessor._gated_content_bucket
162
+
163
+ @staticmethod
164
+ def _validate_and_mutate_region_cache_kwargs(
165
+ cache_kwargs: Optional[Dict[str, Any]] = None, region: Optional[str] = None
166
+ ) -> Dict[str, Any]:
167
+ """Returns cache_kwargs with region argument removed if present.
168
+
169
+ Raises:
170
+ ValueError: If region in `cache_kwargs` is inconsistent with `region` argument.
171
+
172
+ Args:
173
+ cache_kwargs (Optional[Dict[str, Any]]): cache kwargs to validate.
174
+ region (str): The region to validate along with the kwargs.
175
+ """
176
+ cache_kwargs_dict = {} if cache_kwargs is None else cache_kwargs
177
+ if region is not None and "region" in cache_kwargs_dict:
178
+ if region != cache_kwargs_dict["region"]:
179
+ raise ValueError(
180
+ f"Inconsistent region definitions: {region}, {cache_kwargs_dict['region']}"
181
+ )
182
+ del cache_kwargs_dict["region"]
183
+ return cache_kwargs_dict
184
+
185
+ @staticmethod
186
+ def _set_cache_and_region(region: str, cache_kwargs: dict) -> None:
187
+ """Sets ``JumpStartModelsAccessor._cache`` and ``JumpStartModelsAccessor._curr_region``.
188
+
189
+ Args:
190
+ region (str): region for which to retrieve header/spec.
191
+ cache_kwargs (dict): kwargs to pass to ``JumpStartModelsCache``.
192
+ """
193
+ new_cache_kwargs = JumpStartModelsAccessor._validate_and_mutate_region_cache_kwargs(
194
+ cache_kwargs, region
195
+ )
196
+ if (
197
+ JumpStartModelsAccessor._cache is None
198
+ or region != JumpStartModelsAccessor._curr_region
199
+ or new_cache_kwargs != JumpStartModelsAccessor._cache_kwargs
200
+ ):
201
+ JumpStartModelsAccessor._cache = cache.JumpStartModelsCache(
202
+ region=region, **cache_kwargs
203
+ )
204
+ JumpStartModelsAccessor._curr_region = region
205
+ JumpStartModelsAccessor._cache_kwargs = new_cache_kwargs
206
+
207
+ @staticmethod
208
+ def _get_manifest(
209
+ region: str = JUMPSTART_DEFAULT_REGION_NAME,
210
+ s3_client: Optional[boto3.client] = None,
211
+ model_type: JumpStartModelType = JumpStartModelType.OPEN_WEIGHTS,
212
+ ) -> List[JumpStartModelHeader]:
213
+ """Return entire JumpStart models manifest.
214
+
215
+ Raises:
216
+ ValueError: If region in `cache_kwargs` is inconsistent with `region` argument.
217
+
218
+ Args:
219
+ region (str): Optional. The region to use for the cache.
220
+ s3_client (boto3.client): Optional. Boto3 client to use for accessing JumpStart models
221
+ s3 cache. If not set, a default client will be made.
222
+ """
223
+
224
+ additional_kwargs = {}
225
+ if s3_client is not None:
226
+ additional_kwargs.update({"s3_client": s3_client})
227
+
228
+ cache_kwargs = JumpStartModelsAccessor._validate_and_mutate_region_cache_kwargs(
229
+ {**JumpStartModelsAccessor._cache_kwargs, **additional_kwargs},
230
+ region,
231
+ )
232
+ JumpStartModelsAccessor._set_cache_and_region(region, cache_kwargs)
233
+ return JumpStartModelsAccessor._cache.get_manifest(model_type) # type: ignore
234
+
235
+ @staticmethod
236
+ def get_model_header(
237
+ region: str,
238
+ model_id: str,
239
+ version: str,
240
+ model_type: JumpStartModelType = JumpStartModelType.OPEN_WEIGHTS,
241
+ ) -> JumpStartModelHeader:
242
+ """Returns model header from JumpStart models cache.
243
+
244
+ Args:
245
+ region (str): region for which to retrieve header.
246
+ model_id (str): model ID to retrieve.
247
+ version (str): semantic version to retrieve for the model ID.
248
+ """
249
+ cache_kwargs = JumpStartModelsAccessor._validate_and_mutate_region_cache_kwargs(
250
+ JumpStartModelsAccessor._cache_kwargs, region
251
+ )
252
+ JumpStartModelsAccessor._set_cache_and_region(region, cache_kwargs)
253
+ return JumpStartModelsAccessor._cache.get_header( # type: ignore
254
+ model_id=model_id,
255
+ semantic_version_str=version,
256
+ model_type=model_type,
257
+ )
258
+
259
+ @staticmethod
260
+ def get_model_specs(
261
+ region: str,
262
+ model_id: str,
263
+ version: str,
264
+ hub_arn: Optional[str] = None,
265
+ s3_client: Optional[boto3.client] = None,
266
+ model_type=JumpStartModelType.OPEN_WEIGHTS,
267
+ sagemaker_session: Session = constants.DEFAULT_JUMPSTART_SAGEMAKER_SESSION,
268
+ ) -> JumpStartModelSpecs:
269
+ """Returns model specs from JumpStart models cache.
270
+
271
+ Args:
272
+ region (str): region for which to retrieve header.
273
+ model_id (str): model ID to retrieve.
274
+ version (str): semantic version to retrieve for the model ID.
275
+ s3_client (boto3.client): boto3 client to use for accessing JumpStart models s3 cache.
276
+ If not set, a default client will be made.
277
+ """
278
+
279
+ additional_kwargs = {}
280
+ if s3_client is not None:
281
+ additional_kwargs.update({"s3_client": s3_client})
282
+
283
+ if hub_arn:
284
+ additional_kwargs.update({"sagemaker_session": sagemaker_session})
285
+
286
+ cache_kwargs = JumpStartModelsAccessor._validate_and_mutate_region_cache_kwargs(
287
+ {**JumpStartModelsAccessor._cache_kwargs, **additional_kwargs}
288
+ )
289
+ JumpStartModelsAccessor._set_cache_and_region(region, cache_kwargs)
290
+
291
+ # Users only input model id, not contentType, so first try to describe with ModelReference, then with Model
292
+ if hub_arn:
293
+ try:
294
+ hub_model_arn = construct_hub_model_reference_arn_from_inputs(
295
+ hub_arn=hub_arn, model_name=model_id, version=version
296
+ )
297
+ model_specs = JumpStartModelsAccessor._cache.get_hub_model_reference(
298
+ hub_model_reference_arn=hub_model_arn
299
+ )
300
+ model_specs.set_hub_content_type(HubContentType.MODEL_REFERENCE)
301
+ return model_specs
302
+
303
+ except Exception as ex:
304
+ logging.info(
305
+ "Received exeption while calling APIs for ContentType ModelReference, \
306
+ retrying with ContentType Model: "
307
+ + str(ex)
308
+ )
309
+ hub_model_arn = construct_hub_model_arn_from_inputs(
310
+ hub_arn=hub_arn, model_name=model_id, version=version
311
+ )
312
+
313
+ # Failed to describe ModelReference, try with Model
314
+ try:
315
+ model_specs = JumpStartModelsAccessor._cache.get_hub_model(
316
+ hub_model_arn=hub_model_arn
317
+ )
318
+ model_specs.set_hub_content_type(HubContentType.MODEL)
319
+
320
+ return model_specs
321
+ except Exception as ex:
322
+ # Failed with both, throw a custom error message
323
+ raise RuntimeError(
324
+ f"Cannot get details for {model_id} in Hub {hub_arn}. \
325
+ {model_id} does not exist as a Model or ModelReference: \n"
326
+ + str(ex)
327
+ )
328
+
329
+ return JumpStartModelsAccessor._cache.get_specs( # type: ignore
330
+ model_id=model_id, version_str=version, model_type=model_type
331
+ )
332
+
333
+ @staticmethod
334
+ def set_cache_kwargs(cache_kwargs: Dict[str, Any], region: str = None) -> None:
335
+ """Sets cache kwargs, clears the cache.
336
+
337
+ Raises:
338
+ ValueError: If region in `cache_kwargs` is inconsistent with `region` argument.
339
+
340
+ Args:
341
+ cache_kwargs (str): cache kwargs to validate.
342
+ region (str): Optional. The region to validate along with the kwargs.
343
+ """
344
+ cache_kwargs = JumpStartModelsAccessor._validate_and_mutate_region_cache_kwargs(
345
+ cache_kwargs, region
346
+ )
347
+ JumpStartModelsAccessor._cache_kwargs = cache_kwargs
348
+ if region is None:
349
+ JumpStartModelsAccessor._cache = cache.JumpStartModelsCache(
350
+ **JumpStartModelsAccessor._cache_kwargs
351
+ )
352
+ else:
353
+ JumpStartModelsAccessor._curr_region = region
354
+ JumpStartModelsAccessor._cache = cache.JumpStartModelsCache(
355
+ region=region, **JumpStartModelsAccessor._cache_kwargs
356
+ )
357
+
358
+ @staticmethod
359
+ def reset_cache(cache_kwargs: Dict[str, Any] = None, region: Optional[str] = None) -> None:
360
+ """Resets cache, optionally allowing cache kwargs to be passed to the new cache.
361
+
362
+ Raises:
363
+ ValueError: If region in `cache_kwargs` is inconsistent with `region` argument.
364
+
365
+ Args:
366
+ cache_kwargs (str): cache kwargs to validate.
367
+ region (str): The region to validate along with the kwargs.
368
+ """
369
+ cache_kwargs_dict = {} if cache_kwargs is None else cache_kwargs
370
+ JumpStartModelsAccessor.set_cache_kwargs(cache_kwargs_dict, region)
371
+
372
+ @staticmethod
373
+ @deprecated()
374
+ def get_manifest(
375
+ cache_kwargs: Optional[Dict[str, Any]] = None, region: Optional[str] = None
376
+ ) -> List[JumpStartModelHeader]:
377
+ """Return entire JumpStart models manifest.
378
+
379
+ Raises:
380
+ ValueError: If region in `cache_kwargs` is inconsistent with `region` argument.
381
+
382
+ Args:
383
+ cache_kwargs (Dict[str, Any]): Optional. Cache kwargs to use.
384
+ (Default: None).
385
+ region (str): Optional. The region to use for the cache.
386
+ (Default: None).
387
+ """
388
+ cache_kwargs_dict: Dict[str, Any] = {} if cache_kwargs is None else cache_kwargs
389
+ JumpStartModelsAccessor.set_cache_kwargs(cache_kwargs_dict, region)
390
+ return JumpStartModelsAccessor._cache.get_manifest() # type: ignore
@@ -0,0 +1,69 @@
1
+ # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+ """This module imports all JumpStart artifact functions from the respective sub-module."""
14
+ from sagemaker.core.jumpstart.artifacts.resource_names import ( # noqa: F401
15
+ _retrieve_resource_name_base,
16
+ )
17
+ from sagemaker.core.jumpstart.artifacts.incremental_training import ( # noqa: F401
18
+ _model_supports_incremental_training,
19
+ )
20
+ from sagemaker.core.jumpstart.artifacts.image_uris import _retrieve_image_uri # noqa: F401
21
+ from sagemaker.core.jumpstart.artifacts.script_uris import ( # noqa: F401
22
+ _retrieve_script_uri,
23
+ _model_supports_inference_script_uri,
24
+ )
25
+ from sagemaker.core.jumpstart.artifacts.model_uris import ( # noqa: F401
26
+ _retrieve_model_uri,
27
+ _model_supports_training_model_uri,
28
+ )
29
+ from sagemaker.core.jumpstart.artifacts.hyperparameters import ( # noqa: F401
30
+ _retrieve_default_hyperparameters,
31
+ )
32
+ from sagemaker.core.jumpstart.artifacts.environment_variables import ( # noqa: F401
33
+ _retrieve_default_environment_variables,
34
+ )
35
+ from sagemaker.core.jumpstart.artifacts.kwargs import ( # noqa: F401
36
+ _retrieve_model_init_kwargs,
37
+ _retrieve_model_deploy_kwargs,
38
+ _retrieve_estimator_init_kwargs,
39
+ _retrieve_estimator_fit_kwargs,
40
+ )
41
+ from sagemaker.core.jumpstart.artifacts.instance_types import ( # noqa: F401
42
+ _retrieve_default_instance_type,
43
+ _retrieve_instance_types,
44
+ )
45
+ from sagemaker.core.jumpstart.artifacts.metric_definitions import ( # noqa: F401
46
+ _retrieve_default_training_metric_definitions,
47
+ )
48
+ from sagemaker.core.jumpstart.artifacts.predictors import ( # noqa: F401
49
+ _retrieve_serializer_from_content_type,
50
+ _retrieve_deserializer_from_accept_type,
51
+ _retrieve_default_deserializer,
52
+ _retrieve_default_serializer,
53
+ _retrieve_deserializer_options,
54
+ _retrieve_serializer_options,
55
+ _retrieve_default_content_type,
56
+ _retrieve_default_accept_type,
57
+ _retrieve_supported_accept_types,
58
+ _retrieve_supported_content_types,
59
+ )
60
+ from sagemaker.core.jumpstart.artifacts.model_packages import ( # noqa: F401
61
+ _retrieve_model_package_arn,
62
+ _retrieve_model_package_model_artifact_s3_uri,
63
+ )
64
+ from sagemaker.core.jumpstart.artifacts.payloads import ( # noqa: F401
65
+ _retrieve_example_payloads,
66
+ )
67
+ from sagemaker.core.jumpstart.artifacts.resource_requirements import ( # noqa: F401
68
+ _retrieve_default_resources,
69
+ )