AI算子开发需要什么技能

简介: AI算子开发需要什么技能?

大家好啊,我是董董灿。

如果说深度学习是人工智能的灵魂,那算法绝对是深度学习的灵魂。

在越来越火的AI大模型GPT4屡创新高的过程中,算法工程师绝对发挥了中流砥柱的作用。

而在国内,算法工程师,早就是深度学习中的卷王职位了。

很早之前网上就流传着一些算法工程师的传奇:毕业去大厂做算法,白菜价30-40w起步!

image.png

这让工作了很多年的老工程师们都愤愤不平,纷纷大呼薪资被倒挂。

虽然这几年市场冷静了一些,但不可否认的是,算法工程师,依然是香饽饽,而且依旧很卷。而在与算法相关的岗位中,有一个独特的存在,不少同学却不清楚这个岗位是做什么的,更别提这个岗位需要什么技能了。

那就是AI 算子开发工程师。

今天,就来聊一聊这个职位。

image.png

AI算子开发是做什么的?

算子——Operator,这里指的是神经网络中完成特定功能的一些算法的节点。比如在CNN网络中,一个卷积节点就属于一个卷积算子。

往大了讲,甚至一个CNN网络也可以称作一个大算子,只不过这个大算子比较复杂。

AI算子开发的岗位主要集中在与AI芯片相关的公司的招聘需求中。

那这个职位具体是做什么的呢?

做过深度学习或者使用框架搭过神经网络的同学都知道,一个神经网络就是由一层层的算子构成的。
但在使用框架搭网络的过程,基本上是搭积木似的调用算子接口。

比如在 tensorflow 中调用一个卷积,一行代码就可以搞定:

tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)

看似很简单,但在这个过程中,你根本看不到这个卷积算法是如何实现的。

你唯一知道的是,给定了一个输入,这一行代码做了卷积运算。

而卷积运算的实际执行过程,恰恰就是算子开发工程师需要做的事:把卷积的运算,在更底层实现出来。

如果在x86的架构下实现,可能就是直接用循环嵌套的方式来实现了,比如:

#include <stdio.h>
#define N 4 // 输入数组大小
#define K 3 // 卷积核大小
void conv2d(float input[N][N],
            float kernel[K][K],
            float output[N-K+1][N-K+1]) {
  int i, j, m, n;    
  float sum;    
  // 遍历输出数组    
  for (i = 0; i < N-K+1; i++) {        
    for (j = 0; j < N-K+1; j++) {            
      sum = 0;            
      // 遍历卷积核            
      for (m = 0; m < K; m++) {                
        for (n = 0; n < K; n++) {                    
          // 对应元素相乘并累加                    
          sum += input[i+m][j+n] * kernel[m][n];                
        }            
      }            
      output[i][j] = sum; // 存储卷积结果        
    }    
  }
}

这是因为x86的架构和指令集并没有针对卷积这一算法做特殊的指令设计,因此我们要想实现这个功能,基本上也只能根据卷积的运算逻辑,来一层层的循环遍历完成。

而AI芯片作为一种专用AI加速部件,会为卷积这一运算单独设计硬件来完成计算,相对应的,也会设计单独的卷积指令。

因此,在AI芯片上,一个卷积的运算实现,可能就用一条指令,就可以完成很多个数据的乘累加操作,不需要再像上面的代码一样,写那么多循环来遍历卷积核。

当然实现出来只是第一步,更重要的是要优化。利用硬件架构的特性来完成算子的性能优化,从而实现计算加速。

算子开发需要什么技能?

了解了算子开发是干什么的,那大概就知道需要什么技能了。

首先,一定要对算法本身很熟悉,甚至是了熟于心才行。因为算子开发是要真正实现这个算法,而不是在框架侧简单的进行一行python代码的调用。

要在芯片上实现一个算法,需要知道算法的每一个细节,只有这样,才能完成一个算法的功能交付。

其次,还需要对AI芯片的架构特别了解。需要知道芯片上有哪些硬件模块可以实现这个算法,这些硬件模块之间有什么依赖关系,如何并行、如何同步、如何做优化等,做到了这一点,才能完成一个算法的性能交付。

可以说,算子开发,是一个软硬兼具的岗位。

除此之外,C++/python语言也是不可少的。

因此,算子开发需要的技能,可以大概有3方面:扎实的算法基础、扎实的硬件知识(计算机体系结构相关)以及扎实的编程技能。

算子开发的岗位待遇如何?

我从boss直聘上找了一个比较有代表性的职位描述和薪资。

image.png

这是北京某公司招聘的5年经验算子岗位的职位和薪资描述。感兴趣的同学可以去Boss直聘上搜一搜看看。

我个人感觉,算子开发岗的薪资与纯算法岗位其实差不多,但是对算法的要求应该是没有纯算法岗位高的。

因为AI算子开发需要的能力不单单是算法能力,还需要一些硬件知识,甚至是编译器知识。

