AWS Ошибка схемы SageMaker SparkML: member.environment 'не удалось удовлетворить ограничение - PullRequest
0 голосов
/ 26 мая 2020

Я развертываю модель на AWS через Sagemaker:

Я настроил схему JSON следующим образом:

import json
schema = {
    "input": [
        {
            "name": "V1",
            "type": "double"
        }, 
        {
            "name": "V2",
            "type": "double"
        }, 
        {
            "name": "V3",
            "type": "double"
        }, 
        {
            "name": "V4",
            "type": "double"
        }, 
        {
            "name": "V5",
            "type": "double"
        }, 
        {
            "name": "V6",
            "type": "double"
        },
        {
            "name": "V7",
            "type": "double"
        }, 
        {
            "name": "V8",
            "type": "double"
        }, 
        {
            "name": "V9",
            "type": "double"
        }, 
        {
            "name": "V10",
            "type": "double"
        }, 
        {
            "name": "V11",
            "type": "double"
        }, 
        {
            "name": "V12",
            "type": "double"
        }, 
        {
            "name": "V13",
            "type": "double"
        }, 
        {
            "name": "V14",
            "type": "double"
        },
        {
            "name": "V15",
            "type": "double"
        }, 
        {
            "name": "V16",
            "type": "double"
        }, 
        {
            "name": "V17",
            "type": "double"
        }, 
        {
            "name": "V18",
            "type": "double"
        }, 
        {
            "name": "V19",
            "type": "double"
        }, 
                {
            "name": "V20",
            "type": "double"
        }, 
        {
            "name": "V21",
            "type": "double"
        }, 
        {
            "name": "V22",
            "type": "double"
        },
        {
            "name": "V23",
            "type": "double"
        }, 
        {
            "name": "V24",
            "type": "double"
        }, 
        {
            "name": "V25",
            "type": "double"
        }, 
        {
            "name": "V26",
            "type": "double"
        }, 
        {
            "name": "V27",
            "type": "double"
        },
        {
            "name": "V28",
            "type": "double"
        },
        {
            "name": "Amount",
            "type": "double"
        },         
    ],
    "output": 
        {
            "name": "features",
            "type": "double",
            "struct": "vector"
        }
}
schema_json = json.dumps(schema)
print(schema_json)

И развернул как:

from sagemaker.model import Model
from sagemaker.pipeline import PipelineModel
from sagemaker.sparkml.model import SparkMLModel

sparkml_data = 's3://{}/{}/{}'.format(s3_model_bucket, s3_model_key_prefix, 'model.tar.gz')
# passing the schema defined above by using an environment variable that sagemaker-sparkml-serving understands
sparkml_model = SparkMLModel(model_data=sparkml_data, env={'SAGEMAKER_SPARKML_SCHEMA' : schema_json})
xgb_model = Model(model_data=xgb_model.model_data, image=training_image)

model_name = 'inference-pipeline-' + timestamp_prefix
sm_model = PipelineModel(name=model_name, role=role, models=[sparkml_model, xgb_model])

    endpoint_name = 'inference-pipeline-ep-' + timestamp_prefix
sm_model.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge', endpoint_name=endpoint_name)

Я получил следующую ошибку:

ClientError: Произошла ошибка (ValidationException) при вызове операции CreateModel: обнаружена 1 ошибка проверки: значение '{SAGEMAKER_SPARKML_SCHEMA = {"input": [{"type ":" double "," name ":" V1 "}, {" type ":" double "," name ":" V2 "}, {" type ":" double "," name ":" V3 "} , {"type": "double", "name": "V4"}, {"type": "double", "name": "V5"}, {"type": "double", "name": "V6"}, {"type": "double", "name": "V7"}, {"type": "double", "name": "V8"}, {"type": "double", "name": "V9"}, {"type": "double", "name": "V10"}, {"type": "double", "name": "V11"}, {"type": "double", "name": "V12"}, {"type": "double", "name": "V13"}, {"type": "double", "name": "V14"}, { "type": "double", "name": "V15"}, {"type": "double", "name": "V16"}, {"type": "double", "name": "V17 "}, {" тип ":" двойной "," имя ":" V18 "}, {" тип ":" дубль e "," name ":" V19 ​​"}, {" type ":" double "," name ":" V20 "}, {" type ":" double "," name ":" V21 "}, {" type ":" double "," name ":" V22 "}, {" type ":" double "," name ":" V23 "}, {" type ":" double "," name ":" V24 " }, {"type": "double", "name": "V25"}, {"type": "double", "name": "V26"}, {"type": "double", "name" : "V27"}, {"type": "double", "name": "V28"}, {"type": "double", "name": "Amount"}], "output": {"type ":" double "," name ":" features "," struct ":" vector "}}} 'в' контейнерах.1 **. member.environment 'не удалось удовлетворить ограничение: значение карты должно удовлетворять ограничению : [Член должен иметь длину не менее 1024 , ** Член должен иметь длину больше или равную 0, Член должен соответствовать шаблону регулярного выражения: [\ S \ s] *]

Я пытаюсь уменьшить количество своих функций до 20, и он может развернуться. Просто интересно, как я могу передать схему с 29 атрибутами?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...