大模型开发之算子 原创
“ 算子指的是神经网络中完成特定功能的一些算法节点 ”
在学习人工智能技术的过程中,简单学习了一些关于机器学习和神经网络的基础知识,以及大模型的训练和微调过程。
然后就把大部分精力放到了大模型的应用之上,比如AIGC,知识库,Agent等。
而今天,我们来了解一下大模型技术的实现之——算子。
算子
关于算子这个概念,也是最近几天刚接触到的,在此之前都没听过这个名词。还是闲来无事浏览招聘网站的时候,看到有招聘算子开发的岗位,当时看到这个就有点蒙了,算子是什么玩意?
概念
看网上介绍说,算子是大模型中一种实现某个功能的算法节点,简单来说就相当于一个编程概念中的函数,一个可以实现某种功能的代码块。
当然,算子要比函数更加高级,也更加复杂;原因就是因为,算子虽然从逻辑上与函数的功能差不多,但在实现上要比函数要复杂得多,也可能就是多个复杂函数的组合。
举个例子,卷积网络中每一个卷积节点都属于一个算子;如果从更加抽象的角度来说,整个神经网络也算是一种算子。
算子的原理
算子的实现原理其实就像前面说的编程里的函数一样,算子就是对复杂算法的封装;比如,我们在实现一个卷积网络的过程中,一行代码可能就实现了卷积层,但里面具体的实现逻辑,有几个人知道?或者说你能说明白某个卷积层是怎么实现的吗?
而这就是算子开发工程师需要做的事情,就是把一个神经网络模型通过算子这个载体给具象化。
算子实现的重难点
我们知道,大模型技术是基于庞大的算力基础之上的,而算力的主要提供则是计算核心GPU,说白了就是芯片。
但不同的芯片使用的是不同的架构方式以及实现理念,因此使用不同的芯片提供算力,就需要大模型在底层能够屏蔽不同芯片之间的差异。
而且,从提升大模型的性能和节省成本的角度考虑,怎么发挥芯片的最大性能,也是一个值得思考的问题。
因此,算子主要解决两个问题,第一,如果把大模型比作乐高,那么算子就是一块一块的积木,通过多种不同的积木来实现大模型的功能。第二,算子是发挥芯片性能的重要方式之一。
当然,算子根据不同的功能也区分不同的类型,比如负责提供计算的算子就需要结合具体的芯片;而负责更加高级功能的算子模块,就可以使用使用计算算子作为底层,实现更加高级的通用功能。
总结
想做算子开发,需要有足够的数学理论和硬件知识,否则做算子开发就是一个笑话,基本上无从下手。
大模型是一个黑盒,那么算子就是这个黑盒中的零件,没有算子就没有大模型。大模型之争,也可以说是算子之争。
学习大模型技术是一个系统性的工程,我们要知道不同的技术在大模型中扮演着什么角色,解决了什么问题,否则就会一直处在似懂非懂的状态。
本文转载自公众号AI探索时代 作者:DFires
原文链接:https://mp.weixin.qq.com/s/ejySuasTO-MG4U9MtjSGnw