大型语言模型对编码来说是错误的吗?
当目标是准确性、一致性、精通游戏或找到一个正确答案时,强化学习模型会击败生成式人工智能。
像GPT-4这样的大型语言模型的兴起令人瞩目,它们能够生成高度流畅、自信的文本。可悲的是,炒作也是如此:微软的研究人员屏气地将微软资助的OpenAI GPT-4模型描述为展示“人工通用智能的火花”。
当然,除非微软指的是产生幻觉的倾向,生成的错误文本肯定是错误的。GPT还不擅长下棋和围棋等游戏,不擅长数学,编写的代码可能有错误和微妙的漏洞。
这并不意味着大型语言模型都是炒作。一点也不相反,这意味着我们在关于生成式人工智能(GenAI)的对话中需要一些视角,而不是夸大其词。
正如IEEESpectrum的一篇文章所详述的那样,一些专家,例如OpenAI的IlyaSutskever,认为添加带有人类反馈的强化学习可以消除LLM幻觉。但是其他人,比如Meta的YannLeCun和GeoffHinton(最近从Google退休),认为大型语言模型中更根本的缺陷在起作用。两人都认为,大型语言模型缺乏非语言知识,而非语言知识对于理解语言所描述的潜在现实是至关重要的。
在一次采访中,Diffblue公司首席执行官MathewLodge认为,有一种更好的方法。他说,“小型、快速、运行成本低廉的强化学习模型,在从玩游戏到编写代码的各种任务中,都能轻松击败拥有千亿参数的大型语言模型。”
我们是否在错误的地方寻找人工智能黄金?
正如Lodge所说,生成式人工智能肯定有它的一席之地,但我们可能正试图将其强行引入强化学习更好的领域。以游戏为例。
国际象棋大师LevyRozman发布了一段他与ChatGPT对弈的视频。这个模型做出了一系列荒谬和非法的动作,包括捕捉自己的棋子。最好的开源国际象棋软件(Stockfish,它根本不使用神经网络)让ChatGPT在不到10步的时间里击败,因为大型语言模型找不到合法的走法。这是一个很好的证明,大型语言模型远远达不到通用人工智能的宣传,这并不是一个孤立的例子。
谷歌AlphaGo是目前最好的围棋人工智能,它是由强化学习驱动的。强化学习的工作原理是为一个问题生成不同的解决方案,尝试它们,使用结果来改进下一个建议,然后重复这个过程数千次以找到最佳结果。
在AlphaGo的例子中,人工智能会尝试不同的走法,并预测这是否是一个好走法,以及它是否有可能从这个位置赢得比赛。它使用反馈来“跟踪”有希望的移动序列,并生成其他可能的移动。其效果是对可能的移动进行搜索。
这个过程被称为概率搜索。你不可能尝试所有的招式(招式太多了),但可以花时间搜索可能找到最佳招式的区域。这对于玩游戏来说非常有效。AlphaGo过去曾击败过围棋大师。AlphaGo并非万无一失,但它目前的表现比当今最好的大型语言模型还要好。
概率与准确性
当有证据表明大型语言模型的表现明显落后于其他类型的人工智能时,支持者认为大型语言模型“会变得更好”。然而,根据Lodge的说法,“如果我们同意这个观点,我们需要理解为什么他们会在这类任务中做得更好。”他继续说,这就是事情变得困难的地方,因为没有人能预测GPT-4对特定提示会产生什么效果。这种模式是人类无法解释的。他认为,这就是“‘即时工程’不存在的原因。”他强调,对于人工智能研究人员来说,证明大型语言模型的“涌现特性”存在也是一场斗争,更不用说预测它们了。
可以说,最好的论证是归纳法。GPT-4在一些语言任务上比GPT-3更好,因为它更大。因此,更大的模型会更好。
Lodge认为:“唯一的问题是,GPT-4仍在努力完成OpenAI指出的GPT-3所面临的挑战。数学就是其中之一;GPT-4在加法运算方面优于GPT-3,但在乘法和其他数学运算方面仍存在困难。
使语言模型更大并不能神奇地解决这些难题,甚至OpenAI也说更大的模型不是答案。原因归结为大型语言模型的基本性质,正如OpenAI论坛所指出的那样:“大型语言模型本质上是概率性的,并且通过根据他们在训练数据中观察到的模式生成可能的输出来运行。在数学和物理问题中,可能只有一个正确答案,而且生成这个答案的可能性非常低。”
相比之下,由强化学习驱动的人工智能在产生准确结果方面要好得多,因为这是一个寻求目标的人工智能过程。强化学习有意地朝着期望的目标迭代,旨在产生它能找到的最接近目标的最佳答案。Lodge指出,大型语言模型课程“并不是为了迭代或寻找目标而设计的。它们的设计目的是给出‘足够好’的一次或几次回答。”
“一次性”答案是模型产生的第一个答案,它是通过预测提示中的一系列单词而获得的。在“几次射击”方法中,模型被给予额外的样本或提示,以帮助它做出更好的预测。大型语言模型通常也会加入一些随机性(也就是说,它们是“随机的”),以增加更好的回答的可能性,所以他们会对同样的问题给出不同的答案。
并不是说大型语言模型世界忽视了强化学习。GPT-4结合了“强化学习与人类反馈”(RLHF)。这意味着核心模型随后由人类操作员训练,使其更喜欢某些答案,但从根本上说,这不会改变模型首先生成的答案。例如,Lodge说,大型语言模型可能会生成以下选项来完成句子“韦恩•格雷茨基喜欢冰….”。
1.韦恩•格雷茨基喜欢冰淇淋。
2.韦恩•格雷茨基喜欢冰球。
3.韦恩•格雷茨基喜欢冰上钓鱼。
4.韦恩•格雷茨基喜欢滑冰。
5.韦恩•格雷茨基喜欢冰酒。
人工操作员对答案进行排序,可能会认为加拿大传奇冰球运动员更喜欢冰球和滑冰,尽管冰淇淋有着广泛的吸引力。人类的排名和更多的人类写的回答被用来训练模型。请注意,GPT-4并没有假装准确地知道韦恩•格雷茨基的偏好,只是在提示下最可能的完成。
最后,大型语言模型的设计并不是高度准确或一致的。在准确性和确定性行为之间存在一种权衡,以换取普遍性。对Lodge来说,所有这些都意味着,在大规模应用人工智能方面,强化学习击败了生成式人工智能。
将强化学习应用于软件
软件开发呢?正如我所写的,GenAI已经为那些使用GitHubCopilot或AmazonCodeWhisperer等工具提高生产力的开发人员提供了机会。这不是猜测——它已经发生了。这些工具根据集成开发环境中插入点前后的代码预测接下来可能出现的代码。
事实上,正如VisualStudio杂志的DavidRamel所言,最新版本的Copilot已经生成了61%的Java代码。对于那些担心这会减少软件开发人员工作的人,请记住,这些工具需要勤奋的人工监督来检查完成情况,并对其进行编辑,以使代码正确编译和运行。自IDE诞生之初,自动补全功能就一直是IDE的主要功能,而Copilot和其他代码生成器使它变得更加有用。但是大规模的自主编码(实际上需要编写61%的Java代码)就不是这样了。
然而,强化学习可以进行精确的大规模自主编码,Lodge说。当然,他这么说是出于既得利益:2019年,他的公司Diffblue发布了基于强化学习的商业单元测试编写工具Cover。Cover在没有人工干预的情况下编写完整的单元测试套件,使大规模自动化复杂的、容易出错的任务成为可能。
Lodge有偏见吗?绝对的。但他也有很多经验来支持他的信念,即强化学习在软件开发方面可以胜过GenAI。如今,Diffblue使用强化学习来搜索所有可能的测试方法的空间,为每个方法自动编写测试代码,并在编写的测试中选择最佳测试。强化学习的奖励函数基于各种标准,包括测试的覆盖率和美学,其中包括看起来像是人类编写的编码风格。该工具平均在一秒钟内为每种方法创建测试。
Lodge认为,如果目标是为一个没有人理解的程序自动编写10,000个单元测试,那么强化学习是唯一真正的解决方案。“大型语言模型无法竞争;人类没有办法有效地监督它们,并在这种规模上纠正它们的代码,使模型更大、更复杂并不能解决这个问题。”
结论:大型语言模型最强大的地方在于它们是通用语言处理器。他们可以完成没有受过明确训练的语言任务。这意味着他们可以在内容生成(文案)和许多其他事情上做得很好。Lodge强调:“但这并不能使大型语言模型成为人工智能模型的替代品,人工智能模型通常基于强化学习,后者更准确、更一致,而且可以大规模使用。”