全栈人工智能工程师:现代博学者

任何在团队环境中工作过的人都知道,每个成功的团队都有一个得力助手——无论你的问题性质如何,他都能帮助你。在传统的软件开发团队中,这个人是一个专业的程序员,也是另一种技术的专家,可以是像Snowflake这样的数据库技术,也可以是像Springboot这样的重要框架。然而,这个人的特别之处在于,他们对组织基础设施和开发环境中的许多其他技术有相当多的了解。例如,他们熟悉 Kubernetes,了解网络,精通架构设计模式,甚至可能编写了一些用户界面。虽然他们可能不是这些其他技术的专家,但他们有足够的知识来解决难题,如果有必要,他们可以成为专家。

多学科的好处不仅仅是解决问题的能力。他们享受着许多其他好处,他们的团队也从中受益:

  • 他们赚更多的钱,雇主喜欢把这些人留在身边。它们还使技术水平较低的工人提高生产力,自己做更多的工作。

  • 他们能更好地适应变化。如果他们想改变职业生涯的重点,他们可以很快做到。如今,许多AI/ML工程师并没有在大学接受过正式培训,而是自学。

  • 他们领导。当他们的团队需要改变重点或解决难题时,他们可以带头,因为他们对团队需要去哪里有扎实的工作知识。

  • 他们往往更具创新性。这并非巧合。了解解决方案的整个堆栈可以让您了解一个好主意,而这些好主意是狭隘关注的人所无法理解的。

  • 它们通过弥合专业团队之间的差距来促进协作。

这篇文章提出了与 AI/ML 相关的主题,一旦学习,可以指导您成为一名全栈 AI 工程师。但在介绍这些主题之前,让我们先从历史的角度了解多学科技能的影响。事实证明,我上面描述的配置文件并非软件行业所独有。在科学、艺术和哲学中,这样的人被称为博学者。只是为了好玩,让我们回顾一下古往今来的一些波尔马斯。

历代博学

列奥纳多·达·芬奇(1452-1519)是最著名的博学家。他是一个家喻户晓的名字,他的毕生作品是众所周知的。他画了《蒙娜丽莎》和《最后的晚餐》,通过解剖身体加深了我们对解剖学的理解,并设计了飞行器和机器人。

Ada Lovelace (1815 - 1852) 是英国数学家、作家和世界上第一位计算机程序员。在很小的时候,她就擅长数学,这为她赢得了与另一位英国数学家查尔斯·巴贝奇合作的机会。她主要以查尔斯·巴贝奇(Charles Babbage)的分析引擎(Analytical Engine)的工作而闻名,该引擎基本上是一台机械计算机。在翻译分析引擎的文档时,她添加了一些自己的“注释”,其中一个注释,注释G(有时称为第7个注释),被认为是有史以来编写的第一个程序。她也是第一个认识到机器的应用超越了纯粹的计算——她的“诗意科学”导致了对如何将技术用作协作工具的思考。

