好的,欢迎大家回来。今天是本学期的最后一课。
今天我要讲的是一些我认为日益重要的近期方向。我会提出更多开放性的问题和答案。也欢迎大家对本课程提出反馈。这是我们第一次开设这门课,有很多好的地方,也有改进空间,请坦诚地反馈。
今天的课,上周我们讲了推理,特别是强化学习,介绍了策略梯度优化方法、PPO、DPO、GRPO,为现代推理奠定了基础。当然,这些大多仅限于语言领域。今天我会讲一些近期有趣的方向:跨语言和更多模态的多模态推理;以推理为切入点,讨论AI智能体系统,这些系统使用推理、逐步行动来解决日益复杂的任务;我们讲到了自主行动、与世界交互的智能体,那么如何让它们与人类进行人机协同交互?我会讲一些人机交互的新方向。最后,我会讲一些关于这些现代先进系统的伦理与安全方面的工作和思考。
首先,多模态推理。我个人认为,下一代AI模型将非常强大,我们必须努力让它们具备多模态推理能力。这意味着什么?模型将处理越来越多的模态,从语言到视频、音频、传感器、医疗数据等等。从非常不同的输入中学习多模态表示,使用和组合这些表示来学习多模态表示的各种方法。然后,它还应具备推理能力,将困难问题分解为多个步骤,有些涉及语言的分步推理,有些可能涉及高亮视觉证据、听觉证据,或者其他模态中的证据,反复进行直到解决问题。当然,还必须有人类在循环中。人类需要能理解每一步,能够介入并追问。有些动作也可能影响人类。总之,必须有人的参与。
我认为这就是我们称之为AGI的总体框架:多模态输入,能将问题分解为多个步骤,多模态输出,以及与人类交互。那么,在建模架构方面,我认为主要挑战是什么?我们讲了多模态融合和多模态生成。融合涉及处理不同的数据模态,学习它们之间的对应关系,以及如何将它们表示为特征。生成则是因为有多模态输入,我们也希望模型能进行多模态的分步推理,这可能涉及生成更多文本、生成更多视频、生成更多音频。之前有客座讲座讲了生成模型,其规模正扩展到越来越多的模态。
在建模方面,我们研究多模态融合和生成。在数据方面,我们需要越来越难的推理挑战,尤其是涉及多模态推理的。理想情况下,这些基准测试应附带人类的推理步骤——人类如何分解问题并逐步解决。我们团队就构建了很多这类基准和挑战。在训练方面,如果你有人类推理轨迹,对推理步骤做监督微调是初始化模型推理能力的好方法。但这不够,因为很难获得大规模的人类推理数据。上周我们看到强化学习,你可以只针对最终目标进行训练,让推理过程涌现出来,让个体动作通过策略梯度和PPO等方法涌现。
在人类方面,你希望这些系统与人交互。人类可能提供输入,这些输入应能控制模型;同样,模型产生输出,这些输出必须稳健、可信、安全,尤其是当它们影响人类生活时。在我看来,这些就是AI研究未来几年的主要挑战。
当然,本课也是对之前内容的回顾。我们讲过使用基础模型学习多模态表示的方法,Transformers、大规模预训练,以及监督指令微调。我们还讲过如何将这些多模态表示适配到预训练的大语言模型中,使这些语言模型能够在理解多模态表示的基础上良好地生成文本。这就是我们在将大语言模型适配到多模态生成方面看到的工作。我们也看到了同时支持文本和图像生成的例子:你可能想在生成文字推理的同时生成可视化解释,高亮模型用于做出预测的图像部分或其他数据形式。这就是支持文本和图像生成。
在人机交互部分,这就是我今天主要要讲的内容,一些关于人机交互的工作。
首先,让我介绍一下我们最近的一项工作,它体现了多模态输入推理、多模态输出以及与人类交互的理念。这是我学生做的工作,模态是视觉和语言,背景是教育推理。看很多数学题,比如几何题,有各种形状,通常画辅助线或标注能帮学生理解。例如一个圆,你标注一些线段等长,一些是直角、45度角。学生通过标注和画草图来学习。因此,希望语言和视觉两方面的推理能帮助学生理解几何这样的抽象学科。
我们的目标是利用这个想法构建一个智能辅导系统,帮助学生学习抽象主题。但目前大多数辅导系统是基于文本的,像ChatGPT,主要提供基于文本的解释,有时甚至只是给出答案而不引导思考过程。所以目标是将AI驱动的多模态交互方法整合进来,不是直接给答案,而是帮学生自己找出答案。我们开发的方法叫"交互式画板",因为它不是直接呈现答案,而是通过多步交互引导学生解决问题。"画板"描述的是长期以来的一种方法传统,即在一个共享平台上,不同的人或人与智能系统一起绘图、画草稿、迭代思路。
来看一个短视频演示。这是一个给学生的几何题,需要找一些角度和距离。学生可能卡住了。这是一个AI聊天机器人为学生输出内容,这是交互式白板,学生会与这些系统一起使用。一开始卡住时,模型先尝试提供提示,不给最终答案,比如提示画某些线段很重要,连接圆上某些点很重要,并用图表可视化。然后它开始编写代码,这里是Matplotlib代码,可以精确绘图。生成的图表带有辅助线和标注,帮助学生理解。学生接收反馈后开始绘图和思考。可能某处又卡住了,于是将带标注的图发回模型。模型进一步提供提示,比如一些定理、三角形性质。最终学生能够解决问题。
这个系统的工作原理从AI角度并非特别新颖,关键是整合了这些组件。首先,一个模型判断绘图是否有帮助——几何、微积分、积分、物理、力学图都是绘图有帮助的例子。如果判断有帮助,它会生成代码作为媒介来生成绘图。我们在生成代码(执行后得到精确绘图)和用纯生成模型(文本到图像扩散模型,逐像素生成)之间迭代几次。代码方式更严格,保证在正确位置以正确距离和角度绘制;纯生成模型更灵活,但无位置保证。在此例中使用代码,传入解释器。同时提供文本提示和视觉提示,一起呈现在白板上,向学生解释。用户可能进一步批注自己的解题过程,这将成为模型下一轮迭代的上下文。
一些不错的结果。首先需检验模型本身能否解决数学问题。最近有一些关于视觉画板、视觉思维链的有趣工作,这些是纯AI模型,没有学生参与,将问题分解为语言和视觉步骤,声称有助于解决难题。我们的方法在这些基础上有所改进,因为之前的一些视觉思维方法中很多东西是硬编码的,而我们更通用,解决了硬编码视觉的一些局限。另一件很酷的事是,我们在案例研究中真正部署给了学生。一些反馈是:"图表对我的解题是很好的检验","很好的一点是它没有直接给答案,而是提供提示让我尝试",这比现有AI直接替人解题的方法有优势。其他人也反馈"非常享受这种学习体验",认为图表和图示对他们的思考超级直观。
这只是一个案例研究,但我认为AI和HCI领域未来的很多工作都会是这种形式:处理不同模态的方式越来越复杂,将问题分解为步骤的新方法不断涌现,模型输出包含语言和视觉,这些对人类理解非常直观。而目标是帮助学生学得更好,所以必须有人的参与。
另一个我们最近非常感兴趣的案例是交互式智能体。这些智能体帮助我们提高生产力,帮我们做事。比如,你的任务是购买一套评分在若干星以上的耳机,这就像一个离线版亚马逊。如今我们有越来越强大的AI智能体,能接收复杂指令,将其分解为步骤:先到搜索栏输入耳机,然后按评分排序,按偏好筛选,结账,输入配送信息,发货。未来这些智能体可能会在网站、数据库、PowerPoint、电子表格、手机操作系统等上运行。你几乎可以用自然语言指令自动化任何任务。当然,它们不能完全自主运行。它们应理解指令,在卡住时提问澄清,人类应给予反馈、在模型卡住时介入。所以与人协作非常重要。
有人问对这些智能体的挑战和未来方向的看法。就平台而言,我不确定哪个最优,有很多需要权衡的因素。我们做的网页相关工作,主要是设想智能体像人类一样操作,只能点击、滚动、输入搜索栏,与前端网站交互。还有另一类项目更偏操作系统层面,直接访问后台HTML树甚至XML,不以人类的方式看东西。这是AI领域普遍的问题:你希望AI以人类方式看事物和交互,还是以对机器更直观但人类不熟悉的方式?权衡在于,机器更直观的方式可能更快更高效,但对人更难理解;像人一样移动光标滚动的方式对人更易理解,但对AI系统可能不那么自然。
另一个伦理问题:我最近参与了一些关于检测人类行为和AI行为差异的项目。我们知道AI智能体将越来越多地出现在各种数据库和网站上。有公司想构建智能体,将广告融入其中,他们会试图让智能体模仿人类行为——滚动比实际能做的更慢、打字花更长时间——让AI难以被检测。同时也有研究试图通过特定方式列出或措辞产品来诱骗智能体购买。如果用API调用,可能更难被诱骗;但放在人类平台上,噪声更多,可能更容易被操控。这非常有意思。比如可以创建"机器人验证码",在AI行为空间而非人类行为空间来区分机器人。
当然,大规模实现这些智能体并非易事。这里有一些我认为最重要的挑战和方向。首先是推理,利用上周看到的用强化学习将难题分解为步骤的方法非常重要。我们发现的另一件重要的事,是解耦高层推理和低层动作。高层推理可能是"去搜索栏搜索某物",这是高层自然语言;但实际上涉及多个低层动作:移动光标到搜索栏、逐字输入。所以,先接收难题,将目标分解为高层计划,结合高层计划(无论是网页截图还是HTML形式),然后生成若干低层动作(输入字符、点击按钮、悬停、滚动),重复直到解决问题。这种将问题分解为高层推理计划和低层动作的想法并不新,在机器人领域是大事,很多大语言模型和机器人结合的工作也是先定高层目标再转为具体动作。
举个例子:我想在这个网站买评分最高、价格60美元以下的Switch收纳包。模型直接同时搜索商品和价格会混淆,不如先搜索收纳包这一步,然后再筛选0到60美元的价格区间。仅仅将问题拆成两步就帮助很大,而不是让模型一次性解决所有问题。高层动作是"搜索",低层动作是导航到搜索栏、点击、输入。两者都由大语言模型完成,关键是如何编排这些模型。首先让一个模型将任务分解为高层动作,再让模型将高层动作分解为低层动作,每个低层动作仅限于一次点击、一次输入、一次悬停或一次滚动。将困难任务逐步分解也有助于人类介入。
人机协同方面的一个例子:问题是"这个一站式市场中无线耳机的价格范围是多少?"这不能直接搜索,需要多步操作:搜索、按最低价排序、按最高价排序、找到范围、给出答案。如果只让模型做计划,它先搜索(正确),然后试图直接找价格范围。但网站上没有直接标出价格范围,模型卡住了。给更多示例帮助不大。这时可以让人类介入,我们叫"带人类澄清的分步高层规划"。搜索这一步正确,但搜索后模型不确定如何继续——让模型自己发出不确定信号本身就是一个开放问题。一种方法是让模型反复生成动作:如果5次都生成相同动作,说明很自信;如果5次完全不同,说明不自信、可能困惑。可以用这种不确定性来衡量置信度。
我们发现模型在犯错时往往不自信,这意味着多采样几次会得到不同的输出,这是好事,说明可以用采样策略来校准或衡量模型的置信度。在这个案例中,模型熵很高、困惑时,人类标注员给出下一步的"标准答案"——应该从低到高排序价格。人类只介入一次,给出一次规划提示,模型就能继续完成后续步骤:找到最低价耳机、重新从高到低排序、找到最高价耳机,从而得到价格范围。只给出一次人类规划示范,模型就能更准确地解决剩余步骤,这非常好。
有人问计划是一次性全部生成还是逐步生成。在这个案例中,先生成所有计划步骤,然后逐一执行。每个计划步骤以低层动作执行。这些只是小规模案例研究,没有大规模结果表格。人类标注了大约10到20个例子,我们尝试给1到3次人类干预,看性能如何提升。当模型生成第一步后,如果检测到高不确定性,就用人类标注的第二步替换,然后看模型能否正确生成第三、四、五步,并测量在哪一步给予正确答案时模型表现最佳。这里用不确定性指标来判断:每次提示模型时提示K次,看K个输出中下一步计划的分布。如果K个输出完全相同,说明模型很确定;如果K个输出差异很大,就作为模型对下一步不确定的代理指标。
另一个大方向是带搜索的交互式智能体。我们目前看的主要是规划层面:有人类参与的分步规划。但低层动作也不容易。即使有完美规划,如何将计划转化为单个低层动作(点击、滚动、输入)?这也可以泛化到其他问题。社区普遍感兴趣的一个方向是如何将搜索作为工具整合进大模型。
例如一个难题:"我购买这个产品多少次了?"你需要进入我的账户,点击多项内容:我的订单、已下载产品。找到一大堆订单后,还要打开每个订单检查哪个与当前产品相似,产品名称可能随时间变化。这是非常困难的搜索问题。你不能对所有东西都搜索。所以有一个有趣的思路:搜索,同时剪枝——剪掉不该搜索的分支。
如何剪枝?上周我们讲了价值函数。可以将这看作一棵大树,每个节点是状态——当前看到的网页以及你在网页上的历史操作。你可以估计每个状态的价值:当你在试图解决某问题时,这个状态有多大价值?如果页面是空白的、你还没购买任何东西,那可能不是最好的状态;如果某个HTML页面包含大量信息,可能更好;某些页面上的产品与任务匹配,可能是好的状态。所以,递归搜索的同时剪掉可能无用的分支以保持效率,是一个大问题。将强化学习、树搜索与大语言模型结合的方法也是热门话题。
当然,从虚拟数字智能体到具身智能体,有一个日益壮大的群体在研究视觉-语言-动作模型(VLA,或视频-语言-动作)。这些模型接收机器人看到的视觉输入、语言指令,生成动作来控制机器人完成任务。语言部分用LLaMA-2,视觉部分用视觉Transformer,通过适配器作为前缀提示,解码动作(位置变化、角速度、夹爪控制)。在机器人和具身智能体领域有大量应用。
关于智能体、机器人、交互,有人评论说购物智能体的环境似乎很容易完全自动化,比如用强化学习方法。我的看法是,有两种主要策略:一派相信让模型探索、搜索、做RL;另一派相信尽可能用语言知识逐步分解问题,再用RL微调。目前没有共识。我认为这些购物平台不像乒乓或Atari游戏那样状态空间和动作空间很小。购物任务中,图像数量、链接数量、潜在动作复杂度都很大,所以不太可能从零开始纯RL。很可能需要先用视觉语言模型做好初始化和规划,再用RL微调部分局部动作。而且购物只是其中较小的应用,更大的应用是写代码、解决GitHub issue、操作整个数据库。在这些问题中,状态和动作空间巨大,RL可能不太可行。
有人问这些机器人动作是否泛化,以及运动学模型是否集成。多任务学习已存在一段时间,可以设想,就像输入适配器适配不同的输入场景一样,也可以使用输出适配器来处理每个任务不同的输出。我认为未来是:通用知识做基础,但输入非常模块化,输出也非常模块化,推理也应非常模块化。
有人提到OpenAI最近发布的研究,在大量工具使用上做了训练,虽不是与环境交互的智能体。工具使用非常符合我之前描述的范式:大型基础模型,关键在于让输入和输出极度模块化。工具正是一种很好的方式,你也可以将工具视为另一种模态,需要将工具的能力与语言模型对齐。我认为最大的问题是瓶颈在哪。现在一切都通过语言:用语言描述如何使用工具、调用API,视觉被适配为语言输出,机器人动作用语言化角度和旋转参数化。语言是目前最好的基础模型,所以也许暂时还行。当然,随着多模态语言模型的进步,可能不再需要纯语言瓶颈,也许可以做一些直接基于视觉的事情。最近的大型概念模型也是基于大语言模型,试图在神经模型中建模概念。
关于工具的更多讨论:有人提到使用像IDE这样的工具作为环境来自动调试代码,模型在自有的交互环境中完成所有工作,只将最终结果呈现给用户。我认为这是一个非常有前景的方向——拥有带好工具的交互式环境或模拟环境。这些模型很可能在那些调试环境中已经训练或微调过,才具备这种能力。未来很多模型在向公众发布前可能都会在网站和网页导航环境中训练。
人机交互方面,我认为有三个大问题需要回答。第一,什么媒介对人机交互最直观?语言提示是一种方式,但基于代码、视觉甚至生理信号的方式也许能保持语言的高保真度,同时显著降低认知负担。从技术角度,就是构建人机交互的多模态接口,探索不同媒介之间的切换和融合。第二,AI中有哪些技术挑战需要被解决以支撑人机交互?作为一个AI研究者,我认为量化是重要的一块。量化是对模型短板进行实证和理论研究,以预测和控制模型行为的学科。不是构建新模型本身,而是构建新的理解和科学、技术和理论,来理解和控制模型行为。我强调三点:模型短板(何时失败、为什么失败、预测何时失败)、模型行为(解释内部行为,理解在不同输入上的整体行为)、以及预测性理解模型如何学习、获得最终性能以及随规模扩展的规律。第三,人本问题:整合人类经验带来了哪些新机遇?如何帮助生产力、创造力、幸福感?这些是好问题,但偏模糊、缺乏技术定义,应用层面非常有趣。
量化可能是本课涉及不多但最重要的话题。本课大部分时间聚焦于构建新算法、新技术、应用它们。量化可被定义为:以更好地理解模型短板、预测和控制模型行为为目标的实证与理论研究。它不太关乎构建新模型本身,而关乎构建新的理解——科学、技术和理论——来理解和控制模型行为。我强调了三点:短板(模型何时失败、为什么失败、预测失败)、模型行为(解释内部行为,理解模型在不同输入上的整体行为)、以及学习理解和预测模型如何学习、获得最终性能以及随规模扩展。
快速回顾几个大事件。安全方面,大语言模型很容易捕捉偏见。我们早期做了一些工作,关于性别偏见如何影响语言模型在不同职业上完成输出的方式,以及它们如何描述不同人从事这些职业的方式。现在大家都知道语言模型存在性别、种族偏见。有很多方法可以提高安全性,但越狱方法几乎数不胜数。有篇我非常喜欢的论文:语言模型说"抱歉,我不能这样做",然后你把这段提示伪装成模型自己的输出,它就给出了正确答案。这个无限的越狱空间意味着我不认为可以指望模型100%安全。这仍是一个挑战。
另外有趣的是,当你构建多模态模型时,是更容易让模型安全,还是变得更不安全?大多数情况下,更多输入和更多理解会让模型更不安全,更容易打包偏见。很多模型在初始阶段只看了问题而忽略了图像,因为90%的香蕉是黄色的,它就直接预测"黄色"。有很多方法可以重新平衡数据和训练,让模型能公平地从不同模态学习。社会偏见方面,人们发现模型常常只看图像中的某个物体,例如检测到笔记本电脑,然后直接推断使用电脑的人的人口统计特征,这往往反映偏见。有一个关于主要视觉语言模型的研究,基本结论是"两全其恶":将视觉模型与语言模型结合时,偏见会叠加。他们测试了不同特征的人持有不同物品的情况,发现模型在看到图像和语言两者时会变得更加自信并强化偏见。
鲁棒性是另一个大领域。很多模型在训练设置上表现良好,但在真实世界中面对不同类型噪声(传感器噪声、图像噪声、文本噪声、视频噪声)时就不稳健了。大约两年前,我们做了一项大规模研究,考察不同大模型的性能及其鲁棒性。我们基本发现了负相关关系:性能很好的模型往往不太鲁棒,尽管起始准确率更高,但引入噪声后性能下降更严重。有很多方法可以处理:引入噪声dropout、在训练期间让模型对你期望敏感的噪声类型敏感、从一种模态翻译到另一种以推断缺失模态。
还有理解模型行为方面的内容,线上有更多幻灯片。越来越好的可解释性方法包括:可视化神经元、可视化相对于输入的梯度、高亮文本和视觉中负责不同预测的部分。
我想强调的一点是如何评估量化。量化这个话题很大,关于建立对这些模型的理解。准确率很容易衡量——如果模型更准确,你就开心。但你如何衡量试图研究的某个模型属性的成功程度?理想情况下,以前没人研究过这个属性,所以没有真值让你说"我对这个属性的理解有80%正确"。评估量化仍是一个很大的挑战。我们提出的一种方法是间接评估量化:例如,如果你声称模型具有某种属性(比如模型更关注某种颜色),能否让人类模拟模型?即给你一个新数据点和模型,人类能否模拟模型会预测什么——包括模型预测正确的案例和错误的案例?如果模型纯粹是黑箱,人类就无法模拟。如果模型更可理解,人类应该能够模拟。另一个很酷的方法是让人类调试模型:如果你有某个放大镜、模型的某种属性,声称它有意义,那么人类应该能利用它找到模型的不同bug,改进模型性能。这是可直接衡量的指标——如果找到了bug,就说明你的理解是正确的。
好的,我们必须结束了。感谢大家度过了一个很棒的学期。很荣幸教授这门课。请提交最终项目,请给我们留下课程反馈,填写课程评估。如果想来当助教、参与塑造未来版本,请告诉我。谢谢大家。
热门跟贴