内容简介:同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流*延伸阅读
加入极市 专业CV交流群,与 6000+来自腾讯,华为,百度,北大,清华,中科院 等名企名校视觉开发者互动交流!更有机会与 李开复老师 等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流 。 点击文末“ 阅读原文 ”立刻申请入群~
来源:知乎专栏 -- 无痛的机器学习系统
https://zhuanlan.zhihu.com/p/65242220
已获作者授权,请勿二次转载
作为一个菜鸡小透明,贾扬清大神的点赞给了我无穷的动力。站在特别普通人的角度,谈一下如何入门机器学习系统,算是对过去一年的踩坑做一个总结。
总的来看,系统就是为了落地,层出不穷、琳琅满目的机器学习(基本就是深度学习)模型逐步走向实用化,会遇到各种各样的问题,去解决这些问题,机器学习系统应运而生。
过去小一年,在GitHub总结了一个相关资源的list:
https://github.com/HuaizhengZhang/Awesome-System-for-Machine-Learning
在总结的过程中,自己重新架构了这块的知识体系(基本上站在学术圈角度,工业大佬想法肯定更落地)。首先,机器学习分为若干阶段:数据收集和标定,处理数据,特征工程,编写模型,训练模型,模型管理,模型部署,其实每个阶段都对应着一种或多种机器学习系统,另外还有一些边缘计算AI系统,强化学习系统,AI视频系统,接下来也都分别说明。最后会站在菜鸡角度阐述一些问题的看法(何种语言?如何开始?...)
数据收集和标定 - Label System
这方面的突出工作是
polygonrnn++( http://www.cs.toronto.edu/~amlan/demo/ )这种,系统、system这个概念太广,精确点儿这类工作可以称作tool,深度学习对数据的需求无穷无尽,这样的工作再多也不嫌多。
处理数据 - Data Processing System
超高速处理图像数据的Halide编译器( https://halide-lang.org/ )是这一块的佼佼者,在很多很多相关项目中都能看到他的影子。个人另一个比较喜欢的工作是weld( https://www.weld.rs/ ),使用rust编写,抽象整个data science过程中的各种数据流,高端大气上档次。其它例如modin( https://github.com/modin-project/modin ),改一行代码就能提高pandas的运行效率这样的项目很多,不一一列举了。
特征工程 - Auto-Feature-Engineering System
深度学习的端到端让这块的需求一下子不如之前那么多,很多AutoML系统都提供了相关接口,例如
h2o (https://github.com/h2oai/h2o-tutorials/tree/master/best-practices/feature-engineering) ,感觉不太火,不进一步列举了。
编写模型 - Framework
这个是概念上最容易懂,做起来难到爆,非大神无法进入的领域,caffe(贾扬清),Tensorflow(Jeff Dean),PyTorch,MxNet(李沐,陈天奇),xgboost(陈天奇),无论是推动,还是创建,有了他们,生活更简单,看看libsvm的引用,编写user-friendly的 工具 是多么的促进相关领域的发展。
训练模型-Distributed Training System
这一块和分布式系统息息相关,这一年给我的感觉是这类系统的论文数量比另外的总和都多。我个人大体将这块分成了三部分。
第一部分就是分布式训练系统,类似于
Parameter Server
(https://www.cs.cmu.edu/~muli/file/parameter_server_osdi14.pdf) ,强无敌,还有我师兄最近的work,一分半钟在imagenet上训练
alexnet (https://arxiv.org/pdf/1902.06855.pdf) ,快就完事了。
第二部分是更好的并行机制
大神Jia Zhihao的metaflow
(https://arxiv.org/pdf/1807.05358.pdf) 可以瞻仰,提供了四种并行机制,然后用扎实的代码能力进行了实现
第三部分是如何在集群上更好的调度训练任务,让整体的训练时间缩短,去年听了HKU Wuchuan老师来我们组的talk,很精彩。这篇Optimus
(https://i.cs.hku.hk/~cwu/papers/yhpeng-eurosys18.pdf) 也被伯克利的课程收录了,相关的工作也是越来越多。
管理模型 - Model DB
深度学习的管理和可复现性简直头疼,Spark大神公司的MLflow (https://www.mlflow.org) 帮你管理整个模型的周期;MIT的
modelDB( https://mitdbg.github.io/modeldb/papers/hilda_modeldb.pdf )也能帮你进行模型的版本控制。
模型部署 - Model Deployment System
这块系统关注模型的预测(inference)阶段,我大体分成了三个部分。
第一部分是model serving system,这里面的佼佼者是Tensorflow-Serving,学术圈里比较出名的是
Clipper (https://www.usenix.org/system/files/conference/nsdi17/nsdi17-crankshaw.pdf) ,但是我们团队的试用体验不是很好。
第二部分是inference optimization,提升硬件的utilization,更好的model placement来加快模型运行,和network量化是完全不同的路子,这篇Dynamic Space-Time Scheduling for GPU Inference
(http://learningsys.org/nips18/assets/papers/102CameraReadySubmissionGPU_Virtualization%20(8).pdf)
可以一看
第三部分是编译器,不提了,知乎上相关讨论挺多的,TVM(又又又是陈天奇)独领风骚,各大公司也都有相关的project了。
走马观花的挑了一些文章,可以说系统支持了机器学习的全生命周期。再来谈一下看到的比较多的问题。
如何开始?
根据自己的知识体系,选择一个最接近的,正反馈稍微快一点的子领域。选择系统就意味着无法像深度学习的小伙伴一样一年3篇+,随便打开国内外系统大神的主页,两年做一个系统说不定还发不了好会都是很正常的现象,99%的代码跟论文无关,但是必须得做,不断擦干眼泪,不断上,所以选择自己入门快的领域,能让沮丧的时间短一点。
选定了就阅读优秀的相关源代码,这个过程感觉进步特别大,系统更注重现实意义,只要有价值,咬定不放松。
选择啥语言?
C++肯定是首选,效率是系统的要务。C++不太行咋办,我看到
Rust( https://www.weld.rs/),
Go( https://github.com/kubeflow/pipelines),
Jave( https://github.com/awslabs/mxnet-model-server)
都有相关的系统实现,系统还是要发现落地的痛点,
纯Python( https://github.com/mindsdb/mindsdb )也有,想点子,干就完事了。
未完待续,下篇文章补充一些其它应用系统,例如视频分析系统(视频数据大,应用ML model如何优化),强化学习系统(不同的范式,不同的架构)等等。
希望大家多提意见,共同进步。
*延伸阅读
点击左下角 “ 阅读原文 ”, 即可申请加入极市 目标跟踪、目标检测、工业检测、人脸方向、视觉竞赛等技术交流群, 更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流, 一起来让思想之光照的更远吧~
觉得有用麻烦给个在看啦~
以上所述就是小编给大家介绍的《无痛的机器学习系统入门指南(一)?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
VISUAL FOXPRO程序设计实用教程习题解答与实验指导
康萍 / 中国经济出版社 / 2006-6 / 22.80元
本书为康萍等主编的《VisUal FosxPro程序设计实用教程》的配套习题解答与实验指导教材,由常年工作在计算机教学第一线的教师组织编写。全书共分为三部分:第1部分为实验指导,包括33个实验,分别讲述了每个实验的实验目的.实验内容和操作步骤;第2部分为开发实例,介绍了图书营理系统的分析、设计与实现过程;第3部分为配套教材各章节习题参考答案。 本书实验部分可操作性及实用性较强。系统开发案......一起来看看 《VISUAL FOXPRO程序设计实用教程习题解答与实验指导》 这本书的介绍吧!