摘要
1) 一句话总结 本文档总结了关于语言模型端到端推理的讲座内容,系统梳理了神经网络与 Transformer 基础架构、提示方法(如思维链)、基于合成数据集的推理能力评估,以及工具调用和模型可靠性等核心议题。
2) 核心要点
- 推理范式转变:语言模型实现了从传统“自然语言解析-逻辑表示推理-文本生成”流水线,到直接在自然语言中进行端到端推理的转变。
- 语言模型与神经网络基础:语言模型的核心目标是预测下一个词在词表上的概率分布;其底层神经网络通过输入与权重的加权和及非线性激活函数构建。
- Transformer 架构:当前主流大模型多采用 Transformer,其核心由多头注意力层(基于值、键、查询矩阵计算)和前馈层叠加组成,深层网络需配合层归一化以稳定训练。
- 提示方法:零样例、少样例和思维链是常用的提示技巧;在示例中加入分步推理的思维链能显著提升模型在数学与常识推理任务中的表现。
- 合成数据集评估:为准确评估推理链条的正确性,研究者构建了难度、步数和规则可控的合成数据集,以排除预训练数据记忆的干扰。
- 推理能力的关键影响因素:推理能力具备规模效应(极大规模模型才有明显提升),且受训练配方影响(加入代码数据可提升推理);此外,模型常借助预训练的世界知识辅助推理,长链条推理表现较为脆弱。
- 外部工具调用:针对语言模型不擅长复杂算术等缺陷,可通过微调让模型生成 API 调用指令(如计算器、检索工具),这也是神经符号方法的发展方向之一。
- 受限解码与高级提示:在生成 Prolog 等逻辑代码时,可通过受限解码约束输出语法;除了思维链,自我提问、思维树等探索式提示方法也可用于扩展推理能力。
3) 风险与不足
- 数据污染与捷径策略:测试题可能与预训练数据高度相似,导致模型仅在“复述记忆”或利用虚假关联走捷径,而非真正进行推理。
- 长链脆弱性与规划缺陷:推理步数越多模型越容易出错;大模型在长链推理中容易生成“看似合理但偏离正确方向”的误导性步骤,证明规划仍是难点。
- 歧义处理缺陷:在面对有歧义的自然语言前提时,模型往往倾向于将概率质量集中到单一解释上,忽略其他合理解释。
- 规模效应的局限性:继续增加模型层数和注意力头是否能必然提升推理能力存在不确定性,且受限于高质量训练数据的储备。
- 幻觉与迎合倾向:模型存在生成虚假信息的风险,且容易迎合用户的立场和倾向,难以始终保持客观准确。
- 特定逻辑规则掌握薄弱:模型在处理自然演绎中的某些特定规则(尤其是与否定相关的规则)时更容易出错。
正文
这段分享的主线很清晰:先用最小的神经网络与语言模型概念,把“语言模型为何能在自然语言里做端到端推理”讲清楚;再解释 Transformer 的注意力与前馈层;最后回到推理评估与现实局限,讨论提示方法、合成数据集、工具使用以及可靠性问题。
1. 从流水线到端到端:语言模型能不能用来推理
讲者把传统做法概括为一条流水线:
- 自然语言输入
- 语义解析为逻辑表示
- 在逻辑表示上推理
- 将结果再生成自然语言输出
而近年来另一条路线是:把推理过程也放在自然语言里完成,不做显式的中间逻辑表示转换。讲者把大型语言模型视为这类端到端推理的可行工具,并以“文字题”作为切入点:系统要先理解题目,再给出答案。
2. 语言模型是什么:下一个词的概率分布
讲者用一个最简定义说明语言模型的目标:给定一段词序列,预测下一个最可能的词。更准确地说,模型输出的是“下一个词在词表上的概率分布”,而不是单一答案。
训练数据也因此变得容易获得:从大量文本里截取前面的若干词作为输入,把紧随其后的词作为输出,构造出海量的输入输出对。
3. 神经网络基础:权重、加权和与激活
讲者用单个神经元解释神经网络:
- 多个输入与对应权重相乘并求和,得到加权和。
- 对加权和应用一个非线性激活函数,得到该神经元的输出。
把许多神经元按不同的连接方式堆叠起来,就形成了神经网络。不同的连接模式、层数、大小与激活函数选择,被讲者称为架构设计;而“针对任务选择合适架构”本身就是神经方法长期面临的难题之一。
4. Transformer 概览:注意力层与前馈层
讲者以语言模型为例说明输入如何进入网络:每个词先映射为维度为 D 的实数向量表示,组成一个 N×D 的矩阵输入。
在架构选择上,讲者提到:过去人们尝试过循环神经网络与长短时记忆网络,但近年来主流大型语言模型多采用 Transformer。讲者把 Transformer 解释为两块核心结构的叠加:
-
注意力层
讲者从“值、键、查询”三组矩阵的计算讲起:输入与若干权重矩阵相乘得到对应矩阵;再通过查询与键的乘积、缩放与 softmax 得到注意力矩阵;最后用注意力矩阵与值矩阵相乘,并与输入做残差相加得到输出。
此外,讲者强调了多头注意力:并行计算多个注意力头,再把各头的输出拼接并线性变换得到最终输出。 -
前馈层
讲者把它描述为两次线性变换加激活函数的组合,结构相对更直接。
为了提升能力,模型会不断堆叠更多层;而当层数很深时,讲者提到需要在注意力层与前馈层之后使用层归一化,以把激活值维持在可控范围内,从而利于训练。
5. 提示方法:从少样例到思维链
讲者把“如何让模型在特定输入上表现更好”归结为一组常用提示技巧:
- 零样例:直接提问。
- 少样例:在问题前给出若干示例,最后再给测试问题。
- 思维链:在示例答案里包含分步推理过程,让模型在测试问题上也输出类似的推理步骤。
讲者展示了思维链在若干推理类任务中的效果对比:在数学与常识推理场景下,加入分步推理往往能显著提升表现,有时甚至能超过专门监督训练的模型基线。
他也用一个在线交互例子提醒:模型在事实性问答上可能会出错,但通过换一种提问方式、让模型逐步推理,结果有时会改善。
6. 语言模型的推理到底来自哪里:污染、捷径与合成数据集
讲者指出两个常见干扰因素:
- 预训练污染:测试题可能与预训练数据高度相似,模型可能在“复述记忆”而不是推理。
- 捷径策略:模型可能学到启发式或虚假关联,用看似有效的方式走捷径。
为更直接地测试推理能力,讲者介绍了他们构建的一类合成数据集:先生成难度可控的逻辑推导过程(可控制推理步数、分支数量、使用规则与复合结构),再把每个推导步骤转成自然语言。这样一来,思维链里的每一步都可以被解析与验证,从而评估的不只是最终答案,而是推理链条的正确性。
讲者分享了几个观察(以转写为准):
- 规模效应:较小模型几乎不具备推理能力,只有非常大规模模型才出现明显提升。
- 训练配方差异:同样规模的模型在训练数据与训练流程不同(例如加入大量代码数据、进行指令微调)时,推理表现会明显不同;讲者提到代码数据往往能提升推理能力。
- 世界知识的帮助:当合成任务使用“真实本体”的概念关系时,模型准确率更高;而当概念关系是虚构或与现实相悖时,模型更难完成推理,说明模型会借助预训练知识绕开部分推导难度。
- 长链脆弱性:推理步数越多,整体表现越容易下降。
讲者还用一个五步推理的例子解释“错误如何发生”:模型前面多步都合理,但某一步出现了偏离(把概念引向错误方向),后续就会在错误前提上继续推导,最终答案错误。统计上也观察到:小模型更常在一开始就出现明显无效步骤;模型变大后,“看似合理但会把证明带偏”的误导性步骤比例会上升,反映出证明规划仍是难点。
7. 工具使用:让模型学会调用计算器与检索
讲者指出语言模型并不擅长大数算术,于是引出“让模型学会使用外部工具”的思路:通过包含 API 调用示例的数据进行微调,让模型生成类似的工具调用输出,从而稳定使用计算器、机器翻译、百科检索等工具。
他把这视为神经符号方法可能发力的方向之一:让语言模型在推理过程中生成对符号工具的调用,辅助规划与验证步骤。
8. 歧义、可靠性与开放问题
讲者还强调了若干现实问题:
- 歧义:在有歧义的自然语言前提下,模型往往倾向于把概率质量集中到单一解释上,而忽略其他合理解释。
- 规模是否还能继续带来推理提升:继续加层数、加注意力头,是否必然提升推理能力,讲者认为并不确定;训练数据是否足够也是关键限制之一。
- 真实性与幻觉:模型可能生成虚假信息;训练数据中包含误导性内容也会带来风险。
- 迎合用户倾向:模型可能更倾向于迎合用户立场,而非提供客观准确的回答。
讲者把这些问题视为重要研究方向,并提出一个核心追问:有没有更系统、更有原则的方法,能让语言模型输出更真实、更可靠、同时保持更客观。
9. 问答摘录:提示、规则、矛盾信息与代码生成
问答环节围绕几类问题展开:
- 仅靠上下文提示能否做证明与验证:讲者认为在证明规模变大、复杂度上升时会很难;上下文长度也限制了能放进提示的信息量。
- 不同模型与开源模型是否有类似限制:讲者提到他们在多种模型上测试过,限制普遍存在(模型名以转写为准)。
- 不同逻辑规则的掌握差异:讲者提到对自然演绎中的多种规则做过测试,某些规则更难掌握,尤其与否定相关的规则可能更容易出错。
- 提示方法的替代与扩展:除了思维链,还提到自我提问、思维树等探索式提示方法,以及另一种转写为“朗姆巴达”的方法。
- 把自然语言转成 Prolog:更大模型在语法层面更稳,但仍可能生成无效代码;讲者提到可用受限解码,在给定上下文无关语法的前提下约束输出形式。
- 成本:讲者给出一个粗略估计,早期通过 API 做评估实验的成本可能达到数百美元甚至接近千美元,之后成本下降到更低水平。