AI架构师的定义
“AI 架构师”是以深度学习为代表的第三次AI热潮所催生的新型复合型人才,它的产生最本质的驱动因素是AI产业化落地应用的蓬勃发展对人才的需求,深度学习突出的工程属性也特别需要复合型人才来驾驭。
从字面来看,AI架构师的“AI”对应算法技术,而“架构师”则涉及工程架构和业务把握。AI架构师应该具备把AI技术高效落地业务应用的能力,具体而言,对应三个基本能力:
第一,AI架构师要对AI技术和开发应用流程有整体掌握能力
第二,AI架构师要对上层 业务有充分的理解,有很好的技术抽象能力和技术判 断力
第三,AI架构师要能设计并实现高效合理的AI落地方案
此外,AI架构师还要具备综合素质,即对技术团队有很强的AI技术影响力,能整体上构建以AI为核心的技术体系,来充分发挥AI技术对业务的助力作用。
简言之,AI架构师以工程架构为桥梁实现AI技术和业务应用的对接。整个过程由业务驱动,通过工程架构进行任务分解后由AI算法落地和实现。这三个方面既是AI架构师的定义,也是AI架构师的要求或特征。
成为AI架构师的三大核心能力
成为AI架构师的三大核心能力AI架构师不同于传统的AI算法科研人员,算法科研人员针对的任务往往都是抽象后的、环境变量相对固定的问题,基于这些问题做模型算法层面的研究;AI架构师也不同于一般的架构师,一般的架构人员通常直接按业务需求设计工程实现,没有AI算法这一层从而对技术要求和思考角度有较大不同。AI架构师对AI算法、业务理解和工程实现都有比较高的综合性要求。
掌握AI技术及相关应用、开发流程
AI架构师要对AI技术以及AI开发应用有递进式的理解。如果只是看了具体任务的几篇技术文章、拿来开源代码然后照示例来运行,好像看起来是很高效的上手了。这样做小的项目可能没什么问题,但对于更复杂的项目或者新的任务场景,很可能还是手足无措。所以,对于AI架构师而言,他必须对AI的基础技术和开发应用流程有更本质的理解和系统化的掌握,可以递进式的拆解为如下几个层面:
- 首先,要熟悉机器学习的基本原理、特性,包括其局限性。例如要知道机器学习整体的工作机制,数据、特征、模型之间的关系,训练集、验证集、测试集的作用,模型训练的概要原理,效果怎么评估,拟合、泛化以及正则化等基本概念。
- 第二,要掌握深度学习技术栈。由于现在AI实践多以深度学习为主,AI架构师需要掌握深度学习的基本原理和特性,了解诸如神经网络的基本构造、反向传播和梯度优化等基本训练方法,还要掌握深度学习相关的开发框架、开源工具的使用。
- 第三,要了解主流的模型算法和网络结构。不要求对每个算法领域都非常精通,但AI架构师要整体了解当前最常用的模型算法大概有哪些、各自有什么特点、分别适合解决什么类型的问题,对主流的模型特色和网络结构有较好的把握,也就是说对常用AI算法广度上的要求。
- 第四,要对AI开发应用部署的流程熟悉。前面三点主要聚焦在AI知识层面,而部署流程则是实操层面。在机器学习一般任务中,要对数据处理、特征设计、效果调优、性能优化、部署上线等环节得有比较全面的理解和实操经验,AI技术并不只是静态的算法。
- 此外,最好还需要对AI软硬件协同有一定了解。AI讲究的是效率,而计算特性的发挥需要硬件支持。比如什么任务什么时候运行在CPU上合适、什么时候运行在GPU上合适,要不要分布式训练或推理,分布式时资源怎么做负载均衡和弹性调度等。
以上是对AI技术本身而言,尚未涉及业务。就像超级英雄电影里的情节一样,我们先要拥有某种超能力或者黑科技,这是拯救世界的先决条件。这一层面强调的是目的不是要成为AI技术专家,而是要做到对AI技术有比较宏观和本质的理解把握。需要注意的是,这层能力的掌握需要一个渐进的过程,不能期望一蹴而就,或者说设想先学成AI技术专家再去做业务,最好是结合项目实践不断迭代深入,先宏观再细节,先整体再局部,先黑盒再白盒。
对业务的理解和抽象能力
这里的关键点是要“理解”业务。作为AI架构师,尤其需要重视理解业务的诉求和逻辑,只有抓住业务问题的关键点,才能够做出正确的抽象设计和技术选型,切忌不要只从AI技术出发只是想当然。
- 首先,要把握业务的关键问题和核心逻辑。
比如说要做推荐或者是信息流的产品,核心逻辑是推荐符合用户兴趣的内容,怎么匹配用户的兴趣是解决这个问题的关键;做搜索产品的核心逻辑肯定是排序,排序的关键是语义匹配。这个过程可以称之为横面的抽象⸺首先就抓住了业务的重点、痛点。通常横面抽象可以用传统的方法来解决,但如果开局这一步没有做好,就相当于一个问题要解决的方向不准,后面无论采取什么AI策略都难以发挥效果,对产品或业务而言就成了缘木求鱼。
- 第二,机器学习技术层面的抽象以及对应的技术匹配。
机器学习的基本任务类型包括分类、回归和排序等,我们要看业务关键问题可以抽象为一个什么机器学习问题。有些任务场景虽然复杂但已经有了现成的答案,比如语音识别、人脸识别的问题,可以套用成熟的方案。当然这些方案当初也都经历了对应的机器学习技术抽象的过程。现在看来非常简单的中文分词问题,也是因为首先把它变成一个分类问题后才在机器学习技术下取得了突破。但一些新场景的问题就需要AI架构师去做这一层的抽象,比如前面提到的用户兴趣匹配和语义匹配问题,需要我们进一步的技术抽象,映射成对应的机器学习技术问题。
- 第三,做完技术匹配再往下要做具体的模型选型。
同样是分类的问题这个场景适合选择什么模型或者网络结构?是直接套用某个成熟模型,还是要针对任务特点组装一个新模型?基础网络结构是选择MLP、CNN、LSTM还是选transformer?我们要根据实际任务特性构建模型的结构,比如输入是离散高级特征还是原始信号特征,是序列还是非序列等等,以及应用场景对计算代价的要求等因素也需要考虑。再往后就涉及模型的具体细节、训练的策略、参数的设置等层面了。
以上环节里,需要指出的是,对解决问题效果的影响,越往前面(对业务的理解)越重要,越往后(技术实现方式)影响力越小。如果业务关键问题的把握和大的技术选型不对,具体模型算法的调优只能事倍功半。
同时需要注意到,业务的理解和抽象的一个重点是创造性。对AI的业务落地来说,很多情况下不是说需求已经很明确、直接按照需求做软件就可以了;而是需要根据业务场景构造对AI技术的需求,然后再映射到架构上去⸺创新才是AI能发挥最大效力的关键。另外,有些复杂的问题可能不是一个AI技术能解决的,需要多个AI技术模块协同或者与一些非AI的技术协作才能完成。这时需要我们具备整体的架构能力,而不是简单的生搬硬套。至此,我们确定了要解决的具体问题是什么,基本上做到了兵法里的“知己(AI技术)知彼(业务痛点)”,接下来该如何摆兵布阵了。
高效可落地的工程能力
在工程实践过程中的着眼点要求不但可落地,还要高效。如前所述,解决一个复杂业务问题可能需要不止一个AI技术,我们需要根据业务的实际场景合理选择工具和资源,去进行组合、组装、串联以达到工程实践的要求。此外,由于业务时间要求、成本限制、质量要求等等,我们不可能在最理想态下、不计成本地解决问题。这时我们就要做折中的选择,并尽可能提高技术方案的可扩展性,使之能随着业务的变化而不断演进。对于真正的AI产业应用,这一环节尤为重要。而深度学习对应的“大模型、大数据、大算力”的要求,对工程落地提出了更多的挑战。近年来不止产业界,学术界也开始更多关注AI系统构建的相关技术设计和工程实现问题。
在方案落地的时候,一定会较多地涉及系统构建和部署的问题,AI架构师要对系统的整体设计、部署和硬件环境相关的问题进行深思熟虑,到底硬件资源该怎么选、部署怎么实现、系统怎么运行,等等。最后,要有迭代的意识。常有人用“开着高速换轮胎”来形容快速迭代,一个系统在上线过程中肯定会遇到各种意想不到的问题,例如实际效果低于预期、运行效率不高等等,这时如果没有快速迭代能力,项目便很难继续推进下去。