文章目录
- AI 大模型与提示词工程助力职场典型案例场景实战
- 1 AI大模型全局架构实战剖析
- AI大模型常见术语
- AI 大模型全局架构
- 2 Prompt Engineering 整体应用场景剖析
- Prompt 提示词的三个层次
- Prompt 提示词的经典模板
- 如何让 Prompt 提示词做的更好?
- 如何让 Prompt 提示词自动优化改进?
- 3 提示词工程不能淘汰程序员的7个原因
- 原因1、确定性计算 VS 概率计算
- 原因2、LLM 生成代码的基础原理
- 原因3、只做提示词工程,LLM 能否完成代码编写?
- 原因4、LLM的劣势,程序员的技能优势--“抽象”
- 原因5、LLM 没有改变什么?
- 原因6、LLM 将会改变什么?
- 原因7、LLM 是程序员的效能倍增器
AI 大模型与提示词工程助力职场典型案例场景实战
1 AI大模型全局架构实战剖析
AI大模型常见术语
LLM、通用大模型、私有大模型、微调、Embedding、向量、AI Agent
- AI Agent 和 私有大模型是一回事?
- 私有大模型 ≈ AI Agent
- 微调 和 Embedding 是一回事?
- Fine-tuning 微调本质上是在 LLM 基础上做增强,是实现企业私有大模型的一种方式
- Embedding 本质是将企业私有知识库转成向量,存储到企业私有的向量数据库中,然后在结合用户的 Prompt 给到大模型,最终返回更符合用户预期的结果,这也是实现企业私有大模型的一种方式
AI 大模型全局架构
2 Prompt Engineering 整体应用场景剖析
Prompt 提示词的三个层次
- 层次一:告诉大模型要干什么
- 写代码、写文案、做数据分析、充当面试官、讲笑话、陪我聊天等
- 层次二:怎么能做的更好?
- 层次三:怎么进一步帮我完成实际工作?
- 写业务代码、测试用例、代码 Review、财务分析、运营工作等
Prompt 提示词的经典模板
【角色】我让你充当一名 AIGC 的资深专家
【背景】我需要为职场人以“为什么说 Prompt 提示词是每个职场人必备的核心技能?”为主题
【任务】写一篇发表在微信公众号上的文章
【要求】我的第一建议是要求论点要犀利、论据要充分,第二个建议是要有真实职场案例来说明,第三个要求是有爆款的潜力,第四个要求是配上图片,第五个要求是不少于 1000 字,请开始写作吧。
如何让 Prompt 提示词做的更好?
【本质】与“人”沟通
【类似与人沟通做法】耐心、细节(数据)、逻辑、举例
【案例】请提取这句话中的名字:“帮我把这份数据分析报告给那个孙什么来着”
【案例优化】请提取这句话中的名字:“帮我把这份数据分析报告给那个孙什么来着”。如果名字很模糊,就用先生/女士来代替。
请用这种格式返回:
名字:XXX
不需要其他内容。
总结
- 本质:与大模型沟通,在知识层面,大模型什么都懂,在需求层面,大模型什么都不懂
- 不要做:以为它懂你,不要“猜谜语”
- 要做:有耐心、多提供细节、多举例子、逻辑一定要清晰
- 思考:工作中和同事是怎么交流的
如何让 Prompt 提示词自动优化改进?
- Prompt分析改进器:让大模型 ChatGPT 自动改进 Prompt
3 提示词工程不能淘汰程序员的7个原因
原因1、确定性计算 VS 概率计算
原因2、LLM 生成代码的基础原理
- 压缩:OpenAI 首席科学家Ilya Sutskever “LLM(大语言模型)是对人类知识的压缩”。
- 转换对比:在传统编程下,高级语言(即Program) 通过编译器(计算1.0时代的确定性逻辑)转换为汇编语言。而在LLM代码生成下,自然语言(即Prompt) 通过LLM (计算2.0 时代的概率性逻辑) 转换为高级语言。
- 两阶段概率性:
- 第一阶段:自然语言prompt阶段,自然语言表述有巨大的随意性。
- 第二阶段:LLM经过神经网络推理生成代码,LLM是个计算2.0时代的概率性逻辑,它的输出当然是概率性的。
- 这两阶段的概率性,使得LLM生成的高级语言代码,具有一定的不确定性。
原因3、只做提示词工程,LLM 能否完成代码编写?
- 不确定性:程序员编写代码,也是生物神经网络计算,也有很大不确定性?同样一个任务,A程序员和B程序员编写的代码肯定不一样,即使A程序员放不同的时间,编写的代码也不同?
- 确定性收敛过程:编码 = “代码生成”+“确定性收敛过程”。程序员“生成”代码之后,还有一个不断通过“逻辑校验”、“编译器校验”、“ 各种测试校验”的过程,这是一个从概率性逻辑向确定性逻辑的逐步收敛过程。
原因4、LLM的劣势,程序员的技能优势–“抽象”
- 抽象层次低:LLM在细颗粒度、抽象层次较低的任务上,表现非常好;但在大颗粒度、抽象层次较高的任务上,表现比较差。而大颗粒度、高抽象的设计才是软件开发中核心的核心—架构设计。
- 软件推演:
- 软件开发=抽象层次较高的任务 + 抽象层次较低的任务(编码)
- 软件开发= 抽象层次较高的任务 + “代码生成”+“确定性收敛过程”
- 软件开发中难被LLM替代的部分抽象层次较高的任务:需求分析、领域建模、架构设计、详细设计、模块耦合性设计、接口设计、开发者测试设计等。而具体的类型实现、函数实现、算法实现、单元测试实现等这些抽象层次较低的任务则是LLM特别胜任的。所以,AGI时代,程序员最重要的技能要聚焦在上述抽象层次较高的任务。
- 抽象层次高演进:LLM训练数据的质量、RLHF中的人类反馈、Fine-tuning、Prompt 等环节是否能将软件行业积累多年的各种“抽象”的优秀实践都学习掌握。
原因5、LLM 没有改变什么?
- 改变规则:LLM会不会发展到不需要生成高级语言、不需要编译器,通过 Prompt 就能直接生成计算机程序?
- 大前提:冯诺伊曼体系架构。
- 在冯诺伊曼体系架构下,它不会改变数字电路“与或非”的原理、不会改变计算机程序的基本逻辑、不会改变编译原理、不会改变操作系统的规则、也不会改变算法、数据结构、网络协议…等等自图灵、冯诺伊曼以来计算机科学近八十年所积累的所有的“Law”。
原因6、LLM 将会改变什么?
- 经验性活动即软件工程:以“语言”为载体,由人参与的“经验性活动”,大量需要“各种语言载体”进行沟通、协调、对接、传授的部分。比如:需求分析、软件设计、代码编写、开发者测试、代码评审、重构、整洁代码、缺陷调试等。
原因7、LLM 是程序员的效能倍增器
- 效能倍增器:站在软件工程的角度,LLM会大幅提升原来软件开发过程中的每一个环节。学习掌握一定的 Prompt 技巧是有必要的,但前提是首先要掌握好“编程语言”和相关技术栈本身—这也是做好 Prompt 的前提。
- 总之,在不抛弃冯诺伊曼体系架构前提下。
- 在AGI时代,掌握编程语言和其背后抽象层次较高的部分、以及相关技术栈,仍然是优秀程序员的基本功。“Prompt Engineering 提示工程”对软件开发可以起到效率倍增的作用,但它不是软件开发的全部,“提示词工程师”也替代不了程序员的作用。