王路在隐身

为什么当前的AI在阿毗达磨上表现拉胯?

两年前,我提过一个观点:汉语才是真正意义上的阿毗达磨的母语。

很多人不赞成。理解它确实不容易。能理解的前提是,精通阿毗达磨。我见过很多人,以中文为母语,因为读不懂《俱舍论》,想通过读梵本《俱舍论》、日译本、藏译本,甚至法译本、英译本来学习。那是不对头的。不对头的人经常迷信一种听来的说法:要想读懂《俱舍》,只懂中文是不行的,必须掌握梵文。这个说法是严重错误的。讲这话的人往往自己也不懂《俱舍》。学什么东西,都不能人云亦云,更不能想当然。自己学下去,搞明白,问题就涣然冰释了。这是如人饮水的事情。

我为什么说汉语是阿毗达磨真正意义上的母语呢?汉语阿毗达磨文献,主要是玄奘从梵语翻译过来的。怎么能说汉语比梵语还阿毗达磨呢?

事情是这样子的。我们看一门语言适不适合一门学科,重在看这门语言的结构和特质适不适合这个学科,而不是看这个学科是不是最早在这个语言里出现的。“金银天然不是货币,但货币天然是金银”。人类社会最早拿来充当货币的,不是金银,可能是贝壳、羽毛或者什么东西,你能说那些东西比金银更适合充当货币?看一样东西是否适合在历史上充当货币,主要看它是否具备稀缺性、易分割、便携带等特质(当然,在互联网和AI时代,货币的特质和要求也会发生巨大的变化,不聊那些),而不是看它是否最早充当货币。

那么,汉语究竟怎样适合阿毗达磨呢?举个例子(以前举过,再重复一遍):苦法智忍、戒禁取见。——你去英译本里看看这两个术语多长,就明白了。一行写不下。所以有人说想通过英译本学《俱舍》,问我是否可行,我只能告诉他:门都没有。除非你先通过汉语或者梵语学会了《俱舍》。对汉语母语的人来说,更没有必要舍近求远了。为什么?你看看汉语里阿毗达磨术语的长度,不管是书写长度还是音节长度,和对应的术语在梵语里的长度比一比。

哪种语言更适合,一目了然。——越短的,越适合。

就像“爸爸的爸爸叫爷爷”,一种语言里如果没有“爷爷”这个词,每次指代“爷爷”,只能说“爸爸的爸爸”,那就很不适合传递“爷爷”这个概念。再极端一点,如果某种语言里连“爸爸”这个词都没有,只能用“母亲的配偶”甚至“生下你的女人的配偶”来表示“爸爸”,那么这种语言,在解释血缘关系上,蹩脚透顶了。别的语言可以直接说“爷爷”,这种语言只能说“(母亲的配偶)的(母亲的配偶)”,还必须加两个括号。——你看英文的“戒禁取见”,就知道单靠英文绝对不可能学好阿毗达磨。它就是在用“母亲的配偶”来表示“爸爸”。

玄奘大师厥功至伟的地方之一,就是他楷定了阿毗达磨的中文表述。当然,他所楷定的佛教术语远不限于阿毗达磨,但在阿毗达磨上,玄奘的楷定有如传说中龙树菩萨在佛教史上的地位。但龙树毕竟是传说,玄奘的所作是实实在在发生的。没有玄奘的话,通过汉语不是不能学阿毗达磨,而是要费劲太多倍,还学不那么好。汉语虽然适合阿毗达磨,但也要有人把架构搭起来。

再举几个例子。一个从事法律工作的人,如果他的语言里没有“合同”这个词,提到“合同”只能说“当事人为了确定各自的权利和义务而订立的各自遵守的条文”,那完蛋了。我们都说GPU,无论你是说中文还是英文,说英文的人极少说Graphics Processing Unit,说中文的人极少说“图形处理器”。你要说CERN,而不是“欧洲核子研究中心”,更不是它的英文全称。当然,签署书面文件那是另一码事。在日常应用中,一个词出现的频次越高,它自然就会变得越来越短。否则就影响交流的效率和质量。

我之前出版《红楼碧看》,序言里提到“诺奖”,被出版社强行改成“诺贝尔奖”,理由是“诺奖”不规范。这就好比把“新冠”叫“新型冠状病毒引起的肺炎”。如果它只是一个低频词,当然无关痛痒,但当它升级为高频词、超高频词的时候,如果你用中文叫,就只能叫“新冠”。如果叫“新型冠状病毒引起的肺炎”,不仅啰嗦,还不容易传递有效的信息。

术语就是这样。术语是一个个基本单位。它是凝结了诸多概念关系之后,形成的核。如果不是一个核,或者核的边界模糊不清,就很难确认它和其他事物的种种关系。在任何一个学科里,学科壁垒的建立,就是由学科术语累积而成。如果数学里没有方程,物理学里没有公式,数学和物理就永远发展不起来。中国古代有些极其聪明的数学家,记载过解多元方程的一些难题(当然不是鸡兔同笼这种),但那种题目一般人看懂都费劲,而不要说往深了发展。不是因为他们不够聪明,而是因为,他们没有先建立或者采用一套最适合深入钻研那些的语言符号体系。

