聊聊我们公司的AI应用工程师每天都干啥?

过去两年间,随着我们团队落地和升级的AI产品越来越多,团队中逐渐出现了专门负责AI应用的工程师。

时间一长这些AI应用工程师们也分出了个三六九等,甚至有一些AI应用工程师因为思路无法转变,又退回到了普通工程师的岗位,不再负责AI应用。

今天这篇文章,给大家聊聊,AI应用工程师每天都在干点啥? 优秀的AI应用工程师到底优秀在哪里?

AI应用工程师的生态位

AI应用工程师是处在只会大模型API调用和大模型算法工程师之间的一个生态位,目前还没有一个非常完善的岗位职能,不同的企业对于AI应用工程师的要求也有所不同。

我们这边之所以会需要AI应用工程师这样一个岗位,主要原因是我们要做AI产品的落地,和原有产品的AI化升级,在程序实现时会需要大量的大模型能力和一些特定的AI应用落地方案。

这时,团队中就需要有人对大模型的各项落地方案有所了解,能够配合产品在合适的节点设计合适的方案进行升级,负责将大模型能力转化为实际可用的产品功能

所以AI应用工程师不能只会简单的API调用,同时也不需要去了解太多的大模型底层技术,甚至Python基础都可以不需要(虽然会一些python有好处,但是这不是决定性的能力)。

目前在我们的团队中,他们主要负责:

  • 利用代码实现Agent或者workflow的流程
  • 实现具体的AI应用落地方案,联网搜索、RAG、微调等
  • 与提示词工程师对接完成大模型能力的接入
  • 与原有的程序进行结合
  • 极简版的流程验证逻辑实现
  • 复杂RPA + AI的落地

在其他企业的团队中,对AI应用工程师的要求还有:

  • AI工程系统设计,配合产品制定Agent流程
  • 编写项目中使用到的提示词
  • coze、dify的搭建
  • 等等

虽然说像搭建coze、写提示词这类工作,我并不认为这些工作应该是AI应用工程师工作,但是当下这个岗位的职责还没有固定,所以接下来我还是会把这些内容写进应具备的技能中。

大家全都了解一下,以备不时之需。

AI应用工程师需要具备的技能

要完成以上这些职责,AI应用工程师自然也要具备相应的技能, 但是对于Python基础、Pytorch框架、机器学习与深度学习的技术点,要不要进行学习呢?

不鼓励花大量时间学习,但是建议了解

不鼓励学习是因为:你学了你未必也用的到,我带团队在AI领域,TOC、TOB、新产品、新功能上线了不少了,没有用到python语言,并且也没看到python的必须性。当然了,你的团队主要语言是python,那你肯定是应该学的。

建议了解是因为:你毕竟是在做AI相关的内容,有相应的基础知识和技能点,的确在某些时候能带给你一些清晰的思路或者节约一些时间。

反过来再考虑你自己:深入Python基础、Pytorch框架、机器学习与深度学习这些技术点,你想做什么? 当你去深入学习这些的时候,你的目标不应该是AI应用工程师,而是人工智能算法相关的岗位。

学会了你就会不甘心,想去做更高级的岗位,但是那些岗位对学历、经验的要求不是一个半路出家自学能胜任的。

学不会你就是在浪费自己宝贵的生命和本次AI变革中的机会。

所以啊,认准自己的目标,别让自己难做。

那应该掌握的技能是哪些呢? 我们一条一条来说

利用代码实现Agent或者workflow的流程

需要了解Agent和workflow的区别,能够掌握是程序实现Agent和workflow的能力。

简单来说Agent和workflow的区别就是:

  • workflow是通过预定义的代码路径协调 LLM 和工具的系统。人类可以在其中的某些节点进行人为的干预。

  • Agent是 LLM 动态指导其自身流程和工具使用情况的系统,从而保持对其完成任务的方式的控制。完全有LLM主导,人类无法干预。

在程序上的实现区别:

Agent实际上最核心的代码只有九行, Agent所谓的动态指导其实就是一个while(true)

js 复制代码
async function loop(llm) {
    let msg = await userInput();
    while (true) {
        const { output, tool_calls } = await llm(msg);
        if (tool_calls && tool_calls.length > 0) {
            msg = await Promise.all(tool_calls.map(tc => handleToolCall(tc)));
        } else {
            msg = await userInput();
        }
    }
}

workflow的核心代码流程是提前写好的逻辑流程。

js 复制代码
async function main(){
  // 流程1:例如上下文处理
  const query = await handleContext()
  // 流程2:例如RAG
  await handleRAG(query)
  // 流程3:例如Function call
  await handleFC(query)
  // 流程4:例如调用API
  await handleAPI()
}

实现具体的AI应用落地方案

在流程实现中,AI应用工程师需要把用到的技术点都做好,例如:联网搜索、RAG、微调等

联网搜索:当我们的产品需要用的联网搜索的时候,我们有两个选择:

  1. 用云端的联网搜索能力,缺点就是收费并且可控性不强,优点是方便省事。
  2. 自己实现联网搜索能力,优点是可以按照自己的需求指定搜索引擎、检索网站等。缺点就是需要自己编写代码。

RAG:当我们需要用RAG的时候,AI应用工程师应该做的:

  1. 实现RAG的完整流程
  2. 告知数据同事,需要怎样的数据,切片、QA、等
  3. 测试并保证RAG的召回率和准确率
  4. 对RAG的产出结果负责

微调:当我们需要用到微调的时候,AI应用工程师应该做的:

  1. 知道要微调什么样的任务,然后协调数据同事去准备相关的数据,并告知准备多少数据量、数据结构是怎样的、内容分布是怎样的
  2. 拿到数据后选择微调模型、微调平台,进行微调的工作
  3. 对微调结果进行测评,最终得到满意的结果
  4. 部署并调用模型

