Skip to content

Chapter 15 · 与 Transformer 的结构边界共处

这一部分要传达的最重要的事是:有些失败模式你修不了——不是你水平不够,是 Transformer 的结构边界。承认这一点,比"勇敢地继续优化 prompt"更有价值——节省下来的时间投入到 A/B 档真正有解的问题上去。



Item 41:接受反转诅咒——双向事实必须显式存两份

"A 的妈妈是 B" 不蕴含 "B 的儿子是 A"——对 LLM 而言。

核心

Reversal CursearXiv:2309.12288):单向自回归训练让模型只能学会单向关联。模型见过 "Tom Cruise's mother is Mary Lee Pfeiffer",但反问 "Mary Lee Pfeiffer's son is?" 会失败。规模和 fine-tuning 都不能修。

Things to Remember

  • 入库阶段双向写入:A→relation→BB→inverse_relation→A 各存一份。
  • 不要相信"换大模型就好了"——OpenAI o1 也仍受影响。
  • 反转关系的查询走显式 KG,不走 LLM 直查。

Item 42:任何 4 步以上的精确组合推理都不能信任

Transformer 是子图匹配器,不是组合推理引擎。

核心

Faith and FatearXiv:2305.18654):多位数乘法、深度组合推理的准确率随步数指数衰减。模型在做的不是真组合推理,是"大量训练样本上的子图近似匹配"——这意味着 4 步以上你必须把它转成代码或拆成子任务(回到 Item 8 + Item 19)。

Things to Remember

  • ≥ 4 步精确推理一律走 Tool / 任务分解。
  • 不要在生产中让模型一次性回答 "把这 50 个数字按规则加权再排序"。
  • 用 GSM-IC / GSM-Hard 类基准评估你的真实场景受影响程度。

Item 43:否定盲是必然的——业务上避免依赖否定语义

"X cannot Y" 与 "X can Y" 在 LLM 看来差异微弱。

核心

Negated LAMAarXiv:1911.03343)揭示:模型对否定词不敏感,肯定句与否定句的概率分布几乎相同。这是因为训练语料中"X is Y"出现频率压倒性高于"X is not Y"——模型学会了"X 关联 Y",没学会"X 否定 Y"。

Things to Remember

  • 业务规则里避免"如果 X 不是 Y 就……"这种依赖否定的判断。
  • 把否定改写为正向 enum:用 status: ["active","inactive"] 替代 is_not_active
  • 真要测否定理解 → Negated LAMA 子集。

Effective LLM