我是小蕉。
这几个月一直在考虑机器学习要怎么落地,要怎么做在线预测,但是一直都是有点懵这样。很疑惑要怎么去做,毫无头脑,大量资料都是分析怎么好怎么好也没说怎么落地啊。。。
不信邪的小蕉,开始发功,谁知道呢,试试看嘛,又不亏。
然后看了王益大大的机器学习讲座,受益匪浅,大致意思就是我们还是要好好理解底层的东西,不要以为大数据就是Hadoop,或者google,这两个都是行业的佼佼者。因为用着感觉有限制,大牛带团队花了五年准备三年实施开发了一套分布式机器学习系统。是用Go语言写的,入门还是蛮痛苦的,蓝瘦。
所以话说回来了,那机器学习想要落地,跟现在火得一逼的python有毛关系?毕竟一个是java一个是c++。现在绝大部分都是一条龙训练模型测试模型进行模型调参,看起来就是离线计算能这样用,但也不可能每一次都完全算一遍啊,这得多痛苦呢??那模型训练更新的频率应该是怎样呢??
对于具体场景怎么落地,过去一段时间都还是很难去想象,然后昨天晚上四点突然几百个雷加几千个闪电把我惊醒了,脑子好像一下子开了个开关,突然有目标怎么去落地了。
就目前而言,大多数数据还是Hadoop平台上,前期已经在这上面有了一些的应用,也有了一定的技术积累。而且我们公司现在也没有现成的python环境可以使用也没人会吖,咋办??
所以短期来看一个比较靠谱的落地架构是,kafka+Spark Streaming+Spark MLlib。MLlib通过分布式机器学习训练模型,然后保存到hdfs上,Spark Streaming定期去hdfs上获取并更新模型,然后从kafka收取消息直接进行预测,并通过kafka回传给业务系统。
有人说Hadoop这套太慢,我们暂时没有语音图像文本需要处理,我暂时就用不着这些,即使我要用,短时间内从外部采购成熟产品看起来比较靠谱,这不是一天半会的事情。
但是长期来看,还是要逐渐将计算搬到python这套平台上,为什么呢??这是为什么呢??有了Spark MLlib不是可以包大天下了吗?
架构大概是,django+parallel python+各种各样的机器学习框架,比如tensorflow,scikit-learn,pandas,numpy等等,绝对能实现绝大部分的需求。
但是短期内至少三个月内不应该强行搭建,应该进行技术积累,毕竟上一次开发django程序是在两年前。
还有人问为何要用python,因为python机器学习库多啊,开发起来biu biu biu的,还需要其他理由吗??真是的。
谢谢闪电!!!小的给您请安了。