我们通过自然语言来解逻辑题目,绕两三个弯,是可以在脑子里反应过来的,绕五六个弯,人脑就不行了,单靠笔头也不够,要把它转换成形式逻辑的表述,“非P且非Q”这种,推完之后,再转译成自然语言。才好保证中间不出错。

这是工具的问题。每一门学科,都有它的语言作为工具。很多学科也许没有特定的语法,但起码有特定的术语。

好了,现在终于可以解释,为什么目前的大语言模型,或者说人工智能,在阿毗达磨上的表现依然拉胯。

很重要的一个原因,是目前的大模型几乎都没有为阿毗达磨的术语建立词汇表(暂时没有任何大模型是为了解决阿毗达磨问题设计的)。以至于在提到那些概念的时候,必须通过token组合来表示。就像用“母亲的配偶”来表示“父亲”,“母亲的配偶的母亲的配偶”来表示“祖父”。

拿deepseek蒸馏的qwen2.5-3B模型来说。搞阿毗达磨的都知道【癡】这个字。这个字太重要了。“随眠诸有本”,它是本的本,也叫“无明诸有本,故别为一漏”。这么重要这么核心的词,在qwen2.5分词器里,不具备独立的ID。它的ID是【22859 94】,也就是说,要用两个token才能表示它,就像用“母亲配偶”来表示“父亲”。再比如【煩惱】,多么重要的词,它在我整理的阿毗达磨数据中是排名第10的高频词,出现次数是3381次(200万字的文本),然而,它的token非但不是1个,甚至都不是2个,而是4个,【99302 102 32465 109】。更高频的一个字【繫】(插一句,有讨论阿毗达磨的博论里,搞不清“在色界”和“色界系”的区别),出现5103次,是第4名,但它也不具备独立的token。

为什么?因为无论【煩】还是【惱】或者【繫】,还包括【豈】,AI都会把它看成极其生僻的字,生僻到不配单独作为一个词。哪怕它们对应的简体字非常常见。包括【貪】也是。qwen2.5算是非常“中文友好”的分词器了,但就是在这里面,那些高频字和高频词,都不配占据一个独立ID,已经边缘到不能再边缘。

理论上来讲,只要你的数据量足够大,token长一点也不是不能缓慢解决,只是效率低下而已。但问题在于,现存阿毗达磨的高质量数据极其有限。200万字而已。对大模型吃下去的大数据来说,真的是大海里面的一滴水。你能指望一滴水落进大海里还能保留它的味道?

学习法律,但词库里没有“合同”这个词,只能用“当事人为了确定各自的权利和义务而订立的各自遵守的条文”来表示。那它怎么可能把法律问题整明白呢?

有人会想:难道那些繁体字对应的简体字也没有独立的ID吗?绝大多数是有的。但这又引来新的问题。就是简体字的阿毗达磨内容中,充斥着错误。如果不进行专门的处理,大模型训练数据库里,低质量阿毗达磨数据与高质量阿毗达磨数据的比值,可能超过100:1甚至10000:1。

好比一个小孩在中国的八线小城的80年代长大,他想学英语,但当地所有英语老师说的都是地瓜味英语,连老师也根本没有读过任何高质量的英语读物。那么,这样的小孩,哪怕智商再高,也不可能在这种环境里学好英语。如果你去中西部的小县城,看书协展出的书法作品,现在可能会好一点,因为有互联网,在过去,是绝无可能出现高质量作品的(东部沿海地区尤其是江浙很不一样,不具有可比性)。

所以说,要想让AI擅长阿毗达磨,起码要做到两点:第一,告诉它,什么是正确的阿毗达磨数据。否则它就会把正确的阿毗达磨数据和错误的同等对待,而错误的数据又是海量的(相比正确的)。好比你想让小孩擅长奥数,肯定不能天天教他“树上有10只鸟”。有人说,把大藏经塞给AI,AI会不会成为大师?这就好比把“树上有10只鸟”掺杂着小学数学和微积分题目塞给AI。大藏经是什么?大藏经就是菜市场。每样菜来一点,可以搞一锅炖,冬天吃一锅炖也还行,但招待外宾不够讲究。

第二,要把阿毗达磨的术语告诉AI。要让AI在它的词汇表里,先建立起阿毗达磨的基本概念(这是由数据的稀缺性决定的,高质量数据就那么一点)。要让它知道讲阿毗达磨的时候,该用“瞋”而不是“嗔”,以及阿毗达磨的“磨”不是摩托车的“摩”。要引导它不把阿毗达磨的概念和日常概念搅和到一起。那么,从哪里筛选阿毗达磨概念呢?如果你去找《佛教大辞典》之类的,那就又掉坑里了。不仅很多阿毗达磨词条没有收录,就是对收录的来说,解释错的也比正确的多。你要从经典阿毗达磨文献中提取术语,通过高频筛选的方法。但也不是说高频的就是术语。比如,《婆沙》中很多“答應說而不說者當知此義有餘”,如果你自动提取三字的高频表述,它会把“答應說”等当成词汇,所以你还得想办法,去筛选出真正的术语。

入群标准,以及手搓阿毗达磨AI的小目标

考虑建个手搓阿毗达磨AI群