与提示词工程师对接完成大模型能力的接入

这一点不同的企业要求不一样,我们团队是专门培养的提示词工程师,有的团队是需要AI应用工程师来进行提示词的编写和调优

不过无论是不是AI应用工程师来编写提示词,他们都需要了解提示词工程,否则就没办法和提示词工程师进行有效沟通。

AI应用工程师需要与提示词工程师就当前节点提示词的输入、输出的结构和内容进行确定。

AI应用工程师保证输入的准确性,提示词工程师来保证输出的概率。

为什么是概率呢? 众所周知,提示词是不会百分百保证效果的。所以优秀的AI应用工程师在编写程序时会具备这一点的考虑:

例如下面这个例子:

提示词是用来判定当前输入的评论内容是否表达了善意,返回N或者Y。

也就是说这个提示词提示词的输入是评论内容,输出是N或者Y

请问:AI应用工程师要怎么对输出的Y或者N进行判断?

if(res === 'Y'),这样么?

不,他们写if(res.includes('Y'))

这里用全等就没有考虑到提示词输出的不确定性,所以有经验的工程师会在这里使用includes

极简版的流程验证逻辑实现

当下的阶段,通常在产品初期设计的流程都不会是最终生成环境的流程,因为在产品处理考虑的一些节点可能不全面,也因为需求会变动。

所以当我们在正式开始编写代码之前,都需要有一个极简版的流程实现,来验证我们的逻辑

有的团队使用coze一类的Agent搭建流程来实现这个验证逻辑, 但是对于一些复杂的流程,coze之类的产品就无能为力了

这时候,就需要AI应用工程师用代码快速实现一个简单流程来验证逻辑。

复杂RPA + AI的落地

随着AI能力的提升,目前最新的思路有RPA + AI来实现近乎全自动的部分工作,这就需要有专门的搭建这套流程的工程师。

这需要了解RPA的能力和AI能力,并且了解如何结合。

这个其实并不应该交给AI应用工程师来做,更适合专门的RPA工程师。

这个看发展吧。

AI工程系统设计,配合产品制定Agent流程

AI工程的系统设计,有些团队会要求AI应用工程师来做。

AI工程的系统设计,也就是应用的Agent或者workflow的设计,这一步是在产品出原型之前,就要设计好。

所以想要设计这部分内容,需要有两个能力:懂业务、懂技术。

这一点还是很难的,能够胜任的AI应用工程师,通常已经不是单纯意义上的工程师了。

给大家补一个当下AI产品落地的流程图:

coze、dify的搭建

coze和dify的搭建,也是部分团队要求的任务,这一点会要求大家按照要求搭建智能体。

这个我这边就不细说了,网上到处都是搭建教程。

结语

AI应用工程师和普通工程师比起来,上下游关系人多了两个提示词工程师数据人员

提示词工程师需要和AI应用工程师进行沟通,关于提示词的输入、输出。

AI工程师需要了解当前节点的提示词是做什么的,有什么用? 就像了解原型中某个功能节点是做什么的一样。

就是说,AI应用工程师虽然只是做整个产品中的一部分工作,但仍然要了解全景的信息

这也是优秀的工程师优秀的地方,他们不仅能做好自己的工作,还能配合上下游关系人一起,让整个产品实现的更好。

哦对了,最后说一下:

AI应用工程师是一个新的岗位,并没有替代传统工程师,而是在传统工程能力基础上增加了新的维度。

加油!共勉!

☺️你好,我是华洛,如果你对程序员转型AI产品负责人感兴趣,请给我点个赞。

你可以在这里联系我👉www.yuque.com/hualuo-fztn...

已入驻公众号【华洛AI转型纪实】,欢迎大家围观,后续会分享大量最近三年来的经验和踩过的坑。

专栏文章

# 从0到1打造企业级AI售前机器人------实战指南三:RAG工程的超级优化

# 从0到1打造企业级AI售前机器人------实战指南二:RAG工程落地之数据处理篇🧐

# 从0到1打造企业级AI售前机器人------实战指南一:根据产品需求和定位进行agent流程设计🧐

# 聊一下MCP,希望能让各位清醒一点吧🧐

# 实战派!百万PV的AI产品如何搭建RAG系统?

# 团队落地AI产品的全流程

# 5000字长文,AI时代下程序员的巨大优势!

相关推荐
站在风口的猪110812 分钟前
《前端面试题:CSS预处理器(Sass、Less等)》
前端·css·html·less·css3·sass·html5
程序员的世界你不懂37 分钟前
(9)-Fiddler抓包-Fiddler如何设置捕获Https会话
前端·https·fiddler
MoFe142 分钟前
【.net core】天地图坐标转换为高德地图坐标(WGS84 坐标转 GCJ02 坐标)
java·前端·.netcore
去旅行、在路上1 小时前
chrome使用手机调试触屏web
前端·chrome
Aphasia3112 小时前
模式验证库——zod
前端·react.js
lexiangqicheng2 小时前
es6+和css3新增的特性有哪些
前端·es6·css3
拉不动的猪3 小时前
都25年啦,还有谁分不清双向绑定原理,响应式原理、v-model实现原理
前端·javascript·vue.js
烛阴3 小时前
Python枚举类Enum超详细入门与进阶全攻略
前端·python
孟孟~3 小时前
npm run dev 报错:Error: error:0308010C:digital envelope routines::unsupported
前端·npm·node.js
孟孟~3 小时前
npm install 报错:npm error: ...node_modules\deasync npm error command failed
前端·npm·node.js