amazon sagemaker 练习

齐栋
2023-12-01

亚马逊的sagemaker 提供了模型训练到部署的全流程支持,下面这个例子是其参考手册的入门例子,记录一下整体流程,具体代码操作可以查看其手册。

1 创建Amazon账号,建立IAM 用户(identify and access management)

2 建立 S3 bucket (Amazon simple storage service ) 用于存放训练数据和调优后的模型代码/模型工件(model artifact)

3建立sagemaker notebook 实例 

4训练模型(可以选用amazon内置的模型也可以上传自己的深度学习模型,入门例程仅适用内置模型,内置模型也有两种操作模型,一种是使用high-level的内置python library,一种是使用AWS SDK,前一种非常方便,后一种虽然复杂,但对于了解整个配置过程有帮助,按后一种讲解)

4.1 建立jupyter notebook,选择conda python3,定义角色role和相应的bucket

4.2下载、整理、转换训练数据,并上传到s3中

      4.2.1给出下载地址url,解压到训练、验证和测试三部分;

      4.2.2整理清洗数据;

      4.2.3将数据转换类型,从numpy.array转换为 RecordIO protobuf格式,并上传到S3中的指定位置

4.3 训练模型算法

     4.3.1选择合适的算法

     4.3.2创建一个训练任务

            指定训练代码的docker image; 指定超参数;指定输入输出的位置(S3)

            sagemaker=boto3.client('sagemaker')

             sagemaker.create_training_job(**create_training_params)

            try:

                    sagemaker.get_waiter('training_job_completed_or_stopped').wait(TrainingJobName=job_name)

            finally:

                    status=sagemaker.describe_training_job(TrainingJobName=job_name)

4.4 部署模型

        在sagemaker上创建模型(提供模型算法存放位置,推理程序所在镜像路径)、配置endpoint(硬件资源)、创建endpoint,应用程序向endpoint发送请求来得到推理结果。

         sagemaker.create_model

        sagemaker.create_endpoint_config

        sagemaker.create_endpoint

        try:

            sagemaker.get_waiter('endpoint_in_service').wait(EndpointName=endpoint_name)

        finally:

4.5 验证模型

     转换数据,向endpoint发送请求

    runtime=boto3.Session().client('sagemaker-runtime')

    response=runtime.invoke_endpoint

4.6 整合sagemaker的endpoint到应用中

        创建能够使用AWS lambda服务的IAM账号,其能够调用sagemaker的invokeendpoint API

        创立能够使用invokeendpoint API的lambda function

        从mobile application中调用lambda function


      

      


 类似资料: