Skip to content

Feat/jumpstart model estimator classes #3796

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from 75 commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
881fda6
feat: jumpstart kwargs and env vars
evakravi Apr 13, 2023
b0efda2
fix: typo
evakravi Apr 13, 2023
48b62b8
feat: jumpstart model and estimator class (initial commit)
evakravi Apr 14, 2023
203ecce
chore: fix metadata field name, update integ test
evakravi Apr 17, 2023
d170464
Merge remote-tracking branch 'origin' into feat/jumpstart-kwargs-env-…
evakravi Apr 17, 2023
49be6f0
chore: address PR feedback
evakravi Apr 18, 2023
18880b6
fix: pylint
evakravi Apr 18, 2023
b1fc3c0
chore: respond to git comments (wip)
evakravi Apr 18, 2023
949d5cf
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi Apr 18, 2023
a48929e
Merge pull request #5 from evakravi/feat/jumpstart-kwargs-env-vars
evakravi Apr 18, 2023
920715f
feat: jumpstart predictor
evakravi Apr 12, 2023
cc10706
chore: use public methods
evakravi Apr 12, 2023
3197d3b
fix: unit tests failing
evakravi Apr 12, 2023
9fffdb8
chore: address PR comments
evakravi Apr 14, 2023
343ddd2
fix: jumpstart predictor class support following integ tests
evakravi Apr 14, 2023
25ad8b5
chore: remove functional import
evakravi Apr 18, 2023
5be80e3
fix: merge conflicts
evakravi Apr 18, 2023
f120e0d
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi Apr 18, 2023
f90a68f
chore: working JumpStartEstimator and JumpStartModel
evakravi Apr 20, 2023
80d7a39
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi Apr 20, 2023
c3e7df1
chore: include all kwargs from parent class
evakravi Apr 20, 2023
a1941e2
fix: no default session for JumpStartPredictor
evakravi Apr 21, 2023
0c7c3ff
chore: add unit tests
evakravi Apr 21, 2023
862abb9
chore: add unit tests for kwarg overrides
evakravi Apr 21, 2023
ba6e0d1
chore: add more logging statements
evakravi Apr 24, 2023
7cb186c
fix: instance type
evakravi Apr 24, 2023
662e104
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi Apr 24, 2023
a75779a
fix: failing integ tests due to sm session
evakravi Apr 24, 2023
e0fb32f
fix: failing integ test
evakravi Apr 24, 2023
cb44717
chore: add support to JumpStartModel and JumpStartEstimator for depre…
evakravi Apr 24, 2023
b6689b1
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi Apr 24, 2023
d058f42
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi Apr 25, 2023
9c5abb9
chore: address PR comments (wip)
evakravi Apr 25, 2023
c583971
chore: remove JumpStartPredictor
evakravi Apr 25, 2023
88acb4a
chore: add unit tests for JS Estimator/Model vulnerability/deprecatio…
evakravi Apr 25, 2023
a4d67ff
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi Apr 25, 2023
cae5611
chore: address minor nits
evakravi Apr 25, 2023
8814ba7
fix: failing unit test
evakravi Apr 25, 2023
f1b0b78
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi Apr 26, 2023
5d7c691
chore: address some PR comments
evakravi Apr 26, 2023
cfb5156
chore: add intelligent defaults jumpstart support, additional unit te…
evakravi Apr 27, 2023
00613c8
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi Apr 27, 2023
29ee5cf
chore: dont pass sagemaker session to estimator deploy
evakravi Apr 27, 2023
716b8ae
fix: default calling role
evakravi Apr 27, 2023
fef884f
fix: failing unit tests
evakravi Apr 27, 2023
480af82
fix: failing test, enum name, PR comments
evakravi Apr 27, 2023
88cad26
Merge branch 'master' into feat/jumpstart-model-estimator-classes
evakravi Apr 27, 2023
93cc8fd
chore: break up artifacts.py into smaller files
evakravi Apr 27, 2023
ec7d160
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi Apr 27, 2023
9e0cdeb
fix: failing unit tests
evakravi Apr 27, 2023
303d989
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi Apr 27, 2023
a11dac5
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi Apr 28, 2023
0180f18
chore: address PR comments
evakravi Apr 28, 2023
99df66e
chore: reduce excess logging
evakravi May 1, 2023
7decf4d
chore: implement usability improvements from bug bash
evakravi May 1, 2023
c00c0d5
chore: fix typing, if statement
evakravi May 2, 2023
89a4200
chore: address PR comments, change behavior with default predictors
evakravi May 2, 2023
8ff1f4b
chore: add support for jumpstart volume size arguments
evakravi May 2, 2023
5a3bb86
fix: integ tests, inefficient model id check
evakravi May 2, 2023
ba7d9d2
chore: add support for JS network isolation
evakravi May 2, 2023
dfd903a
chore: default value for model id
evakravi May 3, 2023
3c0073a
chore: add latency integ test for init, move is_valid_model_id out of…
evakravi May 3, 2023
5b02858
chore: log warning for unsupported incremental training, fix passing …
evakravi May 3, 2023
42116de
chore: dont pass network isolation field from estimator to deploy
evakravi May 3, 2023
3a7701b
chore: add unit test for confirming role and SM session pass automati…
evakravi May 3, 2023
0fa1390
chore: add default resource names
evakravi May 3, 2023
b6e2cfd
chore: use resource_name_base
evakravi May 3, 2023
738df16
chore: improve error msg for deprecated and vulnerable models, fix py…
evakravi May 4, 2023
559db04
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi May 4, 2023
8f36a23
chore: improve error msg, remove * imports
evakravi May 5, 2023
64ca588
fix: failing integ test
evakravi May 5, 2023
9c8fc36
chore: avoid exceeding resource limits for training timeout
evakravi May 8, 2023
8802bff
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi May 8, 2023
685c8df
chore: address PR comments
evakravi May 8, 2023
0262cdc
fix: unit test for matching args
evakravi May 8, 2023
7154fc6
chore: improve comments
evakravi May 8, 2023
8b55e39
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi May 8, 2023
58b440e
Merge remote-tracking branch 'origin' into feat/jumpstart-model-estim…
evakravi May 9, 2023
f04d38c
Merge branch 'master' into feat/jumpstart-model-estimator-classes
evakravi May 9, 2023
739b2da
Merge branch 'master' into feat/jumpstart-model-estimator-classes
evakravi May 9, 2023
e629484
fix: predictor with accept/content type
evakravi May 9, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 103 additions & 0 deletions src/sagemaker/accept_types.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"). You
# may not use this file except in compliance with the License. A copy of
# the License is located at
#
# http://aws.amazon.com/apache2.0/
#
# or in the "license" file accompanying this file. This file is
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.
"""This module is for SageMaker accept types."""
from __future__ import absolute_import
from typing import List, Optional

