Precog: Prefetching for Image Recognition Applications at the Edge
1 简介
应用场景与Cachier基本一致。技术的差异在与Cachier研究在边缘中缓存,不涉及终端设备。Precog研究在终端设备中缓存。缓存的模型来源于边缘,这是一种边缘与终端设备协同的技术。通过选择缓存的内容来最小化用户体感时延。在终端设备中缓存意味着图像的特征提取,分类也被放在终端设备中,这可能会造成性能瓶颈,Precog通过动态调整特征提取的配置来最小化总时延。
2 背景
- 图像识别:与Cachier中的技术一致。
- web中的预取技术:当用户浏览某个网页时,该网页可能由其他网页的链接,此时服务器将某些被链接的网页推送给用户以降低用户的体感时延。
3 预取技术
将一些可能会被查询到的物体的特征点缓存,原则上只有被缓存的物体才能被查询到。缓存的缺失有两种:compulsory miss:被查询的物体确实不在缓存中。recognition miss:被查询的物体在缓存中,但模型不能识别出查询图像中包含该物体。
设备缓存与边缘缓存的不同之处:某台设备的查询不具有空间相关性,简单地使用LRU策略维护设备上的cache会带来大量compulsory miss。我们需要考虑哪些物体被收入cache而不是哪些物体被逐出cache。另外,Cachier中的延迟估计公式可以直接使用,只是P(Cached)的估计仍然要放在边缘中进行。
E(L) = f(k) + (1-recall(k)P(cached)) * (Latency of Net + Latency of edge)
P(Cached)表示任意一个待查询物体出现在缓存中的概率,它的估计基于所有物体出现的概率分布。这个概率分布估计由边缘进行,采用马尔可夫模型:对于某一个边缘服务范围内的用户,某个物体被查询到的概率取决于该用户上一次的查询。
4 Precog设计
当发生缺失时:查询的图像被上传至边缘,边缘中的Markov estimator记录此次查询并将更新后的物体概率分布随查询结果一并发挥给设备。设备中的optimizer根据概率分布,profiler的测量数据和线下测量数据优化设备上的特征提取参数和决定哪些物体将要被缓存。
当发生命中时:optimizer仍要向边缘中的Markov estimator查询概率分布,同样根据其他几个因素动态调整参数和缓存大小。
使用马尔可夫模型预测物体被查询概率:
某个物体被某个用户查询的概率取决于该用户的上一次查询,Markov estimator负责计算。边缘维护Ni,j,及同一个用户连续查询物体i,j的次数。当用户查询Si时,Markov estimator将P(*|Si)发回给终端设备。
估计E(L)以寻找使E(L)最小的k,估计方法与Cachier中相同。
动态调整特征提取参数:这里调整的参数只有查询图像中提取的特征点数。通过线下实验确定特征点数与f(k),recall(k)的关系,在运行时动态选择一个使得总延迟(E(L))最小的特征点数进行特征提取。
5 实现
文章中说为Precog实现了一套SDK。但我没有在文章中找到获取链接。