如何激发模型的能力
在模型不变的情况下,我们可以做什么事情来增强模型的能力呢?
提示词 promot
上文也讲过,有一些神奇的咒语,在不改变模型的情况下,只要在跟模型对话的时候,加上这些提示词,可以让模型的能力得到增强。
具体的方法有如下:
CoT
chain of Thought的缩写,就是让模型思考一下的意思,22年曾经专门有人总结了一些神奇的咒语,下面是一个论文中举出的这些提示词:
其中Zero-shot的意思是,不加任何提示词,这时候得分只有17.7分,但是如果你告诉把问题加上lets think step by step ,那得分就忽然猛增到78.7。
所以激发模型的一个好的做法就是:告诉模型解释一下这个答案。。
那有人会怀疑,这些个神奇咒语会不会是个例呢?答案是:并不是。https://arxiv.org/pdf/2307.11760 这篇论文专门研究了大型语言模型的情绪勒索问题,就是对话的时候,告诉模型,这个问题对我很重要,结果不同的大型模型的准确率直线上升。
举个例子,帮我写一篇论文,…(具体要求),这篇论文对我很重要。
此外也有人专门为大语言模型做了一些总结:
- 对模型客气是没有用的
- 要明确告诉模型需要做什么,不要跟它说不要做什么
- 跟它说如果做不好,你就会受到惩罚。
等等,https://arxiv.org/abs/2312.16171 上有专门的总结
但是要说明的是,上面这些提示词也并不是所有模型都有用,比方说GPT-4不需要跟它说step by step,它也会一步步的思索。加上以后正确性也不会提升。
那这些神奇咒语有没有自动化学习的方法呢?那就是RL增强式学习
RL 增强式学习Reforcement learning
训练一个模型产生咒语,然后输入模型,评估结果好坏。根据评估的结果又来调整咒语,最终会获取那些有用的咒语。最终出来的很多有用的咒语,确实是神奇的,人类无法理解的。比如GPT3上一个神奇的咒语是ways ways ways…
提供更多的资料
上面这些都有失效的时候,所以要给前提 给额外的资料 提供一些范例
提供一些范例Incontext- learning
比如你要做情感分析,你可以举个例子:
今天电影好看 正面 。今天天气不好 负面。然后再给他资料看,他就可以做出正确的回答。
但是这件事情背后,有些需要思考的问题。模型不是仅仅是文字接龙的么,模型是真的能看懂这些范例么?
答案是不一定。
有专门的论文来实验过。把那些举例的答案写反了,比如正面的写负面,一些小型的语言模型还是答对了。这就说明了他们其实是不能理解这些范例。当然再后来也有人在更大的模型上实验,发现给他错误的范例,大模型确实能够输出错误的答案
任务拆解
今天我们在用CHAT-GPT写一篇长篇小说的时候,他往往还是写不好,但是可以把他拆解成更小的任务,比如先告诉他列出提纲,然后再把每一步详细列示。很可能写着写着GPT会忘记以前的背景,所以我们写完之前的,就可以把前面的抽取摘要作为输入继续生成。
让模型自己检查错误
这可能么?
答案是可能的,对于模型来说,产生答案困难,但是验证答案反而是更简单的,对于大型的一些模型来说是可以检查出来的。
总体来说让模型自己检查错误,也是可以增强模型的能力。
让模型多次生成答案
由于模型是确定的,针对模型的输入,模型输出词库中每个神经元的输出是固定的,但是为什么每次我们拿到的模型的输出都是不一样的呢?因为生成是固定的,但是每次要把哪个输出出来,确不一定,比方说我们输入:中国最, 那输出高、远、深。。一堆字的概率都是50%以上,那选择哪一个就是随机的了。
既然每次答案都不一样,那还有一种可能就是让模型多次输出,然后取出现频率最高的那个答案。
Tree of Thoughts
它实际上就是上述所有方式的组合
如图上面的步骤:
- 让模型拆成多个步骤,每个步骤给出多个答案。
- 每个答案都让模型检查一下结果是否正确。
- 如果都不正确,回到上一个步骤,找另外的一个答案的正确的回答
依次类推,直到生成正确的答案
让模型使用其他工具
RAG
Retrieval Augmented Generation,也是不需要训练语言模型,先从自己的资料库搜寻到资料,然后输入加上那些资料内容,那模型的能力会忽然大大加强,得到 与众不同的结果。
比如你可以可以让模型先去网络搜索一下,然后再继续回答。
写程序POT
Program of Thought,举个例子,GPT不擅长做计算题,但是GPT-4以后可以把输入格式成一个程序,调用现成python库来执行,最后给出正确的答案
其他工具
chat-gpt目前已经有上千种插件了
让多个模型合作
合作的方式可能有多种:
- 使用不同能力的模型回答问题
不同的模型擅长的能力不一样,真正回答问题的可能有多个模型,我们可训练一个模型,来选择使用哪个模型来回答这个问题,FrugalGPT 就可以实现这个功能。 - 让多个模型之间讨论
模型A输出以后,可以再去咨询模型B是否有更好的回答
参考
李宏毅 生成式人工智能导论