业界普遍接受的一个观点是:大模型(LLM)的参数规模越大,其性能越强,表现越像人类。
然而,一个只有 5 亿个参数的小模型(SLM)在文档摘要任务上的表现却超越了 GPT-3.5。这听起来很不可思议,官方公布的参数数量是 1750 亿,是小模型的 300 倍。
你是怎么做到的?
基于“大数据、大算力、强算法”的大规模大模型预训练已经成为一场极其昂贵的竞赛,能够参与其中的选手并不多。
因此,人工智能领域越来越多的研究关注如何让小模型高效工作,比如利用低质量的小模型GPT-2制作出高质量的数据集,再用来训练小模型,就能与拥有数千亿参数的大模型GPT-3相媲美。
在2024年数据与人工智能峰会上,华盛顿大学教授、麦克阿瑟研究员、艾伦人工智能研究所(AI2)常识人工智能高级研究主任Choi分享了这一过程。
以下是崔在2024年数据和人工智能峰会上的演讲:
我在这里与大家分享一些看似不可能的可能性。
去年,当有人问 Sam 如何让印度初创企业创建适合印度的基础模式时,他的回答是,别费心了。这是没有希望的。
第一,希望印度创业公司不要轻易放弃。第二,这种对话可能发生在任何地方。无论是美国的任何大学、创业公司还是研究机构,都可能面临计算能力不足的问题。
所以,这给我们带来了不可能蒸馏的问题。如何以一种环保的方式训练你的小型语言模型,使其表现得和真实模型一样好。
当前的方法和挑战
到目前为止,我们听到的最佳实践是进行大规模预训练,然后进行大规模后训练,例如 RLHF。
如果我告诉你我将从 GPT-2 开始,这个小型、低质量的模型一直被公众忽视,我不知道为什么,但不知何故,我们将创建或改进一个小型的高质量模型,然后它可以与一个可能大两个数量级的更强大的模型竞争。
这听起来似乎是不可能的,特别是如果你可能听说过一篇题为“模仿大型语言模型的虚假希望”的论文。
虽然他们所报告的内容对于他们所进行的特定评估实验来说是正确的,但请不要过度概括并假设所有小型语言模型都不如大型模型。
因为有许多其他反例证明特定于任务的符号知识提炼在许多不同的任务和领域中有效,其中一些来自我的实验室。
不过,今天我只想专注于一项任务:如何学习语言中的抽象概念。为了简化这项任务,我们从句子概括开始,这是我们第一个不可能完成的任务。
任务 1:句子总结
我们的目标是在不进行极端规模的预训练、不进行大规模 RLHF 和不进行大规模监督数据集的情况下实现这一点。这些东西并不总是必要的。但等等,我们通常必须使用这三种方法,至少是其中的一些。
但如果没有这些,我们如何与更大的模型竞争?关键的直觉是,当前的人工智能只能与它收到的训练数据一样好。我们必须拥有某种优势。我们不能没有优势,所以这种优势将来自数据。
顺便说一句,我们必须合成数据,因为如果数据已经存在于互联网的某个地方,而你已经将其抓取下来,那就不是你的优势,他们也有,所以你必须创造一些真正新颖、比现有数据更好的东西。
通常,提炼是从大型模型开始的,但我们将放弃它,以向您展示我们可能对隐藏的可能性视而不见。所以我现在就开始。从 GPT-2(质量较差的模型)开始。
然后我将做一些稍后概述的创新,以生成高质量的数据集,然后可以使用该数据集来训练小模型,该模型将成为执行特定任务的强大模型。
但问题是,GPT-2 甚至无法理解你的提示。你无法用 GPT-2 进行提示工程。你要求它总结你的句子,而它生成的一些输出根本没有任何意义。
所以你再试一次,因为它的输出通常有一些随机性。你可以生成很多不同的示例,比如数百个示例,但我们发现它几乎总是表现不佳,比如不到 0.1%。
解决方案与进展
但有志者事竟成。所以我们想出了很多不同的方法。其中之一就是我们的神经解码。这是一种即时推理算法,可以对语言模型输出施加任何逻辑约束。
对于任何现成的模型,我们都可以用它来指导输出的语义空间。但由于 GPT-2 太差,即使这样做,成功率也只有 1%。
但总比没有好。现在我们开始有所进步了。因为如果你生成大量示例,然后筛选它们,你实际上可以通过这种方式得到一些好的例子。然后有很多来自聪明学生的不同想法。
我不会深入讨论技术细节,但我们找到了一些方法。为了更容易找到好的例子,我们需要将成功率提高到 10% 以上。
总体流程如下:首先,我们从一个质量较差的教师模型开始,生成大量数据点。然后,由于数据中含有大量噪音,因此需要进行严格的过滤。
我们采用了三层过滤系统。虽然细节并不重要,但我想重点介绍第一层,即过滤器,它基于现成的分类器,用于确定摘要是否可以从原始文本中逻辑地推断出来。
这个模型并不完美,它的准确率可能只有 70% 到 80%,但是当你积极地使用它来过滤数据时,它就足够好了。
然后,我们利用这些数据训练一个较小的模型,该模型可以成为下一代学生的教师模型。我们重复了这个过程几次,最终得到了高质量的 DIMM 总和数据和高质量的模型。
与当时最好的模型 GPT-3 相比,GPT-3 是当时最好的摘要模型。
但一旦它问世,我们成功超越了 GPT-3,人们似乎不再关心其他的了,因为他们可以做所有事情,包括总结,所以我们为什么要费心呢?
任务 2:文档摘要
接下来是我们的“碟中谍 2”。我们现在要与 3.5 竞争。而且,为了让我们的挑战更具挑战性,我们现在要总结整个文档,而不仅仅是句子。而且,我们在不依赖现成的蕴涵分类器的情况下完成所有这些工作。
我的意思是,你实际上可以做到这一点,比如从学术角度来看,我们想看看我们能在多大程度上打破关于规模的常见假设。
因此,我们在这里的新工作是采用信息理论方法进行提炼,关键思想是我们不再使用现成的 LLM。我们将使用一些公式,这些公式实际上只有三行,其中包括一些条件概率分数,您可以使用现成的语言模型来计算。
实验与结果
现在还为时过早,所以我们不会详细讨论这些公式。但我可以告诉你,如果你重新排列这些公式,你可以将其视为点对点互信息的一个特例。你可以用它来过滤你的数据。
所以我们使用与以前相同的整体框架。我们现在使用 2.8 亿个参数的模型,因为我们觉得它比 GPT-2 略好一些。
对于过滤,我们现在使用我之前展示的三个简短公式。然后我们做同样的事情。这一次,我们把模型做得更小,只有一个 5 亿参数的模型。这会产生一个高质量的文档摘要数据集以及一个模型。
那么我们的表现如何?正如承诺的那样,至少在这项任务上,我们的表现与 -3.5 相当,甚至更好,具体取决于基准设置和标准。您可以在我们的论文中找到更多详细信息。
总而言之,我展示了如何即使不依赖大规模预训练模型或其他大规模资源也可以学习文档摘要。
然而,这两篇论文背后真正的研究问题是我们如何学会抽象思维。
因为现在的做法是让模型尽可能大。越大越好。但是我们人类无法像模型那样记住所有的上下文,比如一百万个。没有人能记住一百万个上下文。你会立即抽象出我刚刚告诉你的一切。但你仍然记得我到目前为止所说的一切。
这就是人类惊人的智慧,我们尚不清楚如何利用人工智能模型有效地实现这一点。我相信这是可能的。我们只是还没有做足够的探索,因为我们对规模感到困惑。
任务 3:-gram
所以,-gram 是我们的第三个挑战。稍微换个话题,现在的任务是让经典的统计 N-gram 语言模型在神经语言模型中发挥作用。
你们中有多少人还在讨论 n-gram 模型?我不知道。你们还在学习这个吗?
这里我们将 n 设置为无穷大。我们将进行数万亿次这样的计算,响应时间必须非常快,甚至不需要使用 GPU。哇!让我告诉你这有多难。
假设您要在经典的 n-gram 语言模型中索引 5 万亿个,并且 n 是无限的,则您需要处理大约 2 千万亿个唯一的 n-gram 序列。您需要枚举、排序、计数和存储一些错误,这可能会占用大约 32 TB 甚至更多的硬盘空间。
我们怎么知道呢?但是数据量实在太大了。我们无法处理。
如果你看看其他人建立的大规模经典 N-gram 模型,那是 - 在 2007 年,由 Jeff Dean 和其他人领导的团队,他们只处理了 2 万亿 - 我的意思是,这在那个时代已经很多了。
他们使用了五元 n-gram,结果产生了大约 3000 亿个不同的 n-gram 序列,他们必须对这些序列进行枚举、排序、计数等。这可是非常多的。
我们实际上并没有进一步增加这个数字。那么我们如何实现这种无限的扩展呢?
在我解释我们如何做到这一点之前,如果您有兴趣,我邀请您查看这个在线演示:。
在这里你可以搜索任何你想要的东西。这是一个例子,这是一个 48 个字符的单词。我不明白为什么这个词存在。但如果你搜索它,你会发现它不仅存在,而且有超过 3,000 个实例。这次搜索花了 5.5 毫秒。
此外,它还会向您展示如何分割长单词。您还可以尝试搜索多个单词,看看下一个可能的单词是什么。
例如,“行动胜于言语”,那么接下来会出现什么词呢?该网站会向您显示可能出现的下一个词。而且,它会非常快速地显示出来。
解决方案与进展
那么,我们怎样才能做到这一切呢?
你可能会惊讶地发现我们的方法其实非常简单。有一种称为后缀数组的数据结构,可能不是所有算法课程都会讲到,但有些课程会讲到。这是我们非常谨慎地实现的数据结构。因此,我们使用后缀数组来索引整个网络语料库。
实际上,我们不会预先计算这些 n-gram 统计数据。我们只是提前准备好这个数据结构。当您进行特定查询时,我们会即时计算。得益于这个数据结构,我们可以非常快速地完成计算,尤其是因为它是用 C++ 实现的。
我知道 C++ 可能不是目前人工智能研究的首选语言,但事实上,使用 C++ 会让你的程序运行得更快。
这有多便宜?我们实际上只花了几百美元来索引所有内容,而且提供 API 的成本相当低廉。即使没有 GPU,它也非常快。不同类型的 API 调用的延迟只有几十毫秒。你可以用它做很多事情。
我现在可以分享的一件事是,您可以在神经语言模型上使用我们的插值来减少困惑度,这是常用来评估语言模型质量的指标。
我认为这只是我们能做的冰山一角。实际上,我还在做一些我希望分享的事情,但目前还不能告诉你。
但我们已经开始提供这些 API 端点。自几周前开始统计以来,我们已经提供了 6000 万次 API 调用,这还不包括我们自己的使用量。我对人们如何使用我们非常感兴趣。
总结
概括起来,我的发言主要讲了:
我知道人们对此有很多担忧,也许质量不高,也许存在偏见。所以你不能用常规方式来做这件事。你必须以一种更具创新性的方式来做。
然而,越来越多的证据表明这种方法是有效的。
例如使用Meta的SAM( )进行图像分割就是AI合成图像分割标注的一个例子,虽然有人工验证的帮助,但单凭人类是不可能对如此大量的图像样本进行标注的。
这是另一个例子。论文“你所需要的一切”是另一个例子。当你拥有真正高质量的数据,比如教科书质量的数据,这些数据是综合的,你实际上可以在许多不同的任务中与更强大的对手竞争。
也许在某些方面,它的适用范围不如大型模型那么广泛,但它非常适合许多业务需求。你可能不需要通才,而可能需要专才。
另外,“are all you need”也意味着质量最重要。不只是数量,还要质量。DALL-3就是一个很好的例子。为什么它突然超越了DALL-E 2?很大一部分是因为它有更好的图像标注。但更好的图像标注是什么呢?
在此之前,我们使用了所有优秀的图像注释。他们合成了这些图像注释。这就是我们获得高质量数据的方式。
当然,你需要小心谨慎地做这件事,但越来越多的特定任务符号知识提炼的例子,包括我自己实验室的工作,都表明这是可能的。这确实可以让小模型做出惊人的事情。
因此,更重要的是数据的质量、新颖性和多样性,而不仅仅是数量。
如果想进一步了解如何构建小模型应用并进行工程化实施,可关注2024亚太人工智能及机器人产业峰会暨GOTC全球开源技术峰会,微软资深云技术布道师(AI方向)陆建辉将在“最佳实践”论坛进行深入讲解。
陆建辉多年来一直活跃在不同的技术社区推动技术,他不仅是微软// 大会的讲师,也是.NET Conf 的讲师,撰写过和Phi 3,目前专注于SLM和,以及生成式人工智能应用的实现。
“最佳实践”论坛还将邀请广东智用人工智能应用研究院产业与社区CTO张善友、风清科技()大型语言模型及算法专家王飞、小马科技创始人、《-Flex》作者杨福海、阿里云技术专家蔡剑、全栈工程师、《LLM技术普及》作者莫索等,带领开发者探索和分享最新的实践、技术和工具,深入探讨如何高效可靠地管理和运行大规模语言模型,保证其在生产环境中发挥最佳性能。
GOTC 2024 注册:
扫描或长按识别二维码
2024亚太人工智能与机器人产业峰会暨GOTC全球开源技术峰会由中国人工智能学会、开源中国联合主办,将于7月13日至14日在杭州举办。
峰会将汇聚全球顶尖专家学者、商界领袖与开源技术代表,就机器人技术、软件开发、开源技术、AI大模型等前沿领域展开深入探讨。
此次大会将重点展示机器人在制造业、医疗健康、物流和服务业等行业的最新应用,探讨智能算法和自主学习能力如何提升机器人性能,并分享开源技术在促进技术创新与协作方面的关键作用。
此外,峰会还将重点关注AI大模型的最新研究进展及其在实际应用中的挑战和机遇。
结尾
热门文章