sagemaker 2.147.0__tar.gz → 2.149.0__tar.gz

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 (350) hide show
  1. {sagemaker-2.147.0/src/sagemaker.egg-info → sagemaker-2.149.0}/PKG-INFO +3 -1
  2. {sagemaker-2.147.0 → sagemaker-2.149.0}/README.rst +2 -0
  3. sagemaker-2.149.0/VERSION +1 -0
  4. {sagemaker-2.147.0 → sagemaker-2.149.0}/requirements/extras/test_requirements.txt +1 -0
  5. {sagemaker-2.147.0 → sagemaker-2.149.0}/setup.py +2 -0
  6. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/clarify.py +39 -2
  7. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/config/config_schema.py +101 -1
  8. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/experiments/run.py +30 -20
  9. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/fw_utils.py +4 -1
  10. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/huggingface/estimator.py +85 -28
  11. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/pytorch.json +115 -3
  12. sagemaker-2.149.0/src/sagemaker/image_uri_config/sagemaker-base-python.json +36 -0
  13. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/tensorflow.json +33 -1
  14. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uris.py +35 -10
  15. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/local/local_session.py +12 -0
  16. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_monitor/model_monitoring.py +42 -0
  17. sagemaker-2.149.0/src/sagemaker/remote_function/__init__.py +16 -0
  18. sagemaker-2.149.0/src/sagemaker/remote_function/client.py +1131 -0
  19. sagemaker-2.149.0/src/sagemaker/remote_function/core/serialization.py +271 -0
  20. sagemaker-2.149.0/src/sagemaker/remote_function/core/stored_function.py +105 -0
  21. sagemaker-2.149.0/src/sagemaker/remote_function/errors.py +99 -0
  22. sagemaker-2.149.0/src/sagemaker/remote_function/invoke_function.py +103 -0
  23. sagemaker-2.149.0/src/sagemaker/remote_function/job.py +653 -0
  24. sagemaker-2.149.0/src/sagemaker/remote_function/logging_config.py +38 -0
  25. sagemaker-2.149.0/src/sagemaker/remote_function/runtime_environment/bootstrap_runtime_environment.py +147 -0
  26. sagemaker-2.149.0/src/sagemaker/remote_function/runtime_environment/runtime_environment_manager.py +366 -0
  27. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/s3.py +76 -11
  28. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/session.py +244 -180
  29. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/clarify_check_step.py +2 -1
  30. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/functions.py +4 -1
  31. sagemaker-2.149.0/src/sagemaker/wrangler/__init__.py +0 -0
  32. {sagemaker-2.147.0 → sagemaker-2.149.0/src/sagemaker.egg-info}/PKG-INFO +3 -1
  33. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker.egg-info/SOURCES.txt +12 -0
  34. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker.egg-info/requires.txt +3 -0
  35. sagemaker-2.147.0/VERSION +0 -1
  36. {sagemaker-2.147.0 → sagemaker-2.149.0}/LICENSE.txt +0 -0
  37. {sagemaker-2.147.0 → sagemaker-2.149.0}/MANIFEST.in +0 -0
  38. {sagemaker-2.147.0 → sagemaker-2.149.0}/requirements/extras/local_requirements.txt +0 -0
  39. {sagemaker-2.147.0 → sagemaker-2.149.0}/requirements/extras/scipy_requirements.txt +0 -0
  40. {sagemaker-2.147.0 → sagemaker-2.149.0}/requirements/tox/doc8_requirements.txt +0 -0
  41. {sagemaker-2.147.0 → sagemaker-2.149.0}/requirements/tox/docstyle_requirements.txt +0 -0
  42. {sagemaker-2.147.0 → sagemaker-2.149.0}/requirements/tox/flake8_requirements.txt +0 -0
  43. {sagemaker-2.147.0 → sagemaker-2.149.0}/requirements/tox/mypy_requirements.txt +0 -0
  44. {sagemaker-2.147.0 → sagemaker-2.149.0}/requirements/tox/pydocstyle_requirements.txt +0 -0
  45. {sagemaker-2.147.0 → sagemaker-2.149.0}/requirements/tox/pylint_requirements.txt +0 -0
  46. {sagemaker-2.147.0 → sagemaker-2.149.0}/requirements/tox/spelling_requirements.txt +0 -0
  47. {sagemaker-2.147.0 → sagemaker-2.149.0}/requirements/tox/twine_requirements.txt +0 -0
  48. {sagemaker-2.147.0 → sagemaker-2.149.0}/setup.cfg +0 -0
  49. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/__init__.py +0 -0
  50. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/_studio.py +0 -0
  51. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/algorithm.py +0 -0
  52. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/__init__.py +0 -0
  53. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/amazon_estimator.py +0 -0
  54. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/common.py +0 -0
  55. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/factorization_machines.py +0 -0
  56. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/hyperparameter.py +0 -0
  57. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/ipinsights.py +0 -0
  58. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/kmeans.py +0 -0
  59. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/knn.py +0 -0
  60. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/lda.py +0 -0
  61. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/linear_learner.py +0 -0
  62. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/ntm.py +0 -0
  63. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/object2vec.py +0 -0
  64. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/pca.py +0 -0
  65. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/randomcutforest.py +0 -0
  66. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/record_pb2.py +0 -0
  67. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/amazon/validation.py +0 -0
  68. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/analytics.py +0 -0
  69. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/apiutils/__init__.py +0 -0
  70. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/apiutils/_base_types.py +0 -0
  71. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/apiutils/_boto_functions.py +0 -0
  72. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/apiutils/_utils.py +0 -0
  73. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/async_inference/__init__.py +0 -0
  74. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/async_inference/async_inference_config.py +0 -0
  75. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/async_inference/async_inference_response.py +0 -0
  76. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/async_inference/waiter_config.py +0 -0
  77. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/automl/__init__.py +0 -0
  78. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/automl/automl.py +0 -0
  79. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/automl/candidate_estimator.py +0 -0
  80. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/chainer/__init__.py +0 -0
  81. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/chainer/defaults.py +0 -0
  82. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/chainer/estimator.py +0 -0
  83. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/chainer/model.py +0 -0
  84. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/__init__.py +0 -0
  85. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/__init__.py +0 -0
  86. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/__init__.py +0 -0
  87. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/ast_transformer.py +0 -0
  88. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/files.py +0 -0
  89. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/__init__.py +0 -0
  90. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/airflow.py +0 -0
  91. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/deprecated_params.py +0 -0
  92. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/framework_version.py +0 -0
  93. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/image_uris.py +0 -0
  94. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/matching.py +0 -0
  95. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/modifier.py +0 -0
  96. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/parsing.py +0 -0
  97. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/predictors.py +0 -0
  98. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/renamed_params.py +0 -0
  99. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/serde.py +0 -0
  100. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/tf_legacy_mode.py +0 -0
  101. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/tfs.py +0 -0
  102. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/training_input.py +0 -0
  103. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/modifiers/training_params.py +0 -0
  104. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/compatibility/v2/sagemaker_upgrade_v2.py +0 -0
  105. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/cli/framework_upgrade.py +0 -0
  106. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/collection.py +0 -0
  107. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/config/__init__.py +0 -0
  108. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/config/config.py +0 -0
  109. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/content_types.py +0 -0
  110. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/dataset_definition/__init__.py +0 -0
  111. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/dataset_definition/inputs.py +0 -0
  112. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/debugger/__init__.py +0 -0
  113. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/debugger/debugger.py +0 -0
  114. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/debugger/framework_profile.py +0 -0
  115. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/debugger/metrics_config.py +0 -0
  116. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/debugger/profiler_config.py +0 -0
  117. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/debugger/profiler_constants.py +0 -0
  118. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/debugger/utils.py +0 -0
  119. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/deprecations.py +0 -0
  120. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/deserializers.py +0 -0
  121. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/djl_inference/__init__.py +0 -0
  122. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/djl_inference/defaults.py +0 -0
  123. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/djl_inference/model.py +0 -0
  124. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/drift_check_baselines.py +0 -0
  125. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/environment_variables.py +0 -0
  126. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/estimator.py +0 -0
  127. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/exceptions.py +0 -0
  128. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/experiments/__init__.py +0 -0
  129. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/experiments/_api_types.py +0 -0
  130. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/experiments/_environment.py +0 -0
  131. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/experiments/_helper.py +0 -0
  132. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/experiments/_metrics.py +0 -0
  133. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/experiments/_run_context.py +0 -0
  134. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/experiments/_utils.py +0 -0
  135. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/experiments/experiment.py +0 -0
  136. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/experiments/trial.py +0 -0
  137. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/experiments/trial_component.py +0 -0
  138. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/explainer/__init__.py +0 -0
  139. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/explainer/clarify_explainer_config.py +0 -0
  140. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/explainer/explainer_config.py +0 -0
  141. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/feature_store/__init__.py +0 -0
  142. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/feature_store/dataset_builder.py +0 -0
  143. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/feature_store/feature_definition.py +0 -0
  144. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/feature_store/feature_group.py +0 -0
  145. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/feature_store/feature_store.py +0 -0
  146. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/feature_store/inputs.py +0 -0
  147. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/git_utils.py +0 -0
  148. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/huggingface/__init__.py +0 -0
  149. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/huggingface/model.py +0 -0
  150. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/huggingface/processing.py +0 -0
  151. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/huggingface/training_compiler/__init__.py +0 -0
  152. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/huggingface/training_compiler/config.py +0 -0
  153. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/hyperparameters.py +0 -0
  154. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/autogluon.json +0 -0
  155. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/blazingtext.json +0 -0
  156. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/chainer.json +0 -0
  157. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/clarify.json +0 -0
  158. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/coach-mxnet.json +0 -0
  159. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/coach-tensorflow.json +0 -0
  160. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/data-wrangler.json +0 -0
  161. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/debugger.json +0 -0
  162. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/djl-deepspeed.json +0 -0
  163. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/djl-fastertransformer.json +0 -0
  164. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/factorization-machines.json +0 -0
  165. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/forecasting-deepar.json +0 -0
  166. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/huggingface-neuron.json +0 -0
  167. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/huggingface-training-compiler.json +0 -0
  168. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/huggingface.json +0 -0
  169. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/image-classification-neo.json +0 -0
  170. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/image-classification.json +0 -0
  171. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/inferentia-mxnet.json +0 -0
  172. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/inferentia-pytorch.json +0 -0
  173. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/inferentia-tensorflow.json +0 -0
  174. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/ipinsights.json +0 -0
  175. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/kmeans.json +0 -0
  176. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/knn.json +0 -0
  177. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/lda.json +0 -0
  178. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/linear-learner.json +0 -0
  179. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/model-monitor.json +0 -0
  180. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/mxnet.json +0 -0
  181. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/neo-mxnet.json +0 -0
  182. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/neo-pytorch.json +0 -0
  183. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/neo-tensorflow.json +0 -0
  184. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/ntm.json +0 -0
  185. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/object-detection.json +0 -0
  186. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/object2vec.json +0 -0
  187. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/pca.json +0 -0
  188. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/pytorch-neuron.json +0 -0
  189. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/pytorch-training-compiler.json +0 -0
  190. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/randomcutforest.json +0 -0
  191. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/ray-pytorch.json +0 -0
  192. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/ray-tensorflow.json +0 -0
  193. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/semantic-segmentation.json +0 -0
  194. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/seq2seq.json +0 -0
  195. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/sklearn.json +0 -0
  196. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/spark.json +0 -0
  197. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/sparkml-serving.json +0 -0
  198. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/vw.json +0 -0
  199. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/xgboost-neo.json +0 -0
  200. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/image_uri_config/xgboost.json +0 -0
  201. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/inference_recommender/__init__.py +0 -0
  202. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/inference_recommender/inference_recommender_mixin.py +0 -0
  203. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/inputs.py +0 -0
  204. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/instance_group.py +0 -0
  205. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/instance_types.py +0 -0
  206. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/job.py +0 -0
  207. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/jumpstart/__init__.py +0 -0
  208. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/jumpstart/accessors.py +0 -0
  209. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/jumpstart/artifacts.py +0 -0
  210. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/jumpstart/cache.py +0 -0
  211. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/jumpstart/constants.py +0 -0
  212. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/jumpstart/enums.py +0 -0
  213. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/jumpstart/exceptions.py +0 -0
  214. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/jumpstart/filters.py +0 -0
  215. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/jumpstart/notebook_utils.py +0 -0
  216. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/jumpstart/parameters.py +0 -0
  217. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/jumpstart/types.py +0 -0
  218. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/jumpstart/utils.py +0 -0
  219. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/jumpstart/validators.py +0 -0
  220. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/lambda_helper.py +0 -0
  221. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/lineage/__init__.py +0 -0
  222. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/lineage/_api_types.py +0 -0
  223. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/lineage/_utils.py +0 -0
  224. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/lineage/action.py +0 -0
  225. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/lineage/artifact.py +0 -0
  226. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/lineage/association.py +0 -0
  227. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/lineage/context.py +0 -0
  228. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/lineage/lineage_trial_component.py +0 -0
  229. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/lineage/query.py +0 -0
  230. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/lineage/visualizer.py +0 -0
  231. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/local/__init__.py +0 -0
  232. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/local/data.py +0 -0
  233. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/local/entities.py +0 -0
  234. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/local/exceptions.py +0 -0
  235. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/local/image.py +0 -0
  236. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/local/pipeline.py +0 -0
  237. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/local/utils.py +0 -0
  238. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/logs.py +0 -0
  239. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/metadata_properties.py +0 -0
  240. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/metric_definitions.py +0 -0
  241. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model.py +0 -0
  242. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_card/__init__.py +0 -0
  243. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_card/evaluation_metric_parsers.py +0 -0
  244. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_card/helpers.py +0 -0
  245. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_card/model_card.py +0 -0
  246. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_card/schema_constraints.py +0 -0
  247. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_metrics.py +0 -0
  248. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_monitor/__init__.py +0 -0
  249. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_monitor/clarify_model_monitoring.py +0 -0
  250. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_monitor/cron_expression_generator.py +0 -0
  251. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_monitor/data_capture_config.py +0 -0
  252. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_monitor/dataset_format.py +0 -0
  253. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_monitor/monitoring_alert.py +0 -0
  254. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_monitor/monitoring_files.py +0 -0
  255. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/model_uris.py +0 -0
  256. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/multidatamodel.py +0 -0
  257. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/mxnet/__init__.py +0 -0
  258. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/mxnet/defaults.py +0 -0
  259. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/mxnet/estimator.py +0 -0
  260. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/mxnet/model.py +0 -0
  261. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/mxnet/processing.py +0 -0
  262. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/network.py +0 -0
  263. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/parameter.py +0 -0
  264. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/pipeline.py +0 -0
  265. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/predictor.py +0 -0
  266. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/predictor_async.py +0 -0
  267. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/processing.py +0 -0
  268. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/pytorch/__init__.py +0 -0
  269. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/pytorch/defaults.py +0 -0
  270. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/pytorch/estimator.py +0 -0
  271. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/pytorch/model.py +0 -0
  272. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/pytorch/processing.py +0 -0
  273. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/pytorch/training_compiler/__init__.py +0 -0
  274. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/pytorch/training_compiler/config.py +0 -0
  275. {sagemaker-2.147.0/src/sagemaker/tensorflow/training_compiler → sagemaker-2.149.0/src/sagemaker/remote_function/runtime_environment}/__init__.py +0 -0
  276. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/rl/__init__.py +0 -0
  277. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/rl/estimator.py +0 -0
  278. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/script_uris.py +0 -0
  279. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/serializers.py +0 -0
  280. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/serverless/__init__.py +0 -0
  281. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/serverless/model.py +0 -0
  282. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/serverless/predictor.py +0 -0
  283. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/serverless/serverless_inference_config.py +0 -0
  284. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/session_settings.py +0 -0
  285. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/sklearn/__init__.py +0 -0
  286. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/sklearn/defaults.py +0 -0
  287. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/sklearn/estimator.py +0 -0
  288. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/sklearn/model.py +0 -0
  289. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/sklearn/processing.py +0 -0
  290. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/spark/__init__.py +0 -0
  291. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/spark/defaults.py +0 -0
  292. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/spark/processing.py +0 -0
  293. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/sparkml/__init__.py +0 -0
  294. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/sparkml/model.py +0 -0
  295. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/tensorflow/__init__.py +0 -0
  296. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/tensorflow/defaults.py +0 -0
  297. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/tensorflow/estimator.py +0 -0
  298. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/tensorflow/model.py +0 -0
  299. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/tensorflow/processing.py +0 -0
  300. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/tensorflow/serving.py +0 -0
  301. {sagemaker-2.147.0/src/sagemaker → sagemaker-2.149.0/src/sagemaker/tensorflow}/training_compiler/__init__.py +0 -0
  302. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/tensorflow/training_compiler/config.py +0 -0
  303. {sagemaker-2.147.0/src/sagemaker/utilities → sagemaker-2.149.0/src/sagemaker/training_compiler}/__init__.py +0 -0
  304. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/training_compiler/config.py +0 -0
  305. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/transformer.py +0 -0
  306. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/tuner.py +0 -0
  307. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/user_agent.py +0 -0
  308. {sagemaker-2.147.0/src/sagemaker/wrangler → sagemaker-2.149.0/src/sagemaker/utilities}/__init__.py +0 -0
  309. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/utilities/cache.py +0 -0
  310. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/utilities/search_expression.py +0 -0
  311. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/utils.py +0 -0
  312. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/vpc_utils.py +0 -0
  313. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/__init__.py +0 -0
  314. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/_repack_model.py +0 -0
  315. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/_utils.py +0 -0
  316. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/airflow.py +0 -0
  317. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/automl_step.py +0 -0
  318. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/callback_step.py +0 -0
  319. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/check_job_config.py +0 -0
  320. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/condition_step.py +0 -0
  321. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/conditions.py +0 -0
  322. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/emr_step.py +0 -0
  323. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/entities.py +0 -0
  324. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/execution_variables.py +0 -0
  325. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/fail_step.py +0 -0
  326. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/lambda_step.py +0 -0
  327. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/model_step.py +0 -0
  328. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/monitor_batch_transform_step.py +0 -0
  329. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/parallelism_config.py +0 -0
  330. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/parameters.py +0 -0
  331. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/pipeline.py +0 -0
  332. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/pipeline_context.py +0 -0
  333. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/pipeline_experiment_config.py +0 -0
  334. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/properties.py +0 -0
  335. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/quality_check_step.py +0 -0
  336. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/retry.py +0 -0
  337. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/step_collections.py +0 -0
  338. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/steps.py +0 -0
  339. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/workflow/utilities.py +0 -0
  340. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/wrangler/ingestion.py +0 -0
  341. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/wrangler/processing.py +0 -0
  342. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/xgboost/__init__.py +0 -0
  343. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/xgboost/defaults.py +0 -0
  344. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/xgboost/estimator.py +0 -0
  345. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/xgboost/model.py +0 -0
  346. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/xgboost/processing.py +0 -0
  347. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker/xgboost/utils.py +0 -0
  348. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker.egg-info/dependency_links.txt +0 -0
  349. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker.egg-info/entry_points.txt +0 -0
  350. {sagemaker-2.147.0 → sagemaker-2.149.0}/src/sagemaker.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sagemaker
