command to start sagemaker training
include sample training
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
from enum import Enum
|
||||
from typing import Literal
|
||||
from typing import Any, Literal, TypedDict
|
||||
|
||||
from mypy_boto3_s3.literals import BucketLocationConstraintType
|
||||
from mypy_boto3_sagemaker.literals import TrainingInstanceTypeType
|
||||
from pydantic import BaseModel, Field, model_validator
|
||||
|
||||
|
||||
@@ -17,10 +18,19 @@ class MlflowServerSize(str, Enum):
|
||||
large = "Large"
|
||||
|
||||
|
||||
class Boto3SessionKwargs(TypedDict):
|
||||
profile_name: str
|
||||
region_name: str
|
||||
|
||||
|
||||
class AwsConfig(BaseModel):
|
||||
region: BucketLocationConstraintType | Literal["us-east-1"] = "us-east-1"
|
||||
profile: str = "default"
|
||||
|
||||
@property
|
||||
def boto3_session(self) -> Boto3SessionKwargs:
|
||||
return {"profile_name": self.profile, "region_name": self.region}
|
||||
|
||||
|
||||
class S3Config(BaseModel):
|
||||
bucket: str = "my-qc-mlops-bucket"
|
||||
@@ -28,8 +38,18 @@ class S3Config(BaseModel):
|
||||
model_prefix: str = "models/"
|
||||
|
||||
|
||||
class TrainingConfig(BaseModel):
|
||||
instance_type: TrainingInstanceTypeType = "ml.m5.xlarge"
|
||||
instance_count: int = 1
|
||||
image_uri: str = ""
|
||||
entry_point: str | None = None
|
||||
source_dir: str | None = None
|
||||
hyperparameters: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class SageMakerConfig(BaseModel):
|
||||
role_name: str = "qc-cli-sagemaker-role"
|
||||
training: TrainingConfig = Field(default_factory=TrainingConfig)
|
||||
|
||||
|
||||
class MlflowConfig(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user