Hospede vários modelos que usam contêineres diferentes atrás de um endpoint - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Hospede vários modelos que usam contêineres diferentes atrás de um endpoint

SageMaker endpoints de vários contêineres permitem que os clientes implantem vários contêineres, que usam modelos ou estruturas diferentes, em um único endpoint. SageMaker Os contêineres podem ser executados em uma sequência como um pipeline de inferência, ou cada contêiner pode ser acessado individualmente usando invocação direta para melhorar a utilização do endpoint e otimizar os custos.

Para obter informações sobre como invocar os contêineres em um endpoint de vários contêineres em sequência, consulte Hospede modelos junto com a lógica de pré-processamento como pipeline de inferência serial atrás de um endpoint.

Para obter informações sobre como invocar o contêiner específico em um endpoint de vários contêineres em sequência, consulte Use um endpoint de vários contêineres com invocação direta

Criar um endpoint de vários contêineres (Boto 3)

Crie um endpoint de vários contêineres chamando CreateModelCreateEndpointConfig, e CreateEndpointAPIs como você faria para criar qualquer outro endpoint. Você pode executar esses contêineres sequencialmente como um pipeline de inferência ou executar cada contêiner individual usando invocação direta. Os endpoints de vários contêineres têm os seguintes requisitos quando você liga create_model:

  • Use o parâmetro Containers em vez de PrimaryContainer e inclua mais de um contêiner no parâmetro Containers.

  • O parâmetro ContainerHostname é necessário para cada contêiner em um endpoint de vários contêineres com invocação direta.

  • Defina oparâmetro Mode do campo InferenceExecutionConfig para Direct para invocação direta de cada contêiner ou Serial para usar contêineres como um pipeline de inferência. O modo padrão é Serial.

nota

Atualmente, há um limite de até 15 contêineres suportados em um endpoint de vários contêineres.

O exemplo a seguir cria um modelo de vários contêineres para invocação direta.

  1. Crie elementos de contêiner e InferenceExecutionConfig com invocação direta.

    container1 = { 'Image': '123456789012.dkr.ecr.us-east-1.amazonaws.com/myimage1:mytag', 'ContainerHostname': 'firstContainer' } container2 = { 'Image': '123456789012.dkr.ecr.us-east-1.amazonaws.com/myimage2:mytag', 'ContainerHostname': 'secondContainer' } inferenceExecutionConfig = {'Mode': 'Direct'}
  2. Crie o modelo com os elementos do contêiner e defina o campo InferenceExecutionConfig.

    import boto3 sm_client = boto3.Session().client('sagemaker') response = sm_client.create_model( ModelName = 'my-direct-mode-model-name', InferenceExecutionConfig = inferenceExecutionConfig, ExecutionRoleArn = role, Containers = [container1, container2] )

Para criar um endpoint, você chamaria create_endpoint_config e create_endpoint da mesma forma que faria para criar qualquer outro endpoint.

Atualizar um endpoint de vários contêineres

Para atualizar um endpoint de vários contêineres, conclua as etapas a seguir.

  1. Chame create_model para criar um novo modelo com um novo valor para o parâmetro Mode no campo InferenceExecutionConfig.

  2. Chame create_endpoint_config para criar uma nova configuração de endpoint com um nome diferente usando o novo modelo que você criou na etapa anterior.

  3. Chame update_endpoint para atualizar o endpoint com a nova configuração de endpoint que você criou na etapa anterior.

Excluir um endpoint de vários contêineres

Para excluir um endpoint, chame delete_endpoint e forneça o nome do endpoint que você deseja excluir como parâmetro EndpointName.