Ошибка DisableProfiler при выполнении XGBoost fit

Вопрос или проблема

Внезапно, код, который работал (до рождественских каникул), теперь не работает. Я хотел бы знать, почему. Документация кажется неполной, а сообщение об ошибке – загадочным в контексте.

При попытке настроить оценщик sagemaker я получаю ошибку

Ошибка валидации параметра:
Отсутствует требуемый параметр в ProfilerConfig: "S3OutputPath"
Неизвестный параметр в ProfilerConfig: "DisableProfiler", должен быть одним из: S3OutputPath, ProfilingIntervalInMilliseconds, ProfilingParameters

Единственное, что произошло между этими событиями, это то, что один из инженеров облачной инфраструктуры изменил настройки, чтобы разрешить локальное копирование репозитория github (ранее я загружал zip-файл). После этого перестало работать.
Конкретный код, который участвует в этом, приведен ниже.

xgb_estimator = Estimator(
       container,
       role,
       instance_count=1,
       instance_type="ml.m5.xlarge",
       disable_profiler=True,
       sagemaker_session=session,
   )
   

   

xgb_estimator.set_hyperparameters(
       max_depth=5,
       eta=0.2,
       gamma=4,
       min_child_weight=6,
       subsample=0.8,
       disable_profiler=True,
       output_path = folder,
       num_round=800,
   )




 xgb_estimator.fit({"train": train_input, },  logs=False,)

Я получил этот ответ от Amazon – он сработал.

Он включает детали, которые я изначально не знал, что нужно включить в вопрос.

Я выполнял код из терминала, созданного в Studio. Оказывается, конфигурация для этого может быть нестабильной. Изначально мне удалось настроить конфигурацию так, чтобы она работала, но что-то в фоновом режиме произошло (подробности не были определены, но проблема стабильности при выполнении таким образом была подчеркнута Amazon), и мне было рекомендовано создать экземпляр ноутбука из меню файла, а затем в верхней строке ноутбука есть значок для создания терминала – который получает root shell прямо на docker-контейнере, имеющем доступ к тому же (виртуальному) диску.

Результат – запуск с docker-контейнера, созданного из экземпляров ноутбука, созданных из меню файла Studio, гораздо более стабильный.

Ответ или решение

Причина ошибки DisableProfiler в XGBoost fit при использовании SageMaker

Недавно возникшая ошибка DisableProfiler при попытке выполнить метод fit в SageMaker может показаться неожиданной, учитывая, что ранее ваш код работал корректно. Однако эта проблема, скорее всего, вызвана изменениями в конфигурации вашей среды или обновлениями, связанными с используемыми сервисами. В данной статье мы рассмотрим причины возникновения ошибки, а также предложим пути их устранения.

Понимание источника ошибки

На уровне поверхности, ошибка, представленная ниже, указывает на две основные проблемы в конфигурации параметров:

Parameter validation failed:
Missing required parameter in ProfilerConfig: "S3OutputPath"
Unknown parameter in ProfilerConfig: "DisableProfiler", must be one of: S3OutputPath, ProfilingIntervalInMilliseconds, ProfilingParameters
  1. Отсутствие параметра S3OutputPath в ProfilerConfig: SageMaker требует, чтобы S3OutputPath был указан, когда профайлер включен. Этот путь указывает, куда в S3 будут загружаться данные профайлинга.

  2. Неизвестный параметр "DisableProfiler": Параметр DisableProfiler, похоже, не поддерживается в вашей конфигурации ProfilerConfig. Это может указывать на то, что вы использовали параметр неправильно или что он был удален из последних версий API.

Решение проблемы

Следуя предоставленным шагам, вы сможете стабилизировать работу вашей среды и решить возникшую ошибку:

  1. Проверка документации и параметров: Убедитесь, что в вашей конфигурации используется актуальная версия API, и настройте параметры профилирования согласно последней документации. Это может означать изменение параметров S3OutputPath и других, связанных с профилированием.

  2. Использование более стабильной среды 실행: Из вашего описания следует, что проблема проявилась при работе в нестабильной среде, созданной в Studio. Amazon рекомендовала переключиться на использование ноутбуков, созданных на панели Studio, для обеспечения большей стабильности. Это сделает использование вашего терминала более надежным и уменьшит вероятность возникновения непредвиденных ошибок.

  3. Удаление неопознанных параметров: Удалите параметр DisableProfiler из вашего вызова, если такой функционал не поддерживается в вашей конфигурации.

Заключение

Ошибка DisableProfiler на стадии выполнения fit модели XGBoost в SageMaker может быть связана как с изменениями в настройках среды, так и с обновлениями API. Переход на использование стабильного терминала и корректная настройка параметров профилирования должны помочь вам разрешить эту проблему. Регулярное следование обновлениям документации AWS SageMaker также поможет вам избегать подобных проблем в будущем.

Оцените материал
Добавить комментарий

Капча загружается...