亚马逊AWS官方博客
Amazon Ads 功能揭秘
我的同事花了几个月的时间为 AWS re:Invent 会议创建、审查和改进内容。虽然我尽量做到不偏袒,但还是想和您谈谈我最近关注的一项产品!
会议 ADM301(Amazon Ads 功能揭秘)中,我的同事介绍了 Amazon Ads,概述构建大规模广告系统所面临的挑战,然后展示他们如何使用多种 AWS 服务解决这些挑战。我能够查看他们演示文稿接近定稿的版本,这篇文章就基于我在查看后所了解的信息。
Amazon Ads 使用包含四个要素的全渠道策略:提高知名度、增加关注度、吸引购物者和推动购买。通过使用我们在 Amazon 使用的众所周知的“从客户入手,再反向推动工作”模型,他们确定了三种不同的客户类型,并致力于设计一个可以满足他们需求的系统。这些客户类型包括:
- 投放活动的广告客户
- 使用 Amazon Ads API 构建工具和服务的第三方合作伙伴
- 购买旅程中的购物者
广告客户和第三方开发人员想要一种跨越 UI 和程序化界面的体验,包括活动管理、预算、广告服务、广告事件数据湖和机器学习,以改善广告选择和相关性。
扩展是一个非常有趣的问题,在性能、存储、可用性、成本和有效性方面存在挑战。除了在 120 毫秒的延迟预算内每秒处理数亿个广告请求(每天数万亿个广告)之外,广告服务器还必须能够:
- 跟踪数百亿个活动对象,总存储量以数百 PB 为单位
- 提供 > 99.9999% 的可用性
- 自动处理 Prime 会员日等流量高峰事件
- 以经济方式投放广告并近乎实时地执行广告客户预算
- 使用来自数百个机器学习模型的预测来提供高度相关的广告
他们需要一个能够每秒处理 5 亿个请求的缓存系统,而这只是处理如此大规模工作负载所需要素的一个示例!
通常情况下,系统在达到当前形式之前经历了多次迭代,并且仍在积极开发之中。该演示文稿回顾了团队所经历的历程,以及每次迭代的架构快照和性能指标。
演讲最后讨论了他们能够大规模应用机器学习的一些方法。例如,为了针对每个请求选择合适的广告,Amazon Ads 使用深度学习模型来预测向购物者展示的相关广告,预测购物者是否会点击或购买,以及对广告进行分配和定价。为了做到这一点,他们需要能够在 20 毫秒的时间范围内,以每秒超过 10 万笔交易的速度针对每个请求对数千个广告进行评分,所有这些广告都跨越数百个模型,每个模型都需要不同的硬件和软件优化。
为了处理这种工作负载,他们在 Amazon Elastic Container Service (Amazon ECS) 和 AWS App Mesh 之上构建了一个微服务推理架构,并对每种类型的推理模型进行了特定的硬件和软件优化。对于低延迟推理,Ads 团队从基于 CPU 的解决方案开始,然后转向 GPU 以减少预测时间,即使在复杂性和模型数量增加的情况下也是如此。
– Jeff;