3
- Version: 2.147.0
3
+ Version: 2.149.0
4
4
  Summary: Open source library for training and deploying models on Amazon SageMaker.
5
5
  Home-page: https://github.com/aws/sagemaker-python-sdk/
6
6
  Author: Amazon Web Services
@@ -140,6 +140,8 @@ Description: .. image:: https://github.com/aws/sagemaker-python-sdk/raw/master/b
140
140
  1. AWS account credentials are available in the environment for the boto3 client to use.
141
141
  2. The AWS account has an IAM role named :code:`SageMakerRole`.
142
142
  It should have the AmazonSageMakerFullAccess policy attached as well as a policy with `the necessary permissions to use Elastic Inference <https://docs.aws.amazon.com/sagemaker/latest/dg/ei-setup.html>`__.
143
+ 3. To run remote_function tests, dummy ecr repo should be created. It can be created by running -
144
+ :code:`aws ecr create-repository --repository-name remote-function-dummy-container`
143
145
 
144
146
  We recommend selectively running just those integration tests you'd like to run. You can filter by individual test function names with:
145
147
 
@@ -133,6 +133,8 @@ To run the integration tests, the following prerequisites must be met
133
133
  1. AWS account credentials are available in the environment for the boto3 client to use.
134
134
  2. The AWS account has an IAM role named :code:`SageMakerRole`.
