题图:Cheva用AI创作
看了许多介绍人工智能大模型的讲座,感觉台湾的李鸿毅教授讲座是非常棒的,一来他说的是中文,理解起来一点都不费力,二来他讲课的方式也非常风趣幽默,而且介绍的知识也非常有趣,知道自从大语言模型火起来了之后,如何和人工智能打交道,
变成了一个很时髦的学问,也叫提示词工程,英文叫Prompt Engineering。而这一次看的李鸿毅教授的讲座里面就提到了关于提示词的深度知识。
我们知道大语言模型学习了非常多的语料,也就是知识,都存在它那个人们也搞各种参数组成的神经网络大老瓜里,而我们人类的提示词就是要唤醒它的部分知识和能力,让它为我们完成我们想要完成的任务,我们想要得到好的结果,
就需要好的提示词。一个好的提示词,自然是要要求要清晰明确,具有知识性。虽然说起来略微有点复杂,但可以通过人类的自然语言与智能交流,这一点对程序员来说,学会编程语言要轻松得多了。
其中在这些技巧当中最有用的两大技巧,分别是范例学习,英文叫In Context Learning和思维链,英文就是Chain of Thought。In Context Learning非常像我们人类的方式,就是在一项比较复杂的任务,光用语言表述,很难描述得非常清楚,如果描述得太清晰了,那和编程语言也就没什么区别了。这个时候我们可以大致描述一下我们的要求,然后给出几个示例,让语言模型通过这些示例学习消化,并获得新的能力。
比如我现在用AI来画,因为Stable Diffusion要写英文提示,但是我的词汇量不够丰富,特别是和绘画、摄影、艺术相关的专业描述词不是很多,现在的做法就是收集一些效果非常好的提示语,放在一旁,然后放在给ChatGPT的提示中,让他照着样来给我写关于一个新的创意的AI绘画提示词,一般来说效果还是很不错的,毕竟他读过大量的英文材料,英文比我好得多嘛。
这种学习方式的神奇之处在于打破了人们关于机器学习的刻板印象,之前的学习都是把立体和答案同时丢给算法,然后先让算法尝试用自己的方法解出来的结果和标准答案对比,得到一个损失函数,损失函数的值越大,
说明他做得越差,然后就通过批度下降的优化算法修改参数,也就是让他换一种方法再去。而损失函数就像是一个严厉的老师在惩罚他,如果和标准答案差别太大,就狠狠地抽他一耳光,如果差别小,就抽得轻一点。
这种教学方式非常的类似于学校教育里面的死记硬背。
但是,在通过这种方式学习了大量米料之后,人智能大语言模型似乎也能互类,会贯通的,不用大嘴巴抽他,他也能通过自己学习,犯来掌握新的,这似乎表明我们人类引以为豪的所谓智能真的是神奇。但机器其实也能够掌握,感觉我们人类的自信心又受了一次打击。
第二个,写prompt,写提示词的方式就很有意思了,也就是现在比较火的思维链,其实这个技巧说穿了,根本不值钱,就是我们让模型在解决问题的过程中输推理,过程就能够让模型输出的节制量得到很大的提高。
比如我们都知道,chat GPT这样的语言模型在解数学题方面表现的非常一般,但是我们只要在相关的提示词后面,加上让我们一步一步的来解决这个题,就会将自己的推理步骤输出。 这样解数学问题的准确率居然有很大的提高,看来智能模型真的越来越像人了。