购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1.5 定义与度量服务等级目标

服务等级目标 (Service-Level Objective,SLO)是特定度量的预定义阈值,通常称为 服务等级指标 (Service-Level Indicator,SLI),用于定义系统是否按照要求运行。一个具体的例子是“99.99%的HTTP请求在150 ms内成功完成(即返回20开头的代码)”。SLO是站点可靠性工程师所擅长的领域,但对于指定产品需要做什么和如何对待用户的产品经理,以及数据科学家、机器学习工程师和软件工程师来说,SLO也是至关重要的。一般来说,确定SLO是具有挑战性的( https://www.alex-hidalgo.com/the-slo-book ),而为机器学习系统指定SLO具有双重挑战,因为数据中甚至我们周围世界中的细微变化的方式,都会显著降低系统的性能。

话虽如此,在考虑机器学习系统的SLO时,我们可以从区分显而易见的关注点来开始。首先,我们可以使用服务、训练和应用程序之间的划分。第二,我们有四个传统的黄金指标( https://oreil.ly/hl4Vd )(延迟、流量、错误、饱和度)之间的区分,以及机器学习操作的内部区分,它们本身远不如黄金指标更加通用,但并不完全特定于某一领域。第三,我们有与机器学习应用程序优化工作相关的SLO。

让我们更加细致地看一下将这些关于SLO的想法直接应用于 yarnit.ai 的一些简单建议。我们应该为每个系统设置独立的SLO:服务、训练和应用程序。从模型服务来看,我们可以像对待任何其他系统一样,简单查看一下错误率。对于训练,我们应该查看吞吐量(当模型的复杂性相当时每秒训练的样例数或训练数据的字节数)。我们还可以为完成模型训练建立一个整体SLO(例如,95%的训练运行在几秒内完成)。在应用程序中,我们应该监控诸如最终显示的建议数量,以及对模型服务的成功调用数量等指标(从应用程序的角度来看,这可能与模型服务系统报告的错误率匹配,也可能不匹配)。

然而,请注意,这些示例都不是关于模型的机器学习性能的。为此,我们需要设置与应用程序本身的业务目的相关的SLO,并且这方面的度量需要的时间可能比我们预想中的要长。模型生成的建议和模型排名搜索结果的点击率对于我们网站来说也许是一个良好起点。我们还应该为该模型的收入建立一个端到端的SLO,并且不仅在总体上,还应该在我们客户的合理子集(按地理位置或按客户类型)中进行衡量。

我们将在第9章对此进行更详细的研究,但目前请你接受有一些合理的方法可以在机器学习中实现SLO,并且它们涉及许多其他非机器学习SLO话题中使用的技术(尽管由于机器学习工作的细节我们需要更久的时间探讨此类话题)。但是,不要让复杂性妨碍了基本事务。归根结底,产品和业务领导必须明确他们可以容忍哪些SLO,不能容忍哪些SLO,这样公司的生产工程资源才能集中用于实现正确的目标。

一旦收集了数据,构建了模型,将其集成到我们的应用程序中,测量了其质量,并明确了SLO,我们就可以进入激动人心的发布阶段了! heODBZG1RZC666lMRZhsFRhgU+9pUdPllrOgqt+LdprA4mlHaMrmY8ZQjNoWKTEc

点击中间区域
呼出菜单
上一章
目录
下一章
×