在现在纯算法工程师越来越卷,恨不得把leetcode刷一遍都不一定过得了纯算法岗面试的情况下,如果你具备算法+硬件+编程能力的技能,不妨试试算子开发岗。

没准,你很合适呢?

相关文章
|
3天前
|
人工智能 自然语言处理 Java
【100%好礼】诚邀体验SoFlu-JavaAl开发助手,重塑AI编码价值
在这个数字化时代,软件开发任务繁重,飞算科技推出SoFlu-JavaAl开发助手,诚邀您体验AI编码新境界。它不仅生成代码,还通过自然语言理解需求,精准生成完整工程源码,大幅缩短设计工期,提升效率。SoFlu-JavaAl支持一键构建Java Maven工程,轻松合并老项目,快速响应需求变更。参与体验还有机会获多重好礼!
|
17天前
|
人工智能 小程序
【一步步开发AI运动小程序】十五、AI运动识别中,如何判断人体站位的远近?
【云智AI运动识别小程序插件】提供人体、运动及姿态检测的AI能力,无需后台支持,具有快速、体验好、易集成等特点。本文介绍如何利用插件判断人体与摄像头的远近,确保人体图像在帧内的比例适中,以优化识别效果。通过`whole`检测规则,分别实现人体过近和过远的判断,并给出相应示例代码。
|
14天前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
97 15
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
7天前
|
机器学习/深度学习 人工智能 安全
并非只有AI-2025年工作技能报告
全球最大的在线学习平台Coursera发布《2025年工作技能报告》,报告基于500万企业学习者和7,000多家机构的数据分析,揭示了2025年全球劳动力所需的关键技能趋势。报告强调,随着GenAI的快速发展,相关技能的课程注册量同比增长了866%,显示出对AI能力的需求激增。
29 9
|
11天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十七、如何识别用户上传视频中的人体、运动、动作、姿态?
【云智AI运动识别小程序插件】提供人体、运动、姿态检测的AI能力,支持本地原生识别,无需后台服务,具有速度快、体验好、易集成等优点。本文介绍如何使用该插件实现用户上传视频的运动识别,包括视频解码抽帧和人体识别的实现方法。
|
16天前
|
人工智能 小程序 UED
【一步步开发AI运动小程序】十六、AI运动识别中,如何判断人体站位?
【云智AI运动识别小程序插件】提供人体、运动及姿态检测的AI能力,本地引擎无需后台支持,具备快速、体验好、易集成等优势。本文介绍如何利用插件的`camera-view`功能,通过检测人体站位视角(前、后、左、右),确保运动时的最佳识别率和用户体验。代码示例展示了如何实现视角检查,确保用户正或背对摄像头,为后续运动检测打下基础。
|
4天前
|
人工智能 前端开发 Java
Spring AI Alibaba + 通义千问,开发AI应用如此简单!!!
本文介绍了如何使用Spring AI Alibaba开发一个简单的AI对话应用。通过引入`spring-ai-alibaba-starter`依赖和配置API密钥,结合Spring Boot项目,只需几行代码即可实现与AI模型的交互。具体步骤包括创建Spring Boot项目、编写Controller处理对话请求以及前端页面展示对话内容。此外,文章还介绍了如何通过添加对话记忆功能,使AI能够理解上下文并进行连贯对话。最后,总结了Spring AI为Java开发者带来的便利,简化了AI应用的开发流程。
135 0
|
1月前
|
人工智能 小程序 IDE
【一步步开发AI运动小程序】九、姿态辅助调试桌面工具的使用
随着AI技术的发展,各大厂商推出的AI运动APP如“乐动力”、“天天跳绳”等,使云上运动会、线上健身等概念大热。本文将指导你如何利用“云智AI运动识别小程序插件”,在微信小程序中实现类似功能,包括工具搭建、服务启动及数据回传等步骤,助力开发者高效开发AI运动小程序。
【一步步开发AI运动小程序】九、姿态辅助调试桌面工具的使用
|
22天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十三、自定义一个运动分析器,实现计时计数02
本文介绍如何利用“云智AI运动识别小程序插件”开发AI运动小程序,详细解析了俯卧撑动作的检测规则构建与执行流程,涵盖卧撑和撑卧两个姿态的识别规则,以及如何通过继承`sports.SportBase`类实现运动分析器,适用于小程序开发者。
|
22天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十二、自定义一个运动分析器,实现计时计数01
随着AI技术的发展,AI运动APP如雨后春笋般涌现,如“乐动力”、“天天跳绳”等,推动了云上运动会、线上健身等热潮。本文将指导你从零开始开发一个AI运动小程序,利用“云智AI运动识别小程序插件”,介绍运动识别原理、计量方式及运动分析器基类的使用,帮助你在小程序中实现运动计时和计数功能。下篇将继续探讨运动姿态检测规则的编写。