文|巴比特资讯
我们正处于从“从数据中学习”过渡到“从什么数据中学习”作为人工智能研究中心的边缘。最先进的深度学习模型,如 GPT-[X] 和 Stable Diffusion,被描述为数据海绵 [1] 能够对大量的数据[2,3]进行建模。这些大型生成模型,许多是基于变换器架构的,可以对大量的数据集进行建模,学习生成图像、视频、音频、代码和许多其他领域的数据,其质量开始与人类专家撰写的样本相媲美。越来越多的证据表明,这种大模型的通用性受到训练数据质量的极大限制。尽管训练数据对模型的性能有很大的影响,但主流的训练方法在本质上并不是寻求数据。相反,它们忽略了训练数据中的信息质量,而倾向于最大化数据数量。这种差异暗示着研究趋势可能会转向更加关注数据的收集和生成,以此作为提高模型性能的主要手段。
从本质上讲,为模型收集信息数据的问题是探索——学习的一个普遍方面。在像现实世界这样的开放式领域中,感兴趣的可能任务集实际上是无限的,探索对于收集最适合学习新任务和提高已经学习的性能的额外数据至关重要。这种开放式学习可能是机器学习(ML)系统最重要的问题设置,因为部署它们的现实世界正是这样一个开放式领域。在正确的时间主动获取正确的训练数据是智能的一个关键方面,它可以让学习更有效地进步——换句话说,它可以“先学走,再学跑”。那么,为什么在最近关于训练更通用模型的讨论中,探索的概念在很大程度上被忽略了呢?
造成这种疏忽的一个原因可能是,在强化学习(RL)和监督学习(SL)中通常研究的探索 -- 作为主动学习的某种变体出现 -- 主要是以静态的、预定义的数据集或模拟器来设计的。正如 SL 的研究主要集中在优化像 ImageNet 这样的静态基准上的性能,RL 主要集中在任务的静态模拟器的设置上。这种对静态基准的关注使得现有的探索概念不适合在像现实世界这样的开放式领域中学习,在那里,相关的任务集是无限的,不能被建模为一个静态的、预定义的数据发生器。
在最近的一份立论中,我和我的合著者 Tim Rocktäschel 和 Edward Grefenstette 讨论了广义探索的想法。广义探索不是把探索限制在可以从预定的模拟器或静态数据集中取样的数据上,而是寻求在所有可能的训练数据空间中探索那些对提高学习代理的能力最有用的样本。例如,在 RL 的情况下,这需要搜索可能的训练环境空间,而在 SL 的情况下,需要搜索数据空间的表达式参数化,例如数据空间的生成模型的潜在空间。这种关于探索的更普遍的观点连接了 SL 和 RL 之间的探索概念。重要的是,它还描述了如何将探索应用于完全开放的领域,其中探索作为关键的数据收集过程,用于对越来越广泛的能力的开放式学习。
这种开放式的探索过程有望成为推动更通用的智能模型进展的一个关键组成部分。随着大规模的模型训练继续利用越来越大的数据集的好处,研究人员预测,最快到2025年,训练数据集的增长速度可能很快超过网络上高质量数据的有机增长速度。此外,更大的数据集需要更昂贵的计算来进行训练。最近的研究表明,只对最高质量的数据进行集中训练可以使学习效率大幅提高,从而以极低的计算成本获得更准确的模型。这样的工业数据动态表明,开放式的探索过程,使学习系统能够自主地收集或生成新的训练数据,有望在 ML 研究中发挥重要作用。在接下来的几年里,大量的研究投资可能会从模型设计和优化转移到探索目标和数据生成过程的设计上。本文中讨论的许多最近的研究计划清楚地表明,这种转变已在进行中。
ML 系统生成自己的训练任务(以及由此产生的数据)的高级概念并不新鲜。这个概念在不同程度上被 Schmidhuber 描述为“人工好奇心”,被 Clune 描述为“生成 AI 的 AI”。在这里,我们试图激励这样一个观点:现在是这些概念在实际的、真实世界的 ML 系统中获得牵引力的关键时刻。
如果深度学习可以被描述为“Software 2.0”-- 根据输入/输出对的例子进行自我编程的软件 -- 那么这种有望以数据为中心的范式,即软件通过搜索自己的训练数据有效地改进自己,可以被描述为一种“Software²”。这种范式继承了 Software 2.0 的优点,同时改进了其核心的、受数据约束的弱点:深度学习(Software 2.0)要求程序员为每个新任务手动提供训练数据,而 Software² 则将数据重塑为软件,对世界进行搜索和建模,以产生其自己的、可能是无限的训练任务和数据。
本文的其余部分对 Software² 背后的动机和原则进行了快速概览。关于这些想法的更详细讨论可以在我们最近的立论文章中找到,“通用智能需要重新思考探索”。
通用智能
深度学习将编程重塑为优化:与其编码一连串的指令来执行一项特定的任务,不如简单地定义一个衡量该任务成功与否的目标函数,用它来优化一个深度神经网络(DNN)来为你完成任务。这个观点在 Andrej Karpathy 2017 年的文章“Software 2.0”中得到了明确阐述。这种方法的一个主要好处是,直接搜索可以在大型 DNN 的权重中编码的程序空间,可以得到复杂问题的解决方案,超出人类程序员可以手动编码的范围。试想一下,用手写一个程序来给图片加标题,或者相反,从任何文字描述到匹配的图片,都是非常困难的。
自“Software 2.0”发表以来,深度学习可以说已经有了很大的进步。最值得注意的是,我们后来发现,经过训练的 DNN 不仅在它们被训练的特定任务上表现出色,而且还经常变得更具普遍能力,学会在它们在训练期间看到的任务之外取得成功。
文本和视频等格式的数据的高保真生成 -- 它们可以编码几乎所有感兴趣的任务的详细描述 -- 说明了尽管在单一的任务目标上进行训练,DNN 如何能够熟练掌握各种任务的情况:学习预测互联网规模的文本语料库样本中的下一个 token,必然要求模型学习多种文本内容的结构,其中自然包括对应不同任务的文本类别,如翻译、回答问题、总结、编写代码,甚至解释笑话。最近的研究更进一步,将各种任务 -- 包括语言建模、多模态问题回答以及控制模拟和具身代理人 -- 表现为一个序列建模问题。通过训练一个大型的模型来逐片产生这样的序列,所产生的模型可以通过简单地从一些为感兴趣的任务设定场景的初始起始段(通常被称为背景或提示)自动完成序列的其余部分来学习执行这些任务。
那么,一个自然的问题是,这样的深度学习方法是否能够产生一个通用的智能模型 -- 例如,一个至少能够执行其人类受益者可能想要执行的任何任务的模型。回答这个问题具有挑战性,部分原因是大多数”通用智能“的定义是模糊的或无法量化的。为了更好地掌握这个问题,我们选择用相对的术语来考虑通用智能:如果 A 能够在 D 领域的至少一项任务中超过 B,同时在所有其他任务中与 B 相匹配,也就是说,如果 A 的表现在 D 领域的所有任务中都严格地支配着 B 的表现,那么在 D 领域中,模型 A 就比模型 B 更通用。然后,我们用“日益通用智能”(IGI:increasingly general intelligence)这个术语来指代一个系统在相对于其他非学习代理的通用智能方面表现出的持续改进,包括自身的旧版本。当然,这个定义的前提是任务领域足够丰富,能够支持这种持续的改进。在这个意义上,我们称 IGI 在进行开放式学习,其收集训练数据的相关过程为开放式探索。这种对通用智能的看法清楚地表明,根据定义,一个不进行持续的、开放式探索的系统不可能是一个 IGI。
开放式的探索
如果没有一个持续寻求新的、有信息量的训练数据的过程,模型的学习将趋于平稳。RL 和 SL 中的探索方法根据数据学习潜力的代用指标,直接确定了收集这些数据的优先次序,这些代用指标通常是通过许多方法来估计的,包括相对于过去训练数据点的新颖性的测量;模型的认识不确定性;或者模型的预测在该数据上训练后的变化程度。然而,RL 和 SL 的探索方法主要集中在收集单一的、静态的、预定义的模拟器或数据集中的信息样本。静态的数据源不能很好地反映现实世界的无限性和不断变化的本质。在这种静态数据生成器的范围之外进行探索需要重新思考探索。广义探索的框架提出了一条有希望的前进道路。
与 RL 和 SL 中现有的探索概念不同(它采取主动学习的形式),广义的探索是从整个数据空间中寻找信息最丰富的样本。一般来说,完整的数据空间可能是无界的,不能被单一的、预定义的数据集或模拟器捕获。在这些情况下,我们必须不断从数据集或模拟器之外收集更多的数据,以逐渐扩大其范围,执行一种引导过程。例如,一个典型的 RL 代理可以在一个程序化生成的环境中体验特定游戏的转换,但它无法探索所有可能的游戏转换。广义的探索将探索所有游戏中可能的转换空间,而不仅仅是有限数量的游戏中的转换。当被探索的数据空间不受限制时,这个过程通过将数据收集与代理模型相联系,在当前代理模型经历最多学习进展的转换中逐步进行搜索,从而执行开放式探索。
那么,我们如何才能探索完整的数据空间?我们需要在所有可能有用的数据上对搜索空间进行参数化,并指定一个搜索标准来指导这个空间的探索。一个自然的搜索空间是所有相互一致的数据生成程序的空间 -- 在这个意义上,它们产生的输入输出对不应该相互矛盾[4]。这样的程序可能对应于一个静态的数据集,一个数据分布,或者一类任务的模拟器。然而,作为唯一的探索标准,学习潜力可能是不够的。同样重要的是数据的多样性,因为数据空间中可能有许多部分提供高的学习潜力。此外,数据空间中可能有很大的区域与任何感兴趣的实际任务无关,因此将探索限制在接近我们所关心的任务类型上可能很重要。这种约束有助于将开放式的探索与更现实的任务联系起来。然而,它们也会阻止学习系统探索潜在的重要任务,这些任务看起来不像任何有实际价值的任务,但却可以作为掌握更有挑战性的任务的垫脚石。因此,应该用多少先验世界知识来限制探索是一个重要的开放性问题。
当然,我们仍然需要一些方法来实际搜索所有数据生成程序的空间。在实践中,我们作为系统设计者可以手动定义感兴趣的程序的高级规范,使它们以我们所关心的现实的不变特征为基础,但又足够宽泛,以涵盖丰富的、无限制的任务空间。这样的程序可以通过 API 或人工干预将钩子纳入现实世界,使其能够输出真实和合成数据。一个相关的方法可能是搜索数据空间的生成模型的潜在空间,以产生新的数据,使模型的学习潜力最大化。如果学习开始停滞不前,我们可以通过进化规范来进行干预,比如可以在一个环中模型的协助下,按照预测的方向更新规范,提供具有更大学习潜力的数据。从某种意义上说,研究界对新基准的持续、集体的发明起到了对数据生成程序持续搜索的作用。最近的研究如BIGBench,一个由越来越多的人类指定的基准组成的基准,直接反映了这种模式。类似地,Dynabench 利用人工循环不断为当前模型生成新的、具有挑战性的数据。
将数据视为软件
通过将数据视为一种生成的软件,Software² 呼应了冯 - 诺依曼计算机架构,在该架构中,程序指令和数据都被等价地存储在内存中。在冯 - 诺依曼架构中,静止的软件等同于数据。而在 Software² 中,运行中的数据等同于软件。Software² 程序不断自我改进的能力使其成为实现展示 IGI 系统的重要组成部分。鉴于现在公认的高质量训练数据的重要性 -- 如前所述,预计会越来越稀缺 -- 可能会有很多投资用于开发不同类型的 Software² 系统。许多研究的重点可能会从设计和优化模型转移到设计和优化为这些模型产生训练数据的过程。在 ML 研究的许多领域,Software² 堆栈的关键组件已经被积极开发:
自动课程学习:在 SL 和 RL 中,自动课程学习方法直接搜索数据点或模拟器配置,使代理的学习潜力最大化。这种方法,包括最近的环境设计方法,构成了广义探索的核心部分,给定了数据空间的适当参数化,如丰富的模拟器、世界模型或对应于可能任务的程序生成模型。通过竞争动态诱导课程的类似方法有望改善大型生成模型。例如,最近的一项研究表明,有可能对目标语言模型进行“红队”测试:也就是说,找到目标模型的对抗性输入,使其输出攻击性或其他不受欢迎的输出。这样的方法可以被折叠到一个在线训练过程中,目标模型被逐步训练以纠正其在这些自动发现的对抗性输入上的行为。
生成模型:转换器和扩散模型,如产生合成三维数据的DreamFusion 模型,已经彻底改变了我们对复杂的、互联网规模的数据分布进行建模的能力。这样的生成模型可以作为世界模型,用真实世界的数据不断地更新,并作为一个开放的数据生成器进行采样。这种模式的一个特例是,最近发现大型语言模型(LLMs)可以通过对其自身生成的输出进行训练而自我改进,当其输出被过滤为某种数据质量的衡量标准时。值得注意的是,正如 Toolformer 所展示的那样,这种方法甚至可以让 LLMs 自学如何使用新工具。
人机交互界面:在确保软件系统与我们希望 IGI 执行的任务类型保持一致方面,人的指导可能会发挥关键作用。像 InstructGPT、Dynabench、Aesthetic Bot 和 GriddlyJS 这样的作品展示了将人类的偏好和专业知识纳入训练循环的有希望的方法。最重要的是,像 ChatGPT 和 StableDiffusion 这样的大规模人工智能系统现在已经部署在网络上,与数以亿计的用户进行互动。这些交互提供了一个有效的无止境的开放式训练数据,以提高这些模型的能力。虽然这些系统的能力范围仍然受到限制(例如,ChatGPT 还不能代表用户采取有限的文本提示以外的行动),但它们提供了一个更先进的 IGI 系统的预览。
召唤 IGI
Software² 在现实世界中的实现可能是什么样子的?作为一个简单的例子,想象一个虚拟助手,它可以通过控制浏览器完全访问网络,包括访问聊天界面与人沟通。人类感兴趣的大多数任务,从安排会议到订购杂货,已经可以通过一个基于网络的中介来完成 -- 想想网络应用或按需服务。当然,随着人们不断建立新的网站和发明新的活动种类,网络上的这类任务集正在不断扩大。然后,这个虚拟助理原则上可以成为一个 IGI,学习通过网络执行越来越普遍的任务集。
我们可以应用 Software² 的原则来训练这个虚拟助理,通过对基于网络领域的数据生成程序的空间的普遍探索 -- 在这种情况下,也就是具体的网站。这种训练可以在一个程序化生成的模拟器或网页的世界模型中进行,该模型通过虚拟助手在真实网络上的经验和我们作为系统设计者认为对训练特别重要的特定网页的结合而不断更新。此外,探索可能会积极搜索来自 YouTube 等网站的演示数据,用于改善助手自己的决策,并告知模拟器或世界模型,用于生成训练的合成数据。像往常一样,虚拟助手也可以直接根据自己在真实网络上的导航经验进行训练。随着时间的推移,我们可以预期这样的学习系统会产生一个越来越有能力的虚拟助手,并且探索过程会逐渐包括更广泛的网站空间,因为它不断地寻找虚拟助手可以学习新东西的网站。在高层次上,我们可以期待 Software² 系统类似于一个大规模的搜索引擎,提供一个进入强大模型的界面,其核心组件在数据抓取过程的协助下不断更新,不断地在互联网和现实世界中搜寻新的和有用的信息。
随着我们的学习算法变得越来越强大,我们可以通过深入思考哪些数据可以提供给这些算法,以及我们如何设计自我指导的系统来自己产生这些数据,从而获得巨大的收益。我们乐观地认为,鉴于开放网络的不懈发展和 Software² 堆栈组件的迅速成熟,我们将很快看到广泛有用的 IGI 的实现,就像刚才描述的那样。
这篇简短的文章描绘了 Software² 的大体轮廓,这是一种迅速崛起的、以数据为中心的范式,用于开发基于现代深度学习的自我改进的程序。这是一种可能对未来软件系统的设计产生影响的方法,就像最近正在进行的向 2.0 及以后的过渡一样。尽管如此,我们还只是触及了表面。如果这些想法引起了你的兴趣,你可能会喜欢阅读我们完整的立论文件中的扩展讨论。
评论