|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
作者:微信文章
字数 4001,阅读大约需 21 分钟
AI工程结合软件开发与机器学习,是快速发展的领域。核心职责包括构建、集成、部署和监控AI模型。所需技能包括编程、软件工程实践、沟通协作以及使用TensorFlow、PyTorch等工具。道德考量和持续学习至关重要。
译自:A Developer's Guide To Becoming an AI Engineer[1]
作者:Vinod Chugani
对于技术精湛的 AI 工程师的需求从未如此之高,这使其成为技术领域中发展最快的职业道路之一。它将传统的软件开发与机器学习能力相结合。对于开发人员来说,这既代表着一个 在你的基础上构建[2] 的令人兴奋的机会,也是你现有编程技能的 自然进化[3]。
什么是 AI 工程?
AI 工程[4] 涉及设计、构建和部署 AI 系统,以大规模解决现实世界的问题。与遵循可预测逻辑的传统软件开发不同,AI 工程创建的系统可以学习、适应并根据数据模式做出决策。
AI 工程师弥合了数据科学研究和生产软件系统之间的差距。虽然数据科学家专注于开发模型和算法,但 AI 工程师会将这些创新转化为可靠的、可扩展的应用程序,供数百万用户每天互动。例如,Netflix[5] 等公司使用 AI 向超过 2 亿用户推荐内容,而 Tesla[6] 则部署 AI 用于自动驾驶。
AI 工程师的核心职责
AI 工程师处理的范围比传统开发人员更广,他们处理的是可以学习和适应的系统,而不是遵循预定的逻辑。
构建和集成 AI 模型
AI 工程师开发和实现机器学习 (ML) 模型,选择最适合特定用例的算法。他们处理从数据预处理和特征工程到模型训练和验证的所有事情。集成阶段包括将这些模型嵌入到现有的软件架构中,确保它们与数据库、API 和用户界面顺利协作。
这个过程通常需要调整模型以适应生产环境,在生产环境中,性能和可靠性比在测试数据集上获得尽可能高的准确性更重要。
部署和监控系统
模型构建完成后,AI 工程师使用诸如 Docker[7] 之类的容器化技术和诸如 Kubernetes 之类的编排平台将它们部署到生产环境中。他们设置监控系统来跟踪模型性能、检测数据漂移并识别模型何时需要重新训练。
持续监控非常重要,因为随着真实世界的数据模式发生变化,AI 模型可能会随着时间的推移而退化。工程师实施自动重新训练管道和性能警报,以便在这些变化发生之前采取行动。这种维护代表了与传统软件的一个关键区别,在传统软件中,你期望部署的代码在很长一段时间内保持一致的行为。
AI 工程师与 ML 工程师和软件开发人员有何不同
AI 工程师通常比 ML 工程师承担更广泛的职责,ML 工程师更专注于模型开发和实验。AI 工程师也不同于软件开发人员,软件开发人员通常使用可预测的系统,在这些系统中,输入会产生预期的输出。
AI 工程师必须了解这两个领域。他们需要软件工程技能来构建可扩展的系统,以及 ML 专业知识来处理需要持续调整和维护的概率模型。
适用于开发人员的 AI 工程生命周期
构建 AI 系统遵循一个结构化的过程,该过程在关键方面不同于传统的软件开发。
问题定义和数据准备
每个 AI 项目都始于明确定义业务问题并确定 AI 是否真的是正确的解决方案。工程师与利益相关者合作,以确定成功指标并收集需求。数据准备阶段包括收集、清理和组织将用于训练 AI 模型的数据集。
这个阶段会消耗大量的项目时间,具体时间长短取决于数据质量和可用性。真实世界的数据通常是混乱的、不完整的或有偏差的,因此工程师必须开发可靠的管道来处理数据质量问题并确保一致的格式。
模型开发和测试
在开发过程中,工程师会尝试不同的算法、特征集和 超参数[8] 来构建模型。他们使用交叉验证和留出测试以及其他技术来评估模型性能。理想情况下,这个测试阶段不仅要包括最广为人知的客观准确性指标,还要包括不太知名的指标,例如公平性测试、稳健性检查和性能基准测试。
工程师还会为代码和模型实施版本控制。他们这样做是为了能够重现结果,也是为了能够在需要时回滚到以前的版本。
部署和持续监控
部署包括将模型打包成可用于生产的格式,并将它们与现有的基础设施集成。工程师设置自动部署管道,该管道可以在不中断服务的情况下处理模型更新。持续监控阶段有助于识别何时需要更新模型,这是因为数据模式在不断变化,或者是因为业务需求在不断发展。
AI 工程所需的基本开发者技能
在 AI 工程方面取得成功需要将传统的编程技能与特定于使用机器学习系统的新能力结合起来。
技术编程技能
Python[9] 仍然是 AI 工程的主导语言,NumPy、Pandas 和 Scikit-learn 等广泛的库为数据操作和模型构建提供了基础。AI 工程师还应该熟悉面向对象编程,以及调试技术和性能调优。
SQL 技能对于数据提取和转换同样重要,而对诸如 AWS[10]、Google Cloud[11] 或 Azure 之类的云平台的了解能够实现可扩展的部署和资源管理。
软件工程最佳实践
AI 工程需要强大的软件开发基础知识,包括使用 git 进行版本控制、自动化测试和 CI/CD 实践[12]。工程师必须编写干净、可维护的代码,这些代码可以被团队成员轻松地修改和扩展。
文档编制在 AI 项目中至关重要,在这些项目中,未来的维护需要对模型决策和数据处理步骤进行清晰的解释。
沟通与协作
AI 工程师会定期为非技术利益相关者翻译复杂的技术概念,这需要清晰的沟通技巧。他们与[13] 数据科学家、产品经理和业务主管协作,以使技术解决方案与业务目标保持一致。请记住,公司领导通常不懂数学和计算机科学的语言。
解决问题的能力有助于工程师应对 AI 项目中固有的不确定性,在这些项目中,最初的方法可能行不通,并且通常需要创造性的解决方案。
AI 开发的常用工具和框架
AI 工程生态系统包括专门的框架和平台,旨在处理构建智能系统的独特挑战。
核心机器学习框架
TensorFlow 提供了全面的工具,用于大规模构建和部署 机器学习模型[14],尤其是在生产环境和移动部署方面。PyTorch 为研究和原型设计提供了极佳的灵活性,其动态计算图使调试更加直观。
Hugging Face 已经成为使用预训练语言模型的标准平台,为文本分类、翻译和问答等任务提供了数千个随时可用的模型。LangChain 通过提供标准化接口和通用工作流程,简化了使用 大型语言模型 (LLM)[15] 构建应用程序的过程。
云部署平台
现代 AI 工程在很大程度上依赖于云基础设施来实现可扩展的部署。AWS SageMaker 提供了端到端的 ML 工作流程,从数据准备到模型部署和监控。Google Vertex AI 提供了集成的 ML 运营 (MLOps[16]) 功能,并为 AutoML 和自定义模型训练提供了强大的支持。Azure Machine Learning 提供了全面的工具,用于完整的 ML 生命周期,并与 Microsoft[17] 的生态系统实现了极佳的集成。
这些平台处理基础设施管理,使工程师能够专注于模型开发和业务逻辑,而不是服务器配置和扩展问题。
开发者生产力工具
GitHub Copilot 使用 AI 来辅助代码完成和生成,从而显著加快了开发任务。MLOps 平台(如 MLflow 和 Weights & Biases)可帮助跟踪实验、管理模型版本和协调 AI 项目上的团队协作。
适用于机器学习的 CI/CD 工具包括 数据版本控制[18] (DVC) 和 持续机器学习[19] (CML),用于自动化测试和部署代码和模型。GitHub Actions 也已变得流行,用于实施 CI/CD 管道,尤其是对于已经使用 GitHub 进行版本控制的团队,它为自动化测试和部署提供了熟悉的工作流程。
适用于开发人员的最佳实践和道德 AI
随着 AI 系统变得越来越强大并得到广泛部署,负责任地构建它们变得越来越重要。构建可用于生产的 AI 系统既需要卓越的技术,又需要认真考虑社会影响。
构建可扩展且可维护的系统
成功的 AI 系统需要仔细的架构规划,以处理不同的负载和数据量。工程师应该从一开始就实施缓存策略、负载平衡和横向扩展功能。模块化设计原则有助于隔离不同的组件,使系统更易于测试、调试和更新。
在 AI 项目中,文档编制和代码组织变得更加重要,在这些项目中,模型和数据处理逻辑可能很复杂,并且对于其他开发人员来说并不明显。
AI 开发中的道德考量
偏差检测和缓解应构建到 AI 开发过程的每个阶段。工程师必须定期审核其训练数据是否存在代表性问题,并跨不同的人口群体测试模型,以确保公平的结果。透明度要求可能需要构建可解释的 AI 功能,以帮助用户了解决策是如何做出的。
隐私保护涉及实施数据匿名化技术、安全的数据处理实践以及遵守 GDPR 等法规。OECD AI 原则[20] 为道德 AI 开发提供了一个具体的框架,强调以人为本的价值观、透明度、问责制和安全性,工程师应将其集成到他们的开发过程中。
工程师还应考虑其 AI 系统的更广泛的社会影响,并构建防止滥用的保障措施。
适用于开发人员的 AI 工程职业道路
AI 工程领域提供了多样化的机会,具有强大的增长潜力和专门的职业道路。
具体角色类型和晋升
AI 工程领域提供了几个不同的职业道路,每个职业道路都有特定的职责和要求:
• AI 工程师:通用角色,专注于端到端的 AI 系统开发,从构思到部署。这些工程师在 AI 应用程序的整个堆栈中工作。• 机器学习工程师:专门的角色,专注于模型开发、训练和调整。MLE 更多地关注 AI 系统的算法和数学方面。• 应用 AI 开发者:以开发者为中心的角色,将 AI 功能集成到现有的应用程序和产品中。这些专业人员将传统的软件开发与 AI 集成相结合。• MLOps 工程师:基础设施和运营专家,负责管理 AI 系统在生产环境中的部署、监控和维护。
入门级专业人员从应用 AI 开发者或初级 AI 工程师开始,他们实施现有的模型并维护由高级团队成员构建的 AI 系统。随着他们获得经验,他们将负责设计新模型、领导技术项目和指导初级开发人员。高级角色涉及架构决策、跨团队协作和 AI 计划的战略规划。
新兴的专业化和趋势
LLMOps(LLM 运营)已成为 AI 工程中的一个关键专业领域。这涉及到使 GPT、Claude 或 开源替代方案[21] 等 LLM 在生产中可靠地工作。LLMOps 工程师专注于提示工程、微调策略、成本管理以及处理部署数十亿参数模型的独特挑战。
多模态 AI 代表了 AI 工程的前沿,它结合了文本、图像、音频和视频输入来创建更复杂的应用程序。在此领域工作的工程师集成了不同的 AI 模型和模态,需要同时具备计算机视觉、自然语言处理和音频处理方面的专业知识。
薪资见解和市场趋势
由于需求高和技能专业,AI 工程师的薪资很高。在美国,入门级职位的年薪约为 120,000 美元到 150,000 美元,而高级工程师在大型科技公司的年薪可以达到 200,000 美元到 300,000 美元或更多。由于 MLOps 工程师和 LLMOps 专家具有专业知识,因此他们的薪资通常最高。
远程工作机会已大大增加,使工程师能够进入全球就业市场。随着越来越多的公司将 AI 集成到他们的产品和运营中,该领域将继续快速增长,从而在从医疗保健到金融再到娱乐等各个行业中,对技术精湛的从业人员的需求持续不断。
结论
对于希望从事解决有意义的现实世界问题的技术的开发人员来说,AI 工程代表了一条引人入胜的职业道路。软件工程基础知识与 ML 专业知识的结合创造了构建可以改变人们工作和生活方式的系统的机会。
由于技术发展迅速,尤其是在 LLMOps 和多模态 AI 等新兴趋势中,因此在该领域取得成功需要持续学习。通过参与性工作、优厚的报酬以及构建产生影响的系统的满足感,这项投资得到了回报。
无论您是刚刚开始您的开发职业生涯,还是希望从传统的软件工程转型,AI 工程道路都为专业发展和技术成就提供了巨大的潜力。关键是从编程和软件工程方面的强大基础知识开始,然后逐步构建机器学习框架和特定于 AI 的工具方面的专业知识。
对于准备开始他们的 AI 工程之旅的开发人员,DataCamp 的 面向开发人员的 Associate AI Engineer[22] 课程提供了对本指南中涵盖的技能和框架的全面培训。
引用链接
[1] A Developer's Guide To Becoming an AI Engineer:https://thenewstack.io/a-developers-guide-to-becoming-an-ai-engineer/
[2]在你的基础上构建:https://thenewstack.io/ai-engineering-level-up-your-it-career/
[3]自然进化:https://thenewstack.io/embracing-ais-transformation-transitioning-from-a-software-developer-to-a-builder/
[4]AI 工程:https://thenewstack.io/ai-engineering/
[5]Netflix:https://research.netflix.com/research-area/machine-learning-platform
[6]Tesla:https://www.tesla.com/AI
[7]Docker:https://www.docker.com/?utm_content=inline+mention
[8]超参数:https://towardsdatascience.com/hyperparameters-in-deep-rl-f8a9cf264cd6/
[9]Python:https://thenewstack.io/what-is-python/
[10]AWS:https://aws.amazon.com/?utm_content=inline+mention
[11]Google Cloud:https://cloud.google.com/?utm_content=inline+mention
[12]CI/CD 实践:https://thenewstack.io/ci-cd/
[13]他们与:https://thenewstack.io/delegating-vs-collaborating-in-the-era-of-ai-powered-software-development/
[14]机器学习模型:https://thenewstack.io/use-these-tools-to-build-accurate-machine-learning-models/
[15]大型语言模型 (LLM):https://thenewstack.io/introduction-to-llms
[16]MLOps:https://towardsdatascience.com/a-key-start-to-mlops-exploring-its-essential-components-27646238372d/
[17]Microsoft:https://news.microsoft.com/?utm_content=inline+mention
[18]数据版本控制:https://en.wikipedia.org/wiki/Data_Version_Control_(software)
[19]持续机器学习:https://towardsdatascience.com/continuous-machine-learning-e1ffb847b8da/
[20]OECD AI 原则:https://www.oecd.org/en/topics/sub-issues/ai-principles.html
[21]开源替代方案:https://thenewstack.io/what-is-open-source-ai-anyway/
[22]面向开发人员的 Associate AI Engineer:https://datacamp.pxf.io/N9DmVP |
|