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,366 @@
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
+ """Amazon SageMaker channel configurations for S3 data sources and file system data sources"""
14
+ from __future__ import absolute_import, print_function
15
+
16
+ from typing import Union, Optional, List
17
+ import attr
18
+
19
+ from sagemaker.core.helper.pipeline_variable import PipelineVariable
20
+
21
+ FILE_SYSTEM_TYPES = ["FSxLustre", "EFS"]
22
+ FILE_SYSTEM_ACCESS_MODES = ["ro", "rw"]
23
+
24
+
25
+ class TrainingInput(object):
26
+ """Amazon SageMaker channel configurations for S3 data sources.
27
+
28
+ Attributes:
29
+ config (dict[str, dict]): A SageMaker ``DataSource`` referencing
30
+ a SageMaker ``S3DataSource``.
31
+ """
32
+
33
+ def __init__(
34
+ self,
35
+ s3_data: Union[str, PipelineVariable],
36
+ distribution: Optional[Union[str, PipelineVariable]] = None,
37
+ compression: Optional[Union[str, PipelineVariable]] = None,
38
+ content_type: Optional[Union[str, PipelineVariable]] = None,
39
+ record_wrapping: Optional[Union[str, PipelineVariable]] = None,
40
+ s3_data_type: Union[str, PipelineVariable] = "S3Prefix",
41
+ instance_groups: Optional[List[Union[str, PipelineVariable]]] = None,
42
+ input_mode: Optional[Union[str, PipelineVariable]] = None,
43
+ attribute_names: Optional[List[Union[str, PipelineVariable]]] = None,
44
+ target_attribute_name: Optional[Union[str, PipelineVariable]] = None,
45
+ shuffle_config: Optional["ShuffleConfig"] = None,
46
+ hub_access_config: Optional[dict] = None,
47
+ model_access_config: Optional[dict] = None,
48
+ ):
49
+ r"""Create a definition for input data used by an SageMaker training job.
50
+
51
+ See AWS documentation on the ``CreateTrainingJob`` API for more details
52
+ on the parameters.
53
+
54
+ Args:
55
+ s3_data (str or PipelineVariable): Defines the location of S3 data to train on.
56
+ distribution (str or PipelineVariable): Valid values: ``'FullyReplicated'``,
57
+ ``'ShardedByS3Key'`` (default: ``'FullyReplicated'``).
58
+ compression (str or PipelineVariable): Valid values: ``'Gzip'``, ``None``
59
+ (default: None). This is used only in Pipe input mode.
60
+ content_type (str or PipelineVariable): MIME type of the input data
61
+ (default: None).
62
+ record_wrapping (str or PipelineVariable): Valid values: 'RecordIO'
63
+ (default: None).
64
+ s3_data_type (str or PipelineVariable): Valid values: ``'S3Prefix'``,
65
+ ``'ManifestFile'``, ``'AugmentedManifestFile'``.
66
+ If ``'S3Prefix'``, ``s3_data`` defines a prefix of s3 objects to train on.
67
+ All objects with s3 keys beginning with ``s3_data`` will be used to train.
68
+ If ``'ManifestFile'`` or ``'AugmentedManifestFile'``,
69
+ then ``s3_data`` defines a
70
+ single S3 manifest file or augmented manifest file respectively,
71
+ listing the S3 data to train on. Both the ManifestFile and
72
+ AugmentedManifestFile formats are described at `S3DataSource
73
+ <https://docs.aws.amazon.com/sagemaker/latest/dg/API_S3DataSource.html>`_
74
+ in the `Amazon SageMaker API reference`.
75
+ instance_groups (list[str] or list[PipelineVariable]): Optional. A list of
76
+ instance group names in string format that you specified while configuring
77
+ a heterogeneous cluster using the :class:`sagemaker.instance_group.InstanceGroup`.
78
+ S3 data will be sent to all instance groups in the specified list.
79
+ For instructions on how to use InstanceGroup objects
80
+ to configure a heterogeneous cluster
81
+ through the SageMaker generic and framework estimator classes, see
82
+ `Train Using a Heterogeneous Cluster
83
+ <https://docs.aws.amazon.com/sagemaker/latest/dg/train-heterogeneous-cluster.html>`_
84
+ in the *Amazon SageMaker developer guide*.
85
+ (default: None)
86
+ input_mode (str or PipelineVariable): Optional override for this channel's input mode
87
+ (default: None). By default, channels will use the input mode defined on
88
+ ``sagemaker.estimator.EstimatorBase.input_mode``, but they will ignore
89
+ that setting if this parameter is set.
90
+
91
+ * None - Amazon SageMaker will use the input mode specified in the ``Estimator``
92
+ * 'File' - Amazon SageMaker copies the training dataset from the S3 location to
93
+ a local directory.
94
+ * 'Pipe' - Amazon SageMaker streams data directly from S3 to the container via
95
+ a Unix-named pipe.
96
+ * 'FastFile' - Amazon SageMaker streams data from S3 on demand instead of
97
+ downloading the entire dataset before training begins.
98
+
99
+ attribute_names (list[str] or list[PipelineVariable]): A list of one or more attribute
100
+ names to use that are found in a specified AugmentedManifestFile.
101
+ target_attribute_name (str or PipelineVariable): The name of the attribute will be
102
+ predicted (classified) in a SageMaker AutoML job. It is required if the input is
103
+ for SageMaker AutoML job.
104
+ shuffle_config (sagemaker.inputs.ShuffleConfig): If specified this configuration enables
105
+ shuffling on this channel. See the SageMaker API documentation for more info:
106
+ https://docs.aws.amazon.com/sagemaker/latest/dg/API_ShuffleConfig.html
107
+ hub_access_config (dict): Specify the HubAccessConfig of a
108
+ Model Reference for which a training job is being created for.
109
+ model_access_config (dict): For models that require a Model Access Config, specify True
110
+ or False for to indicate whether model terms of use have been accepted.
111
+ The `accept_eula` value must be explicitly defined as `True` in order to
112
+ accept the end-user license agreement (EULA) that some
113
+ models require. (Default: None).
114
+ """
115
+ self.config = {
116
+ "DataSource": {"S3DataSource": {"S3DataType": s3_data_type, "S3Uri": s3_data}}
117
+ }
118
+
119
+ if not (target_attribute_name or distribution):
120
+ distribution = "FullyReplicated"
121
+
122
+ if distribution is not None:
123
+ self.config["DataSource"]["S3DataSource"]["S3DataDistributionType"] = distribution
124
+
125
+ if compression is not None:
126
+ self.config["CompressionType"] = compression
127
+ if content_type is not None:
128
+ self.config["ContentType"] = content_type
129
+ if record_wrapping is not None:
130
+ self.config["RecordWrapperType"] = record_wrapping
131
+ if instance_groups is not None:
132
+ self.config["DataSource"]["S3DataSource"]["InstanceGroupNames"] = instance_groups
133
+ if input_mode is not None:
134
+ self.config["InputMode"] = input_mode
135
+ if attribute_names is not None:
136
+ self.config["DataSource"]["S3DataSource"]["AttributeNames"] = attribute_names
137
+ if target_attribute_name is not None:
138
+ self.config["TargetAttributeName"] = target_attribute_name
139
+ if shuffle_config is not None:
140
+ self.config["ShuffleConfig"] = {"Seed": shuffle_config.seed}
141
+ self.add_hub_access_config(hub_access_config)
142
+ self.add_model_access_config(model_access_config)
143
+
144
+ def add_hub_access_config(self, hub_access_config=None):
145
+ """Add Hub Access Config to the channel's configuration.
146
+
147
+ Args:
148
+ hub_access_config (dict): The HubAccessConfig to be added to the
149
+ channel's configuration.
150
+ """
151
+ if hub_access_config is not None:
152
+ self.config["DataSource"]["S3DataSource"]["HubAccessConfig"] = hub_access_config
153
+
154
+ def add_model_access_config(self, model_access_config=None):
155
+ """Add Model Access Config to the channel's configuration.
156
+
157
+ Args:
158
+ model_access_config (dict): Whether model terms of use have been accepted.
159
+ """
160
+ if model_access_config is not None:
161
+ self.config["DataSource"]["S3DataSource"]["ModelAccessConfig"] = model_access_config
162
+
163
+
164
+ class ShuffleConfig(object):
165
+ """For configuring channel shuffling using a seed.
166
+
167
+ For more detail, see the AWS documentation:
168
+ https://docs.aws.amazon.com/sagemaker/latest/dg/API_ShuffleConfig.html
169
+ """
170
+
171
+ def __init__(self, seed):
172
+ """Create a ShuffleConfig.
173
+
174
+ Args:
175
+ seed (long): the long value used to seed the shuffled sequence.
176
+ """
177
+ self.seed = seed
178
+
179
+
180
+ @attr.s
181
+ class CreateModelInput(object):
182
+ """A class containing parameters which can be used to create a SageMaker Model
183
+
184
+ Parameters:
185
+ instance_type (str): type or EC2 instance will be used for model deployment.
186
+ accelerator_type (str): elastic inference accelerator type.
187
+ """
188
+
189
+ instance_type: str = attr.ib(default=None)
190
+ accelerator_type: str = attr.ib(default=None)
191
+
192
+
193
+ @attr.s
194
+ class TransformInput(object):
195
+ """Creates a class containing parameters for configuring input data for a batch tramsform job.
196
+
197
+ It can be used when calling ``sagemaker.transformer.Transformer.transform()``
198
+
199
+ Args:
200
+ data (str): The S3 location of the input data that the model can consume.
201
+ data_type (str): The data type for a batch transform job.
202
+ (default: ``'S3Prefix'``)
203
+ content_type (str): The multi-purpose internet email extension (MIME) type of the data.
204
+ (default: None)
205
+ compression_type (str): If your transform data is compressed, specify the compression type.
206
+ Valid values: ``'Gzip'``, ``None``
207
+ (default: None)
208
+ split_type (str): The method to use to split the transform job's data files into smaller
209
+ batches.
210
+ Valid values: ``'Line'``, ``RecordIO``, ``'TFRecord'``, None
211
+ (default: None)
212
+ input_filter (str): A JSONPath expression for selecting a portion of the input data to pass
213
+ to the algorithm. For example, you can use this parameter to exclude fields, such as an
214
+ ID column, from the input. If you want SageMaker to pass the entire input dataset to the
215
+ algorithm, accept the default value ``$``. For more information on batch transform data
216
+ processing, input, join, and output, see
217
+ `Associate Prediction Results with Input Records
218
+ <https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html?>`_
219
+ in the *Amazon SageMaker developer guide*.
220
+ Example value: ``$``. For more information about valid values for this parameter, see
221
+ `JSONPath Operators
222
+ <https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators>`_
223
+ in the *Amazon SageMaker developer guide*.
224
+ (default: ``$``)
225
+ output_filter (str): A JSONPath expression for selecting a portion of the joined dataset to
226
+ save in the output file for a batch transform job. If you want SageMaker to store the
227
+ entire input dataset in the output file, leave the default value, $. If you specify
228
+ indexes that aren't within the dimension size of the joined dataset, you get an error.
229
+ Example value: ``$``. For more information about valid values for this parameter, see
230
+ `JSONPath Operators
231
+ <https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators>`_
232
+ in the *Amazon SageMaker developer guide*.
233
+ (default: ``$``)
234
+ join_source (str): Specifies the source of the data to join with the transformed data.
235
+ The default value is ``None``, which specifies not to join the input with the
236
+ transformed data. If you want the batch transform job to join the original input data
237
+ with the transformed data, set to ``Input``.
238
+ Valid values: ``None``, ``Input``
239
+ (default: None)
240
+ model_client_config (dict): Configures the timeout and maximum number of retries for
241
+ processing a transform job invocation.
242
+
243
+ * ``'InvocationsTimeoutInSeconds'`` (int) - The timeout value in seconds for an
244
+ invocation request. The default value is 600.
245
+ * ``'InvocationsMaxRetries'`` (int) - The maximum number of retries when invocation
246
+ requests are failing.
247
+
248
+ (default: ``{600,3}``)
249
+ batch_data_capture_config (dict): The dict is an object of `BatchDataCaptureConfig
250
+ <https://sagemaker.readthedocs.io/en/stable/api/utility/inputs.html#sagemaker.inputs.BatchDataCaptureConfig>`_
251
+ and specifies configuration related to batch transform job
252
+ for use with Amazon SageMaker Model Monitoring. For more information,
253
+ see `Capture data from batch transform job
254
+ <https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-data-capture-batch.html>`_
255
+ in the *Amazon SageMaker developer guide*.
256
+ (default: None)
257
+ """
258
+
259
+ data: str = attr.ib()
260
+ data_type: str = attr.ib(default="S3Prefix")
261
+ content_type: str = attr.ib(default=None)
262
+ compression_type: str = attr.ib(default=None)
263
+ split_type: str = attr.ib(default=None)
264
+ input_filter: str = attr.ib(default=None)
265
+ output_filter: str = attr.ib(default=None)
266
+ join_source: str = attr.ib(default=None)
267
+ model_client_config: dict = attr.ib(default=None)
268
+ batch_data_capture_config: dict = attr.ib(default=None)
269
+
270
+
271
+ class FileSystemInput(object):
272
+ """Amazon SageMaker channel configurations for file system data sources.
273
+
274
+ Attributes:
275
+ config (dict[str, dict]): A Sagemaker File System ``DataSource``.
276
+ """
277
+
278
+ def __init__(
279
+ self,
280
+ file_system_id,
281
+ file_system_type,
282
+ directory_path,
283
+ file_system_access_mode="ro",
284
+ content_type=None,
285
+ ):
286
+ """Create a new file system input used by an SageMaker training job.
287
+
288
+ Args:
289
+ file_system_id (str): An Amazon file system ID starting with 'fs-'.
290
+ file_system_type (str): The type of file system used for the input.
291
+ Valid values: 'EFS', 'FSxLustre'.
292
+ directory_path (str): Absolute or normalized path to the root directory (mount point) in
293
+ the file system.
294
+ Reference: https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html and
295
+ https://docs.aws.amazon.com/fsx/latest/LustreGuide/mount-fs-auto-mount-onreboot.html
296
+ file_system_access_mode (str): Permissions for read and write.
297
+ Valid values: 'ro' or 'rw'. Defaults to 'ro'.
298
+ """
299
+
300
+ if file_system_type not in FILE_SYSTEM_TYPES:
301
+ raise ValueError(
302
+ "Unrecognized file system type: %s. Valid values: %s."
303
+ % (file_system_type, ", ".join(FILE_SYSTEM_TYPES))
304
+ )
305
+
306
+ if file_system_access_mode not in FILE_SYSTEM_ACCESS_MODES:
307
+ raise ValueError(
308
+ "Unrecognized file system access mode: %s. Valid values: %s."
309
+ % (file_system_access_mode, ", ".join(FILE_SYSTEM_ACCESS_MODES))
310
+ )
311
+
312
+ self.config = {
313
+ "DataSource": {
314
+ "FileSystemDataSource": {
315
+ "FileSystemId": file_system_id,
316
+ "FileSystemType": file_system_type,
317
+ "DirectoryPath": directory_path,
318
+ "FileSystemAccessMode": file_system_access_mode,
319
+ }
320
+ }
321
+ }
322
+
323
+ if content_type:
324
+ self.config["ContentType"] = content_type
325
+
326
+
327
+ class BatchDataCaptureConfig(object):
328
+ """Configuration object passed in when create a batch transform job.
329
+
330
+ Specifies configuration related to batch transform job data capture for use with
331
+ Amazon SageMaker Model Monitoring
332
+ """
333
+
334
+ def __init__(
335
+ self,
336
+ destination_s3_uri: str,
337
+ kms_key_id: str = None,
338
+ generate_inference_id: bool = None,
339
+ ):
340
+ """Create new BatchDataCaptureConfig
341
+
342
+ Args:
343
+ destination_s3_uri (str): S3 Location to store the captured data
344
+ kms_key_id (str): The KMS key to use when writing to S3.
345
+ KmsKeyId can be an ID of a KMS key, ARN of a KMS key, alias of a KMS key,
346
+ or alias of a KMS key. The KmsKeyId is applied to all outputs.
347
+ (default: None)
348
+ generate_inference_id (bool): Flag to generate an inference id
349
+ (default: None)
350
+ """
351
+ self.destination_s3_uri = destination_s3_uri
352
+ self.kms_key_id = kms_key_id
353
+ self.generate_inference_id = generate_inference_id
354
+
355
+ def _to_request_dict(self):
356
+ """Generates a request dictionary using the parameters provided to the class."""
357
+ batch_data_capture_config = {
358
+ "DestinationS3Uri": self.destination_s3_uri,
359
+ }
360
+
361
+ if self.kms_key_id is not None:
362
+ batch_data_capture_config["KmsKeyId"] = self.kms_key_id
363
+ if self.generate_inference_id is not None:
364
+ batch_data_capture_config["GenerateInferenceId"] = self.generate_inference_id
365
+
366
+ return batch_data_capture_config
@@ -0,0 +1,61 @@
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
+ """Defines the InstanceGroup class that configures a heterogeneous cluster."""
14
+ from __future__ import absolute_import
15
+
16
+
17
+ class InstanceGroup(object):
18
+ """The class to create instance groups for a heterogeneous cluster."""
19
+
20
+ def __init__(
21
+ self,
22
+ instance_group_name=None,
23
+ instance_type=None,
24
+ instance_count=None,
25
+ ):
26
+ """It initializes an ``InstanceGroup`` instance.
27
+
28
+ You can create instance group object of the ``InstanceGroup`` class
29
+ by specifying the instance group configuration arguments.
30
+
31
+ For instructions on how to use InstanceGroup objects
32
+ to configure a heterogeneous cluster
33
+ through the SageMaker generic and framework estimator classes, see
34
+ `Train Using a Heterogeneous Cluster
35
+ <https://docs.aws.amazon.com/sagemaker/latest/dg/train-heterogeneous-cluster.html>`_
36
+ in the *Amazon SageMaker developer guide*.
37
+
38
+ Args:
39
+ instance_group_name (str): The name of the instance group.
40
+ instance_type (str): The instance type to use in the instance group.
41
+ instance_count (int): The number of instances to use in the instance group.
42
+
43
+ .. tip::
44
+
45
+ For more information about available values for the arguments,
46
+ see `InstanceGroup
47
+ <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InstanceGroup.html>`_
48
+ API in the `Amazon SageMaker API reference`.
49
+
50
+ """
51
+ self.instance_group_name = instance_group_name
52
+ self.instance_type = instance_type
53
+ self.instance_count = instance_count
54
+
55
+ def _to_request_dict(self):
56
+ """Generates a request dictionary using the parameters provided to the class."""
57
+ return {
58
+ "InstanceGroupName": self.instance_group_name,
59
+ "InstanceType": self.instance_type,
60
+ "InstanceCount": self.instance_count,
61
+ }
@@ -0,0 +1,164 @@
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
+ """Accessors to retrieve instance types."""
14
+
15
+ from __future__ import absolute_import
16
+
17
+ import logging
18
+ from typing import List, Optional
19
+
20
+ from sagemaker.core.jumpstart import utils as jumpstart_utils
21
+ from sagemaker.core.jumpstart import artifacts
22
+ from sagemaker.core.jumpstart.constants import DEFAULT_JUMPSTART_SAGEMAKER_SESSION
23
+ from sagemaker.core.jumpstart.enums import JumpStartModelType
24
+ from sagemaker.core.helper.session_helper import Session
25
+
26
+ logger = logging.getLogger(__name__)
27
+
28
+
29
+ def retrieve_default(
30
+ region: Optional[str] = None,
31
+ model_id: Optional[str] = None,
32
+ model_version: Optional[str] = None,
33
+ hub_arn: Optional[str] = None,
34
+ scope: Optional[str] = None,
35
+ tolerate_vulnerable_model: bool = False,
36
+ tolerate_deprecated_model: bool = False,
37
+ sagemaker_session: Session = DEFAULT_JUMPSTART_SAGEMAKER_SESSION,
38
+ training_instance_type: Optional[str] = None,
39
+ model_type: JumpStartModelType = JumpStartModelType.OPEN_WEIGHTS,
40
+ config_name: Optional[str] = None,
41
+ ) -> str:
42
+ """Retrieves the default instance type for the model matching the given arguments.
43
+
44
+ Args:
45
+ region (str): The AWS Region for which to retrieve the default instance type.
46
+ Defaults to ``None``.
47
+ model_id (str): The model ID of the model for which to
48
+ retrieve the default instance type. (Default: None).
49
+ model_version (str): The version of the model for which to retrieve the
50
+ default instance type. (Default: None).
51
+ hub_arn (str): The arn of the SageMaker Hub for which to retrieve
52
+ model details from. (default: None).
53
+ scope (str): The model type, i.e. what it is used for.
54
+ Valid values: "training" and "inference".
55
+ tolerate_vulnerable_model (bool): True if vulnerable versions of model
56
+ specifications should be tolerated (exception not raised). If False, raises an
57
+ exception if the script used by this version of the model has dependencies with known
58
+ security vulnerabilities. (Default: False).
59
+ tolerate_deprecated_model (bool): True if deprecated models should be tolerated
60
+ (exception not raised). False if these models should raise an exception.
61
+ (Default: False).
62
+ sagemaker_session (sagemaker.session.Session): A SageMaker Session
63
+ object, used for SageMaker interactions. If not
64
+ specified, one is created using the default AWS configuration
65
+ chain. (Default: sagemaker.jumpstart.constants.DEFAULT_JUMPSTART_SAGEMAKER_SESSION).
66
+ training_instance_type (str): In the case of a model fine-tuned on SageMaker, the training
67
+ instance type used for the training job that produced the fine-tuned weights.
68
+ Optionally supply this to get a inference instance type conditioned
69
+ on the training instance, to ensure compatability of training artifact to inference
70
+ instance. (Default: None).
71
+ config_name (Optional[str]): Name of the JumpStart Model config to apply. (Default: None).
72
+ Returns:
73
+ str: The default instance type to use for the model.
74
+
75
+ Raises:
76
+ ValueError: If the combination of arguments specified is not supported.
77
+ """
78
+ if not jumpstart_utils.is_jumpstart_model_input(model_id, model_version):
79
+ raise ValueError(
80
+ "Must specify JumpStart `model_id` and `model_version` when retrieving instance types."
81
+ )
82
+
83
+ if scope is None:
84
+ raise ValueError("Must specify scope for instance types.")
85
+
86
+ return artifacts._retrieve_default_instance_type(
87
+ model_id,
88
+ model_version,
89
+ scope,
90
+ hub_arn,
91
+ region,
92
+ tolerate_vulnerable_model,
93
+ tolerate_deprecated_model,
94
+ sagemaker_session=sagemaker_session,
95
+ training_instance_type=training_instance_type,
96
+ model_type=model_type,
97
+ config_name=config_name,
98
+ )
99
+
100
+
101
+ def retrieve(
102
+ region: Optional[str] = None,
103
+ model_id: Optional[str] = None,
104
+ model_version: Optional[str] = None,
105
+ hub_arn: Optional[str] = None,
106
+ scope: Optional[str] = None,
107
+ tolerate_vulnerable_model: bool = False,
108
+ tolerate_deprecated_model: bool = False,
109
+ sagemaker_session: Session = DEFAULT_JUMPSTART_SAGEMAKER_SESSION,
110
+ training_instance_type: Optional[str] = None,
111
+ ) -> List[str]:
112
+ """Retrieves the supported training instance types for the model matching the given arguments.
113
+
114
+ Args:
115
+ region (str): The AWS Region for which to retrieve the supported instance types.
116
+ Defaults to ``None``.
117
+ model_id (str): The model ID of the model for which to
118
+ retrieve the supported instance types. (Default: None).
119
+ model_version (str): The version of the model for which to retrieve the
120
+ supported instance types. (Default: None).
121
+ hub_arn (str): The arn of the SageMaker Hub for which to retrieve
122
+ model details from. (Default: None).
123
+ tolerate_vulnerable_model (bool): True if vulnerable versions of model
124
+ specifications should be tolerated (exception not raised). If False, raises an
125
+ exception if the script used by this version of the model has dependencies with known
126
+ security vulnerabilities. (Default: False).
127
+ tolerate_deprecated_model (bool): True if deprecated models should be tolerated
128
+ (exception not raised). False if these models should raise an exception.
129
+ (Default: False).
130
+ sagemaker_session (sagemaker.session.Session): A SageMaker Session
131
+ object, used for SageMaker interactions. If not
132
+ specified, one is created using the default AWS configuration
133
+ chain. (Default: sagemaker.jumpstart.constants.DEFAULT_JUMPSTART_SAGEMAKER_SESSION).
134
+ training_instance_type (str): In the case of a model fine-tuned on SageMaker, the training
135
+ instance type used for the training job that produced the fine-tuned weights.
136
+ Optionally supply this to get a inference instance type conditioned
137
+ on the training instance, to ensure compatability of training artifact to inference
138
+ instance. (Default: None).
139
+
140
+ Returns:
141
+ list: The supported instance types to use for the model.
142
+
143
+ Raises:
144
+ ValueError: If the combination of arguments specified is not supported.
145
+ """
146
+ if not jumpstart_utils.is_jumpstart_model_input(model_id, model_version):
147
+ raise ValueError(
148
+ "Must specify JumpStart `model_id` and `model_version` when retrieving instance types."
149
+ )
150
+
151
+ if scope is None:
152
+ raise ValueError("Must specify scope for instance types.")
153
+
154
+ return artifacts._retrieve_instance_types(
155
+ model_id=model_id,
156
+ model_version=model_version,
157
+ scope=scope,
158
+ hub_arn=hub_arn,
159
+ region=region,
160
+ tolerate_vulnerable_model=tolerate_vulnerable_model,
161
+ tolerate_deprecated_model=tolerate_deprecated_model,
162
+ sagemaker_session=sagemaker_session,
163
+ training_instance_type=training_instance_type,
164
+ )
@@ -0,0 +1,43 @@
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
+ """Accessors to retrieve instance types GPU info."""
14
+ from __future__ import absolute_import
15
+
16
+ import json
17
+ import os
18
+ from typing import Dict
19
+
20
+
21
+ def retrieve(region: str) -> Dict[str, Dict[str, int]]:
22
+ """Retrieves instance types GPU info of the given region.
23
+
24
+ Args:
25
+ region (str): The AWS region.
26
+
27
+ Returns:
28
+ dict[str, dict[str, int]]: A dictionary that contains instance types as keys
29
+ and GPU info as values or empty dictionary if the
30
+ config for the given region is not found.
31
+
32
+ Raises:
33
+ ValueError: If no config found.
34
+ """
35
+ config_path = os.path.join(
36
+ os.path.dirname(__file__), "image_uri_config", "instance_gpu_info.json"
37
+ )
38
+ try:
39
+ with open(config_path) as f:
40
+ instance_types_gpu_info_config = json.load(f)
41
+ return instance_types_gpu_info_config.get(region, {})
42
+ except FileNotFoundError:
43
+ raise ValueError("Could not find instance types gpu info.")
@@ -0,0 +1,41 @@
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
+ """Classes for starting/accessing apps hosted on Amazon SageMaker Studio."""
14
+
15
+ from __future__ import absolute_import
16
+
17
+ from enum import Enum
18
+
19
+ from sagemaker.core.interactive_apps.base_interactive_app import ( # noqa: F401
20
+ BaseInteractiveApp,
21
+ )
22
+ from sagemaker.core.interactive_apps.detail_profiler_app import ( # noqa: F401
23
+ DetailProfilerApp,
24
+ )
25
+ from sagemaker.core.interactive_apps.tensorboard import ( # noqa: F401
26
+ TensorBoardApp,
27
+ )
28
+
29
+
30
+ class SupportedInteractiveAppTypes(Enum):
31
+ """SupportedInteractiveAppTypes indicates which apps are supported."""
32
+
33
+ TENSORBOARD = 1
34
+
35
+
36
+ __all__ = [
37
+ "BaseInteractiveApp",
38
+ "DetailProfilerApp",
39
+ "SupportedInteractiveAppTypes",
40
+ "TensorBoardApp",
41
+ ]