![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
为什么人工智能无法数出“草莓”这个词中“R”的数量?
大型语言模型,尤其是 OpenAI 的 ChatGPT,彻底改变了我们与能够理解并生成类似人类文本的机器的交互方式。但这些模型本身也带有怪异的特征。最近,社交媒体上最令人讨厌的怪异现象是这个大型语言模型无法正确计算单词中某个字母的数量。一个非常流行的例子是“strawberry”这个词,其中 AI 经常无法正确计算“r”出现的次数。但它为什么会这样呢?答案就深藏在这些模型处理和生成语言的核心中。
人工智能在字母计数等问题上遇到困难的主要原因之一是它处理单词的方式。语言模型(例如 GPT-3 和 GPT-4)不会将单词视为单个字母的序列。相反,它们将文本分解为称为“标记”的较小单元。标记可以短至一个字符,也可以长至整个单词,具体取决于相关模型的设计和所涉及的特定单词。
例如,单词“strawberry”最有可能被拆分成两个标记,即模型从训练中知道的部分单词片段的表示。问题是,这些通常与单词中的字母不对应。这是因为,在“strawberry”这样的例子中,AI 可能看不到单词分解成完整的单个字母,而是两个标记;例如标记 ID 496 和 675。当稍后要求它计算特定字母时,该模型将无法找到一种简单的方法将标记映射回特定字母的出现次数。
基本上,语言模型会根据先前的单词或标记给出的上下文来预测序列中的下一个单词或标记是什么。这尤其适用于生成不仅连贯而且了解其上下文的文本。但是,它并不真正适合需要精确计算某些内容或推理单个字符的目的。
如果你要求人工智能计算“strawberry”这个词中字母“r”出现的次数,它就不会有如此精细的单词表示,无法从中得出该字母的每个实例的数量和位置。相反,它会根据自己学到的关于从请求结构中形成预测的知识来回答问题。当然,这可能不准确,因为它所学到的数据不是关于计算字母的,甚至可能不包括追踪我们示例单词中的“r”所需的材料类型。
另一个重要点是,大多数聊天机器人使用的语言模型本身并不适合进行显式计数或算术。换句话说,纯语言模型只不过是高级词典或预测文本算法,它们根据学习的模式执行概率加权的任务,但在需要严格逻辑推理的任务(例如计数)上却举步维艰。如果要求人工智能拼出一个单词或将其分解成单个字母,它可能会更经常地正确回答,因为这更符合它所接受的训练任务:文本生成。
尽管存在这些限制,但人工智能在此类任务中的表现仍有可能得到改善。可以通过要求人工智能使用各种编程语言(例如 Python)进行计数来改进。例如,您可以尝试给人工智能一个指令,让它编写一个 Python 函数来计算“strawberry”中“r”的数量,它很可能会正确计算。我们使用这种方法是因为它利用了人工智能理解和生成代码的能力,这些代码可以执行以正确执行任务。
除此之外,更新一代的语言模型与其他工具和算法相结合,使得这些模型能够更有效地执行更结构化的任务,其中还包括计数和算术。
嵌入符号推理或将 LLM 与外部推理引擎相结合将使 AI 系统能够克服这些缺点。
单词“strawberry”中字母计数的问题,指出了这方面更大、更普遍的问题:这些训练模型的“集体愚蠢”。这些模型,即使它们已经在非常大的数据集上进行训练,因此可以在非常复杂的水平上执行文本生成,但有时也会犯下非常愚蠢的错误,而这些错误连小孩子都能轻易避免。发生这种情况是因为模型的“知识”必须由模式识别和统计关联组成,而不是其对现实世界的理解或逻辑推理。
即使经过详细指导,甚至在多个模型相互检查的情况下,人工智能仍然会固执地坚持错误答案。这种行为非常详细地表明,不要高估人工智能系统超出其强项的能力,而是充分了解它们能做什么和不能做什么是多么重要。
人工智能无法计算“草莓”中“r”的数量,这绝不是一个微不足道的缺陷;相反,它反映了语言模型的底层架构和设计理念。这些模型在生成类似人类的文本、理解上下文和模拟对话方面非常强大,但并非直接用于需要特别关注字符级细节的任务。
随着人工智能的不断进步,未来的模型可能会通过改进标记过程、集成额外的推理工具,甚至完全不同的理解和操纵语言的方式,更有能力完成此类任务。在此之前,我们应该了解它的局限性,使用适当的解决方法,并认识到虽然它可以模拟理解,但它还没有真正像人类那样“理解”。