AIGC介绍篇
AIGC 最近横空出世,对社会产生了多冲击。AIGC 发展到现在,其实也就是最近几个月被 ChatGPT (22年11月推出的)带火的,ChatGPT 你可以理解为是所有 AIGC 的一个大脑,其他各种各样的 model 都是四肢,由 ChatGPT 指挥,那目前被热议的 GPT 或者 LLM,究竟是个什么东西?我们和它对话的时候到底发生了什么?那么我们如何使用 ChatGPT,如何在AIGC大时代紧跟趋势?
LLM 或者 GPT 究竟是什么?
GPT,generative pretrained transformer,预训练的大语言模型,GPT3.5 是一个有 1,700 亿参数的模型,GPT4 的模型大小 OpenAI 并没有公布,有人说可能是 GPT3 的 100 倍甚至更多,所以如果我们把一个参数看成一个神经元,GPT4 已经接近人脑神经元的量级,而且按这个趋势看,未来 GPT 一定会超过人脑神经元的量级。所以如果真的把人类产生的所有知识都拿给 GPT 训练,能训练出一个什么样的怪物呢?我们谁也不知道。
其实,GPT1 和 2 都不是特别成功,但在 GPT3 之后,同样的训练方法,只是训练的数据容量更大一些,却突然涌现了很多有意思的能力。
首先,GPT3可以理解广泛并且复杂的指令。我们之前的 AI 像 Amazon 的 Alexa,你需要专门写一个个的 skill,Alexa 能做的事情完全跟你提供了多少的 skillset 有关系,但是 GPT 的 skill 是无穷无尽的,我们给一些它没见过的东西,让它按指令做一些任务,它是可以顺着我们的思路做下去的。
第二个 GPT能理解例子,并且能举一反三。这个能力是非常强大的,其实我们人类学习已有的知识,也是通过理解并提炼出其中的套路,再把这个套路应用到新的场景下,GPT 也有这种能力,你告诉它这是一个什么样的样例,然后输入是什么,输出是什么,让 GPT 按这种方式来做一些事情,它能理解这个例子。
最后 GPT 能按照要求对复杂的任务进行分治。“分治”是我们程序员都有的一个非常基本的素养,面对一个复杂任务复杂问题的时候,我们会把它分解成不同的模块,各个击破。现在 GPT 也有这种能力,当你告诉他一步一步把中间过程写出来,你会发现他能把一个比较复杂的问题分拆,最终输出比较好的结果。
为什么 ChatGPT 能横空出世?
最主要的一点是提供了非常高水平的问答服务,并且使用门槛基本降到奶奶辈儿。我们做互联网的经常说,如果说你做一个面向消费者的产品,你父母不会使用,有可能使用门槛有问题,但 chatGPT 使用门槛极低,这是让他成为史上最快用户过 100million 的 consumer APP 很重要的原因。
chatGPT 还提供了非常简单且低价的 API 激发社区参与。GPT 到目前为止是一个具有绝对垄断力的大语言模型,但是,它其实给出了非常便宜的 API 使用价格,这导致社区里有各种各样的 SDK。它还提供了一个 plugin 的 framework,虽然现在还没有确定对公众开放,不过社区在 GPT API 的基础上做了很多工具,解决掉一些 GPT 的短板,进一步降低使用门槛,比如 langChain、Ilama-index、AutoGPT。最近比较火的 AutoGPT,基本上,你可以认为等同一个虚拟的助理。有了这些作为基础,就引发了 GPT 无限可能的场景。
现在创业市场最火热的就是 ChatGPT + X,X 可以是任何的 SaaS 服务、传统服务,比如 ChatGPT + Legal,法律服务原来门槛很高,现在 GPT 可以帮你写诉状,承担一些原本你需要跟律师交流的事情,并且他还可以把法院的传票以一个 7 岁小孩都能听懂的方式,解释给你听,这就很非常厉害。
如何高效使用 ChatGPT?
首先你要能够使用 GPT(这个不方便细聊,需要的话可以私信小编-小严,我给你推荐一个保底方案)。可以访问后,很重要的一点就是你要问对问题。清晰明了地表达你所问的问题,如果是一个比较复杂的问题,你要提供足够的上下文,比如精准的一步步指令,然后给一些典型的例子,这些都有助于 GPT 理解你想让它解决的应用场景,帮助你完成任务。
当然未来很可能会出现更好的 AI,更好的工具,我们也不用写这些魔法一般的指令,但现在还不允许,那我们 prompt engineering 基础的技巧有哪些呢?
入门级的技巧就是五方面:Role、Context、Instruction、Example、Output。
role,指定 GPT 是什么角色,比如 you are playing a role of migration-bot。
context,想干什么样的事情,给到充足的上下文。
instruction,一步一步应该怎么去处理,规则详尽。
instruction,给一些高质量的例子帮助 GPT 进一步理解。
output,最后说明期待什么样的输出格式,比如希望给出的结果是一个对话、一个 JSON。这很重要,尤其是你希望在程序中控制它,output 需要是计算机可以继续处理的数据结构。
注意,有时候 GPT 会很跳脱,即便你告诉他 output 应该是一个 JSON(JSON体的答案更具有结构性,结构条理更加清晰),它有时候还会多说两句废话,比如:“好的,JSON 是这样子的,然后定义 JSON”,但这不是我们希望的结果,如果无法直接转换成 JSON,你可以试试用正则表达式,把里面的 JSON 部分拿出来,再去 parse。所以你可能需要去做一些特定的处理。
具体可以参考:https://github.com/dair-ai/Prompt-Engineering-Guide。
这里强调一下,你指定一个角色后,GPT 会安分守纪地在角色的知识体系中,这样可以避免一些噪音,比如说你指定它是 database administrator,这时候你再问宫保鸡丁怎么做,它就会拒绝回答,它会认为自己不负责回答角色认知之外的内容。
在使用的过程中,我们也要控制预期,了解大语言模型的限制,就像刚才说 GPT 基于预测机制的结果不确定性,不适合做 deterministic 的问题,更适合去做一些开创性的问题。这可能跟很多人的想象不同,大家都觉得 AI 是个工具,像计算器一样,但实际上现在的 AI 更像是一个 artist,有一定的 creativity,不要认为它是一个 scientist。因为它可能经常信口胡说,比如我问《资治通鉴》是如何评价陈天的,GPT 真的能写跟资治通鉴一模一样的文本,还搞成文言文,所以当你想让 GPT 去做一些确定性很强的事情,要三思。
文末
AIGC 大时代,有很多有意思的新事物诞生,让小编和你一起在这个大时代紧跟趋势,关注小编,一起做AIGC大时代的领航者。
最后提一个值得思考的点,如果说我跟 AI 一直对话,我把从小到大所有经历的事情、所有掌握的知识经验,都跟 AI 分享,最后有没有可能 AI 面对外界的时候表现的行为,完全跟我一模一样,那以后人是不是可以通过这种方式永生?欢迎留言脑洞。