Как передать большие .csv файлы в amazon sagemaker для прогнозов с использованием задач пакетного преобразования - PullRequest
0 голосов
/ 21 ноября 2018

Я создал собственную модель и развернул ее на Sagemaker.Я вызываю конечную точку, используя задания пакетного преобразования.Работает, если входной файл небольшой, т. Е. Количество строк в файле csv меньше.Если я загружаю файл с примерно 200000 строк, я получаю эту ошибку в журналах облачных часов.

2018-11-21 09:11:52.666476: W external/org_tensorflow/tensorflow/core/framework/allocator.cc:113]
Allocation of 2878368000 exceeds 10% of system memory.
2018-11-21 09:11:53.166493: W external/org_tensorflow/tensorflow/core/framework/allocator.cc:113] 
Allocation of 2878368000 exceeds 10% of system memory.
[2018-11-21 09:12:02,544] ERROR in serving: <_Rendezvous of RPC that 
terminated with:
#011status = StatusCode.DEADLINE_EXCEEDED
#011details = "Deadline Exceeded"
#011debug_error_string = "
{
"created": "@1542791522.543282048",
"description": "Error received from peer",
"file": "src/core/lib/surface/call.cc",
"file_line": 1017,
"grpc_message": "Deadline Exceeded",
"grpc_status": 4
}
"

Любые идеи, что может быть не так.Это функция преобразования, которую я использую для создания задания преобразования.

transformer =sagemaker.transformer.Transformer(
base_transform_job_name='Batch-Transform',
model_name='sagemaker-tensorflow-2018-11-21-07-58-15-887',
instance_count=1,
instance_type='ml.m4.xlarge',
output_path='s3://2-n2m-sagemaker-json-output/out_files/'

)
input_location = 's3://1-n2m-n2g-csv-input/smal_sagemaker_sample.csv'
transformer.transform(input_location, content_type='text/csv', split_type='Line')

Файл .csv содержит 2 столбца для имени и фамилии клиента, которые я затем предварительно обрабатываю в самом Sagemaker, используяinput_fn ().

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Было внесено и объединено изменение, позволяющее пользователям настраивать время ожидания с помощью переменной среды, SAGEMAKER_TFS_GRPC_REQUEST_TIMEOUT.

0 голосов
/ 11 декабря 2018

Похоже, что ошибка происходит от клиента GRPC, закрывающего соединение до того, как сервер сможет ответить.(Похоже, существует существующий запрос функции для контейнера тензорного потока sagemaker на https://github.com/aws/sagemaker-tensorflow-container/issues/46, чтобы сделать этот тайм-аут настраиваемым)

Вы можете попробовать несколько вещей с помощью Transformer sagemaker, чтобы ограничить размер каждого из них.индивидуальный запрос, чтобы он соответствовал тайм-ауту:

  • Установите max_payload на меньшее значение, скажем, 2-3 МБ ( по умолчанию 6 МБ )
  • Если ваши метрики экземпляра указывают, что у него есть вычислительные ресурсы / ресурсы памяти, попробуйте max_concurrent_transforms> 1, чтобы использовать несколько рабочих
  • Разделите файл CSV на несколько входных файлов.Имея больший набор данных, вы также можете увеличить количество экземпляров, чтобы увеличить объем обработки
...