最近一段时间,互联网最火的莫过于ChatGPT,比尔盖茨更是盛赞ChatGPT的出现堪比当年PC和互联网的诞生。不少人在讨论ChatGPT是否可能淘汰程序员,笔者认为就像历史上马车-汽车/线下店-线上淘宝的转变一样,新技术出现会淘汰很多职业和人,同时也会孕育更多的新职业和机会,对于咱们来说,最重要的是——提升认知,拥抱变化,抓住变革带来的机会,驾驭AI为我所用!
笔者最近一直在研究ChatGPT,作为一个资深开发,尝试把ChatGPT用在开发的各个环节,不得不说,尽管部分场景表现不佳,整体效果是惊人的,这里抛转引玉,让我们一同驾驭AI走进程序开发新时代。
基本认知
本质上ChatGPT包含两方面功能
- 大量知识的存储,这是大语言模型(LLM)支撑的
- 基于特定查询的推理,这是监督学习和强化学习赋予的选择能力,返回精确的答案
是不是很像搜索引擎?看看搜索引擎怎么干活
- 大量知识的查询,基于倒排索引技术将所有页面管理存储
- 基于特定查询的SQL/NoSQL检索,一般涉及到多个排序流程,返回是按照PageRank排序好的一系列页面
相比搜索引擎的机械存储和排序,ChatGPT的最大优势在于知识的整理和自然语言理解,仿佛整体就是像人一样的神经网络存储和计算。看看Google和微软Bing最近的斗争有多激烈,现在能理解为什么ChatGPT的诞生对搜索引擎是最大挑战了吗?
具体的原理不在这里赘述,顺着上述思路,我们应该看到相比使用Google/Baidu时的查询/高级查询,对于ChatGPT的使用来说,最重要的是设计Prompt(对话前提/上下文提示)。ChatGPT仿佛一个拥有无穷知识的小孩,想要他给出符合我们需求的答案,我们需要按照它能够理解的方式给出提示和结构,指引他向正确的方向推理出结果。
Prompt最佳实践
虽然,ChatGPT会尽可能理解你的任意引导(问题),但是一些场景遵循以下实践相对会得出更好的结果,理论上英文Prompt效果更好(语料多),这些考虑国内使用都是中文,效果也不错。
1.简单指令
动作+对象
任务详情
动作+对象和任务详情顺序可以互换,任务详情和指令间换行或者使用括号引号等包裹,指令前可以附加别的辅助词,比如常见的如何/请/怎么等等
2.简单指令+附加条件
动作+对象
任务详情
遵循如下原则/问题背景如下/附加说明:
1.
2.
3.
3.前提/场景/模式设置
得益于大量对话基础数据和in-context learning,ChatGPT支持上下文模式,也就是ChatGPT输出和之前的所有对话内容相关。因此可以在问答前统一设置前提/背景/模式,这也是我们可以教会ChatGPT他不了解的知识和表达方式的原因。
接下来的对话…
统一回答语言
指定回答模式
4.知识训练
ChatGPT当前不是万能的,一方面依赖的基础知识只到2021,另外一些专业领域或者场景并没有学习到足够的知识,回答不能令人满意,但是好在通过上下文对话方式我们可以教会它新的知识。
知识训练有两种方式
- 直接把知识以对话方式给ChatGPT,ChatGPT自行抽取学习,适合无结构的数据
- 按照一定的规则给ChatGPT,比如
接下来的对话,
如果我发送的内容是 {简写} ,我的意思是 {内容}
如果我提到{对象},我指的是{具体描述}
如果…,…
无结构的通用知识训练
继续问,模型会结合已经基础知识和新学习的知识给出回答
专业知识训练
5.交互角色训练
这个知乎上有不少例子,最出名的是
- 猫娘训练
- 伪装linux命令行
这些都是交互角色训练,一般遵循如下问答模式
我希望你充当/扮演/担任{角色}。
我将{做什么/职责是},你将{做什么/职责是},
当我{做什么},你会{做什么}。
这种方式,很容易伪造一个角色来配合程序开发和测试,比如下面伪造linux命令行
更多的角色扮演请参考
- 中文Prompt https://github.com/PlexPt/awesome-chatgpt-prompts-zh
- 英文Prompt https://github.com/f/awesome-chatgpt-prompts
未来展望
当前ChatGPT并不是完美的,就像一个小孩,随着更多的基础知识投喂和更多标注数据的监督/强化学习,只会越来越强,就像一个小孩学会越来越多的知识和技能(套路),目前OpenAPI拿到微软的追加投资,更是锦上添花。
大胆猜想一下:
- 未来程序员的工作会不会变成AI训练师?
- 会不会到时候的编程语言变成和AI更好理解的自然语言DSL?
对于程序员来说,赶上这趟时代新列车是有先发优势的,可以做的是
- 尽快学习ChatGPT构建的相关技术,国内各个大厂都在跟进ChatGPT的开发,可能开启新一轮技术军备竞赛
- 可以不从事相关工作,但是尽可能理解,就像不是人人都会写个操作系统,但是需要尽可能理解操作系统,开发工作调API即可,学习怎么更好的使用ChatGPT
下一篇文章,笔者带领你探索ChatGPT在软件开发全周期的应用!文章来源:https://www.toymoban.com/news/detail-419828.html
参考
ChatGPT提问工程师 – 开发指南
https://github.com/dalinvip/Awesome-ChatGPT
https://github.com/chenweiphd/ChatGPT-Hub文章来源地址https://www.toymoban.com/news/detail-419828.html
到了这里,关于ChatGPT 最佳实践,成为驾驭AI的人的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!