CodeWisdom
神经符号融合软件
微访谈 · 第三十五期
背景介绍
随着以深度学习和大语言模型为代表的AI技术的发展,以神经网络为主要形态的AI模型也越来越多地进入各种软件系统中,形成了新型的智能化软件。特斯拉在端到端自动驾驶上的成功引发了软件2.0的概念,即传统的以符号化程序逻辑形式出现的软件将渐渐消失,取而代之的是以神经网络形式出现的新的“软件”形态。而近期以GPT系列为代表的大语言模型在“推理”能力上的大幅提升也让越来越多的人相信神经网络将成为新的“软件”形态。那么当前这种神经符号融合的软件形态有什么特点?面临哪些新的问题和挑战?未来软件是否会逐渐向纯神经网络的形态发展?围绕这些问题,我们邀请了来自软件工程、形式化以及人工智能领域的多位专家进行交流,分享关于神经符号融合软件的理解和思考,展望未来的技术发展趋势。
主 持 人
彭鑫
复旦大学
复旦大学计算机科学技术学院副院长、教授,教育部长江学者特聘教授。中国计算机学会(CCF)杰出会员、软件工程专委会副主任、开源发展委员会常务委员,中国汽车工程学会汽车基础软件分会副主任,《Journal of Software: Evolution and Process》联合主编(Co-Editor),《ACM Transactions on Software Engineering and Methodology》、《Empirical Software Engineering》、《Automated Software Engineering》、《软件学报》等期刊编委。2016年获得“NASAC青年软件创新奖”,2023年入选上海市东方英才拔尖项目,2024年获得“中创软件人才奖”。主要研究方向包括软件智能化开发、云原生与智能化运维、泛在计算软件系统、智能网联汽车基础软件等。研究工作多次获得IEEE Transactions on Software Engineering年度最佳论文奖、ICSM最佳论文奖、ACM SIGSOFT杰出论文奖、IEEE TCSE杰出论文奖等奖项。担任2022年与2023年CCF中国软件大会(ChinaSoft)组织委员会主席与程序委员会共同主席,以及ICSE、FSE、ASE、ISSTA、ICSME、SANER等会议程序委员会委员。
访
谈
嘉
宾
王戟
国防科技大学
王戟,国防科技大学计算机学院教授,博士生导师,复杂关键软件环境全国重点实验室副主任。主要从事可信、智能与新兴软件技术研究。曾获国家杰出青年科学基金、国务院政府特殊津贴,入选教育部长江学者特聘教授。曾任国防973项目首席,承担了一批国家和军队重大重点项目。发表论文100余篇,获国家科技进步二等奖。曾担任中国计算机学会形式化方法专委会主任、软件工程专委会副主任,现任中国工程院院刊FITEE执行副主编,软件学报、IEEE Software等刊物编委
孙军
新加坡管理大学
孙军目前是新加坡管理大学(SMU)的终生教授。他于2002年和2006年获得新加坡国立大学计算机科学学士和博士学位。2007年,他获得了李光耀博士后奖学金。他在2010受聘为教授至今。 孙军的研究兴趣包括AI安全, 软件工程,和形式化方法。他发表了多篇文章和会议论文,包括多个领域的顶级会议。他发布了多款软件分析工具,也担任过多家公司的资深技术顾问。
马雷
东京大学
马雷,东京大学副教授(卓越研究员荣誉称号),兼加拿大阿尔伯塔大学(University of Alberta)副教授,Canada CIFAR AI Chair, Fellow of Amii - Alberta Machine Intelligence Institute.主要研究围绕着高可信软件工程和高可信数据驱动智能系统工程 (Machine Learning System Engineering, Trustworthy AI, AI-CPS),尤其着眼于数据驱动的智能系统系统的质量,可靠性与安全保证相关研究。任IEEE TSE, Springer AUSE, IEEE ToR等多个国际期刊副主编。他的研究工作发表在软件工程,人工智能,安全与控制相关领域会议与期刊(如:TSE, TOSEM, ICSE, FSE, ASE, CAV, ICML, NeurIPS, ICLR, CVPR, ECCV, ACM CHI, MM, TDSC, Usenix Security, ICRA等), 4次获得软件领域国际顶会ACM杰出论文奖(ASE 2015, ASE 2018, ASE 2019, FSE 2023), 2022年度IEEE Transaction on Software Engineering最佳论文奖等10余个学术奖项,多个先关研究成果被业界采用,如: 英伟达, 富士通,三菱重工,网易游戏,Tier IV等。详细信息请参见个人主页 https://www.malei.org
邱锡鹏
复旦大学
邱锡鹏,复旦大学计算机学院教授,担任中国中文信息学会大模型专委会副主任、中国人工智能学会自然语言理解专委会副主任,入选中国高被引学者和全球前2%顶尖科学家榜单、教育部“高校计算机专业优秀教师奖励计划”等,获钱伟长中文信息处理科学技术奖一等奖(第一完成人)、CCF-ACM青年科技奖等奖励,主持国家优青、科技创新2030重大项目课题、上海市基础特区等项目。主持研发了多个高影响力大模型MOSS、SpeechGPT、AnyGPT、InternLM。著作《神经网络与深度学习》被上百家高校作为教材。
王昊奋
同济大学
王昊奋,同济大学特聘研究员,博士生导师。他是全球最大的中文开放知识图谱联盟OpenKG发起人之一。他负责参与多项国家级AI相关项目,发表100余篇AI领域高水平论文。他构建了全球首个可交互养成的虚拟偶像—“琥珀·虚颜”;所构建的智能客服机器人已累计服务用户超过10亿人次。目前,他担任中国计算机学会术语工委副主任,自然语言处理专委会秘书长,中国中文信息学会理事,大模型专委会执委,语言与知识计算专委会副秘书长,上海市计算机学会自然语言处理专委会副主任等社会职位。
熊英飞
北京大学
熊英飞于2009年从日本东京大学获得博士学位,2009-2011年在加拿大滑铁卢大学工作,2012年加入北京大学,现任新体制长聘副教授、软件研究所副所长、计算机学院院长助理。熊英飞的研究兴趣是程序设计语言和软件工程,特别是程序合成、修复和分析。他的工作帮助产生了一系列不同规模的效果同期最优代码生成神经网络模型,如DeepSeek-Coder模型;大幅提升了缺陷修复的正确率、修复数量和修复效率;提出了最广泛使用的两大双向变换模型之一——基于差别的双向变换;成功自动求解大量算法问题,包括世界顶级算法竞赛中的问题。他的工作也被工业界采用,比如华为公司、中兴公司、新一代Linux内核配置项目等。他在IEEE TSE担任编委,PLDI、ICSE、FSE、OOPSLA、ASE、ISSTA等会议定期担任PC,4次在ICSE和FSE会议上获得杰出审稿人奖。他承担了优青、青年973、重点研发课题等科研项目。他获得国家技术发明一等奖(排名6)、电子学会自然科学一等奖(排名1)、CCF-IEEE CS青年科学家奖、MODELS十年最有影响力论文奖,5次获得ACM SIGSOFT/IEEE TCSE杰出论文奖,是IFIP WG 2.4唯一来自中国的成员。
谢肖飞
新加坡管理大学
谢肖飞,新加坡管理大学助理教授,曾任新加坡南洋理工大学校长博士后。2018年于天津大学获得博士学位,并获得CCF 优秀博士论文奖以及ACM 天津区优秀博士论文奖。目前致力于程序分析、软件测试、信息安全、人工智能安全测试等研究领域。其研究成果已经发表于人工智能、软件工程以及安全领域等顶级会议与期刊,其中四次获得ACM SIGSOFT 杰出论文奖 (FSE’16, ASE’19, ISSTA’22, ASE’23)。
林云
上海交通大学
林云,上海交通大学计算机系副教授,系主任助理,博士生导师,原新加坡国立大学助理教授(研究岗),入选国家海外高层次青年人才计划,毕业于复旦大学计算机学院获得博士学位。研究工作包括自动化代码编程与调试、模型训练的可视化解释与调试、恶意网页检测等。发表国际顶级会议和期刊发表论文近50篇,获ICSE2018杰出论文奖。担任PRDC2023国际会议程序委员会联合主席,ICSE、FSE、USENIX Security等重要国际会议的程序委员会委员。主持国家基金委海外优青项目、华为x-explore人才基金,以及多项校企合作并落地。
访谈主题
神经符号融合软件
01
您对神经符号融合软件是如何理解的?这种新的软件形态是如何出现的?与传统的软件有什么样的本质区别?
02
您如何看待大语言模型的“推理”能力?它的“推理”能力与检索增强、外挂工具以及Agent技术等相结合将形成什么样的新的软件形态?
03
神经符号融合软件的开发、测试和维护面临什么样的特殊问题?围绕相关方面有哪些值得注意的研究进展?同时还面临着什么样的长期挑战?
04
您如何看待特斯拉提出的“软件2.0”的概念?未来符号化程序是否会消失并由神经网络取而代之?
05
神经符号融合软件未来将向什么样的方向发展?您对软件工程、形式化方法、人工智能等相关领域的研究者有什么样的建议?
Q&A记录
Question 1
主持人:您对神经符号融合软件是如何理解的?这种新的软件形态是如何出现的?与传统的软件有什么样的本质区别?
王戟:
神经符号融合软件指软件中既包含传统符号程序(以人工基于逻辑设计为特征)构件,也包含了神经网络模型(以机器学习数据训练为特征)构件的软件。之所以加上“特征”是希望从广义上包括逻辑和数据为基本定义特征的软件。
这种新的软件形态是在人机物融合泛在计算时代自然形成。云计算、物联网、大数据、人工智能等技术浪潮不断兴起,特别是人工智能领域在深度神经网络和以大语言模型为代表的数据使能基础模型技术方面产生重大突破,推动了信息世界、物理世界和人类社会日趋交叉融合,打开了开放、动态和不确定场景下复杂软件应用的需求空间。数据成为人们对世界认知和驾驭最为重要的媒介,形成一种从数据到数据、端到端的信息处理形态。数据驱动的神经网络成为了应对开放环境的核心手段,促使传统符号程序与神经网络模型的融合软件形态应运而生。
这类软件在组成上比传统软件增加了数据驱动特征的构件,典型代表是神经网络模型。未来,这些构件可能会兼具数据驱动特征和符号约束的特性。传统符号程序和神经网络模型在开发方法、运行机理和演进方式上都有着很大的不同,本质源于符号驱动与数据驱动之间的差别。首先,传统软件代表确定的符号计算,是人工基于逻辑设计的算法,而神经符号融合软件能够通过学习从数据中提取模式,同时保留符号推理的逻辑结构。其次,传统软件的逻辑过程通常是透明的,而神经网络的“黑箱”特性使得其决策过程不易理解。神经符号融合通过结合两者,可以在保留学习能力的同时增强可解释性。最后,在面对未知情况时,传统软件通常需要重写规则,而神经符号融合软件能够通过学习适应新的环境,具有更强应对开放、动态和不确定场景的能力。
神经符号融合软件的目标是实现数据驱动和符号驱动的信息处理融合,从而形成数据到知识的循环互动。这是当前传统软件所不具备的能力。
观点讨论
@彭鑫:@王戟 神经网络构件和传统程序构件的融合方式是不是也有简单的和复杂的?简单的边界分明,交互关系清楚,某种程度上看在系统层次上把神经网络抽象成有明确输入输出的模块也可以。复杂的估计就没那么清楚了。
@王戟:@彭鑫 是的。但是目前我们还没有形成共识性的交互协议,神经网络的逻辑抽象形式目前尚不清楚。
@孙军:@王戟 我理解像langchain或者copilot 最近提出的就是一系列不同交互协议的尝试。
@王戟:@孙军 是的。
孙军:
神经符号融合软件我理解就是一种溶合了神经网络与传统程序(或者说符号逻辑系统)的程序,比如基于LangChain的各种Agents。短期来看,神经符号融合软件可以有效弥补纯神经网络和纯符号逻辑系统的局限性。比如,神经网络可以用来更好的解决各种传统程序无法解决的问题,比如复杂的模式识别(如自然语言理解,图片识别等等)。同时,传统程序里的逻辑系统又能提供较强的透明性和逻辑一致性,从而让结果更加可控。这种新型软件因而能够在许多应用场景下更好地处理一些复杂的任务,例如医学诊断、自动驾驶、法律推理和智能客服系统等。
长期来看,我的理解是传统程序的空间会被进一步的压缩。现阶段我们还需要大量的传统程序是因为我们现有的系统大多是需要通过传统程序来控制的。而更根本的原因是这些系统的设计是需要人来控制的。而一旦神经网络的可靠性足以让我们放心的放弃人类控制的需求,那些这些传统程序的部分就可以被摒弃从而更好的提高系统的整体效率。一个典型的例子是自动驾驶汽车,只要人还有驾驶的需求,那么一些简单的传统的很可能低效的驾驶API还需要存在,而一旦AI完全接手驾驶以后,那么这些API完全可以摒弃了。
观点讨论
@彭鑫:@孙军 孙老师对于AI的发展还是比较乐观。不过问题是端到端自动驾驶全面接管汽车大约还要多久?另外,我们这个世界中的各种系统有多大比例可以如自动驾驶这样可以被神经网络接管?
@孙军:@彭鑫 乐观地说,全部。我是准备退休的时候完全享受AI服务的世界了的。
@王戟:@孙军 这里面有成本的考虑吗?
@孙军:@王戟 通用AI一旦有了,成本会无限压低吧。
@熊英飞:@孙军 计算器这种确定性的软件不能用大模型来做吧?或者孙老师想说的是所有软件都会被神经符号融合系统取代?所以,只要我的代码中有一个线性表达式(四舍五入等于感知机),这个代码就可以算AI了?
@孙军:@熊英飞 会被神经网络代替。这里的神经网络可以说是基于计算而不是if-then-else的推理系统。可问题是真的有那么多确定性需求吗?
@彭鑫:@熊英飞 如果你能接受大模型偶然错一两回,那么大模型来做计算机也未尝不可。我理解,孙老师是这个逻辑。
@王昊奋:@熊英飞 取决于站在什么角度来看,如果因为大模型本身也一直在努力做神经符号结合。
@王昊奋:@孙军 大部分确定的需求也是从不确定性凝练出来的。
@孙军:@熊英飞 我理解是很多确定性的需求之所以存在,还是因为要迁就人类,或者现有的系统。
@谢肖飞:@孙军 要想使用AI,首先要改变用户的观念,接受一些不确定性输出。
@彭鑫:@熊英飞 我后来发现孙老师这样的乐观派逻辑也很清楚,所以我最后把大家的分歧归结为价值观问题。
@彭鑫:@孙军 我觉得根本问题在于人类想保留多少决定权。比如你有一个很好的管家,能做到每天不用问你就能帮你安排好衣食住行,你觉得安排的很好。但问题是以后每天吃啥你就别问了,给啥吃啥。
@孙军:@彭鑫 确实。
马雷:
神经符号融合软件是一种融合人工智能技术与逻辑算法的新兴软件形态。这类融合软件通常集成了机器学习、自然语言处理、计算机视觉、语音识别等AI技术,来补充,增强或优化传统基于人工逻辑设计的软件。
这种新的软件形态的出现主要归功于四个因素:
1.数据量的提升:随着互联网和数字化的普及,数据量呈指数级增长,这为训练复杂的AI模型提供了丰富的数据基础。
2.计算资源与计算能力的提升:硬件的进步,特别是GPU和TPU等专用芯片的发展,使得训练更复杂更大规模的的AI模型在合理的时间和成本内成为可能。
3.算法的创新:机器学习和深度学习算法的不断进步,使得AI模型在图像识别、语言翻译、预测分析等领域的表现大幅提升。
4.开源的生态:许多AI工具和框架的开源(如TensorFlow、PyTorch等),降低了AI技术的使用门槛,推动了AI驱动应用的开发热潮。
神经符号融合软件与传统软件的本质区别主要在于开发流程与处理任务的方式, 例如:
1.数据驱动与自适应性:传统软件依赖于开发人员预先定义的规则和逻辑来运行。因此,传统软件的行为是固定的,且不会随外部数据的变化而自动变化。神经符号融合软件的开发不仅需要预先定义的规则和逻辑,同时也需要大量的数据去调整优化AI组件的性能。这种数据的开发方式可以使神经符号融合软件在面对新数据时自动进行调整和改进。这种自适应能力使得神经符号融合软件能够适配处于变化中的任务和环境。
2.复杂任务处理能力:传统软件适合于明确的、结构化和重复性的任务。例如,事务处理系统、数据库管理等。神经符号融合软件擅长处理复杂和模糊的任务,如图像和语音识别,这些任务涉及大量数据和复杂模式的分析,神经符号融合软件可以通过学习达到高效处理。
3.自动化程度:传统软件通常仅能自动化处理流程中的标准步骤,复杂情境则需要人工干预,这也降低了整体系统的效率和自动化程度。基于神经符号融合软件的应用能够在不需要人为干预的情况下自动执行复杂任务,如自动标注图片、智能客服回复等。
总而言之,神经符号融合软件在自适应性以及处理复杂任务的能力上,相对于传统软件更有优势。但考虑到 AI 组件的可解释性与随机性问题,在开发神经符号融合软件的过程中需要根据场景及任务进行对应的分析,权衡和选择。
邱锡鹏:
神经符号融合软件(Neuro-Symbolic Integration)是将神经网络的学习能力与符号人工智能的逻辑推理能力相结合的系统。这种融合旨在弥补纯神经网络在逻辑推理和可解释性方面的不足,同时提升符号系统在处理复杂感知任务时的能力。传统软件通常依赖明确的规则和逻辑推理,而神经符号融合软件通过结合数据驱动的学习和符号推理,实现更强大的认知和推理能力。
熊英飞:
神经符号融合(Neuro-symbolic)这个词很火爆,各种不同领域的人都想要用这个词,导致概念变得很泛没有实际意义。根据Wiki百科的定义(https://en.wikipedia.org/wiki/Neuro-symbolic_AI),只要用了人工神经网络和符号系统的都叫神经符号系统,包括ChatGPT都是神经符号融合系统(因为用了符号分词)。世界上已经没有什么用神经网络的系统不是神经符号系统了。
要修订现在这个过于泛的定义,我感觉可以从目的和效果来看。从本质上来说,符号系统适合处理确定性推理,可以保证推理的正确性;人工神经网络适合处理不确定性,有很强的直觉能力,但不能保证正确性。这两类系统天然是互补的。如果一个系统将两边的特点结合起来,比任何单一系统都有优势,应该就可以叫做神经符号系统。
王昊奋:
从人工智能的角度来看,神经符号融合软件是一种结合了神经网络(连接主义)和符号逻辑(符号主义)的新型软件系统。它试图将深度学习的模式识别能力与符号推理的逻辑思维能力相结合。相比于传统软件,其融合了自适应学习与符号推理的混合架构,具备自我学习和改进的能力,结合数据驱动的学习和基于规则的推理,能够适应处理更复杂、模糊的实际场景。这种新型软件代表了AI领域向着更加智能和通用的方向发展的重要尝试,它试图克服单一方法的局限性,实现更接近人类认知的智能处理能力。
谢肖飞:
神经符号融合软件是一种将神经网络与符号系统结合的一种软件形态,主要是将神经网络的学习能力与符号系统的逻辑推理决策结合起来。由于神经网络的快速发展和应用,其也暴露一定问题,比如黑盒,且缺乏推理和可解释性。因此,神经符号融合可以弥合这两者的差距,结合它们的优势,以构建更智能且具有可解释性的系统。与传统软件相比,主要的区别就是在软件中融合了神经网络。传统软件通常具有确定的规则和逻辑,但对于开放、动态和复杂环境很难枚举所有的规则。而神经符号融合软件结合神经网络的学习能力,它能够从数据中学习并适应变化,同时基于逻辑规则进行推理。与传统软件相比,神经符号融合软件可以处理更多无法用确定规则处理的场景和输入。
林云:
以上几位老师的发言很有启发。我觉得无论是神经还是符号,其实都是对某个问题的模拟和求解。
传统代码的执行其实就是通过符号化的“逻辑演绎”来得到结果。很多时候,我们可以直接用可枚举的逻辑规则来演绎结果;但有些情况不行,我们无法用可枚举的规则来计算推理,所以用神经网络进行归纳抽象,然后再进一步处理才变得可行。比如,要判定一张上亿个像素点的图片里是否存在某个物体时,我们一般无法人为定规则来做这件事情。这时候就需要自动归纳和抽象。从这个角度来说,神经网络是对这种归纳抽象的一种实现方式。
至于为什么会出现这种形态,我觉得只要有对输入进行归纳抽象的需求,就必然会出现这种形态的软件。只不过神经网络在归纳抽象上做得特别好,所以人们开始逐渐接入神经网络让自己的程序变得”神经“了。
因此,神经符号融合软件与传统软件的本质区别,可能就是需求与实现上的区别吧。当一个软件有着对输入的归纳抽象的需求,而这个需求又能被神经网络所最优实现,那么我们就需要一个神经符号融合软件。
Question 2
主持人:您如何看待大语言模型的“推理”能力?它的“推理”能力与检索增强、外挂工具以及Agent技术等相结合将形成什么样的新的软件形态?
王戟:
严格意义上,大语言模型本身是不具备“推理”能力的,姑且将其视为一种“推断”能力,它依旧是基于相关性的认知逼近。这种能力区别于传统人工基于逻辑设计的符号计算与推理,它从大量但仍有限的数据中识别未明确定义的模式,并据此模仿生成上下文响应。它代表着一种具有竞争力的基于数据驱动的认知模仿能力,但仍然不是严格符合事实逻辑的确定性表达。
借助检索增强,大语言模型可以在”推理“时实时访问外部知识库或文档,以获取更准确的补充信息。这种结合有效弥补大语言模型在特定知识领域的不足,提高其生成内容的准确性和可靠性。结合特定的外挂工具,例如求解器和数据库查询工具,大语言模型能够在推理过程中执行实际操作。这使得大语言模型的功能不仅限于文本生成,还能扩展到动态数据处理等应用场景。结合Agent技术的大语言模型形成了一种神经符号融合软件的形式,这种AI Agent通过与环境的感知,规划、记忆、作动形成交互,根据反馈调整其推理策略,进而提升智能系统应对复杂任务的能力,提供一种“Agent AI”能力。
孙军:
我可能理解和王老师稍微不一样点。我先说说我理解的“推理”能力是啥。我理解所谓“推理”不过是一种得到新的知识的方法。传统的人类引以为傲的推理能力包括简单induction, deduction和abduction。虽然这些能力有他们的作用,比如在某些情况下可以基于少量数据通过这些方法得到新的知识。我们同时也要意识到这些方法本身是有很大局限性的。比如这些方法的效率通常很低,或者说复杂度很高。同时因为这些方法必须基于简单模型,而构建简单模型通常必须损失部分准确性。这些方法的准确性也因此得不到很好的保证。从这个角度讲,大语言模型的基于分析大量数据发现新知识的“推理”能力天然的比人类的推理能力有更大的潜力。
回到问题本身,我的理解是大模型作为一种新的知识的存储,检索,推理的方法,近期可以和传统的知识存储,检索,推理的方法相结合,从而可以有效利用现有知识。长期来说则是我们的知识必然是慢慢整合到大模型里,从而实现更高效的知识存储,检索,和推理。
观点讨论
@熊英飞:@孙军 所以问题成了“反向传播”是否是传统科学的终结和新科学的开始?或者说,被人类掌握的科学的终结和由模型掌握的科学的开始?
@孙军:@熊英飞 我理解不同的方法就是不同的优化策略,最终目的是发现最好用的模型,而人脑所限,我们只能用一些小模型来“推理”。
@王焱林:@孙军 孙老师的观点很有启发性,从知识生成的角度重新审视了“推理”能力的意义。传统推理如induction、deduction、abduction有固有限制,可能损失信息,大模型通过分析大量数据发现潜在模式,其生成新知识的能力或许在效率和潜力上更具优势。但好像这里的“推理”的概念和我们通常理解的逻辑“推理” (确定性的)的定义、用途还是不太一样。传统推理虽然在效率上存在一定局限性,但其逻辑性和解释性在许多需要确定性的领域我觉得还是有不可替代的价值的。
@孙军:@王焱林 我还觉得其实确定性的需求是有的,但不多。
@王昊奋:@王焱林 其实要动态的看待大模型或神经网络的推理能力,原有推理能力和分类是否合适,需要重新审视,到了一定阶段,可能大家会不那么care到底是神经还是符号,都会你中有我,我中有你。
@彭鑫:@王焱林 说实话,人类掌握的所谓因果其实来源也很杂。有的是自己总结出来的规律(其实也是不完全归纳),有的是书上看来的,有的是道听途说(甚至被蒙蔽)。
@孙军:@彭鑫 是的是的。往虚里说,我们如果能像电脑一样很快处理巨大的数据量,我不觉得我们还需要多少慢慢的推理了。
马雷:
大语言模型的“推理”能力在学术界与工业界都是一个广泛讨论并且存在争议的话题。很多工作指出虽然大语言模型在某些任务上表现出色,但它们的推理能力与人类推理之间仍然存在显著差异。首先大语言模型主要依赖于从大量数据中学习到的模式(pattern)进行推理,而不是像人类那样通过理解因果关系或逻辑规则进行推理。已经有工作指出即使是商业化的大语言模型如 GPT,Claude 等也会在进行因果逻辑推理时出现错误。其次,大语言模型的输出依赖于从数据中学到的词元(token)概率分布,这意味着它们有时会产生看似合理但实际上不正确或不符合常识的结果。这一性质导致大语言模型会出现幻觉问题 (hallucination),输出错误的或者没有事实依据的内容。幻觉问题也是业界正在积极研究并尝试解决的关键问题,很多工作从黑盒白盒分析入手,尝试分析幻觉问题产生根因以及特殊模式并在生成过程中或者生成后进行检测与修复。
将大语言模型的推理能力与检索增强、外挂工具以及Agent技术等结合,可以显著提升其功能和应用范围,构成更先进功能更全面的神经符号融合软件。大语言结合检索系统 (RAG) 使得模型可以从互联网或特定数据库中获取更多实时信息,从而生成更为准确和最新的回答。这种检索增强生成可以显著提高信息提取和问答系统的性能。例如外挂专业知识或企业私有数据库,大模型可以更容易适配领域特化型 (domain-specific) 任务。同理,通过结合计算工具、自然语言API或其他软件工具,大语言模型能够执行更复杂的任务,例如数学计算、代码执行或数据分析,这些外挂工具可以弥补大预言模型本身在特定方向的缺陷 (比如大预言模型共通的数字计算缺陷)。最后,Agent 技术可以将大语言模型升级为更独立并自主化交互的执行体,从而进行多步骤任务处理、决策制定和与其他系统以及外界环境的交互。这可以应用于自动化操作、智能助理和复杂系统管理。因此,将大语言模型与上述技术结合可以大大扩展其应用领域和价值,形成各种智能化的新软件形态。
邱锡鹏:
大语言模型(LLM)的推理能力在处理复杂任务时展现出显著优势,尤其是在数学推理、常识推理和符号操作等领域。将LLM与检索增强、外部工具以及Agent技术相结合,形成了新的软件形态,提升了模型的综合能力。
1.检索增强生成(RAG)
RAG通过在生成过程中引入检索机制,增强LLM的知识获取能力。传统RAG模式在检索和生成之间缺乏深度交互,可能导致信息不相关或冗余。为此,Agent智能RAG模式被提出,通过智能Agent在检索和生成之间进行多轮交互,优化检索结果,提高生成质量。
2.外部工具集成
LLM可以通过调用外部工具,如计算器、翻译器、搜索引擎等,扩展其功能范围。Toolformer模型在训练过程中将工具调用结构嵌入文本生成,增强模型的计算和翻译能力。这种集成使LLM不仅能进行语言生成,还能执行具体任务,提高其实用性。
3.Agent技术
Agent技术赋予LLM自主决策和任务执行能力。智能Agent可以根据用户指令,自动规划任务,调用外部工具,进行多步骤推理,最终完成复杂任务。LLM从被动响应转变为主动执行,提升了交互体验和任务处理效率。
将智能Agent与RAG相结合,形成了更强大的软件形态。智能Agent在接收到用户指令后,首先判断是否需要检索外部信息,然后生成查询,进行检索,获取相关信息。随着LLM与检索增强、外部工具和Agent技术的深度融合,未来的软件形态将更加智能和多功能。这种融合不仅提升了模型的知识获取和任务执行能力,还增强了其可解释性和可靠性。研究者应继续探索LLM与其他技术的结合,开发更高效、更智能的系统,满足多样化的应用需求。
王昊奋:
大语言模型的“推理”能力基于统计模式识别,具备隐式推理和涌现能力,但缺乏真实的因果推理,存在幻觉和多步推理困难。通过与检索增强(RAG)、外挂工具和Agent技术的结合,可提升准确性、扩展功能,实现自主决策和复杂任务处理,形成模块化、可扩展的新型软件形态,如智能助手、自主Agent和增强型决策支持系统。这些系统具备智能对话、知识整合和任务学习等功能。未来趋势包括多模态融合和符号推理,但需应对安全、隐私和伦理挑战。这种融合将深刻影响软件行业,带来开发模式和应用创新。我说的比较精简,这里我觉得结合是必然的,但是这里还有不少需要考虑的点。
熊英飞:
之前我是相信大模型不能做复杂推理的,因为Transformer架构决定了大模型经过固定层数的运算就必须输出。但ChatGPT o1推出之后我被事实证明错误了。通过某种我们还不了解细节的强化学习过程,大模型确实可以通过和自己多轮对话做更复杂的推理。
但我还是倾向于相信大模型的推理能力无法超过符号系统。这主要是大模型推理本身不保证正确性,虽然现在各家模型都在提高推理的正确率,但推理链一长,总有一环能让推理错掉。
不过话说回来,现实中的大多数任务也不需要太复杂的推理,所以o1级别的推理能力很可能在现实中就很有用了。结合检索增强、外部工具等技术,o1应该能在很多场合都发挥作用。
观点讨论
@彭鑫:@熊英飞 既有理论分析又有现实考虑。
林云:
我特别喜欢熊英飞老师上次说的观点,即推理是一种模式匹配(term rewriting)。从这个角度来说,神经网络确实是在推理,只不过所使用的推理规则会被概率性的选择,并且难以言说不可解释。
至于检索增强,我觉得是在改变语言模型推理过程中选择不同推理规则的概率;而用外挂工具,是将语言模型推理切换到外挂工具推理。
观点讨论
@孙军:@林云 term rewriting 算一种吧,人类也用不靠谱的比如abduction这种。
@林云:@孙军 看情况,大模型其实也会。
@孙军:@林云 是啊,其实人的abduction也是基于样本来的啊,只是我们能处理的样本数量级差很多而已。
谢肖飞:
大语言模型的“推理”能力本质上仍属于模式匹配和概率生成,而非真正的逻辑推理和深层次的因果分析。神经网络主要依赖于大量数据,通过学习数据中的模式来进行概率预测或生成。因此,如果我们希望大语言模型具备某种推理能力,其训练数据需要包含一定推理模式的信息。 即使我们具备这样的数据,模型仍可能面临鲁棒性和数据分布偏移(Distribution Shift)等常见问题。因此,模型能否充分学习并具备良好的泛化能力,仍是一个开放性的问题。比如近期一些工作尝试训练大模型进行程序输入输出预测,我对大模型在该任务中的能力持怀疑态度。它们可能在语法结构、变量使用等方面学到模式,从而推测可能的输出值,但要真正学会执行推理程序仍然困难。
由于大模型对数据的高度依赖性,如果数据不足或分布存在偏移,就需要借助检索增强以及其他外挂工具的帮助。在模型未能充分学习或数据缺乏的情况下,检索增强可以提供有力的支持。明确大模型的能力边界非常重要,我们需要理解、评估甚至验证模型在特定任务中的能力,以决定采用何种外部技术进行补充。此外,对于大模型不适合的任务,如精确的计算推理等,则需要借助其他外部工具的支持。
Question 3
主持人:神经符号融合软件的开发、测试和维护面临什么样的特殊问题?围绕相关方面有哪些值得注意的研究进展?同时还面临着什么样的长期挑战?
王戟:
神经符号融合软件的应用已经很多了,但其可信性面临很大的挑战。其核心是如何对非确定性予以控制。神经网络模型固有的非确定性、不可解释性和内生安全隐患,以及逻辑与数据使能模块的交互集成设计,进一步增加了软件系统的复杂性。这使得系统的非确定性管理变得极具挑战性,成为开发、测试和维护过程中基础理论和方法面临的关键问题。
在开发方法上,神经符号融合软件与传统符号软件会有比较大的不同。其核心在于神经符号融合软件的生成过程通常依赖于优化,甚至可能完全由优化生成。现在神经符号融合软件的开发可以采用模块化(但非组合化)的方式,人们对神经和符号之间的交互协议设计仍处于一种ad hoc的阶段;也存在端到端的开发形式,但面临微小变更可能引发全面影响的困境。在测试方面,神经符号融合软件的测试方法大多延续了传统测试方法,包括神经网络测试方法,但在测试准则上缺少良好进展,测试用例生成、测试预言的设计以及神经网络修复都仍处于治标不治本的状态。整体而言,神经符号融合软件的科学性薄弱,系统性方法缺失而亟待完善。
神经符号融合软件的非确定性驾驭可以从两个方面入手。一方面,可以通过外部手段来控制非确定性,包括提高神经网络模型的数据质量、输出后处理以及交互过程中的符号“加固”。另一方面可以从机理研究入手,研究能兼顾数据拟合和符号约束的新型神经网络模型,将非确定性控制在能接受的范围内。从目前看,工程化的方案已在不断在探索,但是神经符号融合计算的基础研究才刚刚起步。就我个人兴趣而言,程序综合和机器学习结合的神经符号融合编程(Neurosymbolic Programming)值得关注。
孙军:
开发、测试和维护神经符号融合软件需要我们重新审视传统的软件工程的个个方面。举个例子来说,传统的测试和错误定位以及修复的方法就很可能不再适用。比如,假设我们现在发现一个神经符号融合软件的表现不如预期,传统的做法是根据每个软件模块的specification把错误定位到软件里的某个有问题的模块,然后根据这个模块的specification修复里面的错误。而对神经符号融合软件来说,我们就首先需要决策错误是在神经网络的部分还是传统程序的部分,同时也要分析在哪部分修复更经济有效。当然这只是一个例子,我理解是传统的软件工程的个个方面都需要这样的审视。
长远来说,如果我们从头设计新的系统,我们还需要回答怎么划分神经网络和传统程序的问题,即,哪些功能更适合用神经网络来实现,而哪些部分因为某些特殊原因必须通过传统程序来实现。当然最终,我觉得还是大部分交给AI好了。
马雷:
传统软件工程流程在适配神经符号融合软件的开发、测试和维护的过程中遇到了一系列新的问题,主要源自于AI 模型的复杂性和不确定性。这类软件不仅包含了传统的逻辑规则,还依赖于数据驱动的AI模型,而后者的行为往往难以预测且难以解释其决策过程。这对于安全性要求高的应用(如金融、医疗等)的开发过程中尤为重要。因此,如何提高模型的可解释性,并建立可靠性评估机制,是当前需要关注的问题。
此外,神经符号融合软件的性能很大程度上依赖于数据的质量和覆盖范围。如果训练数据中存在偏差或不足,可能会导致模型产生错误或不公正的决策。随着数据的更新,模型的表现可能会发生变化,给软件的长期维护带来了挑战。因此,确保数据质量以及应对模型偏差的技术(如公平性检测和偏差消除)成为关键的研究方向。
传统软件的测试主要基于代码路径和逻辑覆盖率,而神经符号融合软件由于包含AI模型,通常难以定义具体的测试准则。如何设计适合AI模型的测试标准和覆盖率,例如建立特定的输入变异和预期输出匹配机制,是当前测试领域的挑战。此外,自动化测试框架的构建和测试数据集的设计也亟待解决。
AI模型的表现可能会随时间变化而衰减,这使得神经符号融合软件需要定期更新以保持性能。然而,模型的更新可能会带来行为的不确定性,因此如何保证更新后软件的稳定性和一致性成为一大挑战。此外,模型更新往往需要重新训练和优化,这在资源和时间上都带来额外的成本。
目前,研究者们在开发神经符号融合软件的过程中,已经在以下方面取得了一定进展:首先,基于Explainable AI的技术发展,逐步提升了模型的可解释性,使其在高风险领域的应用更具可行性。其次,一些新的测试方法,如模糊测试和对抗测试,正在逐步适应于AI模型,以提高软件的鲁棒性。此外,版本控制和模型卡(Model Card)等概念的引入,有助于解决模型更新和可追溯性的问题,为软件的长期维护提供了基础。
未来,神经符号融合软件的开发还面临一些深层次的挑战。例如,AI组件的法律和伦理问题日益引起关注,包括隐私保护、决策公平性和责任划分等。此外,随着AI模型的规模和复杂度的增加,模型的资源消耗和碳足迹也成为新的考量。如何在保证性能的同时,实现更环保的开发和部署模式,仍需进一步探索。
观点讨论
@彭鑫:@马雷 我记得你们以前有个工作分析了一下神经网络和传统软件模块结合的不同模式?
@马雷:@彭鑫 是的,我们之前做了一些从uncertainty角度对ai 系统各个模块的分析,以及各个模块之间相互的影响,最近我们正在把类似的思路扩展到无人车整车和机器人等复杂工作流上。
邱锡鹏:
我觉得挑战在于:
1.机制差异性:神经网络通常处理数据驱动的向量表示,而符号系统更依赖基于规则的表示。这种表达方式的差异增加了集成的难度,特别是在如何无缝转换数据表示和信息流上。神经网络和符号系统各自采用的推理机制不同,前者擅长模式识别和泛化,后者则擅长逻辑推理。设计兼容的推理框架,使它们在同一系统中协同工作。
2.神经符号融合系统需要在更新模型参数的同时更新规则和逻辑结构,维护起来较为复杂。一方面,神经网络部分需要定期重新训练,以适应新的数据或任务;另一方面,符号推理部分的规则也可能需要随着应用需求的变化而更新。
王昊奋:
神经符号融合软件面临三大核心挑战:一是开发中的架构设计挑战(如神经网络与符号系统的接口设计、知识表示的统一性问题和模块间的交互机制等)、开发工具限制(如缺乏成熟的开发框架、调试工具不完善、性能优化困难等)和工程实践难点(如需求描述不确定性、开发流程适应性、代码复用难度等);二是测试方法(传统测试方法适用性局限、用例生成困难、覆盖率定义模型)、质量保证(如系统行为不确定性、边界条件难以界定、错误追踪困难等)、验证挑战(如鲁棒性测试、安全性评估、可解释性验证等);三是维护过程中的运行监控(系统状态难以观察、性能退化难以预测、日志分析困难等)、更新维护(版本控制复杂、兼容性保证)和故障处理(如问题定位困难、修复验证复杂、全新的回滚机制以及应急响应需求)。研究方面我比较关注如结合深度学习与概率逻辑编程的DeepProbLog等新型开发框架和可微编程(Differentiable Programming)等。尽管已有架构创新、工具发展等研究进展,但仍存在技术深度融合、标准化缺失、质量保证难等长期挑战。为解决这些问题,需加强基础理论研究,开发专业工具,建立行业标准,培养专业人才,促进技术交流,以推动该领域的成熟和广泛应用。
熊英飞:
根据我们之前开发的经验,本身神经符号融合软件并没有比传统带不确定性的软件有更多的开发、测试和维护问题,问题主要还是神经网络本身带来的。比如,训练完没有效果应该怎么办?是应该调整超参,改模型架构,还是加训练数据?出现梯度消失或者梯度爆炸的时候应该如何调试?等等。
观点讨论
@孙军:@熊英飞 顺口说一句,这些问题都和归因有关,我们有一系列AI上的Causality analysis的工作试着研究这些问题。
谢肖飞:
神经符号融合软件将神经网络与符号系统相结合,带来了许多新的挑战,其中模型与规则集成的复杂性很关键。由于神经网络的黑盒特性,集成和调试过程难以预见和控制,如何更好地将神经网络与符号规则有效结合是一个大的挑战。在测试和维护方面,我个人认为测试规约(specification)的制定非常重要。由于引入了神经网络,我们不能像传统软件那样期待系统是完全确定的。不确定性的存在要求从用户期望和测试规约的制定上都做出相应调整。此外,系统测试中的鲁棒性、可扩展性和安全性等问题也需要在新的测试框架下重新考虑。
在之前的自动驾驶系统研究中,发现某些模型错误对系统影响不大,而另一些则显著影响系统表现。因此,除了理解系统整体的错误,还需要理解各模块对系统的具体影响。一些模型的不鲁棒性或安全问题很难从本质上规避,但是其实可以通过系统级的设计来缓解。
长期来看,在神经符合融合软件中,神经网络的测试和在系统中的影响仍是最难解决的问题。由于其黑盒特性,不确定性及其对系统的影响难以分析和理解。如何评估神经网络的能力边界以及其对整个系统的影响,仍然是一个长期的研究挑战。
林云:
我比较同意以上马雷老师关于可解释AI和王昊奋老师关于模型调试的观点。传统符号化程序是演绎的,所以逻辑链条其实是明确的,因此出错归因也是明确的;而神经网络模型是归纳的,所以从预测到数据的归因是不明确的,因此需要一系列可解释技术将隐式因果链显式化。这样才能有效地完成开发、测试和维护的闭环。
我们最近就在探索这个方向,来回答“模型的预测是在训练过程中怎么一步步形成的”,以及“哪些训练样本贡献了某一个预测”的问题。当然,我们也是刚起步,正在一点点学习和探索中,也非常期待和各位学术界和企业界的专家、老师和同学一起合作。
训练过程的可视化调试:
1. DeepDebugger: An Interactive Time-Travelling Debugging Approach for Deep Classifiers (FSE 2023)
2. DeepVisualInsight: Time-Travelling Visualization for Spatio-Temporal Causality of Deep Classification Training (AAAI 2022, Oral Presentation)
训练样本归因:
Debugging and Explaining Metric Learning Approaches: An Influence Function Based Perspective (NeurIPS 2022)
观点讨论
@熊英飞:@孙军@林云 期待发布好用的debugger。
@彭鑫:@熊英飞 关键是这些debugger是否能保证缺陷的单调收敛,也就是像传统的debugger那样消灭一个bug少一个?还是按下葫芦浮起瓢?
@熊英飞:@彭鑫 彭老师提出了下一个阶段科研的需求。
@林云:@熊英飞 这些工作都是当年跟着孙老师合作active learning技术时得到的启发,当时光调试svm的学习过程就不容易。
@孙军:@彭鑫 这个确实是关键的问题了,传统程序的debugging是基于缺陷的单调收敛的,这个在神经网络上确实是个问题。
Question 4
主持人:您如何看待特斯拉提出的“软件2.0”的概念?未来符号化程序是否会消失并由神经网络取而代之?
王戟:
软件2.0是一种软件编写方式的变革,强调数据驱动和自动化的过程。软件1.0是由程序员编写的程序;而软件2.0是由优化生成的软件,后者也称为数据驱动的编程。用户只需向计算机展示期望的结果或行为,软件2.0便会通过将优化(自动学习)找出实现这一目标的方法。目前典型的实现方式是神经网络。延续这一思想,软件2.0可以在神经符号融合系统上承载。
软件2.0的确设想了一种完全由神经网络构成的计算系统。但是,神经网络的“黑箱”特性使得系统决策难以追溯,仍面临着可解释性、安全性等挑战。由此,神经网络完全取代符号化程序不太可能,也无必要。展望软件技术的发展方向,我们应回归软件的初心,高效、高质量、低成本。符号化程序在逻辑推理、规则制定和知识表示方面仍然具有独特优势,特别是在需要可解释性和严格验证的安全攸关场景中。神经符号融合恰恰表明了符号化程序不会简单的消失,符号化特征将被保留,从而形成一种可解释可信赖的软件2.0。也有人将用神经符号融合方式开发软件的方式称为软件3.0。
孙军:
除了少数特殊的场景,我是完全同意特斯拉提出的“软件2.0”的概念的,即:未来人类开发人员只需要关注需求和测试的部分,而不需要也不应该在参与系统的具体开发的工作了。长远来看,我是同意未来符号化程序是会消失并由神经网络取代的。在我的理解里,符号化程序不过是为了迁就人类有限的认知发明的一种不算高效的信息交流的方式。我们完全没有理由认为这种方式天然就是就好的。举个例子就是我们不能因为我们是色盲而觉得黑白画就天然最好看。
当然,在某些还需要迁就人类的情况下,符号化的程序有可能还是有必须要的。举个例子就是只要人类还在开车,那么简单的交规(即:符号化的程序)如红灯停绿灯行还是需要的,而一旦人类不被允许开车了,那么神经网络完全可以用一个更高效的方式来判断过路口是不是安全。
马雷:
特斯拉(或更具体地说是 Dr. Andrej Karpathy)提出的“软件 2.0”概念是一种激进的构想:通过使用神经网络取代传统软件,将编程范式从传统的声明式和过程式编程转变为以数据和抽象概念为主导的深度学习方法。这个方向是特斯拉一直坚持的技术路线,一直延续至今作为他们端到端自动驾驶的重要信念。某种意义上来讲,特斯拉的自动驾驶软件是这个概念最为成功和运用广泛的工业界实际落地应用之一。尽管如此,从我们多年来的实践经验,以及对学术界和工业界各种研究的分析来看,很难只使用神经网络来组成一个可靠,可信,透明的复杂智能系统。首先,我们发现即使拥有像大模型这样强力的神经网络,学术界不少前沿工作仍然需要构造agent,让它们能够调用传统软件接口,来赋能给它们更为健全,强大的功能。其次,从系统安全的角度上来说,数据驱动的方式从原理来上不可避免地会使神经网络具有黑盒和不确定的性质,我们总是需要一个完全透明,可解释的模块去监视神经网络并且在必要的时机去介入保证系统安全。因此,我们很难完全舍弃掉符号化程序。换一个角度来讲,就像Dr. Andrej Karpathy说的那样,跟神经网络打交道的方式是通过抽象的,对人类友好的(自然)语言(这在大语言模型时代更为显然)。然而自然语言的表述在某些时候本身就是高度不确定,无法形式化的分析的。从历史发展的角度来看,正是因为自然语言的这种性质,人类才需要另一种语言--数学,去发展科学。在复杂智能系统里,传统的符号化程序正是起到这样的作用。我们可以使用较为健全的理论,较为形式化的方法去框定,去限制,去理解符号化程序,这给系统安全性带来的保障,是纯神经网络软件非常难以达到的。因此我认为,神经符号融合软件,仍然会是未来较长一段时间智能系统的主旋律。要使得这种融合高效且有机,我们认为有几个重要的点需要做到。一个是我们需要知道神经网络的能力边界,了解它能做到什么,不能做到什么,在什么情况下会失效。这就需要一系列的AI测试框架。另一个是我们如何更好地去完善,提升传统软件的质量和安全,使得它们能够在预设情况下正确介入,作为整个系统的后盾。我相信软件工程各个方向在这个问题上都有很多价值很大,可以作为的切入点。
邱锡鹏:
软件2.0 最大的问题还是在于可信性,神经网络的“黑箱”特性使得系统决策难以追溯。我感觉神经网络完全取代符号化程序不太可能,也无必要。符号化程序在逻辑推理、规则制定和知识表示方面仍然具有独特优势,特别是在需要可解释性和严格验证的安全攸关场景中。神经符号融合表明了符号化程序不会简单的消失,符号化特征将被保留,从而形成一种可解释可信赖的软件2.0。
观点讨论
@彭鑫:@邱锡鹏 邱老师作为AI的专家对于神经网络取代软件相对没那么激进,孙老师作为软件和形式化的专家对神经网络渠道软件的观点相对激进。
@邱锡鹏:@彭鑫 我一直想着如何用“代码”来帮助大语言模型进行更好的推理。
@彭鑫:@邱锡鹏 其实在神经网络取代软件和传统软件之间是不是有个中间状态,那就是神经网络生成并执行程序(在人不参与的情况下)。
@王昊奋:@彭鑫 这个不就是可微编程么?
@孙军:@彭鑫 这种之前也有不少尝试的吧,比如在VQA上,不过效果不如直接LMM来的好啊。
@王昊奋:@孙军 VQA这个任务本身就不是一个well defined的,并且适合用神经网络或大模型来做。
@熊英飞:@王昊奋 可微编程是用反向传播训练出程序,还可以让大模型直接输出程序,比如copilot。
@彭鑫:@王昊奋 嗯,就是不断reduce问题,然后按需生成点代码来填补一些缝隙。
@王昊奋:@彭鑫 对的。
@彭鑫:@邱锡鹏 比如生成一段代码来执行“推理”?
@邱锡鹏:@彭鑫 对的。
@彭鑫:@邱锡鹏 关键是推理过程中每个步骤的一些操作哪里来,就像API,可能很多步骤不存在预订的“API”。
王昊奋:
特斯拉前 AI 总监 Andrej Karpathy 提出的“软件 2.0”是通过训练神经网络来实现功能的新软件开发范式。尽管这种方法在处理复杂问题上有优势,如自动化编程和高效处理海量数据,但也存在可解释性差、需要大量训练数据、难以保证确定性和资源消耗大等局限。符号化程序在可解释性、确定性和资源效率上具有不可替代的价值。未来,神经网络和符号化程序将继续共存并融合,根据具体应用场景选择最合适的技术,理性结合两者优势,构建更智能、更可靠的系统。
熊英飞:
从可见的未来来看,应该不会消失。因为神经网络不保证正确性,推理链长到一定程度总会出现错误,需要符号系统的辅助才能保证正确。另外,目前神经网络巨大的GPU资源消耗也是一个问题。因为顶级显卡禁运,这个问题对于我国来说尤为严重。
如果是孙老师说的那种符号系统/现代科学都消失的长远未来就不知道了,这个问题就留给子孙后代考虑了……
观点讨论
@彭鑫:@熊英飞 成本问题可能也不能忽略,一个纽扣电池就能支撑一个计算器工作很久,而大模型消耗的电量则远远比这个高了。当然,如果以后模仿大脑工作机制的新型人工智能出现了可能会不一样。
@熊英飞:@彭鑫 人做符号计算消耗的能源大概率也比计算机高。人做符号计算消耗的能源大概率也比计算机高,反正我算多了就会头痛脑热。
谢肖飞:
“软件2.0”主要是利用神经网络和数据驱动的方法来开发软件。与传统软件开发不同,在软件2.0中,开发者通过设计神经网络结构并使用大量数据进行训练,而非手动编写逻辑代码。 我认为未来符号化程序不会完全被神经网络取代。由于神经网络的结果存在不确定性且对数据高度依赖,它在很多需要确定性和可控性的场景中仍然受限。短期内,更现实的趋势是如何更好地将神经网络与传统符号程序相结合,包括与检索增强(RAG)和其他外部工具的集成。
未来理想的模式可能是:人类负责制定任务需求,将复杂任务拆解为子任务,再利用大模型解决每个模块。部分模块可能依赖符号系统(如可以用大模型生成符号化程序),部分模块可能依赖小模型(如物体识别)。不过,要实现这一模式,还需要技术手段来评估和验证生成模块的质量和正确性。此外,人机结合也至关重要,将人的检验和反馈融入开发过程,确保生成内容的质量和准确性。
林云:
在这一点上我和熊老师和邱老师一样,比孙老师保守,我觉得很多时候可能不能取而代之。
符号和神经在程序中并存可能是常态,符号系统在于演绎,神经系统多在于抽象和归纳。并非所有的程序情况都需要去抽象和归纳。就像在我们生活中,演绎和归纳都是在交替使用的。
观点讨论
@王昊奋:@林云 关键问题在于实际场景中的切换未必是显式的(甚至是无感的),同时很多问题也需要反复不断切换,这其实就会对结合Agent,外挂或RAG等目前看似有效的神经符号结合的方式提出了更高的要求。
Question 5
主持人:神经符号融合软件未来将向什么样的方向发展?您对软件工程、形式化方法、人工智能等相关领域的研究者有什么样的建议?
王戟:
神经符号融合软件已经在现实中得以应用,特别是在高端智能化应用领域。其未来的发展方向在于如何形成数据和符号双轮驱动的智能化软件范型。新范型的形成需要软件工程、形式化方法、人工智能的交叉融合。
从形式化方法的角度来看,核心问题是可信构造和可信保证。这将为神经符号融合软件的研究工作提供有力且扎实的研究途径,值得大家的高度重视并积极研究。具体而言,包括但不限于以下几个方面:首先,神经网络和程序综合的交叉有望形成一种新的软件构造方式。其次,形式化方法可以为机器学习构件提供安全保障,尤其是在面对其内生不确定性时,形式化方法有助于确保多模块集成和系统整体功能的安全性。第三,当数据使能算法替代传统程序构件时,通过安全屏蔽等策略,形式化方法能够增强系统的功能表现,为数据使能构件在系统层级提供具有一定容错率的安全行动范围。第四,形式化方法可以和神经网络互补共同支撑系统自主应对不同未知情形。
孙军:
好好总结一下的话。在近期阶段,我们可以将神经网络简单理解为一种较为特殊的“库”。我们的任务在于如何高效地利用这个库,以更好地解决各种问题,尤其是在需要处理复杂输入(如自然语言、图像、音频等)的场景中。这一阶段的核心挑战之一是如何有效地整合神经网络的能力与现有系统,以确保模型的输出准确且符合应用需求。现有的许多软件工程和形式化方法的研究及技术手段在此过程中依然具有较高的适用性。尽管如此,由于神经网络本身的特殊性质(如不确定性、可解释性较低及潜在的安全问题),我们需要进一步开发相应的工具和方法,来监测、校准和验证模型的行为,以确保整个系统的可靠性和安全性。
当人工智能的准确率,特别是生成代码和智能化辅助开发的能力,达到一定的成熟度时,我们可以预见,程序员将逐渐从繁重的底层实现工作中解放出来。这将允许程序员更专注于高层次的工作内容,例如业务逻辑的设计、领域相关流程的优化以及测试和验证的环节。这一阶段中,软件工程中面向过程的开发流程和形式化方法中的静态验证、实时验证等技术将扮演更为重要的角色。程序员的角色也可能更多地转向管理和审查人工智能系统的输出,确保其准确性和适用性,并在必要时进行调整和优化。
随着人工智能能力的进一步增强,或许人类程序员就可以慢慢退出历史舞台了。届时,人类可能只需定义需求、设定目标,即可由智能系统自动生成符合需求的实现方案。形式化方法可能在某些关键领域,如金融系统、航空航天及其他对安全性有高度要求的应用中,继续发挥其保障系统稳定性和安全性的作用。
总体来看,随着人工智能技术的成熟,软件开发的流程将经历深刻变革,人类在开发流程中的作用将逐渐向需求分析和高层次决策转移,然后退出历史舞台。
观点讨论
@熊英飞:@孙军 “退出历史舞台”细思极恐。
@孙军:@熊英飞 也还好啊,比如曾经的铁道操作员,比如曾经的汽车售票员。
马雷:
可解释性和可验证性是可信神经符号融合软件的两个关键要素。研究者需要关注如何使神经符号融合软件能够透明地展示其工作机制,帮助用户理解决策的依据。形式化方法可以提供理论框架,用于确保神经符号融合软件在特定约束条件下的稳定性和可靠性,从而减少错误和偏差。同时,可验证性也将为安全敏感领域(如医疗、金融和自动驾驶)提供保障,确保系统运行不会导致严重的后果。
为了实现自主智能和通用人工智能,研究者也应致力于开发更加灵活、自适应的算法。强化学习、迁移学习、元学习和多模态学习等方法将是研究的关键方向,这些技术有望帮助神经符号融合软件适应更广泛的任务和环境。此外,研究者可以尝试开发融合多学科知识的模型框架,使神经符号融合软件不仅能处理特定任务,还能推理和学习新的知识,以增强系统的通用性。
对软件工程、形式化方法、人工智能等相关研究者的具体建议:
1.神经符号融合软件通常包含多种不同类型的模块,例如数据预处理、特征提取、模型训练与推理等。采用模块化设计能使各部分的开发、测试和部署更独立,降低系统的复杂度。微服务架构尤其适合神经符号融合软件开发,能够将不同的神经符号融合软件、数据处理管道和接口拆分为独立的服务,使系统可以灵活扩展。例如,若需要更换或更新某一模块,可以只对相关模块进行改动,而无需重新设计整个系统。
2.对于神经符号融合软件而言,由于其决策过程具有一定的不确定性,测试与验证变得更加困难。因此,软件工程团队应设计覆盖全面的自动化测试方案,确保每一模块和组件能够稳定运行。同时,持续集成和持续交付工具可以帮助实现自动化测试、快速部署和实时监控。通过设置CI/CD流水线,开发团队可以在每次代码提交后自动执行测试与部署,大大提高开发效率,并在问题出现时快速定位和修复。
3.在神经符号融合软件中,形式化验证可以帮助识别和消除系统中的潜在错误,特别是在自动驾驶、医疗诊断等对安全性要求较高的场景。形式化方法如模型检测、定理证明等可以用于验证神经符号融合软件是否满足关键的安全和可靠性要求,确保系统行为符合预期。例如,使用模型检测工具检查自动驾驶系统的决策模块是否符合道路规则和安全约束。
王昊奋:
神经符号融合软件未来将朝着实现神经网络与符号推理无缝结合的深度融合架构设计、提升可解释性和透明度、增强可靠性和安全性等方向发展。这是一个全新的领域,需要探索软工领域新的开发范式,积极将形式化验证技术应用于神经网络,并持续推进融合符号推理能力的新模型的开发。大家应加强跨领域合作,重视可解释性、可信度,推动工具开发,探索新算法,重视数据和知识管理,考虑伦理和社会影响,培养复合型人才,促进产学研合作。
熊英飞:
现在软件工程和形式化方法的研究人员容易走入两个极端。一个极端是拒绝大模型,觉得提示工程没有技术深度,或者大模型上的研究天然不具备可重复性,不属于科学研究。另一个极端是只用大模型,相信(现阶段)大模型的能力能做所有的事情。
我感觉两者都是不可取的。对于前者,大模型基本可以肯定是未来技术发展上的重要方向,不能因为现在研究技术不深就拒绝未来可能的深入发展。而且随着全球大模型越来越多,已经可以看出大模型还是有其通用特性的,类似每个人各不相同,但人类整体还是呈现很多通用特性的。既然我们可以开展关于人的研究,那么我们也能开展关于大模型的研究。
对于后者,软件本身是一个符号系统,我相信符号系统上的任务,大部分仍然要用符号系统来完成才是最高效的。比如,要知道运行println(239487*3948729)的输出,符号系统可以瞬间给出答案,但大模型却要消耗大量的计算资源,还不一定能答对。
我相信未来对于大量的任务,一定是符号系统和神经网络共同作用才能达到最好的效果,或者出现新的计算模式来统一两者的优点。所以研究人员最好对两者都有充分了解,以便应对未来新一轮软件技术发展的挑战。
谢肖飞:
不仅仅是将神经网络和符号推理简单叠加,而是通过更深的融合和双向反馈机制,使系统具备协同学习和自我更新的能力。例如,神经网络可以自动从数据中学习新的逻辑规则,并将这些规则反馈给符号推理模块,增强知识库。开发更智能的工具来支持系统的开发、调试和维护将是一个关键方向。这包括生成测试用例(针对模型和系统的测试)、自动检测和修复系统中的逻辑冲突等,以提高神经符号系统的可靠性。
从研究者角度来说,我觉得一些值得探索的方向包括1)研究如何更好地定义模型和系统的规约,明确每个模块的能力边界,以便理解和管理系统的行为。2) 创建适应性强的架构,使符号系统和神经网络的无缝集成更为便捷,提高系统的可扩展性和灵活性。3)开发有效的测试和形式化验证方法,确保各模块及整体系统的可靠性、准确性和安全性。
林云:
借用熊老师的这个比喻,有一本书叫《快思考和慢思考》,快思考指用直觉来思考,慢思考指用逻辑推理来思考。神经网络的决策像快思考,符号化演绎和执行像慢思考。如果某个软件是神经符号融合软件,我觉得无非也就是模式匹配和逻辑演绎交替使用的软件而已。
对于软工学者,我觉得这种神经符号融合形态的软件会有测试、调试、版本维护等软件工程需求,但用来实现这种高层软件工程需求的底层技术,可能会非常“AI”。所以,我觉得就像现在软件工程技术(数据流控制流分析等)很多底层技术来自于程序语言社区那样,未来这类软件的分析技术会大量来自于AI社区。所以多了解AI社区的技术发展是软工学者们需要做的事情。
对于AI学者,我的建议是应该鼓励他们多做一些软工问题。程序修复和生成是经典的软工问题,在语言模型来临之前,我们不太容易想到扩大数据和模型规模能够有这个效果。也许AI的很多方案一开始很暴力,但是能够带来在不同社区中带来很多新思路。其次,当AI学者也可以找软工学者解决他们的模型维护问题,比如模型和数据集怎么做版本维护?模型上如何做回归测试?如果我们想构建针对模型的持续集成,大概是怎么做的?这些需要有AI经验的人来提供真问题来驱动在AI时代下的软件工程技术。
观点讨论
@马雷:@林云 这个建议非常好,难点是如何能做到。
@李宣东(南京大学教授):人类开发软件是用来不断满足欲望(需求)的,人的欲望(需求)是无止尽的。需求是人的主观意图,现在的需求不同于过去的需求,将来的需求也不同于现在的需求。神经网络是数据驱动的,但其中的数据是过去的,不是现在的、更不是将来的。所以神经网络可以解决过去已明确的需求问题,比如自动驾驶,但不能解决现在确定或将来才能确定的需求问题,比如软件开发。大模型不是人类的上帝,而是人类的仆人。大模型产生的知识,即刻也就成为人类的知识,而人类即刻在此基础会产生新的欲望(需求)。
访谈结束
CodeWisdom
一个有知识的软工公众号
发现智能化编程之道