135
135
  It should have the AmazonSageMakerFullAccess policy attached as well as a policy with `the necessary permissions to use Elastic Inference <https://docs.aws.amazon.com/sagemaker/latest/dg/ei-setup.html>`__.
136
+ 3. To run remote_function tests, dummy ecr repo should be created. It can be created by running -
137
+ :code:`aws ecr create-repository --repository-name remote-function-dummy-container`
136
138
 
137
139
  We recommend selectively running just those integration tests you'd like to run. You can filter by individual test function names with:
138
140
 
@@ -0,0 +1 @@
1
+ 2.149.0
@@ -21,3 +21,4 @@ sagemaker-experiments==0.1.35
21
21
  Jinja2==3.0.3
22
22
  pandas>=1.3.5,<1.5
23
23
  scikit-learn==1.0.2
24
+ cloudpickle==2.2.1
@@ -49,6 +49,7 @@ def read_requirements(filename):
49
49
  required_packages = [
50
50
  "attrs>=20.3.0,<23",
51
51
  "boto3>=1.26.28,<2.0",
52
+ "cloudpickle==2.2.1",
52
53
  "google-pasta",
53
54
  "numpy>=1.9.0,<2.0",
54
55
  "protobuf>=3.1,<4.0",
@@ -62,6 +63,7 @@ required_packages = [
62
63
  "PyYAML==5.4.1",
63
64
  "jsonschema",
64
65
  "platformdirs",
66
+ "tblib==1.7.0",
65
67
  ]
66
68
 
67
69
  # Specific use case dependencies
@@ -26,7 +26,7 @@ import re
26
26
  import tempfile
27
27
  from abc import ABC, abstractmethod
28
28
  from typing import List, Union, Dict, Optional, Any
29
-
29
+ from enum import Enum
30
30
  from schema import Schema, And, Use, Or, Optional as SchemaOptional, Regex
31
31
 
32
32
  from sagemaker import image_uris, s3, utils
@@ -304,6 +304,16 @@ ANALYSIS_CONFIG_SCHEMA_V1_0 = Schema(
304
304
  )
305
305
 
306
306
 
307
+ class DatasetType(Enum):
308
+ """Enum to store different dataset types supported in the Analysis config file"""
309
+
310
+ TEXTCSV = "text/csv"
311
+ JSONLINES = "application/jsonlines"
312
+ JSON = "application/json"
313
+ PARQUET = "application/x-parquet"
314
+ IMAGE = "application/x-image"
315
+
316
+
307
317
  class DataConfig:
308
318
  """Config object related to configurations of the input and output dataset."""
309
319
 
@@ -1451,7 +1461,7 @@ class SageMakerClarifyProcessor(Processor):
1451
1461
  source=self._CLARIFY_OUTPUT,
1452
1462
  destination=data_config.s3_output_path,
1453
1463
  output_name="analysis_result",
1454
- s3_upload_mode="EndOfJob",
1464
+ s3_upload_mode=ProcessingOutputHandler.get_s3_upload_mode(analysis_config),
1455
1465
  )
