Amazon web services 使用AWS sagemaker执行A/B测试时,如何设置推理调用的百分比?

Amazon web services 使用AWS sagemaker执行A/B测试时,如何设置推理调用的百分比?,amazon-web-services,amazon-ec2,amazon-sagemaker,Amazon Web Services,Amazon Ec2,Amazon Sagemaker,我是sagemaker的新手。我试图弄清楚如何使用AWS sagemaker执行A/B测试。我知道设置train_instance_计数将在两个实例之间分配培训。但是如何指定每个模型将处理和执行A/B测试的推理调用的百分比? 这是我从文件中所能找到的全部 “Amazon SageMaker还可以为您管理模型A/B测试。您可以 将端点配置为将流量分布到多达五个端点 不同的模型,并设置所需的推理调用的百分比 每一个都要处理。你可以随时改变这一切,给你 运行实验和确定哪种模型有很大的灵活性 在现实世界

我是sagemaker的新手。我试图弄清楚如何使用AWS sagemaker执行A/B测试。我知道设置train_instance_计数将在两个实例之间分配培训。但是如何指定每个模型将处理和执行A/B测试的推理调用的百分比? 这是我从文件中所能找到的全部

“Amazon SageMaker还可以为您管理模型A/B测试。您可以 将端点配置为将流量分布到多达五个端点 不同的模型,并设置所需的推理调用的百分比 每一个都要处理。你可以随时改变这一切,给你 运行实验和确定哪种模型有很大的灵活性 在现实世界中产生最准确的结果。”


在Amazon SageMaker端点后面可以有多个生产变体。每个生产变量都有一个初始变量权重,根据每个变量权重与总权重之比,SageMaker可以将调用分配给每个模型。例如,如果您只有一个重量为1的生产变型,则所有流量都将流向该变型。如果添加另一个初始重量为2的生产变型,新变型将获得2/3的流量,第一个变型将获得1/3的流量

您可以在Amazon SageMaker文档中查看ProductionVariant的更多详细信息:


您可以在“创建端点配置”时提供ProductionVariant数组,并且可以使用“更新端点权重和容量”调用更新变体:

您可以在Amazon SageMaker端点后面有多个生产变体。每个生产变量都有一个初始变量权重,根据每个变量权重与总权重之比,SageMaker可以将调用分配给每个模型。例如,如果您只有一个重量为1的生产变型,则所有流量都将流向该变型。如果添加另一个初始重量为2的生产变型,新变型将获得2/3的流量,第一个变型将获得1/3的流量

您可以在Amazon SageMaker文档中查看ProductionVariant的更多详细信息:


您可以在“创建端点配置”时提供ProductionVariant数组,您可以使用“更新端点权重和容量”调用更新变体:

您可以使用类似的方法,我刚刚创建了一个函数,该函数使用一些用户输入实现AWS SDK库。该示例根据下面代码中的InitialVariateWight参数,以1:1的比率拆分model1和model2的流量。有关SageMaker库的详细信息,请访问:


您可以使用类似的方法,我刚刚创建了一个函数,它使用一些用户输入实现AWS SDK库。该示例根据下面代码中的InitialVariateWight参数,以1:1的比率拆分model1和model2的流量。有关SageMaker库的详细信息,请访问:

def custom_create_endpoint_config(model1,model2,endpoint_config_name,instancetype= 'm1.t2.medium'):
    response = client.create_endpoint_config(
    EndpointConfigName=endpoint_config_name,
    ProductionVariants= [
    {
        'VariantName': 'variant1',
        'ModelName': model1,
        'InitialInstanceCount': 1,
        'InstanceType': instancetype,
        'InitialVariantWeight': 1
    },
    {
        'VariantName': 'variant2',
        'ModelName': model2,
        'InitialInstanceCount': 1,
        'InstanceType': instancetype,
        'InitialVariantWeight': 1
    },],        
    Tags=[
    {
        'Key': str(endpoint_config_name +'_key'),
        'Value': str(endpoint_config_value +'_value')
    },]
    )


def custom_delete_endpoint_config(endpoint_config_name):
    client.delete_endpoint_config(\
        EndpointConfigName=config_name)