机器学习入门18 - 生产机器学习系统(Production ML Systems)
除了实现机器学习算法之外,机器学习还包含许多其他内容。生产环境机器学习系统包含大量组件。
无需自行构建所有内容,而是应该尽可能重复使用常规机器学习系统组件。
通过了解机器学习系统的一些范例及其要求,可以明确实际需要哪些组件。
1- 静态训练与动态训练(Static vs. Dynamic Training)
从广义上讲,训练模型的方式有两种:
静态模型
- 采用离线训练方式:只训练模型一次,然后使用训练后的模型一段时间。
- 易于构建和测试:使用批量训练和测试,对其进行迭代,直到达到良好效果。
- 仍然需要对输入进行监控
- 模型容易过时
动态模型
- 采用在线训练方式:数据会不断进入系统,通过不断地更新系统将这些数据整合到模型中。
- 随着时间推移不断为训练数据注入新数据,定期同步更新版本。
- 使用渐进式验证,而不是批量训练和测试。
- 需要监控、模型回滚和数据隔离功能
- 会根据变化作出相应调整,避免了过时问题
2- 静态推理与动态推理(Static vs. Dynamic Inference)
可以选择以下任一推理策略:
离线推理
- 使用 MapReduce 或类似方法批量进行所有可能的预测。
- 记录到表格中,然后提供给缓存/查询表。
- 优点:不需要过多担心推理成本。
- 优点:可以使用批量方法。
- 优点:可以在推送之前对数据预测执行后期验证。
- 缺点:只能对我们知晓的数据进行预测,不适用于存在长尾的情况。
- 缺点:更新可能延迟数小时或数天。
在线推理
- 使用服务器根据需要进行预测。
- 优点:可在新项目加入时对其进行预测,非常适合存在长尾的情况。
- 缺点:计算量非常大,对延迟较为敏感,可能会限制模型的复杂度。
- 缺点:监控需求更多。
3- 数据依赖关系(Data Dependencies)
特征管理
- 输入数据(特征)决定机器学习系统的行为。
- 选择输入信号时要谨慎。
对输入数据提出的问题
- 可靠性:信号不可用时会出现什么情况?您知道吗?
- 版本控制:计算此信号的系统是否发生过变化?多久一次?会出现什么情况?
- 必要性:信号的实用性是否能证明值得添加此信号?
- 相关性:是否有任何输入信号密不可分,以至于需要采取额外策略来梳理它们?
- 反馈环:哪个输入信号可能会受到我的模型输出的影响?
4- 理解
问题
1-以下哪个关于在线(动态)训练的表述是正确的?
- 几乎不需要对训练作业进行监控。
- 模型会在新数据出现时进行更新。
- 在推理时几乎不需要监控输入数据。
2-以下哪些关于离线训练的表述是正确的?
- 在推理时几乎不需要监控输入数据。
- 与在线训练相比,离线训练需要对训练作业进行的监控较少。
- 模型会在收到新数据时进行更新。
- 您可以先验证模型,然后再将其应用到生产中。
3-在离线推理中,我们会一次性根据大批量数据做出预测。然后将这些预测纳入查询表中,以供以后使用。以下哪些关于离线推理的表述是正确的?
- 我们将能够快速对世界上的变化作出响应。
- 对于给定的输入,离线推理能够比在线推理更快地提供预测。
- 我们会对所有可能的输入提供预测。
- 我们将需要在长时间内小心监控输入信号。
- 生成预测之后,我们可以先对预测进行验证,然后再应用。
4-在线推理指的是根据需要作出预测。也就是说,进行在线推理时,我们将训练后的模型放到服务器上,并根据需要发出推理请求。以下哪些关于在线推理的表述是正确的?
- 您可以先对预测进行后期验证,然后再使用它们。
- 您必须小心监控输入信号。
- 在进行在线推理时,您不需要像执行离线推理一样,过多地担心预测延迟问题(返回预测的延迟时间)。
- 您可以为所有可能的条目提供预测。
5-以下哪个模型容易受到反馈环的影响?
- 图书推荐模型 - 根据小说的受欢迎程度(即图书的购买量)向用户推荐其可能喜欢的小说。
- 选举结果预测模型 - 在投票结束后对 2% 的投票者进行问卷调查,以预测市长竞选的获胜者。
- 住宅价值预测模型 - 使用建筑面积(以平方米为单位计算的面积)、卧室数量和地理位置作为特征预测房价。
- 大学排名模型 - 将选择率(即申请某所学校并被录取的学生所占百分比)作为一项学校评分依据。
- 人脸检测模型:检测照片中的人是否在微笑(根据每月自动更新的照片数据库定期进行训练)。
- 交通状况预测模型 - 使用海滩上的人群规模作为特征之一预测海滩附近各个高速公路出口的拥堵情况。
解答
1- 以下哪个关于在线(动态)训练的表述是正确的?
几乎不需要对训练作业进行监控。
实际上,您必须持续监控训练作业,以确保它们状态良好并按预期运转。此外,您还需要支持型基础架构,例如在训练出现问题(比如错误作业或输入数据损坏)时能够让模型回滚到之前的快照状态。
模型会在新数据出现时进行更新。--- 正确
这是在线训练的主要优势,它允许模型在新数据加入时对其进行训练,因而能避免大量过时问题。
在推理时几乎不需要监控输入数据。
和静态离线模型一样,请务必对动态更新模型的输入数据进行监控。我们可能不会面临较大的季节性效应带来的风险,但如果输入数据突然发生巨大变化(例如上游数据源中断),仍然会导致预测结果不可靠。
2- 以下哪些关于离线训练的表述是正确的?
在推理时几乎不需要监控输入数据。
与直觉相反,您的确需要在推理时监控输入数据。如果输入分布发生变化,则我们的模型预测可能会变得不再可靠。想象一下,假如一个模型仅对夏季服饰数据进行了训练,然后突然被用来预测冬季的服饰购买行为。
与在线训练相比,离线训练需要对训练作业进行的监控较少。--- 正确
一般而言,离线训练在训练时的监控需求比较适中,这使我们无需考虑很多生产方面的事宜。不过,您训练模型的频率越高,需要在监控方面投入的精力就越多。您还需要定期验证,以确保代码的更改(及其依赖关系)不会对模型质量产生不利影响。
模型会在收到新数据时进行更新。
实际上,如果我们采用离线训练方式,模型将无法在新数据出现时包含新数据。当我们尝试从中学习的分布会随时间而变化时,这种情况会导致模型过时。
您可以先验证模型,然后再将其应用到生产中。--- 正确
是的,离线训练提供了足够的机会来先验证模型效果,然后再将其引入到生产中。
3- 在离线推理中,我们会一次性根据大批量数据做出预测。然后将这些预测纳入查询表中,以供以后使用。以下哪些关于离线推理的表述是正确的?
我们将能够快速对世界上的变化作出响应。
错误,这是离线推理的缺点之一。世界上如果有任何变化,我们都需要等到一组新的预测写入到查询表后,才能根据相应变化作出不同的响应。
对于给定的输入,离线推理能够比在线推理更快地提供预测。--- 正确
在离线推理的众多优势中,其中一项优势是,预测一旦写入到某个查询表中,我们便能够以最小的延迟提供预测。无需在收到请求时进行特征计算或模型推理。
我们会对所有可能的输入提供预测。
错误,我们不会对所有可能的输入提供预测。这是离线推理的缺点之一。我们只能对已知晓的样本提供预测。如果我们要预测的事物集合是有限的,例如世界城市,则这种方法是可行的。但是对于用户查询等存在不寻常或罕见条目的长尾情况,我们可能无法通过离线推理系统实现全面覆盖。
我们将需要在长时间内小心监控输入信号。
这属于我们实际上不需要长时间监控输入信号的情况。原因是,将预测记录到某个查询表后,我们就不再依赖于输入特征了。需要注意的是,模型的所有后续更新都将需要进行新一轮的输入验证。
生成预测之后,我们可以先对预测进行验证,然后再应用。--- 正确
这的确是关于离线推理的一项实用功能。我们可以先对所有预测进行健全性检查并验证,然后再使用它们。
4- 在线推理指的是根据需要作出预测。也就是说,进行在线推理时,我们将训练后的模型放到服务器上,并根据需要发出推理请求。以下哪些关于在线推理的表述是正确的?
您可以先对预测进行后期验证,然后再使用它们。
一般而言,不可能先对所有预测进行后期验证然后再使用它们,因为预测是根据需要进行的。不过,您可以监控总体预测特性,以提供一定程度的健全性检查,但在发现问题时可能已经为时已晚。
您必须小心监控输入信号。--- 正确
是,信号可能会因上游问题而突然改变,从而损害我们的预测。
在进行在线推理时,您不需要像执行离线推理一样,过多地担心预测延迟问题(返回预测的延迟时间)。
预测延迟通常是在线推理中一个令人担忧的问题。遗憾的是,您不一定能够通过添加更多推理服务器解决预测延迟问题。
您可以为所有可能的条目提供预测。--- 正确
正确,这是在线推理的一项优势。收到的每个请求都会获得一个分数。在线推理能够处理长尾分布(包含许多罕见条目的分布),例如影评中可能包含的所有句子占用的空间。
5- 以下哪个模型容易受到反馈环的影响?
图书推荐模型 - 根据小说的受欢迎程度(即图书的购买量)向用户推荐其可能喜欢的小说。--- 正确
图书推荐有可能吸引用户购买,而且这些额外销量将作为输入项反馈回模型,从而使该模型更有可能在将来推荐同样的图书。
选举结果预测模型 - 在投票结束后对 2% 的投票者进行问卷调查,以预测市长竞选的获胜者。
如果此模型直到投票结束之后才发布其预测,则其预测结果不可能会影响投票者的行为。
住宅价值预测模型 - 使用建筑面积(以平方米为单位计算的面积)、卧室数量和地理位置作为特征预测房价。
快速更改房屋位置、建筑面积或卧室数量以响应价格预测是不可能的,因此不可能形成反馈环。但是,房屋大小与卧室数量之间可能存在关联(房屋越大,房间可能越多),这种关联需要单独梳理清楚。
大学排名模型 - 将选择率(即申请某所学校并被录取的学生所占百分比)作为一项学校评分依据。--- 正确
此模型的排名可能会提高学生对高评分学校的兴趣,从而使这些学校收到的申请增加。如果这些学校录取的学生人数继续保持不变,则选择率会增大(录取的学生所占百分比会下降)。这样会提升这些学校的排名,从而进一步提高未来有意申请这些学校的学生的兴趣,如此循环下去…
人脸检测模型:检测照片中的人是否在微笑(根据每月自动更新的照片数据库定期进行训练)。
这种模型不会生成反馈环,因为模型预测结果不会对我们的照片数据库产生任何影响。但是,在这种模型中,输入数据的版本控制非常重要,因为每月更新可能会对模型带来无法预见的影响。
交通状况预测模型 - 使用海滩上的人群规模作为特征之一预测海滩附近各个高速公路出口的拥堵情况。--- 正确
有些准备前往海滩的游客可能会根据交通状况预测结果来制定出行计划。如果海滩上人群规模很大且交通预计会拥堵,则许多人可能会另做打算。这样一来,海滩上游客的数量就会减少,进而使模型作出交通畅通的预测,然后这又会导致前往海滩的游客增加,这样,这个循环就会反复下去。
机器学习入门18 - 生产机器学习系统(Production ML Systems)的更多相关文章
- 机器学习入门02 - 深入了解 (Descending into ML)
原文链接:https://developers.google.com/machine-learning/crash-course/descending-into-ml/ 线性回归是一种找到最适合一组点 ...
- 机器学习入门 - Google的机器学习速成课程
1 - MLCC 通过机器学习,可以有效地解读数据的潜在含义,甚至可以改变思考问题的方式,使用统计信息而非逻辑推理来处理问题. Google的机器学习速成课程(MLCC,machine-learnin ...
- 机器学习入门之四:机器学习的方法--SVM(支持向量机)(转载)
转自 飞鸟各投林 SVM(支持向量机) 支持向量机算法是诞生于统计学习界,同时在机器学习界大放光彩的经典算法. 支持向量机算法从某种意义上来说是逻辑回归算法的强化:通过给予逻辑回归算法更严格的优化条件 ...
- pyhton机器学习入门基础(机器学习与决策树)
//2019.07.26#scikit-learn数据挖掘工具包1.Scikit learn是基于python的数据挖掘和机器学习的工具包,方便实现数据的数据分析与高级操作,是数据分析里面非常重要的工 ...
- 机器学习入门 - Google机器学习速成课程 - 笔记汇总
机器学习入门 - Google机器学习速成课程 https://www.cnblogs.com/anliven/p/6107783.html MLCC简介 前提条件和准备工作 完成课程的下一步 机器学 ...
- 【ML入门】李宏毅机器学习笔记01-Learning Map
版权声明:小博主水平有限,希望大家多多指导.本文仅代表作者本人观点,转载请联系知乎原作者——BG大龍. 目录 1 什么是机器学习? 2 机器学习的3个步骤 3 李宏毅老师的机器学习课程 4 按“模型的 ...
- 机器学习入门:K-近邻算法
机器学习入门:K-近邻算法 先来一个简单的例子,我们如何来区分动作类电影与爱情类电影呢?动作片中存在很多的打斗镜头,爱情片中可能更多的是亲吻镜头,所以我们姑且通过这两种镜头的数量来预测这部电影的主题. ...
- TensorFlow.NET机器学习入门【7】采用卷积神经网络(CNN)处理Fashion-MNIST
本文将介绍如何采用卷积神经网络(CNN)来处理Fashion-MNIST数据集. 程序流程如下: 1.准备样本数据 2.构建卷积神经网络模型 3.网络学习(训练) 4.消费.测试 除了网络模型的构建, ...
- [转]MNIST机器学习入门
MNIST机器学习入门 转自:http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/mnist_beginners.html?plg_ ...
随机推荐
- php ReflectionClass类遍历类中包含元素的方法
ReflectionClass 类 类内容 class MyClass { const myconst1 = 100000001; const myconst2 = [ 1 => '开始时间', ...
- [Linux][转载]Curl命令详解
命令:curl 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,是一款很强大的http命令行工具,当处在无界面的服务器上的时候,利用curl下载上传文件是较为方便的事情. 语法 ...
- Codeforces 279D The Minimum Number of Variables 状压dp
The Minimum Number of Variables 我们定义dp[ i ][ mask ]表示是否存在 处理完前 i 个a, b中存者 a存在的状态是mask 的情况. 然后用sosdp处 ...
- resume
源码链接(码云):https://gitee.com/tinqiao/level_17_software_engineering.git 截图效果: 源码: <!DOCTYPE html> ...
- SQL注入绕WAF总结
0x00 前言 在服务器客户端领域,曾经出现过一款360主机卫士,目前已停止更新和维护,官网都打不开了,但服务器中依然经常可以看到它的身影.从半年前的测试虚拟机里面,翻出了360主机卫士Apache版 ...
- 展开被 SpringBoot 玩的日子 《 五 》 spring data jpa 的使用
在上篇文章< 展开被 SpringBoot 玩的日子 < 二 >WEB >中简单介绍了一下spring data jpa的基础性使用,这篇文章将更加全面的介绍spring da ...
- Linux下mysql开机自启动
1,cd /etc/init.d/ 2,chmod +x mysql 3,chkconfig add mysql 4,chkconfig --list 显示服务列表 如果看到m ...
- mvc 路由配置
1.URL模式 路由系统用一组路由来实现它的功能,这些路由共同组成了应用系统URL架构或方案,这种URL架构是应用程序能够识别并能对之做出响应的一组URL,当处理一个输入 请求时,路由系统的工作是将这 ...
- CMD 中常见命令
引自百度经验:https://jingyan.baidu.com/article/67508eb41d44a09cca1ce4f1.html ipConfig:查询ip ping:查询连接速度: pi ...
- hadoop2-elasticsearch的安装
本文主要讲elasticsearch-2.2.1的安装过程. 准备工作: 1.搭建虚拟机 你需要先参考 hadoop2集群环境搭建 把你的虚拟机搭建起来-hadoop环境可以先不用搭建(完成步骤1到步 ...