本文来自微信公众号:采铜的创想世界 (ID:CTDT4US),作者:采铜,题图来自:视觉中国
本文来自微信公众号:采铜的创想世界 (ID:CTDT4US),作者:采铜,题图来自:视觉中国
这段时间还是在持续地关注和学习AI。比如在arXiv里下了些论文来看:
越看越觉得:大模型这块有太多东西值得研究了。
所以自己也按耐不住做点小实验。
比如,我想到“多模态推理”是一个很好的使用大模型的思路。
所谓多模态推理,是指不仅使用文字,也结合图形信息等,一起进行推理。在表达逻辑关系上,图形往往比文字更直观,因而多模态推理如果可行,那么大模型的能力会得到进一步的释放。
可是问题是:大模型是否能胜任多模态推理呢?
我做的第一个简单的实验是使用家族图谱,结果发现,大模型对于形式简单的家族图谱,是可以进行推理的:
这张图是我画的,提交给AI,并加上一句提示词:“请看这张图片,已知张三是大宝的爸爸,请问小杰怎么称呼张三”。
对此,各个主流大模型都能给出正确的回答,比如下图是腾讯元宝(yuanbao.tencent.com)的回答:
从这个例子我们可以看到“多模态推理”的特点:
提示词由文字+图片组成;
文字和图片各呈现了一部分信息,特别是图片传达了文字提示词没有提供的信息;
大模型要做出正确的回答,除了理解文字提示词外,还必须正确理解特定的图形关系。
对于一道相对简单的多模态推理题能做出正确解答,使我对大模型的潜力和新用法充满了信心。可是马上,一个新的尝试,却让我大失所望,甚至有点崩溃。
我的新实验是使用纵横字谜来测试大模型。
纵横字谜在国外比较流行,英文叫crossword puzzle,国内以前有段时间也流行过,出现在报纸的副刊,作为消磨时光的智力游戏,也有一些爱好者。
精心设计的纵横字谜是颇有难度的,对人的知识面和思维能力都有比较高的要求。而纵横字谜又是一种“多模态推理”,既要理解文字信息,又要理解图形关系。可是,让大模型来做复杂的纵横字谜,或许有点强人所难,我便想从最简单的纵横字谜,即“一纵一横”式的开始测试。
上图就是我设计的一个最简单的纵横字谜,并且附上如下提示语:
这是一个纵横字谜。
横向排列的四个方格组成一个成语,以从左往右的顺序。
纵向排列的四个方格组成一个成语,以从上往下的顺序。
根据下图,请帮我推理出横向和纵向的成语分别是什么。
我本以为大模型能轻松完成任务,可没想到:竟然没有一家大模型可以做出来!
比如通义千问的回答是这样的:
文心一言的回答是这样的:
这是为什么呢?我之前让大模型写高考作文,它们洋洋洒洒一千字,一点都不含糊,一篇文章里成语七八个,用得也大多得体,可是为什么这里让它们猜两个成语,就一点儿都猜不出来了呢?
而且它们不仅是猜不出来,而且所答的内容完全是零乱的,错得不着边际。
当然有一种可能性是:它们不是不会推理、猜测,而是读不懂我画的图,或者说,这种“格子里带文字”的形式,它们理解不了。
于是我便再退一步,用更加简单的题目,来问它们:
在这一轮的测试中,我的文字提示词没有变,只是图形变简单了,于是它们就都答对了。
可是我的失望却更大了,我心想:难不成搞了半天,这些n个亿砸下去做出来的大模型,只能回答这么简单的题目,稍微加点难度就做不出来了?那要你们何用??
我想知道为什么,我想知道这些大模型写文章、写文案、写分析报告时一个个都很能干,为什么猜个成语就这么困难呢?
于是我又反反复复画新的图,做新的测试。
其中有一组测试,让我茅塞顿开:
大家看这四组测试,从我们人类的视角来看,这四组测试的难度应该是差不多的,“来”是一个非常常用的字,包含“来”的成语不少,而且“来”字也可能出现在成语的不同位置。我们人类做这四道题的难度取决于每个人的成语储备量。
但是我发现,对于大语言模型来说,这四组测试的难度有相当大的区别。
对于测试a,即猜测“来”字位于首字的成语,大模型基本上都能答出来。
这是腾讯元宝的回答:
这个回答虽然出现了幻觉,但是至少给出的答案“来日方长”是正确的。
文心一言的回答也是对的:
但是通义千问却说自己没法回答:
再看测试b,测试的结果是都没有答对,如腾讯元宝的回答是:
又是“来日方长”……
文心一言也是突然就凌乱了:
通义千问也没有答出来。
后面测试c和测试d也是遇到了类似的情况,这三家国内主流的大模型,不仅没有答对,而且错得相当离谱、不着边际……比如通义千问对测试c的回答是“不期而遇”:
所以,我便得到了这样一个出人意料的结果:
为了确认大模型是否真的做不了后三种题目,我又做了一组对比:
从我们人类的视角来看,测试e和测试f的难度明显比测试d低,因为提供了更多的已知信息,那么对于解出题目来说就会容易许多。尤其是测试f,答案几乎已经呼之欲出。可是大模型的表现再次让我大跌眼镜!
对于测试e,通义千问、腾讯元宝、文心一言再次全错:
对于测试f,通义千问做对,腾讯元宝、文心一言做错:
于是我们会看到这样一个汇总的结果:
但我的探索还没有结束,为了确认大模型是否确实胜任“测试a”类型的任务,我又出了两道题:
对于测试g,通义千问的答案是“苦尽甘来”,腾讯元宝的答案是“苦口婆心”,文心一言的答案是“苦不堪言”,这三个答案都是正确的:
对于测试h,三个大模型都正确地给出了“苦尽甘来”的答案。
所以统观测试g和测试h,这两个测试都是给出了成语的第一个字作为已知信息,此时大模型的正确率是100%。
讨论
经过上面的这些测试,一个隐藏的规律似乎已经渐渐明晰:
大模型在做成语填充任务时,它必须得到第一个字作为已知条件,通过第一个字,它往往能给出正确的成语,但是如果第一个字是未知的,那么它去找到这个成语就会变得极其困难,甚至在给出后三个字的情况下(如测试f),都不一定做对。
大模型的这种推理特点跟人类显然是非常不同的。
我之前看了一些有关大模型原理的书,明白以GPT为代表的大语言模型,其核心是一个叫做transformer的神经网络算法。而transformer的特点,就是从左至右地、逐一地生成概率最大的那个字符。transformer生成文字的机制本身就是朝着一种方向的。
但是,这是一种“微观”的机制,从左至右地生成字符是否跟从前往后地推理有必然的联系呢?这个就超出了我的理解范围了。但这次的探索似乎提示我们,两者确实是有关系的。
我们可以自豪地承认,人类不仅能从前往后地推理,还擅长从后往前地推理,比如“以终为始”的思维方式,就是从事情最后的结果出发,往前倒推前面如何行动。但是,如果大模型只能从前往后推理的话,那么似乎它就无法进行“以终为始”的思考,这可能是大模型的一个重大的短板。
当然,我这里提出大模型只是单向推理者,只是一种猜测,顶多算一种假说。是否真的如此,需要更加严谨和专业的研究才行。
假设后来真的证明,大模型只擅长单向推理,那么在应用大模型的时候,就必须特别注意这个特点,设计针对性的策略,比如怎么写提示词,怎么做智能体等方面,都要考虑到这个问题,才能扬长避短,真正地发挥AI的潜力。
本文来自微信公众号:采铜的创想世界 (ID:CTDT4US),作者:采铜