from sagemaker.jumpstart import artifacts, utils as jumpstart_utils


def retrieve_options(
region: Optional[str] = None,
model_id: Optional[str] = None,
model_version: Optional[str] = None,
tolerate_vulnerable_model: bool = False,
tolerate_deprecated_model: bool = False,
) -> List[str]:
"""Retrieves the supported accept types for the model matching the given arguments.

Args:
region (str): The AWS Region for which to retrieve the supported accept types.
Defaults to ``None``.
model_id (str): The model ID of the model for which to
retrieve the supported accept types. (Default: None).
model_version (str): The version of the model for which to retrieve the
supported accept types. (Default: None).
tolerate_vulnerable_model (bool): True if vulnerable versions of model
specifications should be tolerated (exception not raised). If False, raises an
exception if the script used by this version of the model has dependencies with known
security vulnerabilities. (Default: False).
tolerate_deprecated_model (bool): True if deprecated models should be tolerated
(exception not raised). False if these models should raise an exception.
(Default: False).
Returns:
list: The supported accept types to use for the model.

Raises:
ValueError: If the combination of arguments specified is not supported.
"""
if not jumpstart_utils.is_jumpstart_model_input(model_id, model_version):
raise ValueError(
"Must specify JumpStart `model_id` and `model_version` when retrieving accept types."
)

return artifacts._retrieve_supported_accept_types(
model_id,
model_version,
region,
tolerate_vulnerable_model,
tolerate_deprecated_model,
)


def retrieve_default(
region: Optional[str] = None,
model_id: Optional[str] = None,
model_version: Optional[str] = None,
tolerate_vulnerable_model: bool = False,
tolerate_deprecated_model: bool = False,
) -> str:
"""Retrieves the default accept type for the model matching the given arguments.

Args:
region (str): The AWS Region for which to retrieve the default accept type.
Defaults to ``None``.
model_id (str): The model ID of the model for which to
retrieve the default accept type. (Default: None).
model_version (str): The version of the model for which to retrieve the
default accept type. (Default: None).
tolerate_vulnerable_model (bool): True if vulnerable versions of model
specifications should be tolerated (exception not raised). If False, raises an
exception if the script used by this version of the model has dependencies with known
security vulnerabilities. (Default: False).
tolerate_deprecated_model (bool): True if deprecated models should be tolerated
(exception not raised). False if these models should raise an exception.
(Default: False).
Returns:
str: The default accept type to use for the model.

Raises:
ValueError: If the combination of arguments specified is not supported.
"""
if not jumpstart_utils.is_jumpstart_model_input(model_id, model_version):
raise ValueError(
"Must specify JumpStart `model_id` and `model_version` when retrieving accept types."
)

return artifacts._retrieve_default_accept_type(
model_id,
model_version,
region,
tolerate_vulnerable_model,
tolerate_deprecated_model,
)
Loading