У меня есть модель Sagemaker, обученная и развернутая, и я хочу запустить пакетное преобразование для нескольких файлов. У меня есть лямбда-функция, настроенная для запуска при загрузке нового файла на S3. В настоящее время я видел только способы использовать функцию Invoke Endpoint для лямбды, т.е.
runtime= boto3.client('runtime.sagemaker')
message = ["On Wed Sep PDT Brent Welch said Hacksaw said W"]
response = runtime.invoke_endpoint(EndpointName="sagemaker-scikit-learn-2020-02-05-13-44-45-011",
ContentType='text/plain',
Body=message)
json.loads(response['Body'].read())
Однако у меня есть несколько файлов, которые должны быть обработаны моделью Sagemaker.
У меня есть код для создать преобразователь и запустить пакетное преобразование для нескольких файлов
import sagemaker
training_job = sagemaker.estimator.Estimator.attach("{model_name")
transformer = training_job.transformer(instance_count=1,instance_type='ml.m4.xlarge',strategy='MultiRecord',assemble_with='Line')
#batch_input_s3
transformer.transform(batch_input_s3)
print('Waiting for transform job: ' + transformer.latest_transform_job.job_name)
transformer.wait()
, однако я не могу использовать этот код преобразователя в лямбда-выражении, поскольку для этого требуется библиотека sagemaker, размер которой превышает размер файла zip, равный 50 МБ