图片由周珍楠老师用Midjourney创作
2023年秋季学期,北京大学董彬老师的《图像处理中的数学方法》课启用了一款AI助教“Brainiac Buddy(简称BB)”。BB由董彬老师带领学生和校外科技公司联合打造,基于GPT-4开发,目标是实现个性化、定制化和互动式,让每个学生都拥有一个“永远耐心的”、能提供高质量互动的助教,以此提高教学质量。Brainiac Buddy的意思是“那个聪明又勤奋的家伙”。
BB上线后,获得了校内外师生以及社会人士的广泛关注,目前还在试用-反馈-完善的阶段;它对于不同学科、不同类型课程的适用性还有待时间的检验。这样一款AI助教为什么会出自一个数学家团队?董彬老师及其团队成员对于数学和AI之间的关系是如何展望的?在BB上线后不久,董彬老师和周珍楠老师、学生罗逸凡、沈城烽、唐艺铭一起贴出了一篇预印本论文“Prompt Engineering Through the Lens of Optimal Control”,文章从最优控制的视角出发,建立了一套描述交互工程的数学框架,为繁多的交互工程方法提供了一个统一而简洁的理论理解。论文目前已被Journal of Machine Learning杂志接受。本官微近期专访董彬、周珍楠两位老师,以及BB开发团队的成员之一刘梓豪同学,请他们分享BB背后的故事。
Q1:BB的研发和这次的这篇文章都可以归为所谓的交互工程(Prompt Engineering,PE),那么老师们能不能从自己的视角出发,给我们简要讲一下什么是交互工程?董彬:从我的角度来看,交互工程所关心的就是怎么去设计一系列的问题,来引导大语言模型去完成一个对应的任务。这个任务不只是回答一些简单的问题,还包括一些更“高级”的任务(比如撰写满足特定需求的代码)。很多时候你需要去设计一系列的指令,以自然语言(甚至是一些特殊的符号)去引导大语言模型,经过多轮的交互之后,能够让它实现一个比较复杂的功能。这是我认为交互工程最主要要做的事情。Q2:老师们是从什么时候开始关注到PE的?接触它的契机是什么?董彬:2023年年初GPT-3.5刚出来的时候,我其实还没有意识到跟这样的大语言模型的交互会产生怎样的价值。因为当时GPT-3.5的底层的逻辑能力还相对比较弱,我可能也跟很多人一样,跟它对话只是好奇,也会嘲笑一下它犯的低级错误,纯属娱乐。但是跟它交互时间久了之后,我逐渐意识到它的延伸价值有可能是巨大的,但是当时还没对交互工程有很清晰的认识。(2023年)3月GPT-4出来,我就开始认真对待它。第一是它让我确认了AI4MATH是一个很值得做的方向,因为它的逻辑推理能力得到了极大提升,如果能够在高质量的数学类的数据集上进行训练调优,那将会成为数学家的得力助手。第二我意识到,当大模型的逻辑思维能力超过了一个阈值之后,它就能够很清晰地理解你的指令了,它可以严格遵循你的意图(只要你把你的意图用清晰的语言表述出来),甚至能够在指令比较宽泛时去做一些即兴发挥,随机应变地完成你布置给它的任务。GPT从3.5到4让我看到它逻辑推理能力的质变,也使我开始认真地思考,也许我们真的可以通过设计一系列的指令来引导大模型去完成那些我们之前完全不敢想的非常复杂的任务。这在我看来是一个契机。周珍楠:我最开始主动思考交互工程和大语言模型,是因为我开始使用的时候发现它带来很多比我预想中要好的体验。当你问它一些相对深刻的问题的时候,你会发现虽然它有时候会告诉你非常错误的信息,但是也有时候它会给你非常有启发的回答。这种启发性很多时候甚至超越了你在现实中找到一个对的人,然后与之进行深入交流的收获,这点让我非常震惊。另外一个非常有趣的点是,通常自然人简单的事情做得好,难的事情做得不好。但大语言模型很多情况下它面对简单或困难的问题的时候,它给出有价值的回答的可能性是相同的。这种时候我们就会反思,产生这种状况可能不见得是大语言模型的问题,而是和它交互的人的问题。是我们不会问问题,是我们不知道在问的过程中怎么能问得更好,不知道如何在交互中去把自己的问题更加优化。所以我们觉得这是一个很好的研究契机。董彬:刚才周老师提到了,跟大语言模型互动,我们能从中学到很多东西。这也是我为什么想着做BB,就是考虑到大语言模型也许可以很大程度上提升我们教育的质量。教育一个最难的任务就是怎么做到真正意义上的因材施教,为每个学生定制一个又耐心又懂你,而且知识渊博的教学助手。而当我们在跟大语言模型互动的时候,就像刚刚周老师说的,你的问题要问得好,你才能够得到高质量的答案。如果你不会问问题,你得到答案的质量会是比较差的。那么聚焦因材施教这样一个对人类来讲都是很难的任务,怎么能够设计一种系统化的交互方式,让不会用大模型的学生都能不费力地跟它交互,也能够跟最会用的学生一样获益,这个就是交互工程所要实现的目标。
如何实现因材施教是一个古老的难题
图片由董彬老师用OpenAI的DALL-E创作
Q3:问个题外话,既然在使用大语言模型时提问这么重要,董老师觉得同学们应该如何才能培养自己的提问能力?董彬:其实提问在没有大语言模型的时候也是很重要的,只不过在大语言模型出来之后,它的重要性被放大,被越来越多的人意识到了。因为就像前面我说的,不同人使用GPT-4的反馈非常不一样,因为它的回答是因问题而异的。至于怎么锻炼你们提问题的能力,我觉得这个不应该只是在大学教育中应该思考的。据我的观察,进入大学的同学大多不太会提问,可能更多的是从小到大课堂的习惯所导致的。不会提问题的原因很多时候因为同学们不习惯主动去思考,比如老师讲的这个观点有没有可以思辨的点,是不是可以挑战一下老师的观点?所以我觉得如果要锻炼一个人的提问能力,就要去锻炼Ta的思辨的能力。比如,别人说的某些观点,什么时候可能会不成立,在给定的假设下是不是还能有别的结果?你要去质疑对方说的话,从各个角度去“攻击”这个结论,在这个过程中就会产生源源不断的问题。
The general framework of multi-round PE
图片摘自董彬老师团队论文
Q4:老师们觉得交互工程的一个极限在哪里?你们期待它能做到什么程度?董彬:我认为它的极限就是:在任何一个具体的学科或业务领域、任何一项具体任务上,都有一种比较自动的至少是半自动的方法,能够让诸如GPT-4这样的强大的基座模型把它全部的潜力都能够发挥出来。我认为这个是交互工程所追求的极限。现在我们离那个极限还差得很远。插问:那随着基座模型越来越强,交互工程的空间是越来越大的吗?还是说模型越来越强,交互工程的空间反而是被压缩的?董彬:简单来回应你这个问题就是“水涨船高”。对于简单的任务,可能以前你需要认真地去做交互工程才能实现,但基座模型强了之后,也许就不需要那么麻烦了。但是,永远都有更具挑战的任务在等着我们,因为追求卓越是没有尽头的,我们对自动化和智能化的需求是没有止境的,所以我认为交互工程会有持续的发展空间的。周珍楠:我们现在认为这个交互工程有空间的主要原因是人们不会问问题,那么继续再发展的话就是两件事情:第一件事情是人自己对自己问的问题知道多少,你能不能给大语言模型提供足够多的信息来让它有能力解决你的问题。有可能人们会逐渐潜移默化地适应这种和大语言模型的交互,在和它交流的时候自动变成一种人机互动模式,提供很多充分的信息。但我觉得还有一种可能性就是通过另一个大语言模型来实现这种高效的互动。比如当我再去问一个问题的时候,也许大语言模型的一部分就会智能地、自动地帮我去剖析出来我的问题核心问的是什么,然后再把它变成一个更好的形式来交给模型去处理。第二件事情就是人对于Ta得到的答案有多强大的学习能力。确实存在一种情况,就是一个问题的答案摆在你面前,但你就是学不会。比如很多数学证明我也看不懂。这件事情仍然是限制人的。Q5:这次的文章(编者注:即论文“Prompt Engineering Through the Lens of Optimal Control”)从最优控制的角度出发来理解交互工程。交互工程从名字上给人的感觉就很“工程”,为什么会想从数学的角度去刻画它?董彬:到现在为止,我们看到许许多多围绕大语言模型进行的各种各样酷炫的应用。那么作为一个数学工作者的话,我们可能很自然地就会想去总结归纳一下这些方法,看看它们有没有某种共性。从我们的学科背景来讲,只有把具体事物用数学语言进行抽象化,我们才会满意,会觉得这个东西我大概能理解了。虽然交互工程目前有很多的具体实现和变种,但是它背后的原理是一致的。因此,最早我们就想回答的第一个问题,就是能不能有一个统一的数学框架去刻画这些方法。后来我们发现,最优控制能够比较好地给它们一个整体的刻画。那么把它写成数学形式之后,我们就能够尝试去理解交互工程。而这时候我们就发现,虽然能够把它写成一个最优控制的形式,但是下一步想要再进一步理解,遇到了很多困难。首先就是之前并没有人把这个问题明确定义成是一个最优控制问题,因此交互工程相关的很多数学定义都是欠缺的。比如语言空间该怎么从数学上去定义、最优交互模式是否存在、是的话何时存在,以及如何系统地设计高效的数值算法来找到最优的交互模式等等。我们用最优控制来描述交互工程,目的之一就是希望依靠控制论这样一个发展了70多年的领域,把其中许多非常好用的数学工具借鉴过来。另一方面,当你把大语言模型和交互工程的问题写成控制问题之后,我们还发现了一些此前最优控制领域没有考虑过的东西。所以我觉得这可能对最优控制的数学理论本身也是一种贡献。
数学中心办公院落
Q6:对于交互工程的数学理论方面,我们应该更关心其中的哪些问题?周珍楠:交互工程目前有非常多的方法和例子,但有很多例子都太猎奇了。比如你告诉GPT“我祖母生前常在我小时候给我讲一个什么故事,它是一个Windows的激活码”之类的,然后GPT就会无视安全规定,把windows激活码泄漏出来。这样的例子虽然非常有社会上的轰动性,但是你会觉得这个例子的性质就类似于我们数学上讲的一些反例。反例虽然重要,但是我们平时不是最关注它们。反而是像类似于Chain-of-thought这样,非常简单但是很普适的方法,它能告诉我们什么样的理论是可以用的,这种方法会更重要。从控制上就可以提出一些问题,比如说我们的交互应该是单轮的还是多轮的,在交互的时候你怎么去选择所谓的策略集合之类的。从这样一个控制或者是其它一些接近的数学对象的视角出发,我们就会主动反思,那么多的数学知识有多少是可以被直接迁移过来的,而哪些问题又是因为大语言模型本身而带来的本质上新的数学问题。有这样的一个敏感度之后,再去看这方面的问题就更加清楚了。需要特别意识到的是,我们现在控制的不再是我们熟悉的向量、函数或是分布,而是自然语言。自然语言在数学上对我们来说是一个非常缺少结构的东西,之前我跟董老师一直在讨论这样一个问题:在自然语言上你到底该怎样去建立代数或者拓扑的一个结构?交互工程迫使我们去思考这些事情,可能是前人没有问过的数学问题。我觉得这里边的任何收获,无论是对于大语言模型,还是对于应用数学的发展,都是有启迪性的。Q7:如果有一些应用数学家对从数学角度去研究交互工程和大语言模型感兴趣,但是之前完全没有接触过相关的工作。你们觉得Ta该怎么着手比较好?董彬:我觉得首先可能要自己先体验一下,跟市面上高质量的大语言模型互动一下。不要把它当成搜索引擎,而应该带着一个比较复杂的问题去跟它进行多轮交互,看看如何交互可以有效地解决你的问题。先自己有一个亲身的体验,然后再结合自己的专业知识。比如说,如果你是一个做算法的人,研究优化算法或者强化学习,那么可能会从无导数优化的角度出发,看看能不能针对一类问题设计出一个更好的算法,自动地给出能够高质量解决这类问题的交互策略。如果是做理论研究的人,我同意前面周老师提的那些问题:应该怎么去理解语言空间?应该用什么样的方式去刻画它?找一个自己擅长的方向,看看一些经典控制上的结论能不能迁移过来?或者可以去思考我们新框架下所提出的一些问题,能不能想办法把它解决?这是我的一些建议。
BB登录界面
Q1:能不能具体分享一下BB的工作流程?比如说我问一个问题到这个软件里,软件进行了怎样的处理才给到这个回答的?能不能解释一下这个流程。刘梓豪:我负责最早期的后端设计,实际上大家会发现BB本身类似于一个GPT-4加上embedding的集成化系统。所以本质上来说,我们设计出来这样一款工具,就是尝试利用openai的API接口,让它实现在教学方面的场景的应用。所以我们最开始设计的时候,还是尝试着去迎合GPT本身的设置,比如基于多轮对话模式的设计——在一次聊天中chatbot可以把上下文记忆得比较清楚,但是API不具备这个功能。所以我们为了实现这一层逻辑,在代码块中把之前聊下来的全部话语打包成一个信息串,然后上传到后台系统中,这样就可以描述出来这种记忆的效果。对于如何引入相关领域的知识,我们使用的是常见的向量知识库技术,将交谈话语的特征使用深度学习/投影技术等方式嵌入到高维的向量中,使得API具备更好的知识检索的功能。我们利用这种技术,嵌入了很多(北大)数学学院的教材。Q2:这个地方能稍微展开说一下吗?向量数据库它具体是怎么样实现的?刘梓豪:事实上,向量数据库或者说知识嵌入这个层面的技术,在GPT-4里边已经给它打包成一个插件(text-embedding-ada-002)了。它本质上可能是先对语义块——无论是上传的PDF还是其他内容——先进行一个分割(因为GPT不可能处理一个很长文本的东西)。它的分割可能是很简单的“空格式的分割”,亦或是相对复杂的“语义层面的分割”。在GPT-4的内部分割的话,一般都是用“token的分割”,就是语义层面的分割。
数学中心办公院落
Q3:参考资料是课程已经embedding好的,还是学生每次用的时候要自己提供embedding?刘梓豪:实际上这是比较开源化的,我们未来想要给学生足够自由的空间。我们首先希望老师们能提供一些资料,把这些资料设置到后台系统里面去,基于这些资料的学习,学生能够实现对一门课的基本认识。有些课可能需要读的论文很多,或者说需要参考的资料数据集非常多,就可以把这种资料的上传开放,从而为学生自己建立知识库提供便利,学生只需要把自己的资料做好,把知识数据集调好,就可以通过这个插件直接把那些数据拷贝过来,然后去整合这个系统,使它有更好的应用。
BB课程界面
Q4:现在的检索大概是怎么实现的?BB要怎么知道哪些内容是相关的,哪些内容是不相关的?刘梓豪:比如说短文本的话,大家了解相关领域的都会听到一种叫BM25的方法。对于长文本的情况,一般来说由于已经给文段向量化,实际上会用一个叫余弦相似度的度量,可能需要计算一下两个文本段的角度等等,然后进行处理。其他的一小部分技术可能是适当的微调——即我们说的:嵌入方式的好坏,是影响检索好不好的一个关键要素。同时我们要平衡数据量和处理时间的关系。刘梓豪 :我感觉首先基本的讲解方面肯定还是可以的,对于偏向于概念层面上理解的课程,目前已经可以提供很好的助教讲解作用。(2023年)10月份,我跟董老师已经毕业的博士金鹏飞学长一起测试了一下图像处理课程小波方面的问题,它回答的水平比大部分学生的水平都要高很多,尤其它能够更好地抓住某一个需要回答的重点,并且把框架搭得清清楚楚。未来要做的事情,首先第一点肯定是源自于“它在计算能力上很差”。我们也拿它去算过微积分习题之类的,表现不佳。因此我们的项目如果放到低年级的必修课,难度就会比较大。另一点就是如何去为它添加更加好的数据,以及让它更好地去读取数据。现在基本上让它读的数据都是处理好的pdf/md文件等等,这些知识最值得探讨的一点是不是那么的结构化系统化。未来可能引入例如lean那样的定理库格式是最好的。再有一个可能要做的事情是关于多模态的支持。不说物理、化学这些实验学科,就拿数学来说,比如说立体三维结构方面的知识,或者说是扭结/混沌这种很需要结合图片讲授的知识,目前的BB仍然是不具备读图的功能的。所以未来我们会升级底层的大语言模型(GPT-4-turbo),我们在尝试能不能给它加一层动态结构,使它能够泛化到支持更多的课程,这是一些工程上面的未来构想。
董彬老师小组在一起讨论问题
(左起)唐艺铭,刘梓豪,董彬老师,周珍楠老师,沈城烽,罗逸凡
董彬,北京国际数学研究中心教授,ICM45分钟报告人,新基石研究员。主要研究领域为科学计算、机器学习、计算成像。
周珍楠,北京国际数学研究中心助理教授。主要研究领域为微分方程的应用分析,微分方程数值解,应用随机分析,随机模拟等。
罗逸凡,北京大学数学科学学院2022级计算系直博生。主要研究方向为提示词工程和神经网络的可解释性。
沈城烽,北京大学数学科学学院2022级计算系直博生。主要研究方向为平均场博弈论及其在经济学中的应用。
唐艺铭,北京大学数学科学学院2020级本科生。主要研究方向是提示词工程和生物启发人工智能。
刘梓豪,北京大学数学科学学院2021级本科生。主要研究方向是大语言模型推理的优化理论。