【Hacker News搬运】How Chain-of-Thought Reasoning Helps Neural Networks Compute
-
Title: How Chain-of-Thought Reasoning Helps Neural Networks Compute
思维链推理如何帮助神经网络计算
Text:
Url: https://www.quantamagazine.org/how-chain-of-thought-reasoning-helps-neural-networks-compute-20240321/
标题:如何通过思维链推理帮助神经网络计算 | 量子杂志 作者:本·布鲁克赛尔 2024年3月21日 发布日期:不详 顶部图片链接:不详 文本: 您的中学老师可能没有教您如何添加20位数字。但是,如果您知道如何添加较小数字,那么只需要纸和笔以及一点耐心。从个位数开始,一步一步地向左进行,很快您就能轻松地堆叠出千兆字节。 这些问题对于人类来说很容易,但如果我们以正确的方式接近它们的话。 “我们人类解决这些问题的方式不是‘盯着它然后写下答案’,”哈佛大学的机器学习研究者Eran Malach说。“我们实际上是在一步步地走。” 这种洞察力启发了研究大型语言模型的研究人员,这些模型为像ChatGPT这样的聊天机器人提供动力。尽管这些系统可能在涉及几步运算的问题上表现出色,但它们往往会在大步骤的问题上失分,比如计算两个大数字的和。但2022年,一组谷歌研究人员通过要求语言模型生成逐步解决方案,展示了这种方法可以解决之前似乎超出了它们能力的问题。他们的技术,称为思维链提示,很快就被广泛采用,尽管研究人员仍在努力理解它是如何工作的。 现在,有几个团队通过使用理论计算机科学中一个鲜为人知的分支——计算复杂性理论的技术,探索了思维链推理的力量。这是研究使用复杂性理论研究语言模型的内在能力和限制的最新一章。这些努力澄清了我们应该期望模型在哪里失败,并可能指向构建它们的新方法。 “它们去掉了一些神秘感,”威斯康星大学的机器学习研究者Dimitris Papailiopoulos说。“这是件好事。” 训练变压器 大型语言模型是围绕称为人工神经网络的数学结构构建的。这些网络中的许多“神经元”对代表单个单词的数字字符串执行简单的数学操作,并将每个单词转换为另一个。这些操作的细节取决于另一组称为网络参数的数字,这些数字量化了神经元之间的连接强度。 为了训练一个语言模型以产生连贯的输出,研究人员通常从具有随机值的参数开始,然后向它提供来自互联网的大量数据。每次模型看到一个新的文本块时,它都会尝试预测每个单词。它根据第一个单词预测第二个单词,根据前两个单词预测第三个单词,依此类推。它将每个预测与实际文本进行比较,然后调整其参数以减少差异。每次调整只改变模型的预测一点点,但它们的集体效果使模型能够对它从未见过的输入做出连贯的响应。 研究人员已经用语言模型训练了20年。但真正起飞是在2017年,当时谷歌的研究人员引入了一种新型的网络,称为变压器。 “这是七年前提出的,这看起来像是史前时代,”智利天主教大学机器学习研究者Pablo Barceló说。 变压器之所以具有变革性,是因为它们很容易扩展——增加参数和训练数据而不使训练变得过于昂贵。在变压器之前,神经网络的参数最多只有几百兆;今天,最大的基于变压器的模型有超过一万亿个参数。过去五年语言模型性能的提高在很大程度上来自于规模的扩大。 变压器通过使用特殊的数学结构称为注意力头,使它们能够从全局角度看待它们正在阅读的文本。当变压器阅读一个新的文本块时,它的注意力头会迅速扫描整个文本,并识别单词之间的相关连接——也许注意到第四个和第八个单词对于预测第十个单词最有用。然后注意力头将单词传递给一个巨大的神经元网络,称为前馈网络,它执行所需的复杂数学运算以生成预测,帮助它学习。 真正的变压器具有多个注意力头层,这些层之间由前馈网络隔开,最后输出预测是在最后一层。但是,在每一层,注意力头已经识别了对于每个单词最相关的上下文,所以并行计算的繁重步骤可以在每个单词上同时发生。这加快了训练过程,使得能够在越来越大的数据集上训练变压器。更重要的是,它允许将训练巨大神经网络所需的大量计算负载分散到多个处理器上。 为了充分利用大型数据集,“你需要让模型变得非常大,”雪城大学的机器学习研究者David Chiang说。“除非它是并行的,否则它根本不可能训练。” 理论研究 理论计算机科学中的神经网络面临着许多困难,尤其是当他们试图解释训练过程时。神经网络使用一个众所周知的程序来逐步调整其参数。但很难理解为什么这个简单的程序能够收敛到一个好的参数集。 而不是考虑训练过程中的情况,一些研究人员通过想象可以任意调整变压器参数来研究它们的内在能力。这相当于将变压器视为一种可编程计算机的特殊类型。 “你有一个计算设备,你想知道,‘它能做什么?它能计算什么样的函数?’”Chiang说。
Post by: amichail
Comments:
stygiansonic: A simplified explanation, which I think I heard from Karpathy, is that transformer models only do computation when they generate (decode) a token. So generating more tokens (using CoT) gives the model more time to “think”.<p>Obviously this doesn’t capture all the nuance.
stygiansonic: 我想我从Karpathy那里听到了一个简化的解释,即转换器模型只有在生成(解码)令牌时才进行计算。因此,生成更多的令牌(使用CoT)会给模型更多的时间进行“思考”<p> 显然,这并不能捕捉到所有的细微差别。