乔治·华盛顿·卡佛 (1864 - 1943) - 是一位农业科学家、植物学家、发明家和教育家。卡佛对农业和环境科学领域的贡献永远改变了美国农业的面貌,并为现代可持续实践奠定了基础。在农民苦苦挣扎的时候,他率先提出了轮作和土壤保持的概念。他的工作促进了土壤的恢复,使农民能够提高生产力。作为一名发明家,他想出了如何通过发明花生酱来充分利用花生。(顺便说一句,花生不是坚果。它是一种豆科植物。

现在我们了解了多学科技能的影响,并拥有了来自艺术和科学的博学的历史例子,让我们将这些想法应用于现代,看看成为一名全栈人工智能工程师需要什么。

AI 数据基础设施

AI 是关于数据的,因此要成为一名全栈 AI 工程师,您需要了解 AI 数据基础设施。

现代数据湖 — 如果您的雇主对 AI/ML 非常重视,他们会向您寻求有关如何实现现有基础架构现代化的建议。现代数据湖是一种存储解决方案,能够保存 AI/ML 所需的所有数据,包括结构化和非结构化数据。因此,现代数据湖是非结构化数据的一部分数据湖和结构化数据的数据仓库的一部分。现代数据湖的强大之处在于,它对所有数据类型(非结构化和结构化)使用高速、可扩展的对象存储。

由于 Apache Iceberg、Apache Hudi 和 Delta Lake 等开放表格式 (OTF) 的兴起,使 Data Lake 和 Data Warehouse 的对象存储的使用成为可能,这些规范一旦实现,就可以无缝地将对象存储用作数据仓库的底层存储解决方案。这些规范还提供了传统数据仓库中可能不存在的功能,例如快照(也称为时间旅行)、架构演变、分区、分区演变和零拷贝分支。

可以在此处找到现代 Datalake 参考体系结构。此处提供了介绍此架构如何支持所有 AI/ML 工作负载的配套文件。

机器学习操作 (MLOps) - MLOps 之于 AI/ML,就像 DevOps 之于应用程序开发一样。为了更好地理解 MLOps 的重要性,将模型创建与传统应用程序开发进行比较会很有帮助。

传统的应用程序开发,例如实现向应用程序添加新功能的新微服务,从查看规范开始。首先设计任何新的数据结构或对现有数据结构的任何更改。编码开始后,数据的设计不应更改。然后实现服务,编码是此过程中的主要活动。单元测试和端到端测试也进行了编码。这些测试证明代码没有错误,并且正确地实现了规范。在部署整个应用程序之前,它们可以由 CI/CD 管道自动运行。

创建模型和训练它是不同的。了解原始数据和所需的预测是第一步。机器学习工程师确实需要编写一些代码来实现他们的神经网络或设置算法,但编码并不是主要活动。重复实验是主要活动。在实验过程中,数据的设计、模型的设计和使用的参数都会发生变化。每次试验后,都会创建指标,以显示模型在训练时的表现。此外,还会针对验证集和测试集生成模型性能指标。这些指标用于证明模型的质量。您可以在每次实验后保存模型本身。一旦模型准备好合并到应用程序中,就需要对其进行打包和部署。

MLOps 工具可以处理上述核心功能。许多人可以做得更多。项目应考虑的三个值得注意的 MLOps 工具是:

  • Kubeflow - 来自 Google

  • MLflow - 来自 Databricks

  • MLRun - 来自麦肯锡公司

分布式训练 - 分布式模型训练是指同时在多个计算设备或节点上训练机器学习模型的过程。这种方法加快了训练过程,特别是对于需要大量计算资源的大型数据集和复杂模型。

分布式训练的两个值得注意的框架是:

Ray - Ray 是一个开源框架,适用于所有分布式事物.它在虚拟机和 Kubernetes 上运行。你也可以在本地开发机器上使用它进行原型设计,只要你不使用太多的工人,并且你没有做任何太复杂的事情。它支持 TensorFlow 和 PyTorch。有关 Ray 的托管实例,请查看 Anyscale。

TorchDistributor 是一个库,用于在 Apache Spark 上分发基于 PyTorch 的机器学习工作负载。spark-tensorflow-distributor 可用于基于 TensorFlow 的机器学习。两者都可以在 Databricks 上的主机环境中运行。

**向量数据库 - **所有模型都需要数字作为输入,并生成数字作为输出。如果您对生成式 AI 感兴趣,这个简单的事实对您的 AI 数据基础设施提出了一些额外的要求,其中单词必须转换为数字或向量。矢量数据库为文档及其矢量嵌入(文档的数值表示)编制索引、存储并提供对文档的访问。向量数据库有助于语义搜索,这是检索增强生成 (RAG) 所必需的,RAG 是生成式 AI 利用的一种技术,用于将自定义语料库中的信息与经过训练的LLMs参数存储器相结合。

值得研究的三个向量数据库是:

  • Pinecone

  • Milvus

  • Weaviate

AI/ML工程

掌握了 AI 数据基础设施的工作知识后,您接下来需要了解有关模型构建的工具。这就是我所说的 AI/ML 工程。在过去,在生成式人工智能出现之前,有监督学习、无监督学习、强化学习和自然语言处理(NLP)。 然而,随着 ChatGPT 的兴起,创建了一个称为生成式 AI 的新类别,其他所有类别现在都被称为“传统 AI”。

在进入 AI 工程工具之前,让我们先看看这两类 AI。

传统人工智能

传统 AI 包括与生成式 AI 一样对您的业务有价值的模型类型。这包括通过无监督学习创建的模型,您可以在其中查找未标记数据中的模式。强化学习是另一种类型的人工智能,用于创建与环境交互的模型。最后,传统的人工智能包括监督学习,其中输入数据和输出标签之间的关系在训练期间是已知的。通过监督学习,您将拥有一个测试集来测试您的模型,以得出精确的准确性测量。

生成式 AI

顾名思义,生成式 AI 就是生成新数据。用作聊天机器人的模型属于这一类,被称为大型语言模型(LLMs)。使用生成式 AI,您将没有正式的训练集、验证集和测试集。相反,您将拥有一个自定义语料库,可用于微调您的LLM.Retrieval Augmented Generation 最初由 Meta 提出,是另一种使用自定义语料库和带有 LLM.

机器学习框架

PyTorch 和 TensorFlow 是当今用于构建神经网络的两大机器学习框架。PyTorch 比 TensorFlow 更受欢迎。这些框架既可用于传统 AI ,也可用于生成式 AI。但是,您选择学习的框架应基于您的雇主使用的框架。它们的共同点多于差异。由于构建模型比编码技术需要更多的训练技术知识,因此您会发现如果需要,很容易在框架之间切换。

如果您需要快速将某些东西投入生产,请考虑 scikit-learn。Scikit-learn 使用算法来创建模型。您不需要设计和编写神经网络。因此,使用 Scikit-learn,您可以快速构建一个性能良好的模型,该模型可用作 AI 解决方案中的第一个版本模型。从那里,您可以使用 PyTorch 或 TensorFlow 构建性能更好的神经网络,这通常需要更多时间。

开源社区和工具

开源LLMs已经使生成式人工智能民主化。此外,使用 HuggingFace 等平台,您可以访问为各种任务(例如摘要、问答、翻译和实体识别)设计和训练的大量模型。HuggingFace 还提供了一个库,可让您轻松使用 LLMs.

为了简化应用程序内部的LLMs集成,您需要学习像LangChain这样的框架。LangChain简化了检索数据、创建代理、检索增强生成和创建提示等任务。

结论

全栈 AI 工程师拥有包括软件开发、机器学习和数据基础设施在内的技能。他们精通 MLOps 和分布式训练,可以使用 TensorFlow、PyTorch 或 Scikit-learn 等框架来设计和训练传统 AI 和生成式 AI 的模型。最后,全栈 AI 工程师应该具有持续学习的心态,以跟上 AI 数据基础设施和 AI/ML 工程的不断发展的技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/356540.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编写水文专业串口通讯软件的开发经历

编写水文专业串口通讯软件的开发经历 一、关于开发 YAC9900 水位雨量 RTU 通讯软件二、软件开发遇到的问题和困难1、开发架构的适应2、开发语言的学习3、.net core 8 架构中串口构建的难点4、YAC9900 水位雨量 RTU 通讯软件开发中的 UI 冻结 三、发现问题解决问题的具体办法1、…

Android Studio无法连接夜神模拟器的解决方案

一、AS检测不到夜神模拟器 1、问题描述 在按照教程【如何安装和使用Android夜神模拟器】进入夜神的bin目录,输入连接命令回车后,终端显示的already connected to 127.0.0.1:62001,但是AS的Running Devices并没有显示夜神模拟器。 2、解决方…

鸿蒙HarmonyOS NEXT角落里的知识:ArkTS高性能编程实践

概述 本文主要提供应用性能敏感场景下的高性能编程的相关建议,助力开发者开发出高性能的应用。高性能编程实践,是在开发过程中逐步总结出来的一些高性能的写法和建议,在业务功能实现过程中,我们要同步思考并理解高性能写法的原理…

【Java】已解决java.nio.channels.ClosedChannelException异常

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.nio.channels.ClosedChannelException异常 在Java的NIO(New I/O)编程中,java.nio.channels.ClosedChannelException是一个常见的异常…

韩国裸机云站群服务器托管租用方案

随着网络技术的飞速发展,站群服务器在网站运营中扮演着越来越重要的角色。韩国裸机云站群服务器,以其独特的优势,如地理位置优越、价格相对较低、技术实力雄厚等,吸引了众多企业的关注。本文将为您详细介绍韩国裸机云站群服务器的…

PostgreSQL配置SSL连接

1、系统需要有openssl、openssl-devel包 yum -y install openssl openssl-devel 2、查看当前数据库是否使用openssl编译 pg_config|grep CONFIGURE 如果没有重新编译 make clean make && make install 3、服务器端证书配置 服务器端需生成三个文件: root.crt(根证…

[RK-Linux] RK3562 I2C驱动TP芯片GSL3680

TP芯片GSL3680 1、简介 GSL3680是一款电容屏多点触摸控制单芯片,其芯片内部框架图如下所示: GSL3680采用了独特的互电容感应技术,可以在1ms内测量多达192个节点,支持广泛的传感器选择,包括单层或双层ITO,玻璃或薄膜,采用了先进的抗电磁干扰信号处理技术,使其对各种干…

新火种AI|Claude 3.5一夜封王超越GPT-4o!留给OpenAI的时间真的不多了...

AI大模型更新换代的速度,的确快到令人难以想象。 相信很多人现在对“最先进AI大模型”的印象还停留在GPT-4,但事实上,大模型领域的头把交椅早已悄然易主了好几回。就在GPT-4惊艳全球不久之后,其“死对头” Anthropic发布了Claude…

Tomcat基础详解

第一篇:Tomcat基础篇 lecture:邓澎波 一、构建Tomcat源码环境 工欲善其事必先利其器,为了学好Tomcat源码,我们需要先在本地构建一个Tomcat的运行环境。 1.源码环境下载 源码有两种下载方式: 1.1 官网下载 https://…

IDEA、PyCharm等基于IntelliJ平台的IDE汉化方式

PyCharm 或者 IDEA 等编辑器是比较常用的,默认是英文界面,有些同学用着不方便,想要汉化版本的,但官方没有这个设置项,不过可以通过插件的方式进行设置。 方式1:插件安装 1、打开设置 File->Settings&a…

ArcGIS实现不同地块分类与面积汇总

​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 我们要做一个不同地块面积汇总! 你有一批地块,不同面积,我们需…

Android中的Audio系统框架分析(一)

概述 Audio系统是Android 平台重要的组成部分,我们将从以下几个方面来讲解: 一Audio基础知识讲解 二、Android系统中Audio框架 Audio基础知识讲解 我们大家知道声音是由物体振动产生的声波。是通过介质(空气或固体、液体)传播并…

python18 正则表达式

python18 正则表达式 正则表达式 re.match(),re.search(),re.findall(),re.sub(),re.split() 元字符 具有特殊意义的专用字符 导入模块 improt re代码 正则表达式 re.match(),re.search(),re.findall(),re.sub(),re.split() 元字符 具有特殊意义的专用字符 导入模块 improt rei…

内容安全复习 6 - 白帽子安全漏洞挖掘披露的法律风险

文章目录 安全漏洞的法律概念界定安全漏洞特征白帽子安全漏洞挖掘面临的法律风险“白帽子”安全漏洞挖掘的风险根源“白帽子”的主体边界授权行为边界关键结论 安全漏洞的法律概念界定 可以被利用来破坏所在系统的网络或信息安全的缺陷或错误;被利用的网络缺陷、错…

Linux系统查看程序内存及CPU占用

文章目录 1.free命令2.top命令3.PS命令3.1 查看内存占用前10位:3.2 查看CPU占用前10位 参考文档 1.free命令 可以通过free命令查看物理内存占用情况 #单位KB free #单位MB free -m #单位GB free -h 2.top命令 输入top命令,会输出定时刷新的程序PID、内…

【TB作品】MSP430G2553单片机,转速测量系统,转速测量仪,霍尔传感器

文章目录 题目器件原理霍尔传感器测速原理:电机如何调节速度程序设计 实验报告实验题目实验目的实验器材实验原理霍尔传感器测速原理电机调速原理定时器中断原理 硬件连接软件设计定时器配置主程序中断处理程序 实验结果实验总结 题目 设计基于MSP430的转速测量仪的…

深度剖析ElasticSearch分页原理与深分页问题|ES深分页问题|ES分页原理剖析

文章目录 ES分页|Paginate search resultsES深分页的问题一页获取数据量太大,报错分页深度太大,报错官方解释 其他解决方案Search after解决两个问题 有没有深分页查询的必要性?search after & PIT的使用方式1.创建pit2.首次查询3.之后的…

21.智能指针(上)

目录 一、概念二、Box\<T\>2.1 概念与应用场景2.2 简单应用2.3 递归类型的创建 三、通过Deref trait将智能指针当作常规引用处理3.1 常规引用3.2 像引用一样使用Box\<T\>3.3 自定义智能指针3.4 函数和方法的隐式解引用强制转换3.5 解引用强制转换与可变性交互 四、…

YOLOv8中的C2f模块

文章目录 一、结构概述二、模块功能 一、结构概述 C2f块:首先由一个卷积块(Conv)组成&#xff0c;该卷积块接收输入特征图并生成中间特征图特征图拆分:生成的中间特征图被拆分成两部分&#xff0c;一部分直接传递到最终的Concat块&#xff0c;另一部分传递到多个Botleneck块进…

用VScode打开keil下的文件中文编码乱码的问题,以及利用VScode转换字符编码的方法

目录 问题描述 解决方法 利用VScode转换字符编码的方法 问题描述 keil中默认的编码是ANIS如下图所示。 而VScode中默认的编码为UTF-8 &#xff0c;打开后如下。 解决方法 建议另存后&#xff0c;再打开目标文件&#xff0c;防止误操作&#xff01; 在VScode的最下方可以找…