【AI】从脑科学角度解析GPT4及人工智能
节选:
如何使用 GPT?
下面会通过实际示例来展示如何最好地使用 GPT。假设你在写一篇文章,需要在结尾加上这样一句:「California’s population is 53 times that of Alaska.」(加州的人口是阿拉斯加州的 53 倍)。但现在你不知道这两个州的人口数据,你需要智能助理来帮你。
人类会怎样完成这个任务呢?大致推想,人类很可能会经历一连串的思考过程,如下图所示:首先会想到为了得到结果,需要比较人口数量,那么就需要查询人口数据;然后使用查询工具查一下 —— 在维基百科上找到了加州和阿拉斯加的人口数据;接下来很显然需要做个除法运算,可能会需要计算器;然后得到倍数结果 53;然后我们的大脑可能会用经验理智快速检验一下 ——53 倍感觉挺合理的,毕竟加州是美国人口最多的州。
信息有了之后,就进入了创造性写作的部分。你可能首先会写下:「California has 53x times greater」,然后你想一下感觉又不太合适,又删了重新想哪种表达更合适一点,最终得到你满意的句子表达。
简单来说,为了写这样一句话,你的内心会经历大量独白式的思考。那么 GPT 在生成这样一句话时又会经历什么呢?
GPT 处理的都是 token 序列。不管是阅读还是生成,它都是按部就班地一块块地进行,其中每一块都是针对一个 token,计算工作量也都一样。这些 Transformer 的层数不少,足有 80 个推理层,但话说回来 80 也不是非常多。
Transformer 会通过这些来尽力模仿写作,但其思考过程和人类的大不相同。也就是说与人类不同,GPT 没有什么内心独白,它只会检视每一个 token 并在每个 token 上投入同等的计算量,仅此而已。它们就像是 token 模拟器 —— 它们不知道自己知道什么或不知道什么,只是模仿地写出下一个 token;它们也不会反思,内心不会思考结果是否合理;它们写错了也不会反过来修改。它们只是按序列采样 token。
但类似于人类写作时没写好可以重来一样,Transformer 也可以多次采样,然后我们可以使用某个过程找到其中较好的。这被称为自我一致性(self-consistency)。
有趣的是,通过让模型反思(reflection),可以发现模型其实能知道自己出错了。举个例子,如果让 GPT-4 生成一首不押韵的诗然后它生成的诗却押韵了。然后你只需要问它「你完成任务了吗?」它就会知道自己没有完成任务,然后为你重新完成任务。
但如果你不给出那样的 prompt,它就不知道自己错了。它并不会自己去回顾,毕竟它只是一个 token 模拟器。你必须通过 prompt 让它回顾。
Karpathy 接下来谈到了 LLM 的另一个有趣现象,他说:「LLM 就好像有种心理怪癖。它们不想成功,只想模仿。」你想要它给出正确答案,你就要明确要求它。这是因为 Transformer 的训练数据集中数据并不总是正确的,也存在低质量的数据。
举个例子,假如有某个物理问题,数据集中可能有某个学生给出的错误答案,同时也会有某个专家给出的正确答案。而 Transformer 不知道该模仿哪个或者说它都想模仿,毕竟它们的训练目标是语言建模,不是分辨对错。因此在使用和测试时,如果你想要正确答案,你就要明确提出要求。
比如在上图的论文中,研究者尝试了多种不同的 prompt,发现对于同一问题,不同 prompt 得到的输出结果准确度竟然不一样!可以看到,如果在 prompt 中明确要求模型一步步推理并给出正确结果,其准确度会高一些,因为这样 Transformer 就不必再为低质量解答分配概率了。因此,如果你想要正确答案,就大声说出来!像是在 prompt 中添加「你是某领域的专家」或「假设你的 IQ 为 120」。但是也不要太过了,比如要求模型假设自己的 IQ 为 400,这样的话你的问题可能会超出数据的分布或者虽在分布中但结果却很科幻 —— 这样模型可能就会开始扮演什么科幻角色了。
让 LLM 使用工具 / 插件
针对具体问题,使用合适的工具往往能事半功倍。对 LLM 来说也是如此。根据具体任务的不同,我们可能希望 LLM 能使用计算器、代码解释器、搜索引擎等工具。
但首先我们需要记住一点:Transformer 默认情况下可能并不知道它们无法做到某些事情。用户甚至可能需要在 prompt 中明确告知 Transformer:「你不擅长心算,如果要做大数运算,请使用这个计算器,这是使用这个计算器的方法。」你必须明确要求它使用某个工具,因为模型自身不知道自己擅长或不擅长什么。
现在时兴的做法是:选取相关文档,然后将其分成文本块,再执行嵌入操作,得到表示那些数据的嵌入向量。这些嵌入向量会被保存起来。当使用模型时,我们可以向存储的向量发出查询,从中取用与当前任务相关的文本块。然后将这些文本块加入到 prompt,再让 LLM 生成。这种做法在实践中的效果很好。
这其实与人类完成任务的方法类似。人也可以仅靠自己的记忆做事,但如果能检索到与任务相关的资料,做起事来也自然会更容易。Transformer 虽然记忆广博,但也能从检索中受益。
Karpathy 的 GPT 使用建议
为了帮助人们更好使用 GPT,Karpathy 给出了一些建议。在使用 GPT 来完成任务时,可以将任务分成两个部分:一,取得最佳结果;二,依照指定顺序优化结果。
你不用急于让 LLM 一步到位完成你的任务。可以多做几次实验,测试一下各种可能性。你可以向 LLM 提供一些例子,让它真正理解你的意图。
Karpathy 建议用户目前仅在低风险程度的应用中使用 LLM 并且要搭配人工监督一起使用。LLM 可以作为灵感和建议来源,让它们辅助我们而不是完全自主地替代我们工作。
来自:人工智能学家
思考:我们使用ChatGPT来启发自身的灵感,这将是大有裨益的。当然了,了解它背后的工作原理,更有利于我们怎样提问,我们知道一个详细的promt,设定好它的身份,给约束条件,按步骤来述说,反问它是否回答完整等等技巧,将会提到它回答的准确性。
更多内容,欢迎关注微信公众号:吴言不语零一二三
相关文章
猜你喜欢