Как реализовать декодер поиска луча в конечной точке хостинга SageMaker?

Я создал модель SageMaker для нейронной сети Seq2Seq, а затем запустил конечную точку SageMaker:

create_endpoint_config_response = sage.create_endpoint_config(
    EndpointConfigName = endpoint_config_name,
    ProductionVariants=[{
        'InstanceType':'ml.m4.xlarge', 
        'InitialInstanceCount':1,
        'ModelName':model_name,
        'VariantName':'AllTraffic'}])

create_endpoint_response = sage.create_endpoint(
    EndpointName=endpoint_name,
    EndpointConfigName=endpoint_config_name)

Эта стандартная конечная точка не поддерживает поиск луча. Каков наилучший подход к созданию конечной точки SageMaker, поддерживающей поиск луча?


person Brendan Johnson    schedule 31.07.2018    source источник
comment
Можете ли вы объяснить, как и почему вы хотите использовать Beam Search в конечной точке? Я не знаком с концепцией. Также вы используете алгоритмы предварительной сборки, передаете свою собственную оценку или создаете свой собственный файл докера?   -  person dennis-w    schedule 31.07.2018
comment
Конкретная модель, которую я обучил, имеет несколько возможных правильных выходных последовательностей (думайте об этом как о проблеме seq2seq один ко многим), а стандартный декодер будет выводить только одно предсказание для одной входной последовательности. Используя поиск луча во время вывода, можно вывести несколько выходных последовательностей-кандидатов, ранжированных по вероятности. Нейронная сеть использует Sockeye, а не специальный алгоритм, следуя руководству Amazon здесь и выполняется внутри экземпляра блокнота.   -  person Brendan Johnson    schedule 01.08.2018


Ответы (1)


Основываясь на вашем комментарии, я считаю, что единственным решением является создание собственного контейнера докеров для вывода. Таким образом, вы можете загрузить уже обученную модель и делать с ней все, что захотите. Этот пример — хорошее начало, когда вы хотите узнать, как использовать докер в sagemaker.

Для вашего случая использования было бы лучше найти исходный код встроенной модели seq2seq sagemaker (встроенные алгоритмы также являются просто образами докеров), изменить его в соответствии с вашими потребностями, создать модифицированный контейнер докера и загрузить его в свой aws ecr, из где вы можете загрузить его с помощью sagemaker.

К сожалению, я не знаю, есть ли в открытом доступе исходный код контейнеров докеров (с первого раза не нашел).

person dennis-w    schedule 01.08.2018