《构建实时机器学习系统》一1.2 机器学习发展的前世今生

简介:

1.2 机器学习发展的前世今生

1.2.1 历史上机器学习无法调和的难题

早在 2011年,笔者之一彭河森正在谷歌总部实习的时候,机器学习的应用还主要集中在几个互联网巨头手里。当时,机器学习的大规模应用存在以下三个方面的限制。
1.运维工具欠缺
就拿灵活开发流程来说吧,早在 2011年,谷歌、亚马逊等公司开发了内部自有的协同部署工具,而开源协同部署工具 Jenkins才刚刚起步,不少公司对服务器集群的管理还停留在 rsync 和 ssh 脚本阶段。机器学习的应用往往需要多台服务器各司其职、协同作业,这也增加了机器学习开发、部署的难度。这也解释了为什么早期的机器学习软件包(如 Weka 等)都是单机版的,因为服务器配置真的是太麻烦了。
一个机器学习系统的上线运行,需要前端、后端多个组成部分协调工作。在缺乏运维工具的年代,这样的工作量会大得惊人。人力物力的超高成本投入,有限而且不确定的回报率,这些都让机器学习从业人员在实际应用中难以生存。另外一些机器学习专用工具(如 Hadoop)在早年是很少有人懂得其部署步骤的,一般的工程师都不愿意去主动接触它。在这种情况下,两位笔者都曾经为自己的部门搭建过Hadoop 平台。
2.模型尚未标准化
早在 2011 年,机器学习模型仍然是门派林立,SVM、神经网络等大家之作往往需要与作者直接书写的 libsvm 等软件库相对应,而统一标准化语言的软件包才刚刚出现。当时已经有很多线性模型的软件包,但是如果需要使用随机森林,那么还需要再安装其他软件包,不同软件包的用法又是不一样的。这样的非标准化工作大大加重了开发的工作量,减缓了工作的进度。
机器学习软件行业这种“军阀割据”的格局,导致机器学习从业人员必须对每个对应的模型都要进行二次开发。理论上来说,再好的机器学习模型,在实际系统里面,其地位也就应该是一个可以随时替换的小插件。可是实际上,由于二次开发,往往导致一个模型很难替代和更新,只能与系统黏在一起。
3.全栈人才欠缺
如果有了足够多的全栈人才,那么上面的挑战就都不是问题了。可是由于机器学习的门槛比较高,往往需要拥有多年理论训练的人才能胜任相关工作。如果没有多年的工作经验,那么这样的人员往往对系统运维等工作一窍不通。 找到懂机器学习的人容易,找到懂系统运维的人也不难,可是要找到两样都会的人就非常困难了,这样的情况直接导致全栈人才极度缺乏。如果大家有幸能够供职于一些积累了多年机器学习实战经验的大公司,对机器学习系统架构进行“考古”,就会发现这个公司的机器学习系统架构设计大多取决于该公司架构人员的学历背景,每个公司在重模型还是重架构方面都有自己的倾向性。

1.2.2 现代机器学习的新融合

上面三个问题在 2012 年得到了转变,而这一年,也是两位笔者在亚马逊公司相遇的年份。能站在机器学习应用的前线,目睹这一革命的发生,我们感到非常欣喜。我们有幸成为这个大潮中的第一批用户,而且通过实际经历,了解了这一变化的来龙去脉。经过这几年的历练,我们熟悉了机器学习架构应用的相关知识。更重要的是,我们通过广泛的实验和讨论,总结出了对机器学习架构各个组成部分进行选择、预判的规律,让我们可以通过关键点分析对机器学习的浪潮进行预测评估。这也是我们希望能够通过本书与大家进行分享的经验。
从 2012 年到 2016 年,机器学习领域主要发生了以下这些变化。
1.轻量化运维工具成为主流
运维过于复杂,已经成为众多互联网企业的心头之患。这个痛点在 2012 年到 2016 年这几年之间得到了革命性的解决,其中一马当先的急先锋是Docker,Docker 是一款轻量化容器虚拟机生态系统(本书的第6章会详细介绍Docker,并且其应用实例也会贯穿全书)。在 Docker 出现以前,调试部署的工作往往会占用开发人员大量的时间,例如在开发人员电脑上能够成功运行的程序,部署好了之后却不能正常运行。Docker 的出现,使得开发人员电脑上和生产服务器上面的虚拟机镜像内容完全相同,从而彻底杜绝了这种悲剧的发生,大大缩短了开发部署的周期。
与此同时,新近出现的连续化部署 (Continuous Integration,CI)工具,如Jenkins,自动化了机器学习模型的训练和部署流程,大大提高了模型训练的效率。

  1. 机器学习工具标准化
    近几年机器学习软件的出现仍然呈现爆炸式增长的趋势,但是领军软件已经崭露头角。在单机机器学习处理方面,基于 Python 的 Scikit-learn 工具已经成为了监督式机器学习模型的主流。Scikit-learn 具有丰富的机器学习模型模块,并且非常易于进行系统整合,我们在本书的第4章将对其进行详细介绍。与此同时,大数据机器学习方面,Spark 和 MLLib 也成为了主流,MLLib 几乎涵盖了所有的主流分布式机器学习模块,并且非常易于扩展。这些新工具的出现,让开发人员不再需要对模型进行二次开发,从而大大提高了效率。
  2. 全栈人才登上历史舞台
    机器学习领域人才大战正酣,吸引了众多优质青年投身于这一领域。我们非常欣喜地看到众多全栈型人才的出现。所谓全栈型人才,即为上可建模型、 调参数,下可搭集群、做部署,左可开讲座、熬鸡汤,右可面风投、拉项目的“多才多艺”型人才。全栈型人才在组织中可以起到掌控技术全局的作用,可以大大缩短开发所需要的时间,减少系统反复修改带来的浪费。
