前言
GPT的G就是生成,“生成一切”来自于它的原理以及这里的观点 《迈向ChatGPT时代-技术篇》by观远数据联合创始人。
到了以 GPT 为代表的大语言模型阶段,一个显著的思维方式变化是我们其实可以通过“生成”来解决一切问题。
输入一段不管什么文字,AI接着往后生成——这也恰恰是GPT的训练过程,生成的差受打击、生成的好受激励。
这个生成一切的思维转变,也影响到了后面我们会提到的从 finetune 思路到 prompt engineering 的思维转变。
即,既然能够“生成一切”,那么我们给他输入啥、要求它生成啥,就决定了我们能不能用好它。
用好很简单:把问题描述清楚,把想要的输出也说清楚。
这里推荐一个不用翻墙的、免费可用的 ChatGPT站点汇总: mianfei.chat
GPT: 为生成而生
GPT是技术名 Generative Pre-trained Transformer ,chat是“品牌”名。ChatGPT火爆后,清华GLM模型的改版就也叫ChatGLM。到GPT4就把chat去掉了。
GPT读过很多内容,超大规模参数使它能记得住,读过代码让它有了推理能力。有知识有逻辑,表现出很聪明。
Pre-trained
预训练是指先不给目标,让模型先把数据中的各种关系自己提炼了记住。比如“蜘”后面最可能出现“蛛”这种信息。
Generative
生成,这是给模型的目标。 给N个字符,模型找最可能的第N+1个字符,然后在前n+1个的情况下继续找第N+2个,直至遇到“最可能的字符”是个“结束符”,结束。
Transformer
编码器把一段文本编码成数字参数,解码器把数字参数解码成另一段文本。编码器和解码器都是需要训练的,两者可以分开用。(from zhuanlan.zhihu.com/p/532851481…
模型框架 | 典型模型 及评分 | 训练目标 | 强项 | 缺点 |
---|---|---|---|---|
Decoder-Only | OpenAI GPT-4 128分OpenAI ChatGPT-3.5 100分谷歌 Bard 93分Meta LLaMA 68分 开源👍🏻 | 从左到右的文本生成 | 文本生成 | – |
Encoder-Decoder | 清华大学 ChatGLM 79分,中文谷歌T5 | 对文本进行随机掩码,然后预测被掩码的词 | 理解和生成都还行 | 有编码和解码部分,需要更多参数 |
Encoder-Only | 谷歌 BERT百度 ERNIE | 接受一段文本,从左到右的生成另一段文本 | 内容理解 | 不适合生成任务 |
语言模型各技术流派,已经有大量探索了,GPT率先跑出来了。( zhuanlan.zhihu.com/p/625743216 pic by Yan LeCun)
关注:GPT3→CodeX→ChatGPT→GPT4 这条线
GPT探到LLM方向后,开源社区爆发了
意味着AI会越来越便宜。
2月底 Meta的LLaMA开源后,
- 3月中,斯坦福在其基础上finetune了Alpaca;UC伯克利、CMU、斯坦福联手出了Vicuna;
用GPT4评测,vicuna达到chatgpt的92%水平。zhuanlan.zhihu.com/p/624012908
- 5月中,IBM在个别任务超越GPT4
以开源羊驼LLaMA为基础模型,IBM训练出Dromedary(单峰骆驼)zhuanlan.zhihu.com/p/627449559
-
……
-
谷歌文章:不开源干不过开源。
论据是 开源社区以你的模型展开优化,那社区成功的探索可以很方便的集成回来。
tech.bytedance.net/articles/72…
另,但20230512谷歌io大会上公布的PALM2,是bard的进化,已经超过GPT3.5在追GPT4. 知乎有对技术报告的解读
另外,Decoder-Encoder路线上,
- 3月中 清华大学开源了chatglm,对中文支持较好。
UC伯克利的开源模型排行榜显示,清华的chatglm-6b排第5. zhuanlan.zhihu.com/p/626709946
通才怎么变领域专家
通才是怎么炼成的
参考: ChatGPT进化的秘密 、 ChatGPT的数据集来自哪里 、OpenAI codex 、 GPT4核心技术
- 语言生成能力 + 基础世界知识 + 上下文学习都是来自于预训练
- 存储大量知识的能力来自 1750 亿的参数量。
- 执行复杂推理的能力很可能来自于github的代码训练,CodeX探出来的路。
- GPT4很可能是学了教材,在美国的考试得分大幅提升。
变成领域专家的方法
GPT能做所有语言模型的事,因为它自己就是个LLM(大语言模型),但特定任务做不过专用模型。也有它还不知道的知识。
- 用领域数据微调训练
在泛领域方面效果不佳,因为“GPT几乎已经读过所有领域的书”了。
但产品手册、企业内部数据GPT没见过,拿给gpt看看,可用性很高。比如应用于客服岗位有方案,多客有实例。
- 插件机制将特定任务分发给专业工具
这AI可以叫AI-OS了。识别出意图,做任务分发。
-
更多方法还在研究
★ 普通人怎么用好它
指导原则是: 把问题描述清楚,把想要的输出也说清楚。
AI解决问题的能力很强了,定义问题就比解决问题更重要了。定义好问题,就是做好Prompt Engineering 。
提示工程,就是提示语的组织方法,也就是“问问题的方法”。
比如你遇到了一个日期格式转换的问题,还是用搜索引擎思路,就落伍了。
而如果你把你遇到的问题真的描述出来,GPT能给你直接抄走的代码
stackoverflow流量平均每月下跌6%,3月决定裁员10%。谷歌呢百度呢
★ 理论指引
策略 | 具体措施 |
---|---|
明确说明问题 | 在提示开始时告诉模型你希望它执行的任务有助于生成更高质量的输出。 |
在末尾重复指令 | 提示结束时的信息对输出的影响可能比提示开头的信息更大。 |
引导输出 | 明确要求模型输出的格式,列表、表格、字数、引用等等。 |
添加明确的语法 | 对提示使用明确的语法(包括标点符号、标题和节标记)有助于传达意向,并且通常使输出更易于分析。 |
要求输出引用 | 这个主要是为了减少胡说,但实际上不可避免。 |
思维链方式(分步骤) | 指示模型响应逐步进行,并提出所有涉及的步骤。 这样做可以减少结果不准确的可能性,并使评估模型响应更容易。 |
- OpenAI官方的GPT技巧
6个策略 | 具体措施 |
---|---|
1. 编写清晰的指示 | 1.1 在查询中包含详细信息以获得更相关的答案 1.2 要求模型扮演角色 1.3 使用分隔符清晰地标示输入的不同部分 1.4 明确完成任务所需的步骤 1.5 提供示例 1.6 指定期望输出的长度 |
2. 提供参考文本 | 2.1 指示模型使用参考文本来回答问题 2.2 指导模型使用参考文献中的引用来回答问题 |
3. 将复杂任务拆分为更简单的子任务 | 3.1 使用意图分类来确定用户查询中最相关的指令 3.2 对需要非常长对话的对话应用程序,对之前的对话进行总结或过滤 3.3 逐段总结长篇文档并递归构建完整总结 |
4. 给 GPT 一些“思考”时间 | 4.1 指导模型在盲目下结论之前自行解决问题 4.2 使用内心独白或一系列查询来隐藏模型的推理过程 4.3 询问模型之前是否遗漏了任何内容 |
5. 使用外部工具 | 5.1 使用基于嵌入的搜索实现高效知识检索 5.2 使用代码执行来进行更准确的计算或调用外部API |
6. 系统地测试更改 | 6.1 根据标准答案评估模型输出 |
策略 | 具体措施 |
---|---|
提供清晰和具体的指令 | 输入时:使用分隔符清楚地指示输入的不同部分输入时:给一个具体的例子,让AI参考着输出输出时:明确要求输出格式输出时:让模型检查是否满足条件(自己分步骤推理,逻辑能够顺下去直到结论) |
给予模型时间来“思考” | 指定完成任务所需的步骤,按要求的步骤给结果在匆忙得出结论之前,让模型自己分步骤找出解决方案 |
总结一下: 把问题描述清楚,把想要的输出也说清楚。
抽象的层次
知乎这个不一定是总结最好的,但能受启发
其中的“角色扮演”就是“先夸他是xx领域的专家”,本质是限制GPT搜索知识和“思考”的范围。
实际例子
复杂问题:这里有很多实际提示语例子 kakatok.com/cn/, 没事可以多见识一下——竟然发现它能下井字棋。
简单问题:就当搜索引擎用就行
思考
几年前,有人说“所有的行业都值得用互联网重做一遍”,最近阿里张勇说“所有的产业都值得用AI重做一遍”,GPT能在哪些行业发挥更大价值?
不用翻墙的、免费可用的 ChatGPT站点汇总: mianfei.chat
用的时候记得: 把问题描述清楚,把想要的输出也说清楚。(核心的结论说第6遍)