Я создал конвейер sagemaker с пошаговой моделью регистрации, показанной ниже. model_metrics
создается на этапе оценки. Он основан на учебных пособиях sagemaker, но во всех примерах, которые я могу найти, используется оценщик SKLearn, моя модель основана на pytorch
(это модель sentence-transformers
, оцененная с использованием их оценщика информационного поиска).
У меня возникает проблема, когда я просматриваю зарегистрированную модель в студии sagemaker (последняя версия, а не классическая студия sagemaker). Я ожидаю, что метрики появятся на вкладке «Производительность» в разделе «Показатели модели», но все, что я получаю, это счетчик, а затем «NetworkError при попытке получить ресурс».
Этого не произошло до того, как я добавил model_metrics
к model.register
, поэтому я предполагаю, что здесь должны появиться метрики? Я проверил, что файл существует по тому URI, в котором он зарегистрирован.
У кого-нибудь это работает? Должен ли файл быть определенного формата? Я попытался загрузить пример evaluation.json
файла из руководства и передать ему uri, но получил ту же ошибку.
Есть ли способ получить более подробное сообщение об ошибке?
model_metrics = ModelMetrics(
model_statistics=MetricsSource(
s3_uri=Join(
on = "/",
values=[
evaluation_step.properties.ProcessingOutputConfig.Outputs["evaluation"].S3Output.S3Uri,
"evaluation.json",
],
),
content_type = "application/json",
)
)
register_args = model.register(
content_types=["application/json"],
response_types=["application/json"],
transform_instances=["ml.g4dn.xlarge"], # g5's not available for batch transform?
inference_instances=["ml.g4dn.xlarge", "ml.g5.xlarge"],
model_package_group_name=model_package_group_name,
approval_status = "PendingManualApproval",
model_metrics=model_metrics,
)
register_model_step = ModelStep(name = "RegisterModel", step_args=register_args)
Хорошая идея использовать инструменты разработки, я так и сделаю. К сожалению, повторное обращение в службу поддержки – мы слишком дешево платим за поддержку...
Ааа, да, между студией sagemaker и https://sagemaker-ap-southeast-2-XXX.s3.ap-southeast-2.amazonaws.com/...
возникла ошибка CORS, так что, думаю, мне придется попытаться открыть заявку в службу поддержки.
Вместо этого я поднял проблему в репозитории Sagemaker на GitHub.
Похоже, что в вашей корзине S3 отсутствует необходимая политика CORS, необходимая для новой SageMaker Studio.
В новом интерфейсе Studio к корзинам S3 должна быть применена конфигурация CORS, поскольку Studio обращается к S3 через браузер, который использует CORS для обработки запросов между источниками. Без правильной политики CORS запросы к S3 не будут успешными.
Если вы перешли со Studio Classic на новую версию, вполне вероятно, что корзина S3 по умолчанию для SageMaker не имеет соответствующей конфигурации CORS.
Подробную инструкцию по добавлению конфигурации CORS можно найти здесь.
Короче говоря, вам необходимо добавить следующую политику CORS в нужные корзины S3:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"POST",
"PUT",
"GET",
"HEAD",
"DELETE"
],
"AllowedOrigins": [
"https://*.sagemaker.aws"
],
"ExposeHeaders": [
"ETag",
"x-amz-delete-marker",
"x-amz-id-2",
"x-amz-request-id",
"x-amz-server-side-encryption",
"x-amz-version-id"
]
}
]
На самом деле я не использовал корзину по умолчанию, но, похоже, она тоже не обновлялась автоматически. В любом случае это исправило - спасибо!
Проверили ли вы инструменты разработчика в браузере, чтобы увидеть, есть ли какие-либо сетевые ошибки, и если да, то в чем проблема? Я также предлагаю открыть обращение в службу поддержки.