推理模块

使用CDK部署推理模块:

cdk deploy "aik/filtering"  --require-approval never

等待它部署完成:

image-20240203103843493

推理模块由一个 ECS 集群和一个任务以及一个 CloudWatch 仪表板组成。

架构图

ECS任务概览

CDK stack部署完成后,访问ECS服务,进入advertising-server

image-20240203104010187

进入它的task:

image-20240203104158407

ECS 任务由三个容器组成:

image-20240203104240492

第一个容器名为filtering-server.该服务的作用是监听Bid请求并根据上一节中的输出来计算是否进行Bid:

  1. 以二进制格式编写的 XGBoost 模型,该模型存储在 S3 存储桶中。 URI 通过 SSM /aik/xgboost/path参数传递。
  2. 打包为MLeap 包的管道模型 (https://combust.github.io/mleap-docs/),该包存储在 S3 存储桶中。 URI 通过 SSM /aik/pipelineModelArtifactPath参数传递。
  3. JSON 格式的 Schema 表示管道输入数据的格式,JSON 文件存储在 S3 存储桶中。 URI 通过 SSM /aik/pipelineModelArtifactSchemaPath参数传递。

第二个容器名为advertising-server,它的作用是模拟广告服务器,发送出价请求,然后接收可能性。该容器生成 500000 个出价请求。请求存储在S3在一个文件中,该文件存储在 S3 存储桶中,URI 通过 SSM 参数/aik/inference_data传递。、

最后一个容器运行 CloudWatch 代理。它的作用是接收前两个容器的指标并将其发送到CloudWatch Dashboard

三个容器的代码可以在 https://github.com/aws-samples/aws-rtb-intelligence-kit/blob/main/source/traffic-filtering-app/src/main/java/com/aik/filterapi/BidRequest.java 找到

查看CloudWatch Dashboard

image-20240203132344183

第一个部件显示似然计算的延迟(过去 10 秒的第 99 个百分位数)。有两种延迟:

  1. 过滤客户端的延迟。该指标很重要,因为它与广告服务器经历的延迟直接相关。
  2. 第二个指标表示过滤服务器的延迟。该指标很重要,因为它表明大部分时间仅花费在计算上。

第二个部件表示每秒过滤请求的吞吐量。吞吐量是十秒内计算的平均值。

第三个部件代表出价的可能性(过去 10 秒的平均值)。该指标很重要,因为它允许用户监控计算的可能性的质量。

第四个部件表示过去 5 分钟内处理的出价请求数。

清理资源

  1. 删除 SageMaker 创建的 EMR 集群

  2. 删除 SageMaker Studio Domain,详细说明可在Amazon SageMaker 开发人员指南 中找到。它涉及以下步骤:

    1.  删除 SageMaker Studio 应用程序
    2.  删除 SageMaker Studio 用户
    3.  删除 SageMaker Studio Domain
    4.  删除 SageMaker 创建的EFS
    
  3. 从Parameter Store中删除参数

  4. 运行以下命令:

cdk destroy "aik/filtering"
cdk destroy "aik/sagemaker-emr"