1456
1466
 
1457
1467
  return super().run(
@@ -2171,6 +2181,33 @@ def _upload_analysis_config(analysis_config_file, s3_output_path, sagemaker_sess
2171
2181
  )
2172
2182
 
2173
2183
 
2184
+ class ProcessingOutputHandler:
2185
+ """Class to handle the parameters for SagemakerProcessor.Processingoutput"""
2186
+
2187
+ class S3UploadMode(Enum):
2188
+ """Enum values for different uplaod modes to s3 bucket"""
2189
+
2190
+ CONTINUOUS = "Continuous"
2191
+ ENDOFJOB = "EndOfJob"
2192
+
2193
+ @classmethod
2194
+ def get_s3_upload_mode(cls, analysis_config: Dict[str, Any]) -> str:
2195
+ """Fetches s3_upload mode based on the shap_config values
2196
+
2197
+ Args:
2198
+ analysis_config (dict): dict Config following the analysis_config.json format
2199
+
2200
+ Returns:
2201
+ The s3_upload_mode type for the processing output.
2202
+ """
2203
+ dataset_type = analysis_config["dataset_type"]
2204
+ return (
2205
+ ProcessingOutputHandler.S3UploadMode.CONTINUOUS.value
2206
+ if dataset_type == DatasetType.IMAGE.value
2207
+ else ProcessingOutputHandler.S3UploadMode.ENDOFJOB.value
2208
+ )
2209
+
2210
+
2174
2211
  def _set(value, key, dictionary):
2175
2212
  """Sets dictionary[key] = value if value is not None."""
2176
2213
  if value is not None:
@@ -44,6 +44,17 @@ MONITORING_JOB_DEFINITION = "MonitoringJobDefinition"
44
44
  SAGEMAKER = "SageMaker"
45
45
  PYTHON_SDK = "PythonSDK"
46
46
  MODULES = "Modules"
47
+ REMOTE_FUNCTION = "RemoteFunction"
48
+ DEPENDENCIES = "Dependencies"
49
+ PRE_EXECUTION_SCRIPT = "PreExecutionScript"
50
+ PRE_EXECUTION_COMMANDS = "PreExecutionCommands"
51
+ ENVIRONMENT_VARIABLES = "EnvironmentVariables"
52
+ IMAGE_URI = "ImageUri"
53
+ INCLUDE_LOCAL_WORKDIR = "IncludeLocalWorkDir"
54
+ INSTANCE_TYPE = "InstanceType"
55
+ S3_KMS_KEY_ID = "S3KmsKeyId"
56
+ S3_ROOT_URI = "S3RootUri"
57
+ JOB_CONDA_ENV = "JobCondaEnvironment"
47
58
  OFFLINE_STORE_CONFIG = "OfflineStoreConfig"
48
59
  ONLINE_STORE_CONFIG = "OnlineStoreConfig"
49
60
  S3_STORAGE_CONFIG = "S3StorageConfig"
@@ -221,6 +232,49 @@ MODEL_PACKAGE_VALIDATION_PROFILES_PATH = _simple_path(
221
232
  SAGEMAKER, MODEL_PACKAGE, VALIDATION_SPECIFICATION, VALIDATION_PROFILES
222
233
  )
223
234
 
235
+ REMOTE_FUNCTION_DEPENDENCIES = _simple_path(
236
+ SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, DEPENDENCIES
237
+ )
238
+ REMOTE_FUNCTION_PRE_EXECUTION_COMMANDS = _simple_path(
239
+ SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, PRE_EXECUTION_COMMANDS
240
+ )
241
+ REMOTE_FUNCTION_PRE_EXECUTION_SCRIPT = _simple_path(
242
+ SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, PRE_EXECUTION_SCRIPT
243
+ )
244
+ REMOTE_FUNCTION_ENVIRONMENT_VARIABLES = _simple_path(
245
+ SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, ENVIRONMENT_VARIABLES
246
+ )
247
+ REMOTE_FUNCTION_IMAGE_URI = _simple_path(SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, IMAGE_URI)
248
+ REMOTE_FUNCTION_INCLUDE_LOCAL_WORKDIR = _simple_path(
249
+ SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, INCLUDE_LOCAL_WORKDIR
250
+ )
251
+ REMOTE_FUNCTION_INSTANCE_TYPE = _simple_path(
252
+ SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, INSTANCE_TYPE
253
+ )
254
+ REMOTE_FUNCTION_JOB_CONDA_ENV = _simple_path(
255
+ SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, JOB_CONDA_ENV
256
+ )
257
+ REMOTE_FUNCTION_ROLE_ARN = _simple_path(SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, ROLE_ARN)
258
+ REMOTE_FUNCTION_S3_KMS_KEY_ID = _simple_path(
259
+ SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, S3_KMS_KEY_ID
260
+ )
261
+ REMOTE_FUNCTION_S3_ROOT_URI = _simple_path(
262
+ SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, S3_ROOT_URI
263
+ )
264
+ REMOTE_FUNCTION_TAGS = _simple_path(SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, TAGS)
265
+ REMOTE_FUNCTION_VOLUME_KMS_KEY_ID = _simple_path(
266
+ SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, VOLUME_KMS_KEY_ID
267
+ )
268
+ REMOTE_FUNCTION_VPC_CONFIG_SUBNETS = _simple_path(
269
+ SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, VPC_CONFIG, SUBNETS
270
+ )
271
+ REMOTE_FUNCTION_VPC_CONFIG_SECURITY_GROUP_IDS = _simple_path(
272
+ SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, VPC_CONFIG, SECURITY_GROUP_IDS
273
+ )
274
+ REMOTE_FUNCTION_ENABLE_INTER_CONTAINER_TRAFFIC_ENCRYPTION = _simple_path(
275
+ SAGEMAKER, PYTHON_SDK, MODULES, REMOTE_FUNCTION, ENABLE_INTER_CONTAINER_TRAFFIC_ENCRYPTION
276
+ )
277
+
224
278
  # Paths for reference elsewhere in the SDK.
225
279
  # Names include the schema version since the paths could change with other schema versions
226
280
  MONITORING_SCHEDULE_INTER_CONTAINER_ENCRYPTION_PATH = _simple_path(
@@ -245,7 +299,6 @@ TRAINING_JOB_INTER_CONTAINER_ENCRYPTION_PATH = _simple_path(
245
299
  SAGEMAKER, TRAINING_JOB, ENABLE_INTER_CONTAINER_TRAFFIC_ENCRYPTION
246
300
  )
247
301
 
248
-
249
302
  SAGEMAKER_PYTHON_SDK_CONFIG_SCHEMA = {
250
303
  "$schema": "https://json-schema.org/draft/2020-12/schema",
251
304
  TYPE: OBJECT,
@@ -377,6 +430,23 @@ SAGEMAKER_PYTHON_SDK_CONFIG_SCHEMA = {
377
430
  "minItems": 0,
378
431
  "maxItems": 50,
379
432
  },
433
+ # Regex is taken from https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html#sagemaker-CreateTrainingJob-request-Environment
434
+ "environmentVariables": {
435
+ TYPE: OBJECT,
436
+ ADDITIONAL_PROPERTIES: False,
437
+ PATTERN_PROPERTIES: {
438
+ r"([a-zA-Z_][a-zA-Z0-9_]*){1,512}": {
439
+ TYPE: "string",
440
+ "pattern": r"[\S\s]*",
441
+ "maxLength": 512,
442
+ }
443
+ },
444
+ "maxProperties": 48,
445
+ },
446
+ # Regex is taken from https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html#sagemaker-Type-S3DataSource-S3Uri
447
+ "s3Uri": {TYPE: "string", "pattern": "^(https|s3)://([^/]+)/?(.*)$", "maxLength": 1024},
448
+ # Regex is taken from https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html#sagemaker-Type-AlgorithmSpecification-ContainerEntrypoint
449
+ "preExecutionCommand": {TYPE: "string", "pattern": r".*"},
380
450
  },
381
451
  PROPERTIES: {
382
452
  SCHEMA_VERSION: {
@@ -406,6 +476,36 @@ SAGEMAKER_PYTHON_SDK_CONFIG_SCHEMA = {
406
476
  # Any SageMaker Python SDK specific configuration will be added here.
407
477
  TYPE: OBJECT,
408
478
  ADDITIONAL_PROPERTIES: False,
479
+ PROPERTIES: {
480
+ REMOTE_FUNCTION: {
481
+ TYPE: OBJECT,
482
+ ADDITIONAL_PROPERTIES: False,
483
+ PROPERTIES: {
484
+ DEPENDENCIES: {TYPE: "string"},
485
+ PRE_EXECUTION_COMMANDS: {
486
+ TYPE: "array",
487
+ "items": {"$ref": "#/definitions/preExecutionCommand"},
488
+ },
489
+ PRE_EXECUTION_SCRIPT: {TYPE: "string"},
490
+ ENABLE_INTER_CONTAINER_TRAFFIC_ENCRYPTION: {
491
+ TYPE: "boolean"
492
+ },
493
+ ENVIRONMENT_VARIABLES: {
494
+ "$ref": "#/definitions/environmentVariables"
495
+ },
496
+ IMAGE_URI: {TYPE: "string"},
497
+ INCLUDE_LOCAL_WORKDIR: {TYPE: "boolean"},
498
+ INSTANCE_TYPE: {TYPE: "string"},
499
+ JOB_CONDA_ENV: {TYPE: "string"},
500
+ ROLE_ARN: {"$ref": "#/definitions/roleArn"},
501
+ S3_KMS_KEY_ID: {"$ref": "#/definitions/kmsKeyId"},
502
+ S3_ROOT_URI: {"$ref": "#/definitions/s3Uri"},
503
+ TAGS: {"$ref": "#/definitions/tags"},
504
+ VOLUME_KMS_KEY_ID: {"$ref": "#/definitions/kmsKeyId"},
505
+ VPC_CONFIG: {"$ref": "#/definitions/vpcConfig"},
506
+ },
507
+ }
508
+ },
409
509
  }
410
510
  },
411
511
  },
@@ -715,6 +715,14 @@ class Run(object):
715
715
 
716
716
  self.close()
717
717
 
718
+ def __getstate__(self):
719
+ """Overriding this method to prevent instance of Run from being pickled.
720
+
721
+ Raise:
722
+ NotImplementedError: If attempting to pickle this instance.
723
+ """
724
+ raise NotImplementedError("Instance of Run type is not allowed to be pickled.")
725
+
718
726
 
719
727
  def load_run(
720
728
  run_name: Optional[str] = None,
@@ -787,36 +795,38 @@ def load_run(
787
795
  Returns:
788
796
  Run: The loaded Run object.
789
797
  """
790
- sagemaker_session = sagemaker_session or _utils.default_session()
791
798
  environment = _RunEnvironment.load()
792
799
 
793
800
  verify_load_input_names(run_name=run_name, experiment_name=experiment_name)
794
801
 
795
- if run_name or environment:
796
- if run_name:
797
- logger.warning(
798
- "run_name is explicitly supplied in load_run, "
799
- "which will be prioritized to load the Run object. "
800
- "In other words, the run name in the experiment config, fetched from the "
801
- "job environment or the current run context, will be ignored."
802
- )
803
- else:
804
- exp_config = get_tc_and_exp_config_from_job_env(
805
- environment=environment, sagemaker_session=sagemaker_session
806
- )
807
- run_name = Run._extract_run_name_from_tc_name(
808
- trial_component_name=exp_config[RUN_NAME],
809
- experiment_name=exp_config[EXPERIMENT_NAME],
810
- )
811
- experiment_name = exp_config[EXPERIMENT_NAME]
812
-
802
+ if run_name:
803
+ logger.warning(
804
+ "run_name is explicitly supplied in load_run, "
805
+ "which will be prioritized to load the Run object. "
806
+ "In other words, the run name in the experiment config, fetched from the "
807
+ "job environment or the current run context, will be ignored."
808
+ )
813
809
  run_instance = Run(
814
810
  experiment_name=experiment_name,
815
811
  run_name=run_name,
816
- sagemaker_session=sagemaker_session,
812
+ sagemaker_session=sagemaker_session or _utils.default_session(),
817
813
  )
818
814
  elif _RunContext.get_current_run():
819
815
  run_instance = _RunContext.get_current_run()
816
+ elif environment:
817
+ exp_config = get_tc_and_exp_config_from_job_env(
818
+ environment=environment, sagemaker_session=sagemaker_session or _utils.default_session()
819
+ )
820
+ run_name = Run._extract_run_name_from_tc_name(
821
+ trial_component_name=exp_config[RUN_NAME],
822
+ experiment_name=exp_config[EXPERIMENT_NAME],
823
+ )
824
+ experiment_name = exp_config[EXPERIMENT_NAME]
825
+ run_instance = Run(
826
+ experiment_name=experiment_name,
827
+ run_name=run_name,
828
+ sagemaker_session=sagemaker_session or _utils.default_session(),
829
+ )
820
830
  else:
821
831
  raise RuntimeError(
822
832
  "Failed to load a Run object. "
@@ -135,6 +135,7 @@ SM_DATAPARALLEL_SUPPORTED_FRAMEWORK_VERSIONS = {
135
135
  "1.12.0",
136
136
  "1.12.1",
137
137
  "1.13.1",
138
+ "2.0.0",
138
139
  ],
139
140
  }
140
141
 
@@ -148,10 +149,11 @@ PYTORCHDDP_SUPPORTED_FRAMEWORK_VERSIONS = [
148
149
  "1.12.0",
149
150
  "1.12.1",
150
151
  "1.13.1",
152
+ "2.0.0",
151
153
  ]
152
154
 
153
155
 
154
- TORCH_DISTRIBUTED_GPU_SUPPORTED_FRAMEWORK_VERSIONS = ["1.13.1"]
156
+ TORCH_DISTRIBUTED_GPU_SUPPORTED_FRAMEWORK_VERSIONS = ["1.13.1", "2.0.0"]
155
157
 
156
158
  TRAINIUM_SUPPORTED_DISTRIBUTION_STRATEGIES = ["torch_distributed"]
157
159
  TRAINIUM_SUPPORTED_TORCH_DISTRIBUTED_FRAMEWORK_VERSIONS = [
@@ -161,6 +163,7 @@ TRAINIUM_SUPPORTED_TORCH_DISTRIBUTED_FRAMEWORK_VERSIONS = [
161
163
  "1.12.0",
162
164
  "1.12.1",
163
165
  "1.13.1",
166
+ "2.0.0",
164
167
  ]
165
168
 
166
169
  SMDISTRIBUTED_SUPPORTED_STRATEGIES = ["dataparallel", "modelparallel"]
@@ -17,12 +17,10 @@ import logging
17
17
  import re
18
18
  from typing import Optional, Union, Dict
19
19
 
20
- from sagemaker.deprecations import renamed_kwargs
21
20
  from sagemaker.estimator import Framework, EstimatorBase
22
21
  from sagemaker.fw_utils import (
23
22
  framework_name_from_image,
24
- warn_if_parameter_server_with_multi_gpu,
25
- validate_smdistributed,
23
+ validate_distribution,
26
24
  )
27
25
  from sagemaker.huggingface.model import HuggingFaceModel
28
26
  from sagemaker.vpc_utils import VPC_CONFIG_DEFAULT
@@ -37,6 +35,9 @@ class HuggingFace(Framework):
37
35
  """Handle training of custom HuggingFace code."""
38
36
 
39
37
  _framework_name = "huggingface"
38
+ LAUNCH_PYTORCH_DDP_ENV_NAME = "sagemaker_pytorch_ddp_enabled"
39
+ LAUNCH_TORCH_DISTRIBUTED_ENV_NAME = "sagemaker_torch_distributed_enabled"
40
+ INSTANCE_TYPE_ENV_NAME = "sagemaker_instance_type"
40
41
 
41
42
  def __init__(
42
43
  self,
@@ -142,6 +143,36 @@ class HuggingFace(Framework):
142
143
  }
143
144
  }
144
145
 
146
+ **To enable PyTorch DDP:**
147
+
148
+ .. code:: python
149
+
150
+ {
151
+ "pytorchddp": {
152
+ "enabled": True
153
+ }
154
+ }
155
+
156
+ To learn more, see `Distributed PyTorch Training
157
+ <https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/using_pytorch.html#distributed-pytorch-training>`_.
158
+
159
+ **To enable Torch Distributed:**
160
+
161
+ This is available for general distributed training on
162
+ GPU instances from PyTorch v1.13.1 and later.
163
+
164
+ .. code:: python
165
+
166
+ {
167
+ "torch_distributed": {
168
+ "enabled": True
169
+ }
170
+ }
171
+
172
+ This option also supports distributed training on Trn1.
173
+ To learn more, see `Distributed PyTorch Training on Trainium
174
+ <https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/using_pytorch.html#distributed-pytorch-training-on-trainium>`_.
175
+
145
176
  To enable distributed training with
146
177
  `SageMaker Training Compiler <https://docs.aws.amazon.com/sagemaker/latest/dg/training-compiler.html>`_
147
178
  for Hugging Face Transformers with PyTorch:
@@ -182,29 +213,6 @@ class HuggingFace(Framework):
182
213
 
183
214
  self._validate_args(image_uri=image_uri)
184
215
 
185
- instance_type = renamed_kwargs(
186
- "train_instance_type", "instance_type", kwargs.get("instance_type"), kwargs
187
- )
188
-
189
- base_framework_name = "tensorflow" if tensorflow_version is not None else "pytorch"
190
- base_framework_version = (
191
- tensorflow_version if tensorflow_version is not None else pytorch_version
192
- )
193
-
194
- if distribution is not None:
195
- validate_smdistributed(
196
- instance_type=instance_type,
197
- framework_name=base_framework_name,
198
- framework_version=base_framework_version,
199
- py_version=self.py_version,
200
- distribution=distribution,
201
- image_uri=image_uri,
202
- )
203
-
204
- warn_if_parameter_server_with_multi_gpu(
205
- training_instance_type=instance_type, distribution=distribution
206
- )
207
-
208
216
  if "enable_sagemaker_metrics" not in kwargs:
209
217
  kwargs["enable_sagemaker_metrics"] = True
210
218
 
@@ -214,6 +222,25 @@ class HuggingFace(Framework):
214
222
  entry_point, source_dir, hyperparameters, image_uri=image_uri, **kwargs
215
223
  )
216
224
 
225
+ if "entry_point" not in kwargs:
226
+ kwargs["entry_point"] = entry_point
227
+
228
+ self.base_framework_name = "tensorflow" if tensorflow_version is not None else "pytorch"
229
+ self.base_framework_version = (
230
+ tensorflow_version if tensorflow_version is not None else pytorch_version
231
+ )
232
+
233
+ if distribution is not None:
234
+ distribution = validate_distribution(
235
+ distribution,
236
+ self.instance_groups,
237
+ self.base_framework_name,
238
+ self.base_framework_version,
239
+ py_version,
240
+ image_uri,
241
+ kwargs,
242
+ )
243
+
217
244
  self.distribution = distribution or {}
218
245
 
219
246
  if compiler_config is not None:
@@ -267,14 +294,44 @@ class HuggingFace(Framework):
267
294
  "transformers_version, tensorflow_version and pytorch_version."
268
295
  )
269
296
 
297
+ def _huggingface_distribution_configuration(self, distribution):
298
+ """Returns a dict of distribution config for Hugging Face training
299
+
300
+ Args:
301
+ distribution (dict): A dictionary with information on how to run distributed training.
302
+ Returns:
303
+ dict containing Pytorch DDP config
304
+ """
305
+ distribution_config = {}
306
+ pytorch_ddp_enabled = False
307
+ torch_distributed_enabled = False
308
+
309
+ if "pytorchddp" in distribution:
310
+ pytorch_ddp_enabled = distribution.get("pytorchddp").get("enabled", False)
311
+ elif "torch_distributed" in distribution:
312
+ torch_distributed_enabled = distribution.get("torch_distributed").get("enabled", False)
313
+
314
+ if pytorch_ddp_enabled:
315
+ distribution_config[self.LAUNCH_PYTORCH_DDP_ENV_NAME] = pytorch_ddp_enabled
316
+ if self.instance_type is not None:
317
+ distribution_config[self.INSTANCE_TYPE_ENV_NAME] = self.instance_type
318
+ elif torch_distributed_enabled:
319
+ distribution_config[self.LAUNCH_TORCH_DISTRIBUTED_ENV_NAME] = torch_distributed_enabled
320
+ if self.instance_type is not None:
321
+ distribution_config[self.INSTANCE_TYPE_ENV_NAME] = self.instance_type
322
+ else:
323
+ distribution_config = self._distribution_configuration(distribution=distribution)
324
+
325
+ return distribution_config
326
+
270
327
  def hyperparameters(self):
271
328
  """Return hyperparameters used by your custom PyTorch code during model training."""
272
329
  hyperparameters = super(HuggingFace, self).hyperparameters()
273
- distributed_training_hyperparameters = self._distribution_configuration(
330
+ additional_hyperparameters = self._huggingface_distribution_configuration(
274
331
  distribution=self.distribution
275
332
  )
276
333
  hyperparameters.update(
277
- EstimatorBase._json_encode_hyperparameters(distributed_training_hyperparameters)
334
+ EstimatorBase._json_encode_hyperparameters(additional_hyperparameters)
278
335
  )
279
336
 
280
337
  if self.compiler_config: