我正在为SageMaker和Airflow部署一个完整的ML管道。我想把培训和加工部分的流水线分开。
我有一个关于SageMakerProcessingOperator
(source_code)的问题。此操作符依赖于create_processing_job()函数。在使用此操作符时,我想扩展用于处理的基本docker映像,以便使用自制脚本。目前,当我将容器推送到aws ECR时,处理工作正常。然而,我更喜欢使用存储在我的打包模型中的一部分脚本(tar.gz格式)。
为了训练和注册模型,我们可以使用sagemaker_submit_directory
和SAGEMAKER_PROGRAM
env变量(cf aws_doc)指定用于扩展的图像。然而,使用SageMakerProcessingOperator似乎是不可能的。下面是操作符中使用的配置的摘录,还没有成功。
"Environment": {
"sagemaker_enable_cloudwatch_metrics": "false",
"SAGEMAKER_CONTAINER_LOG_LEVEL": "20",
"SAGEMAKER_REGION": f"{self.region_name}",
"SAGEMAKER_SUBMIT_DIRECTORY": f"{self.train_code_path}",
"SAGEMAKER_PROGRAM": f"{self.processing_entry_point}",
"sagemaker_job_name": f"{self.process_job_name}",
},
是否有人设法为Sagemaker create_processing_job()使用这些参数?还是只局限于AWS ECR ?
SageMaker Processing Job和SageMaker training Job是不同的,所以底层架构是不同的,我们不能把它们结合起来。