构建成功的数据科学项目并不简单,有时会变成噩梦。从数据摄入到生产,包括功能工程,建模,测试,部署和基础架构管理都有许多挑战。直到几年前,数据科学家一直试图自己应对所有这些挑战,但是他们很难克服这些挑战。为了应对这些挑战,已经出现了新领域,例如数据工程,功能工程和机器学习(ML)工程。在这篇博客文章中,我会带您了解如何成为ML工程师。
这是本文中的主题:
- 什么是ML工程?
- 数据科学家与ML工程师与数据工程师
- ML工程师做什么?
- 机器项目生命周期
- 7个步骤,成为ML工程师的课程和书籍 让我们潜水!
什么是机器学习工程?
机器学习是解决问题和任务自动化的现代技术。机器学习是AI的子场,它允许机器在没有明确指令的情况下自动学习并从经验中提高。构建机器学习项目是一个复杂的过程,需要一系列技能,从建模到部署和基础架构管理。 ML工程出现以弥合数据科学和软件工程之间的差距。幸运的是,您可以通过最近开发的库和平台(例如Scikit-Learn,Tensorflow,Huggingface和Comet)轻松应对ML工程挑战。
数据科学家与ML工程师与数据工程师
数据科学项目中有三个关键角色:数据工程师,数据科学家和ML工程师。数据工程师创建的系统和管道来收集原始数据,管理并将其转换为信息。理论上数据科学家创建了模型原型。 ML工程师使用各种工具来创建模型并将其部署到生产中。
什么是机器学习工程?
机器学习是解决问题和任务自动化的现代技术。机器学习是AI的子场,它允许机器在没有明确指令的情况下自动学习并从经验中提高。构建机器学习项目是一个复杂的过程,需要一系列技能,从建模到部署和基础架构管理。 ML工程出现以弥合数据科学和软件工程之间的差距。幸运的是,您可以通过最近开发的库和平台(例如Scikit-Learn,Tensorflow,Huggingface和Comet)轻松应对ML工程挑战。
数据科学家与ML工程师与数据工程师
数据科学项目中有三个关键角色:数据工程师,数据科学家和ML工程师。数据工程师创建的系统和管道来收集原始数据,管理并将其转换为信息。理论上数据科学家创建了模型原型。 ML工程师使用各种工具来创建模型并将其部署到生产中。
什么是机器学习工程?
机器学习是解决问题和任务自动化的现代技术。机器学习是AI的子场,它允许机器在没有明确指令的情况下自动学习并从经验中提高。构建机器学习项目是一个复杂的过程,需要一系列技能,从建模到部署和基础架构管理。 ML工程出现以弥合数据科学和软件工程之间的差距。幸运的是,您可以通过最近开发的库和平台(例如Scikit-Learn,Tensorflow,Huggingface和Comet)轻松应对ML工程挑战。
数据科学家与ML工程师与数据工程师
数据科学项目中有三个关键角色:数据工程师,数据科学家和ML工程师。数据工程师创建的系统和管道来收集原始数据,管理并将其转换为信息。理论上数据科学家创建了模型原型。 ML工程师使用各种工具来创建模型并将其部署到生产中。
让我用一个例子解释这些角色。可以说,一家公司想执行情感分析项目。数据工程师负责正确导出加载转换(ETL)构建模型所需的数据。如果数据是由不同来源不断生成的,则它们将构建数据管道,这些数据管道可以在正确的时间将所有这些信息传输到系统的正确部分,而无需任何延迟或瓶颈。
使用这些数据,数据科学家试图找到预测数据是正,阴性还是中性的最佳模型。 ML工程师将负责构建适合数据并在现实生活中部署该模型的模型,并确保它可以执行。
机器学习项目生命周期
ML生命周期是改进数据,建模和部署之间的迭代且永无止境的周期。该生命周期包括三个主要阶段:数据准备,模型构建和模型部署。让我们看一下这些阶段。
数据准备
实际数据集通常不干净。这些数据集通过数据预处理清除。垃圾中,垃圾是计算机科学中的一个常见概念,但是该概念也可以用于ML工程。如果使用干净的数据集构建模型,则可以获取一个好的模型。
模型构建
ML工程师尝试使用干净的数据来构建最佳模型。构建模型时,建议从一个简单的模型(例如回归)开始,然后尝试使用复杂模型,例如神经网络。创建模型后,您需要通过各种统计指标来评估模型的性能,例如精度,精度,回忆或F1。
模型部署
获得最佳模型后,是时候部署,监视和维护它了。模型部署的目的是将模型投入生产。因此,生产模型可以检索数据并返回其预测。 ML工程师还负责监视模型的性能并确保模型做出准确的预测。
成为ML工程师的7个步骤
成为ML工程师是一个挑战。在审查了500多个机器学习工程师职位发布之后,365个团队发现了以下ML工程师职位的技能:
您可以看到,成为ML工程师的技能很多。让我们仔细研究最重要的技能。
1.编程
要实施机器学习项目,有必要了解一种编程语言。机器学习世界上最常用的语言是Python,R。Python在数据科学中使用了更多的使用,因为它是一种通用和易于学习的语言。使用Python,您可以从数据清洁到模型部署进行端到端的机器项目。此外,许多重要的机器学习框架,例如Pytorch,Scikit-Learn和Pyspark都用Python编写。
Python免费课程:
- 学习初学者Tutorial的完整课程
- Python教程 - 初学者的Python完整课程(YouTube)
- Python书籍:
Python速成课程
- 学习python
- 在Deep Learning Weekly中加入您的18,000名同事,以获取最新产品,收购,技术,深水技术等。
2.机器学习算法
没有魔术算法可以解决所有类型的机器学习问题。您可以尝试所有的算法来构建一个好的模型,但是需要大量时间。熟悉所有常见的机器学习算法非常重要,以便您知道在哪里使用什么算法。以下是机器学习工程师经常使用的一些关键算法:线性回归,天真的贝叶斯,KNN,决策树,支持向量机,随机森林,XGBoost,K-Means,k-Means和PCA。
机器学习课程:
- 机器学习专业化(Coursera)
- 监督机器学习:回归和分类(Coursera)
机器学习书籍:
- 用Scikit-Learn,Keras和Tensorflow的动手机器学习,Geron Aurelien
- 塞巴斯蒂安·拉斯奇卡(Sebastian Raschka),Yuxi(Hayden)Liu,Vahid Mirjalili 的机器学习
- Alexey Grigorev的机器学习书房
3.应用数学
数学是ML工程师武器库的至关重要技能。机器学习涉及许多应用的数学概念,例如统计,线性代数,微积分,概率理论和离散数学。在训练模型系数时应用数学公式。如果您熟悉这些公式,则可以选择正确的算法。大多数机器学习算法都是基于统计数据,因此,如果您在数学和统计方面具有牢固的基础,它们非常容易理解。
应用数学课程:
- 机器学习数学:线性代数(Coursera)
- 机器学习的数学:多元微积分(Coursera)
- 汗学院:统计和概率
应用数学书籍:
- 彼得·布鲁斯(Peter Bruce),安德鲁·布鲁斯(Andrew Bruce),彼得·盖德克(Peter Gedeck)的数据科学家的实用统计数据
- 托马斯·尼尔德(Thomas Nield)的数据科学基本数学
- Mike Cohen的数据科学实用线性代数
4.深度学习
机器学习算法与中小型数据集很好地工作。但是,在大数据方面,这些算法的性能不佳。深度学习技术用于分析大数据。深度学习是机器学习的一个子领域,是人工神经网络的扩展。诸如图像分类,语言到语言翻译和无人驾驶汽车之类的问题可以通过基于变形金刚的GPT-3和BERT等深度学习技术来解决。
深度学习与非结构化数据很好,不需要功能工程。另一方面,深度学习模型是黑匣子,因为它不知道它们的工作原理。另外,它们需要大量数据。以下是ML工程师应该知道的深度学习算法:多层感知器,卷积神经网络,经常性神经网络,长期短期记忆网络,生成的对抗网络和变形金刚。
。深度学习课程:
- 用Tensorflow 2.0,Keras和Python(YouTube)深入学习
- MIT 6.S191:深度学习简介(YouTube)
深度学习书籍:
- franã§oischollet的python深入学习
- 劳伦斯·莫里尼(Laurence Moroney)的编码人员的AI和机器学习
- Ian Goodfellow,Yoshua Bengio和Aaron Courville的深度学习
5.机器学习框架
您可以从头开始构建机器学习模型,但是无需重新发明轮子。幸运的是,最近已经开发了出色的框架。这些框架可帮助您更轻松地执行机器学习项目。例如,您可以使用PANDA进行数据预处理,Matplotlib和Seaborn进行数据可视化,Scikit-Learn来实现机器学习算法,TensorFlow和Pytorch进行深度学习分析,以及用于模型优化的彗星。
>机器学习框架博客文章:
- 2022年最佳机器学习框架指南
- 10个最佳数据科学图书馆
6. mlops
一个未部署到生产环境的机器学习项目是一个死亡项目。机器学习操作(MLOPS)是ML工程的核心功能,旨在将机器学习模型投入生产,然后维护和监视它们。换句话说,MLOP是模型构建和将模型导出到生产之间的桥梁。 MLOP是一个相对较新但快速增长的领域。它是机器学习的devops。要执行MLOPS步骤,您可以使用MLFLOW,KUBEFLOW,METAFLOW和DATAROBOT等各种工具。
MLOPS课程:
- 生产的机器学习工程(MLOPS)(YouTube)
- 生产机器学习简介(Coursera)
mlops书:
- Andriy Burkov的机器学习工程
- Carl Osipov的MLOPS工程
7.云计算
机器学习项目需要大量的处理能力,数据存储和许多服务器。云计算可帮助您在功能强大的机器上使用多个GPU培训模型,部署这些模型,并根据需要运行尽可能多的服务器。云计算目前是数据科学的上升趋势。用于机器学习的最常用的云计算服务是Amazon Sagemaker,Microsoft Azure Machine Learne和ML工程的GCP Vertex AI。
云计算课程:
- 云计算简介(Coursera)
- 云计算在11小时内(YouTube)
云计算书籍:
- Chris Fregly的数据科学,Antje Barth
- Google云平台上的数据科学:Valliappa Lakshmanan实施
附加技能
成为ML工程师需要许多技能。我提到了其中最重要的。掌握了这些技能后,您将准备担任ML工程师。但是,如果您学习以下技能,您将在比赛中脱颖而出。
- 数据可视化
- sql
- nosql
- pyspark
- Hadoop
- docker
- kubernetes
- 用于机器学习的CI-CD
- git和github
- FastAPI
最后的想法
建立成功的端到端机器学习项目面临许多挑战。要应对这些挑战,ML工程师需要学习一些技能和工具。在这篇博客文章中,我谈到了成为ML工程师的路线图。 ML Engineering是最近出现的快速增长,高薪且需求的领域。如果您对数据科学和软件都感兴趣,则ML工程适合您。