Skip to content

InferenceExperiment ​

The InferenceExperiment resource lets you create and manage AWS SageMaker InferenceExperiments for evaluating different model variants in a production environment.

Minimal Example ​

Create a basic InferenceExperiment with required properties and a couple of optional ones.

ts
import AWS from "alchemy/aws/control";

const basicInferenceExperiment = await AWS.SageMaker.InferenceExperiment("basicInferenceExperiment", {
  Name: "BasicInferenceExperiment",
  RoleArn: "arn:aws:iam::123456789012:role/SageMakerExecutionRole",
  ModelVariants: [
    {
      ModelName: "MyModelVariantA",
      VariantName: "VariantA",
      InitialInstanceCount: 1,
      InstanceType: "ml.m5.large"
    },
    {
      ModelName: "MyModelVariantB",
      VariantName: "VariantB",
      InitialInstanceCount: 1,
      InstanceType: "ml.m5.large"
    }
  ],
  EndpointName: "MySageMakerEndpoint",
  Description: "A simple inference experiment to compare model variants."
});

Advanced Configuration ​

Configure an InferenceExperiment with advanced settings, including data storage configuration and shadow mode.

ts
const advancedInferenceExperiment = await AWS.SageMaker.InferenceExperiment("advancedInferenceExperiment", {
  Name: "AdvancedInferenceExperiment",
  RoleArn: "arn:aws:iam::123456789012:role/SageMakerExecutionRole",
  ModelVariants: [
    {
      ModelName: "MyModelVariantA",
      VariantName: "VariantA",
      InitialInstanceCount: 1,
      InstanceType: "ml.m5.large"
    },
    {
      ModelName: "MyModelVariantB",
      VariantName: "VariantB",
      InitialInstanceCount: 1,
      InstanceType: "ml.m5.large"
    }
  ],
  EndpointName: "MySageMakerEndpoint",
  DataStorageConfig: {
    S3Path: "s3://my-bucket/inference-data/",
    KmsKey: "arn:aws:kms:us-west-2:123456789012:key/abcd1234-a123-456a-a12b-a123b4cd56ef"
  },
  ShadowModeConfig: {
    ShadowModelVariants: [
      {
        ModelName: "MyModelVariantShadow",
        VariantName: "ShadowVariant",
        InitialInstanceCount: 1,
        InstanceType: "ml.m5.large"
      }
    ]
  },
  Description: "An advanced inference experiment to evaluate model performance."
});

Scheduled Inference Experiment ​

Create an InferenceExperiment with a specific schedule for running the evaluation.

ts
const scheduledInferenceExperiment = await AWS.SageMaker.InferenceExperiment("scheduledInferenceExperiment", {
  Name: "ScheduledInferenceExperiment",
  RoleArn: "arn:aws:iam::123456789012:role/SageMakerExecutionRole",
  ModelVariants: [
    {
      ModelName: "MyModelVariantA",
      VariantName: "VariantA",
      InitialInstanceCount: 1,
      InstanceType: "ml.m5.large"
    }
  ],
  EndpointName: "MySageMakerEndpoint",
  Schedule: {
    StartTime: new Date(Date.now() + 1000 * 60 * 60), // Start in 1 hour
    EndTime: new Date(Date.now() + 1000 * 60 * 60 * 24), // End in 24 hours
    Frequency: "Daily" // Runs every day
  },
  Description: "A scheduled inference experiment to evaluate model performance daily."
});