相关文章
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
104 4
|
14天前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
20 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
2月前
|
机器学习/深度学习 PHP 开发者
探索PHP中的面向对象编程构建你的首个机器学习模型:以Python和scikit-learn为例
【8月更文挑战第30天】在PHP的世界中,面向对象编程(OOP)是一块基石,它让代码更加模块化、易于管理和维护。本文将深入探讨PHP中面向对象的魔法,从类和对象的定义开始,到继承、多态性、封装等核心概念,再到实战中如何应用这些理念来构建更健壮的应用。我们将通过示例代码,一起见证PHP中OOP的魔力,并理解其背后的设计哲学。
|
2月前
|
机器学习/深度学习 人工智能 Android开发
揭秘AI编程:从零开始构建你的第一个机器学习模型移动应用开发之旅:从新手到专家
【8月更文挑战第29天】本文将带你走进人工智能的奇妙世界,一起探索如何从零开始构建一个机器学习模型。我们将一步步解析整个过程,包括数据收集、预处理、模型选择、训练和测试等步骤,让你对AI编程有一个全面而深入的理解。无论你是AI初学者,还是有一定基础的开发者,都能在这篇文章中找到你需要的信息和启示。让我们一起开启这段激动人心的AI编程之旅吧! 【8月更文挑战第29天】在这篇文章中,我们将探索移动应用开发的奇妙世界。无论你是刚刚踏入这个领域的新手,还是已经有一定经验的开发者,这篇文章都将为你提供有价值的信息和指导。我们将从基础开始,逐步深入到更复杂的主题,包括移动操作系统的选择、开发工具的使用、
|
2月前
|
机器学习/深度学习 人工智能 算法
【悬念揭秘】ML.NET:那片未被探索的机器学习宝藏,如何让普通开发者一夜变身AI高手?——从零开始,揭秘构建智能应用的神秘旅程!
【8月更文挑战第28天】ML.NET 是微软推出的一款开源机器学习框架,专为希望在本地应用中嵌入智能功能的 .NET 开发者设计。无需深厚的数据科学背景,即可实现预测分析、推荐系统和图像识别等功能。它支持多种数据源,提供丰富的预处理工具和多样化的机器学习算法,简化了数据处理和模型训练流程。
37 1
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
基于python 机器学习算法的二手房房价可视化和预测系统
文章介绍了一个基于Python机器学习算法的二手房房价可视化和预测系统,涵盖了爬虫数据采集、数据处理分析、机器学习预测以及Flask Web部署等模块。
基于python 机器学习算法的二手房房价可视化和预测系统
|
2月前
|
机器学习/深度学习 数据处理 定位技术
构建您的首个机器学习项目:从理论到实践
【8月更文挑战第28天】本文旨在为初学者提供一个简明的指南,通过介绍一个基础的机器学习项目——预测房价——来揭示机器学习的神秘面纱。我们将从数据收集开始,逐步深入到数据处理、模型选择、训练和评估等环节。通过实际操作,你将学会如何利用Python及其强大的科学计算库来实现自己的机器学习模型。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你打开一扇通往机器学习世界的大门。
|
2月前
|
机器学习/深度学习 自动驾驶 算法
揭秘机器学习:用Python构建你的首个预测模型
【8月更文挑战第26天】 机器学习,这个听起来既神秘又遥不可及的领域,实际上正悄然改变着我们的世界。从推荐系统到自动驾驶汽车,机器学习技术无处不在。本文将带你走进机器学习的世界,通过一个简单的Python代码示例,展示如何构建一个基本的线性回归模型来预测房价。不需要复杂的数学公式或深奥的理论,我们将以最直观的方式理解机器学习的核心概念。无论你是编程新手还是数据科学爱好者,这篇文章都将为你打开一扇新的大门,让你看到数据背后的力量。
|
2月前
|
机器学习/深度学习 人工智能 算法
如何使用Scikit-learn在Python中构建一个机器学习分类器
如何使用Scikit-learn在Python中构建一个机器学习分类器
22 3
|
2月前
|
机器学习/深度学习 数据采集 分布式计算
构建一个高效的机器学习工作流:技术实践与优化策略
【8月更文挑战第12天】构建一个高效的机器学习工作流是一个复杂而持续的过程,需要综合考虑数据、模型、算法、平台等多个方面。通过遵循上述步骤和优化策略,可以显著提高机器学习项目的开发效率和质量,为业务带来更大的价值。未来,随着技术的不断进步和应用场景的不断拓展,我们有理由相信机器学习工作流将变得更加高效、智能和灵活。
下一篇
无影云桌面