静かな駅 - FPGA
type: channel
link: https://yellowswimming.cn/tag/FPGA/
items: FAERY: An FPGA-accelerated embedding-based Retrieval System

FAERY: An FPGA-accelerated embedding-based Retrieval System
type: item
date: 2022-11-01T19:58:00+08:00
description: FAERY: An FPGA-accelerated embedding-based Retrieval System 参考文献 参考文献 1. 摘要 基于嵌入的检索（EBR)广泛用于推荐系统，以从包含百万个或者更多项目的大型语料库中检索数千个相关候选项。一个好的EBR系统需要同时实现高通量和低延迟，因为高吞吐量意味着节省成本，而低延迟可以改善用户体验.不幸的是，现有的基于CPU和GPU的的EBR的性能由于其固有的架构限制而远非最佳。在下文中，我将首先介绍一个理想而实用的EBR系统是如何工作的，然后基于ideal状况，人们提出并设计的FPGA加速的EBR-FAERY，它实现了实用的理想EBR系统的最佳性能。FAERY由三个关键组件组成：它使用高带宽HBM进行内存带宽密集型语料库扫描，使用数据并行方法进行相似度计算，以及基于管道的方法进行K选择。为了进一步减小硬件资源，FAERY引入了一个过滤器来提前丢弃非Top-K项目。实验表明，在GPU相同显存带宽的情况下，降级后在目标为10ms的延迟目标下，与基于GPU的EBR相比，FAERY仍能达到1.21~12倍延迟低于其以及4.29倍吞吐率高于其的目标。 2. 介绍 2.1 检索与排序 推荐系统已经在许多在线服务中得到广泛采用。为了从包含数百万候选项目的大型语料库中进行推荐，工业大规模推荐系统通常分为两层，即检索和排序。如图所示 （图1) 检索通过简单的算法从庞大的语料库中快速选择数千个相关项目，而排序则利用复杂的算法对检索结果进行更精确的排序，然后从排序的项目中选择数十个。 现实世界的检索系统进行多通道检索：他利用不同通道中的不同策略来检索不同的候选者，然后将其合并和过滤以生成最终的检索结果。在多通道检索策略中，基于嵌入的检索（EBR) 越来越受欢迎。 2.2 EBR检索大致流程 （图2) 具体来说，如图1所示，EBR算法涉及评分，它扫描语料库以获取所有项目并计算每个项目嵌入和给定查询嵌入之间的相似度分数(例如，通过内积），以及 K-selection ,它根据相似度得分返回Top-K项目。返回的 EBR的Top-K项通常被排序，以简化来自多个通道的合并和过滤检索候选。这种EBR系统的性能很重要。一方面，增加每台EBR服务器的吞吐量会降低整体服务器成本，因为只需要更少的服务器来提供目标每秒查询数(QPS)。另一方面，降低每个EBR服务器的延迟会减少检索时间，这既可以缩短用户的整体等待时间，也可以为排名计算留出更多时间以获得更好的推荐结果[11]。因此，延迟猎杀的吞吐量成为EBR系统的关键指标。 2.3 理想架构 为了实现高延迟限制吞吐量，我们对图1中所示的EBR算法进行了表征，并派生了一个实际理想的EBR硬件架构。具体来说，语料库扫描是一种内存密集型操作，需要大的外部内存容量和高内存带宽。相似度计算和K选择都是计算密集型的。它们应该将内存带宽与跨多个算子实例的数据并行架构相匹配。此外，为了与步骤或操作符之间的计算重叠通信，在K-selection内部和整个EBR数据流中都需要管道并行性。然后，我们通过在批量查询之间共享语料库扫描并提供单独的计算管道来扩展理想架构以支持批量查询.因此，理想的架构实现了最佳的查询延迟，并随着批量大小线性扩展延迟限制的吞吐量 2.4 现状 通过将现有的基于CPU和GPU的EBR与理想架构进行比较，我们意识到，不幸的是，由于其固有的架构限制，现有方法都没有实现最佳性能。首先,尽管内存容量很大，但由于内存带宽低，CPU在语料库扫描中表现不佳，并且由于内核数量有限，无法同时很好地支持所需的并行范式。其次，虽然GPU为数据并行提供了更高的内存带宽和海量计算核心，但由于明确的资源边界，GPU并未针对K-selection和整个EBR 数据流所需的管道并行进行优化。 我们观察到FPGA 是一种可编程硬件设备,在一些超大规模云提供商中很容易获得，它具有实际理想EBR架构的所有所需特性。一些现代FPGA配备了大容量高带宽存储器(HBM)，非常适合语料库扫描。此外，FPGA 提供足够的片上存储器和完全可编程的计算元件，以便为各种操作员启用适当的并行范式。 2.5 FAERY的优势 FAERY ，这是一种基于FPGA加速嵌入的检索系统，它是理想EBR架构的体现，并实现了高性能。具体来说，FAERY将语料库存储在FPGA的HBM中，为内存带宽密集型的语料库扫描提供了高带宽。FAERY利用语料库管理器在运行时最大化HBM带宽利用率，同时保留内存高效存储并启用在线语料库更新。FAERY遵循理想架构设计数据并行性的相似性计算和管道并行性的K-selection。与理想架构不同的是，FAERY只需要一个K-selection流水线，并根据在K-selection流水线中观察到的独特属…