1.1 机器学习工程师和MLOps的兴起
随着机器学习(ML)在全球范围内被广泛采用,我们需要以系统有效的方式构建机器学习系统,从而导致对机器学习工程师的需求骤增。这些ML工程师反过来又把DevOps的最佳实践应用在新的机器学习领域。主要的云提供商都有针对这些从业者的认证。我作为机器学习主题专家,有AWS、Azure、GCP的直接使用经验。在某些情况下,这包括帮助创建机器学习认证和官方培训材料。除此之外,我在杜克大学和西北大学的顶级数据科学项目中教授机器学习工程与云计算。我目睹了机器学习工程专业的兴起,因为许多以前的学生都成了机器学习工程师。
谷歌有一个专业机器学习工程师认证(https://oreil.ly/83skz)。它把ML工程师描述为“能够设计、构建机器学习模型并将其投入生产以解决业务难题的人”。Azure有一个微软认证:Azure数据科学家助理(https://oreil.ly/mtczl)。它将这种类型的从业者描述为“能够应用他们的数据科学和机器学习知识来实施和运行机器学习工作负载”的人。最后,AWS描述经其认证的机器学习专家(https://oreil.ly/O0cLK)为“对给定的业务问题能够设计、实现、部署、维护机器学习解决方案”的人。
看待数据科学与机器学习工程的一种方法是思考科学与工程本身。科学面向研究,工程面向生产。随着机器学习的发展不仅仅局限于研究方面,公司都渴望在围绕人工智能与机器学习的招聘方面获得好的投资回报率。根据payscale.com和glassdoor.com的调查显示,在2020年底,数据科学家、数据工程师、机器学习工程师的薪资中位数基本相同。根据LinkedIn在2020年第四季度的数据,有19.1万个云计算岗位、7万个数据工程师岗位、5.5万个机器学习工程师岗位、2万个数据科学家岗位、具体信息如图1-1所示。
图1-1:机器学习工作岗位
看待这些岗位趋势的另一种方式是,把它们作为技术成熟度曲线的一部分。很多公司意识到要想获取好的投资回报率(ROI),就需要具备云计算、数据工程、机器学习等硬技能的员工。这些公司对这类工程师的需求比对数据科学家的需求要大得多。因此,21世纪20年代这十年可能会显示出把数据科学作为一种行为而非职位的加速发展。DevOps是一种行为,就像数据科学一样。让我们想想DevOps和数据科学的理念,两者都是评估世界的方法,未必是一种独特的工作职位。
让我们看一下在组织中评价机器学习工程方案成功与否的工作有哪些。首先,统计投入生产环境的机器学习模型的数量。其次,评估应用这些机器学习模型的投资回报率。这些指标能提高模型的运营效率。成本、正常运行时间、运维人员是预测机器学习项目成败的重要依据。
先进的技术组织会利用方法与工具来降低机器学习项目失败的风险。那么他们应用的机器学习工具与工作流程有哪些呢?以下是部分清单:
云原生机器学习平台
AWS SageMaker、Azure ML Studio和GCP AI平台
容器化工作流
Docker容器、Kubernetes以及私有和公共容器注册表
无服务器技术
AWS Lambda、AWS Athena、Google Cloud Functions、Azure Functions
机器学习专用硬件
GPU、Google TPU(TensorFlow处理单元)、Apple A14、AWS Inferentia弹性推理
大数据平台和工具
Databricks、Hadoop/Spark、Snowflake、Amazon EMR(Elastic Map Reduce)、Google Big Query
机器学习的明确模式是它与云计算密切相关。这是因为机器学习的基础要素需要大量计算、大量数据和专用硬件。因此,云计算平台与机器学习工程的集成有着天然的协同增效作用。更加支持上述观点的实践是在云平台构建专用平台以增强ML的可操作性。如果你在做机器学习项目,那么很可能是在云上进行操作。接下来,我们讨论DevOps在这一过程中扮演的角色。