Bootstrap

浅谈推理大模型中使用核心的算法

        推理大模型(如 GPT、PaLM、LLaMA 等)的核心算法原理围绕如何高效生成高质量文本或解决复杂任务展开。以下是关键算法的原理详解,从数学基础到实际应用逐步解析。

1.自注意力机制(Self-Attention)

原理

  1. 目标:捕捉序列中任意两个位置之间的依赖关系,解决长距离依赖问题。

  2. 数学分解

    • 输入:词向量矩阵 X∈Rn×dX∈Rn×d,nn 为序列长度,dd 为向量维度。

    • 线性变换:通过权重矩阵 WQ,WK,WV∈Rd×dkWQ,WK,WV∈Rd×dk​ 生成 Query、Key、Value:

      Q=XWQ,K=XWK,V=XWVQ=XWQ,K=XWK,V=XWV
    • 注意力分数:通过点积计算相关性,缩放避免梯度消失:

      Attention(Q,K,V)=softmax(QKTdk)VAttention(Q,K,V)=softmax(dk​​QKT​)V
  3. 多头注意力:并行计算多个注意力头,增强模型对不同语义空间的捕捉能力:

    MultiHead(Q,K,V)=Concat(head1,…,headh)WOMultiHead(Q,K,V)=Concat(head1​,…,headh​)WO

    其中,每个头的输出维度为 dk/hdk​/h。

关键作用

  • 长距离依赖:直接计算任意两词的关系,无需通过递归或卷积。

  • 并行计算:矩阵运算可并行化,适合 GPU 加速。


2.束搜索(Beam Search)

原理

  1. 目标:在生成文本时,找到概率最高的候选序列,避免贪婪搜索的局部最优。

  2. 步骤

    • 初始化:维护一个大小为 kk 的候选集(称为“束”),初始为起始符。

    • 扩展:每一步为每个候选序列生成下一个词的概率分布,保留 Top-kk 的路径。

    • 终止:当生成结束符或达到最大长度时,选择累积概率最高的路径。

  3. 数学形式

    • 候选序列的联合概率为各步条件概率的乘积:

      P(y1,y2,…,yT)=∏t=1TP(yt∣y1,…,yt−1)P(y1​,y2​,…,yT​)=t=1∏T​P(yt​∣y1​,…,yt−1​)
    • 束搜索通过动态规划近似最大化该联合概率。

优缺点

  • 优点:相比贪婪搜索,生成结果更优;相比穷举搜索,计算效率高。

  • 缺点:可能导致重复或过于保守的输出(因固定保留 kk 个路径)。

改进策略

  • 长度归一化:对长序列的累积概率取平均,避免短序列偏向。

  • 多样性惩罚:抑制重复选择相似候选路径。


3.Top-p(Nucleus)采样

原理

  1. 目标:平衡生成多样性与可控性,避免随机采样的不连贯性。

  2. 步骤

    • 对概率分布按降序排序,选择最小词集合使其累积概率超过阈值 pp。

    • 重新归一化选中词的概率分布,从中采样。

  3. 数学形式

    • 给定概率分布 PP,排序后得到 {x(1),x(2),…,x(n)}{x(1)​,x(2)​,…,x(n)​}。

    • 找到最小 kk 使得 ∑i=1kP(x(i))≥p∑i=1k​P(x(i)​)≥p。

    • 采样范围限定为前 kk 个词,概率重新分配:

      P′(x(i))=P(x(i))∑j=1kP(x(j))P′(x(i)​)=∑j=1k​P(x(j)​)P(x(i)​)​

优势

  • 动态调整:根据当前分布的置信度自动选择候选词数量。

  • 多样性控制:通过 pp 调节生成结果的保守/创造性(如 p=0.9p=0.9 保留主要候选,p=0.5p=0.5 增加多样性)。


4.蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)

原理

  1. 应用场景:复杂推理任务(如数学证明、策略游戏)。

  2. 四阶段流程

    • 选择(Selection):从根节点出发,基于 UCB(Upper Confidence Bound)公式选择子节点,平衡探索与利用:

      UCB(vi)=Q(vi)N(vi)+cln⁡N(v)N(vi)UCB(vi​)=N(vi​)Q(vi​)​+cN(vi​)lnN(v)​​

      其中 Q(vi)Q(vi​) 为节点价值,N(vi)N(vi​) 为访问次数,cc 为探索系数。

    • 扩展(Expansion):若当前节点未被完全探索,扩展新的子节点。

    • 模拟(Simulation):从扩展节点出发,随机模拟至任务终止,获得奖励值。

    • 回溯(Backpropagation):将模拟结果反向更新路径上的节点统计量。

  3. 终止条件:达到预设模拟次数或时间限制后,选择访问次数最多的节点。

        优势

  • 高效搜索:通过模拟快速评估候选路径的价值。

  • 平衡探索与利用:避免陷入局部最优。


5.思维链(Chain-of-Thought, CoT)

原理

  1. 目标:通过显式生成中间推理步骤,提升复杂问题(如数学、逻辑)的解决能力。

  2. 实现方式

    • 显式提示:在输入中要求模型分步推理(如添加“请逐步思考”)。

    • 自生成推理:模型在生成答案前,先输出中间推理过程。

  3. 数学示例

    复制

    输入:若一个房间有3张桌子,每张桌子有4把椅子,共有多少把椅子?
    输出:
    1. 每张桌子有4把椅子。
    2. 3张桌子总共有3 × 4 = 12把椅子。
    答案:12

关键作用

  • 错误定位:通过中间步骤更容易发现推理错误。

  • 知识分解:将复杂问题拆解为子问题,降低单步生成难度。


6.算法对比与选择

算法适用场景核心优势缺点
束搜索翻译、摘要等确定性任务输出质量高,可控性强可能过于保守,计算资源占用高
Top-p 采样创意文本生成多样性高,结果更自然可能生成不连贯内容
MCTS数学推理、策略决策全局最优搜索能力强计算成本极高,需大量模拟
思维链(CoT)复杂逻辑问题提升多步推理能力依赖提示工程,生成步骤可能冗余

7.实际调参建议

  1. 温度参数(Temperature)

    • 高温(>1):平滑概率分布,增加随机性。

    • 低温(<1):锐化概率分布,输出更确定性。

    python

    复制

    # Hugging Face 中的温度调节示例
    outputs = model.generate(input_ids, temperature=0.7)
  2. 束搜索与采样结合

    python

    复制

    # Beam Search + Top-p 采样
    outputs = model.generate(
        input_ids,
        num_beams=5,
        do_sample=True,
        top_p=0.9,
    )
  3. 长度惩罚(Length Penalty)

    python

    复制

    outputs = model.generate(
        input_ids,
        length_penalty=2.0,  # 抑制过长生成
    )

推理大模型的核心算法通过不同方式平衡 生成质量、多样性、计算效率

  • 自注意力机制 提供全局依赖建模能力;

  • 束搜索 和 Top-p 采样 控制生成策略;

  • MCTS 和 思维链 解决复杂推理问题。
    实际应用中需根据任务需求选择算法组合,并通过参数调整优化结果。

;