dropbox怎么用(iPad使用dropbox)( 二 )


我们使用内部功能切换服务Stormcrow,在Dropbox流量1%的随机样本上测试A/B的模型 。我们已经验证了模型的准确性和“节省”的预热成本符合我们离线分析的结果,这是一个好消息!由于戛纳v1不再预热所有符合条件的文件,我们知道缓存命中率预计会下降 。在实验过程中,我们观察到在A/B测试中,缓存命中率比对照组低了几个百分点 。虽然百分比有所下降,但整体预览延迟基本保持不变 。
我们非常关注尾部延迟(第90百分位以上的请求延迟),因为缓存未命中会导致尾部延迟过高,严重影响用户的预览功能 。然而,我们并没有观察到预览尾部延迟或整体延迟的显著增加,这是非常令人欣慰的 。这种实时测试大大增加了我们的信心,我们决定将v1模型部署到更多的Dropbox流量中 。
大规模实时预测我们需要一个 来实时告诉Riviera一个文件在进入预热路径时是否需要预热 。为了解决这个问题,我们将Cannes内置到一个预测管道中,负责提取与文件相关的信号并发送给模型,供模型预测未来使用preview的可能性 。
图:戛纳的建筑
文件ID是从Rivieraprewarm路径接收的 。Riviera会收集所有可以预热的文件id 。(Riviera可以预览Dropbox中存储的大约98%的文件 。只有少数文件具有不支持的文件类型或无法预览 。Riviera发送一个预测请求,其中包含要预测文件的ID和文件类型 。
获得实时信号 。为了收集预测期间文件的最新活动信号,我们使用了一个名为“建议后端”的内部服务 。该服务验证预测请求,然后查询与文件相关的信号 。信号存储在Edgestore(Dropbox的主要元数据存储系统)或User Profile Service(RocksDB数据存储,负责聚合Dropbox活动信号) 。
将信号编码成特征向量 。收集的信号将被发送到预测服务,预测服务将把信号编码成代表文件所有相关信息的特征向量,然后将这个向量发送到模型进行评估 。
生成预测 。该模型使用特征向量来返回文件可能被预览的概率 。然后,预测结果会被送回Riviera,Riviera会对未来60天内可能预览的文件进行预热 。
关于请求的信息 。建议后台记录特征向量、预测结果和请求状态,这些是调查性能下降和延迟的关键信息 。
其他考虑事项减少预测延迟很重要,因为上述管道位于Riviera预热功能的关键路径上 。例如,当该模型扩展到25%的流量时,我们观察到一些极端情况,这导致提议的后台办公室的可用性低于内部SLA 。
经过分析,我们发现上面第3步存在超时问题 。因此,我们改进了特征编码过程,优化了预测路径中的几个问题,并减少了这些极端情况下的尾部延迟 。
优化机器学习在推出机器学习模型的过程中(以及之后),我们非常注重稳定性,确保不会对预览界面的用户体验产生负面影响 。多级监控和报警是部署机器学习的关键组成部分 。
坎纳的指标1 预测服务基础设施的指标:共享系统有自己的内部SLA,主要关注正常运行时间和可用性 。我们依靠Grafana等现成的工具来实时监控和发送警报 。我们的监控指标包括:
建议的背景和预测可用性 。
用户档案服务的数据新鲜度 。
预览指标:我们有一些预览性能的关键指标,即预览延迟分布 。我们保留了3%的存档数据来比较有和没有戛纳的预览指标,以防止模型漂移或系统变化可能降低模型的性能 。Grafana是应用级指标的通用解决方案 。主要指标包括:
预览延迟分布(有无戛纳),特别注意90%以上的延迟 。
缓存命中率(有和没有戛纳):总缓存命中率/预览内容的总请求数 。
模型性能指标:我们为机器学习团队使用的Cannes v1的模型建立了指标,并建立了自己的管道来计算这些指标 。我们关心的指标包括:
混淆矩阵,尤其是假阴性率的变化 。
ROC曲线下面积:虽然我们直接监测混淆矩阵的统计信息,但也想计算AUROC,以便将来比较模型的表现 。
以上模型性能指标每小时计算一次,存储在Hive中 。我们使用超集来可视化重要指标,并创建戛纳的实时变化仪表板 。超集建立在各种指标的基础上 。如果底层模型的行为发生变化,它会在客户受到影响之前主动通知我们 。
然而,仅仅监测和警告不足以确保系统的健康 。还需要明确责任,建立报告问题的流程 。比如,我们记录了机器学习系统的上游依赖关系,因为它们可能会影响模型的结果 。此外,我们还创建了一个手册,详细介绍了解决问题的步骤,帮助值班工程师判断问题是来自戛纳内部还是其他部分,并提供了根本原因是机器学习模型时报告问题的流程 。机器学习团队和非机器学习团队的紧密合作有助于保证戛纳的顺利进行 。