大语言模型是通过机器学习技术构建的生成式人工智能产品。它能回答问题、写文章、做应用题、编写程序等等。许多人认为大语言模型已经具备了推理和判断的能力,就是终极人工智能AGI。大语言模型的短板也很明显。比如:
-
生成式AI的幻觉问题无法解决。大语言模型的幻觉问题也没法从根本上解决。
-
需要耗费大量算力资源,消耗能源太多。
-
无法在端上运行。
-
缺乏个性化。
有没有办法使用别的算法构建大语言模型呢?
本文就是提出了一种新的思路,使用语义图谱构建大语言模型。这个思路目前还在猜想的阶段,还没有来得及实施。
第一步:我们得构建一个巨大的语义图谱存储知识。
什么是语义图谱?
语义图谱(申请号CN202110776405.4)是本人正在申请的一项发明专利。它是围绕一定主题,以知识点为主体,构建起来的一个知识库。语义图谱里没有矛盾,语义图谱里有知识的边界,语义图谱不会产生幻觉问题。
怎么构建语义图谱?
首先我们拿到一篇文章,根据文章的内容确定一个主题。然后对文章内容进行分析生成知识点。然后对知识点生成不同的问法。
根据文章内容生成主题,对文章进行分析生成知识点,根据知识点生成不同问法,这几个事情都能借助大语言模型(LLM)去完成。我们也可以开发自己的工具,完成这三件事情。开发这三个工具难度不大。
随着数据的不断增多,知识点可以逐步模板化。每个主题下面有多少个知识点变成了确定的东西。比如关于狮子的知识点有“狮子的定义”“狮子的习性”“狮子的特征”“狮子的体重”等等。把“狮子”换成“老虎”,知识点是一样多的。
有一天我们忽然发现“老虎”的语义图谱需要增加一个新的知识点,那么“狮子”“斑马”“大象”等等类似主题也要增加这个新的知识点。
随着训练不断进行,语义图谱不断长大。
目前我们已经能训练简单的语义图谱了。
第二步:有了语义图谱,我们还需要对语义图谱存储的知识进行校验,保证它没有内部矛盾。
这个校验我们也可以提供工具。我们自己的核心技术-句子主干提取技术和语义计算技术能计算语义的相似性和差异性,能计算语义的矛盾关系和包含关系等。
我们的技术能判断语义图谱中存在的矛盾和冲突。
这一步工作量比较大,我们还没有去做。
第三步:语义图谱的应用。
语义图谱主要是用来回答问题和响应用户需求的。当用户提问时,我们根据用户的问题生成一个新的语义图谱。用知识库里的语义图谱来弥补新生成的这个语义图谱的缺失信息。
分析用户意图,把用户意图和这个新的语义图谱里存储的问法进行语义相似对比。语义相似的,把知识点作为答案提供给用户。我们语义计算工具能处理口语、倒装句、省略句等自然语言,能包容语音识别出错,处理同音词问题。
第四步:处理复句和一段文字。
我们暂时还没有处理复句和一段文字的能力。但我想复句我们应该也是可以处理的。
把复句和一段文字分成有用户意图的文字、描述和说明型的文字、议论型的文字、记事型的文字。
有用户意图的文字,根据用户意图进行处理。比如用户需要我们的程序写文章、作诗,我们就去调用相应的程序。用户需要导航,我们就去调用导航程序。用户需要做算术题,我们就去调用做算术题的程序。有用户意图的句子都有一个中心句,清楚地表达了用户意图。其他句子表达的对意图的描述、修饰和限定。
对于描述和说明型的文字,可以用来生成语义图谱。根据语义图谱回答用户提问。
对于议论型的文字,处理起来要复杂一下。可以把用户的观点也看成一种意图,借助语义图谱来生产一段文字回复用户。
对于记事型文字,也可以用来构建语义图谱。根据语义图谱回答用户提问。
第五步:生成能力的构建及幻觉问题的处理。
知识库存储的知识总是有限的。生成式AI的大语言模型能回答各种各样的问题就是因为它有生成能力。语义图谱一样具备生成能力。
语义图谱回答用户问题先根据用户提问生成一个语义图谱。
当用户提了一个问题时,先根据提问生成语义图谱。然后根据知识库里的知识来丰富这个语义图谱。知识库里没有的知识点时,我们语义图谱可以综合知识库里的相关知识生成一个新的知识点。但这种生成是基于现有知识的,还需要判断冲突,所以不会有幻觉问题产生。新的知识点不是凭空产生的,只是照搬旧的知识点,或者对旧的知识点进行有限的改造。
用语义图谱生成新知识,我们只是把新的问题变成了语义图谱原有的旧的问题。
比如用户提问:“X是一种动物。它能吃东西吗?”
回答这个问题我们先构建一个主题是“X”的语义图谱。因为文字里没有关于“X”的更多描述,只能借助“X是一种动物”的描述,把动物的语义图谱复制给“X”。根据这个语义图谱回答“它能吃东西吗?”答案是“X应该能吃东西。”
一些复杂问题也可以用语义图谱来处理。
比如用户输入了以下文字:“小明和燕子从高中就在一起了。但后来小明考上了大学。大学毕业后小明去了大城市工作,就和燕子分手了。小明在大城市遇到了燕妮。他俩坠入了爱河。请从燕妮的角度简单重写这个故事。”
首先我们分析出来这是一段有用户意图的文字,其次我们梳理出这段文字的主题是“小明”。
然后梳理知识点:
“小明和燕子从高中就在一起了。”
小明和燕子是高中同学。
“但后来小明考上了大学。”
小明的女朋友燕子可能考上了大学,也可能没考上。
“大学毕业后小明去了大城市工作,就和燕子分手了。”
“小明在大城市遇到了燕妮。”
在大城市小明和燕妮“坠入了爱河。”
最后我们分析用户意图是需要写一段新的文字,限定是根据以上文字,把主题换成“燕妮”。调用写文章的程序,重新组合上面的语义图谱生成新的主题是“燕妮”的语义图谱,结果如下:
“燕妮在大城市遇到了小明。”
“在大城市燕妮和小明坠入了爱河。”
“燕妮的男朋友小明和他的同学燕子从高中就在一起了。后来小明考上了大学。大学毕业后小明去了大城市工作,就和燕子分手了。”
根据以上语义图谱组合生成一段文字输出即可。
第六步:使用语义图谱生成文章、作诗、做应用题、写程序等。
综上分析,交互的关键在于生成语义图谱。结果是根据语义图谱由专门的应用程序生成的。从主程序传递给应用程序的不再是简单的参数,而是内容丰富、结构严谨的语义图谱。语义图谱没有内部矛盾,没有幻觉问题,根据语义图谱生成的文章、诗歌、应用题、计算机程序也会变得更加严谨。
使用语义图谱构建的大语言模型将能避免幻觉问题,减少对算力的依赖,可以部署在端上形成个性化产品。从成本上看,我们再花2000万人民币就可以实现目前生成式AI大语言模型花两个亿能实现的效果。我们不需要过度消耗算力。我们的计算使用语言学方法,更符合自然语言语义处理的规律,所以效率要高很多,成本要低很多。
以上只是本人的一些猜想,由于本人及本人所属公司实力有限,目前只完成了一小部分。如有实力的企业或者个人愿意按照这个思路去重构一套大语言模型,本人愿意积极支持。
2015年底,我在北京找投资。当时我的demo就可以用老知识生成新知识了。正是这个打动了投资人。
这许多年,我却一直没有推出来能生成新知识的产品。一方面是我见识有限,没有坚持这个方向。另一方面是这个工程量相当大。产品没推出来,我们得先饿死了。这些年基本都是在为生存战斗。但其实我们也完成了不少开发工作。而且通过实践,我们也发现了不少问题。这本来就是个花钱的事情。我们一共才投入了不到一千万。
本文作者 氖星彭军辉
最早发表于2024年3月17日