在现代商业环境中,数据分析已然成为企业获取成功的关键所在。长期以来,百度广告数据团队始终面临着极为复杂的数据分析挑战,其需要为逾千名用户提供在线广告业务分析服务,而这些用户涵盖策略工程师、产品经理、数据分析师、运营团队以及销售人员等。过去他们不得不编写繁杂的查询语句,由此耗费掉大量的时间与精力。百度广告业务的重要性和复杂性,致使相关的业务数据每月会有超过 200 个迭代更新,用户唯有掌握丰富的业务领域知识方可成功实施数据分析。
直面这些挑战,百度广告数据团队开发了一个全新平台“DATAPILOT”,促使数据分析朝着更为简单且高效的方向发展。百度凭借与 NVIDIA RAPIDS for Apache Spark 团队的紧密协作,优化大模型以及 NVIDIA GPU 加速计算技术,为数据分析赋予了全新的表现形态。
DATAPILOT 平台——
自然语言与 SQL 高效执行的完美融合
DATAPILOT 的核心优势体现于其卓越的自然语言交互能力以及底层 SQL 的高效快速执行能力。此前的数据分析平台极为复杂,涵盖了超过十万个各异的字段以及三千余个繁杂的表格,其中部分字段存在于十几个表格之中,并且有着不同的字段名称和近似的业务含义,这致使销售、产品经理以及研发人员于该平台进行数据分析时面临极大困难。
场景一:需要统计过去一周的信息流广告消费数据。在以往的数据分析平台中,有超过五张表包含与信息流业务消费相关的数据,包括流量、广告、转化等不同业务层级,以及 CPC、CPM、OCPC 等不同业务形态。此外,还涉及消费金额和现金金额的差异。为了完成从“需求理解”到“表格筛选”、“口径梳理”、“SQL 编写”以及“获取结果”的全流程,用户需要具备非常强的业务领域知识和专业的 SQL 能力。
场景二:需要分析昨天搜索广告收入为什么下跌。在实际经验中,广告收入下跌可能受自然流量、行业政策、客户行为、系统异常等多方面因素影响。分析人员首先不仅需要了解搜索广告的业务知识,而且需要掌握收入分析的专家经验,同时往往需要基于多个表格,编写不同的 SQL 统计不同维度的指标数据,最终基于一定的归因逻辑才能得出对应的潜在结论。
而 DATAPILOT 平台将复杂的 SQL 编写过程成功转化为自然语言交互,用户仅需以自然语言与平台展开对话,仿若与旧友闲谈一般,平台能够迅速领会用户意图并即刻做出回应。过去用户或许需要等候数分钟乃至数小时方可看到结果,而如今新平台可在短短几秒内完成整个流程,显著提升了速度,且让交互过程如聊天般流畅自然。此外,平台还提供自动洞察功能,借助先进的大型语言模型来应对复杂的业务场景分析难题。用户仅需简单点击一次即可获取格式化的智能分析结果以及详尽的数据报告。
为能更优地理解 DATAPILOT 平台的优势,下述为一个实际的用户案例。某一用户想获知昨天收入下降的原因,借助 DATAPILOT 平台,用户仅需键入问题,平台即可自动生成所需的 SQL 查询,并于数秒内返回结果。此过程涵盖三个步骤:表选择、SQL 生成以及数据洞察。首先,平台会依据用户的输入选取相关的表,而后生成相应的 SQL 查询,最后提供数据洞察报告。这一过程不但快速高效,还极大地简化了用户的操作。
经由这一创新解决方案,百度广告数据团队大幅提高了数据分析的效率与准确性。用户不再需要精通繁杂的查询语法,仅通过自然语言输入问题,即可迅速获取所需的分析结果。这种创新不但极大地优化了用户体验,还显著提升了工作效率。在整个过程中,从自然语言到 SQL 生成以及 SQL 的执行操作极为关键。百度汇集了大量私域知识,在百度的文心大模型上进行预训练与微调,使得模型具备了出色的用户意图理解、表格理解以及 SQL 生成能力。
在具备了卓越的 SQL 生成能力和数据智能洞察能力之后,为了匹配自然语言表达、对话式的交互体验,SQL 的执行速度成为了制约平台表现的瓶颈。自然语言对话式交互成为未来,后端计算效率也必须跟上对话节奏。过去,百度广告数据团队一直专注于软件层面的优化,但现在软件优化已达到瓶颈,需要全新的软硬件协同加速能力来突破 SQL 执行效率的限制。
百度的探索:Spark-RAPIDS+GPU
软硬件结合突破速度瓶颈
NVIDIA RAPIDS 是由一系列开源软件库和 API 组成,用于完全在 GPU 上执行数据科学流程,从而可将训练时间从几天缩短到几分钟。通过隐藏 GPU 的工作复杂性,甚至隐藏数据中心架构内的后台通信协议,RAPIDS 提供了完成数据科学的简单方法,同时 RAPIDS 的运行位置不受限制,在云端或本地均可,因此可以在任何位置大规模运行,大大缩短任务的执行时间。RAPIDS 可以使用 NVIDIA GPU 加速所有主要的 Apache Spark 3 平台,无需更改代码。RAPIDS 由用于生产部署的NVIDIA AI Enterprise软件套件提供支持。软件及电信行业领导者通过 RAPIDS 加速他们的 Spark 业务,平均加速提升 40%,成本降低 60% 以上。
百度对多种技术方案进行了尝试以提升速度,如 Spark CPU 优化,然而该方案性能天花板较低,难以突破 CPU 架构的物理限制;ClickHouse 这类方案无法处理完整且复杂的 SQL 连接,纯硬件的 AEP 加固态硬盘优化仅局限于 I/O 层面,因此采用 Spark-rapids 与 GPU 这种软硬件结合的方式成为当前的最优选择。
百度广告数据团队构建起了一个涵盖 CPU 和 GPU 的异构计算环境,充分发挥 GPU 的加速计算能力,精心设计了 SQL 识别与调度机制,通过对 SQL 进行分析以判定其是否能够被加速,并将可加速的 SQL 分配至 GPU 执行,在 NVIDIA RAPIDS Accelerator for Apache Spark和 NVIDIA 加速计算的软硬件结合方案的有力支持下,底层确保了速度的提升以及资源的平衡利用:
该主导架构包括交互层、调度层和计算基础设施层,交互层直接为用户服务,实现文本到 SQL 转换;调度层负责将 SQL 任务分发到不同的硬件引擎;计算和基础设施层负责实际的计算工作,确保数据处理的高效和准确。
NVIDIA 助力百度广告数据团队:
创新方案提升数据分析效能
通过与 NVIDIA 工程师的紧密协作和助力,百度广告数据团队此前在实际业务中遭遇的诸多问题均获得了有效的解决办法。譬如,针对 20% 的数据满足了 80% 的数据需求这一情况,提出了数据冷热分层存储的解决方案,依据不同场景间的数据特征,选取适宜 GPU 批次的数据分布以获取最佳的吞吐量,借助 Parquet sub-rowgroup reading 解决高压缩比扫描数据所产生的 OOM 问题,并优化 GPU 的 parquet 解码以处理部分 IO 性能瓶颈,这些为百度提升 SQL 的速度执行优化给予了极大的助力,最终助力百度广告数据团队显著提高了业务计算效率。
NVIDIA RAPIDS融合了 RAPIDS cuDF 库的强大数据处理能力和 Apache Spark 分布式计算框架的规模化优势。RAPIDS 配备了基于 UCX 的内置加速数据混洗功能,该功能可针对 GPU 间的通信和 RDMA 进行优化配置。此外,RAPIDS 为 Spark 提供了经过优化的 Shuffle 实现,通过 UCX 技术优化 GPU 数据传输,确保数据尽可能保留在 GPU 上,并直接实现 GPU 到 GPU 的数据传输,有效绕过了 CPU 的瓶颈。
在过去的数月中,凭借 NVIDIA RAPIDS for Apache 团队的技术支持,百度广告数据团队在数据分析的效率方面取得了显著进展:
首先,整体上在用户即席查询数据分析场景,实现了 35% 的业务覆盖,并达到了平均 2 倍+的加速比,并且在部分场景加速比达到 5 倍,SQL 执行效率和用户体验得到明显改善;其次,在收入分析等复杂业务场景,数据分析效率从天级别降低到分钟级别;同时由于 SQL 执行效率的提升,用户进行策略调研和 A/B 实验效果分析的节奏也大幅加快。
伴随技术的进一步发展与应用的深入,未来百度广告数据团队还计划在软硬件的定制部署上开展更多的创新,包含探寻 GPU、CPU、MEM 和 SSD 之间的最佳配置,以最大化发挥软硬协同、深度优化之后的资源利用效率,达成全局 50% 的 IT 成本降低目标。百度计划继续与 NVIDIA 合作,进一步提升其在数据分析方面的能力。
NVIDIA 的技术支持使得百度能够在复杂的数据环境中更有效地应对挑战,提高了数据处理的速度与准确性,同时也提升了用户体验。通过这些创新解决方案,百度广告数据团队不但可以提升实际业务价值,也推动了整个数据分析行业的技术进步。
全部0条评论
快来发表一下你的评论吧 !