【人工不智能】为什么问有些大模型 “strawberry”中有几个字母“r” 会回答错,是什么原理?

大模型在回答类似“strawberry中有几个字母‘r’”这类看似简单的问题时出错
在这里插入图片描述
这个问题本质上是由其技术原理与人类认知方式的根本差异导致的,涉及到大模型在处理文本时的Tokenization(分词)过程以及其预测机制。具体来说,以下是几个关键点:


错误原因:

1. Token 化机制的天然缺陷

在这里插入图片描述

大模型处理文本的第一步是将字符序列转换为子词单元(Token),这一过程可能导致字母级信息丢失

  • GPT-4o 的分词结果:strawberry → str-aw-berry
  • Llama 3.1 的分词结果:strawberry → st-raw-berry
  • Claude 3 的分词结果:strawberry → str-aw-berry

这种分词方式将原本连续的字母序列切割为语义片段,导致模型难以追踪每个字母的具体位置。例如,berry中的两个r被合并为一个 Token,模型可能误认为这是一个整体而非两个独立字母


2. 注意力机制与长程依赖

大模型的核心机制是基于概率的自回归生成,其本质是 “猜测下一个 Token” 而非 “逻辑推理”:

  • 注意力机制的均值特性:谷歌研究表明,Transformer 的注意力权重会被归一化,导致无法有效累积计数信息。例如,当需要统计r的数量时,模型可能因注意力分散而漏数。
  • 训练数据的偏差:若训练数据中存在大量拼写错误(如strawbery),模型会将错误模式泛化。例如,千问模型在解释时提到 “rr 里面有两个 r”,但最终仍漏数。
  • 词表大小的限制:当字符数量超过模型维度(如 Llama 3.1 的 405B 参数),计数任务的准确率会显著下降。

3. 任务特性与模型能力

大模型的能力分布呈现不均衡性(Jagged Intelligence),具体表现为:

  • 复杂任务强,简单任务弱:能通过法律考试、数学竞赛,却数不清字母。
  • 语义理解强,形式计算弱:擅长理解 “草莓” 的含义,却无法准确统计字符。
  • 模式匹配强,逻辑推理弱:依赖训练数据中的统计规律,而非符号逻辑。

这种现象源于模型的 “无自我认知” 特性 :它无法判断自身是否擅长某项任务,也不会主动调用工具(如代码解释器)辅助计数。


如何解决

  • 特殊符号强制分词:使用全角字符或分隔符(如ⓢⓣⓡⓐⓦⓑⓔⓡⓡⓨ)迫使模型将每个字母视为独立 Token
  • 提示词优化:要求模型“先拼写单词,再逐个字母检查”。
  • 分步思考(Chain-of-Thought):要求模型 “分步骤思考”,如:
    Step 1: 拼写 "s-t-r-a-w-b-e-r-r-y"。
    Step 2: 从左到右扫描字母,标记所有“r”的位置。
    Step 3: 统计标记数量。
    
  • 外部工具辅助:结合拼写检查API或自定义函数(如count("r", "strawberry")),但需模型支持插件调用,如:提示 “请编写 Python 代码统计 r 的数量”,模型可直接输出strawberry.count(‘r’)

总结

大模型的错误源于其设计初衷(语义生成)与符号操作任务(如精确计数)的不匹配,加之训练数据噪声和分词机制的局限。模型的错误率与其分词器设计、训练数据和架构优化密切相关。改进需结合提示工程或外部工具,而非单纯依赖模型自身能力。

参考:https://developer.aliyun.com/article/1639729

### 大模型误分析 大模型在处理单词 "strawberry" 并得出其含有两个字母 'r' 的结论时,实际上遵循了一种基于统计和模式匹配的方法。然而,在某些情况下,这种机制可能导致误解或计算失误。 #### 统计学习的基础 大模型通过大量数据训练而成,主要依赖于上下文中的概率分布来进行预测和推理。对于像 “strawberry” 这样的简单题,理论上应该能够给出正确答案。但实际上,如果输入的数据集中存在噪声或者一致的结果,则可能会误导模型的学习过程[^1]。 #### 数据集偏差的影响 当涉及到具体细节如字符数量等题时,如果没有足够的高质量标注样本供模型学习,就可能出现误差。例如,“strawberry中有几个r?”这类基础性题是相对少见的查询类型,因此可能未被充分覆盖在其训练语料库中[^3]。这意味着即使大多数时候它能很好地完成任务,但对于一些特别简单的事实型题也可能犯。 #### 上下文理解足 尽管具备强大的自然语言处理能力,但有时这些系统并能完全按照人类思维方式去解析每一个单独词语内部结构。比如在这里讨论的是单个英文单词内的重复字母数目情况;而通常情况下它们更擅长应对较复杂的句子关系理解和生成工作而是逐字扫描并精确计数某个特定字符出现次数的任务[^2]。 ```python word = "strawberry" count_r = word.count('r') print(f"The letter 'r' appears {count_r} times in the word '{word}'.") ``` 上述Python代码展示了如何准确地计算字符串中某字符的数量。这种方法直接且无误,与之相比,大模型由于其内在的工作机理差异,偶尔会出现偏离预期的现象。 ### 结论 综上所述,虽然现代的大规模预训练语言模型拥有令人惊叹的能力,但在面对非常具体的、需要高度准确性的小范围知识点询时仍可能存在局限性和潜在漏洞。这是由多方面因素共同作用造成的,包括但限于训练数据的质量、算法设计特点以及应用场景适配度等等。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值