推理大模型(如 GPT、PaLM、LLaMA 等)的核心算法原理围绕如何高效生成高质量文本或解决复杂任务展开。以下是关键算法的原理详解,从数学基础到实际应用逐步解析。
1.自注意力机制(Self-Attention)
原理
-
目标:捕捉序列中任意两个位置之间的依赖关系,解决长距离依赖问题。
-
数学分解:
-
输入:词向量矩阵 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(dkQKT)V
-
-
多头注意力:并行计算多个注意力头,增强模型对不同语义空间的捕捉能力:
MultiHead(Q,K,V)=Concat(head1,…,headh)WOMultiHead(Q,K,V)=Concat(head1,…,headh)WO其中,每个头的输出维度为 dk/hdk/h。
关键作用
-
长距离依赖:直接计算任意两词的关系,无需通过递归或卷积。
-
并行计算:矩阵运算可并行化,适合 GPU 加速。
2.束搜索(Beam Search)
原理
-
目标:在生成文本时,找到概率最高的候选序列,避免贪婪搜索的局部最优。
-
步骤:
-
初始化:维护一个大小为 kk 的候选集(称为“束”),初始为起始符。
-
扩展:每一步为每个候选序列生成下一个词的概率分布,保留 Top-kk 的路径。
-
终止:当生成结束符或达到最大长度时,选择累积概率最高的路径。
-
-
数学形式:
-
候选序列的联合概率为各步条件概率的乘积:
P(y1,y2,…,yT)=∏t=1TP(yt∣y1,…,yt−1)P(y1,y2,…,yT)=t=1∏TP(yt∣y1,…,yt−1) -
束搜索通过动态规划近似最大化该联合概率。
-
优缺点
-
优点:相比贪婪搜索,生成结果更优;相比穷举搜索,计算效率高。
-
缺点:可能导致重复或过于保守的输出(因固定保留 kk 个路径)。
改进策略
-
长度归一化:对长序列的累积概率取平均,避免短序列偏向。
-
多样性惩罚:抑制重复选择相似候选路径。
3.Top-p(Nucleus)采样
原理
-
目标:平衡生成多样性与可控性,避免随机采样的不连贯性。
-
步骤:
-
对概率分布按降序排序,选择最小词集合使其累积概率超过阈值 pp。
-
重新归一化选中词的概率分布,从中采样。
-
-
数学形式:
-
给定概率分布 PP,排序后得到 {x(1),x(2),…,x(n)}{x(1),x(2),…,x(n)}。
-
找到最小 kk 使得 ∑i=1kP(x(i))≥p∑i=1kP(x(i))≥p。
-
采样范围限定为前 kk 个词,概率重新分配:
P′(x(i))=P(x(i))∑j=1kP(x(j))P′(x(i))=∑j=1kP(x(j))P(x(i))
-
优势
-
动态调整:根据当前分布的置信度自动选择候选词数量。
-
多样性控制:通过 pp 调节生成结果的保守/创造性(如 p=0.9p=0.9 保留主要候选,p=0.5p=0.5 增加多样性)。
4.蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)
原理
-
应用场景:复杂推理任务(如数学证明、策略游戏)。
-
四阶段流程:
-
选择(Selection):从根节点出发,基于 UCB(Upper Confidence Bound)公式选择子节点,平衡探索与利用:
UCB(vi)=Q(vi)N(vi)+clnN(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):将模拟结果反向更新路径上的节点统计量。
-
-
终止条件:达到预设模拟次数或时间限制后,选择访问次数最多的节点。
优势
-
高效搜索:通过模拟快速评估候选路径的价值。
-
平衡探索与利用:避免陷入局部最优。
5.思维链(Chain-of-Thought, CoT)
原理
-
目标:通过显式生成中间推理步骤,提升复杂问题(如数学、逻辑)的解决能力。
-
实现方式:
-
显式提示:在输入中要求模型分步推理(如添加“请逐步思考”)。
-
自生成推理:模型在生成答案前,先输出中间推理过程。
-
-
数学示例:
复制
输入:若一个房间有3张桌子,每张桌子有4把椅子,共有多少把椅子? 输出: 1. 每张桌子有4把椅子。 2. 3张桌子总共有3 × 4 = 12把椅子。 答案:12
关键作用
-
错误定位:通过中间步骤更容易发现推理错误。
-
知识分解:将复杂问题拆解为子问题,降低单步生成难度。
6.算法对比与选择
算法 | 适用场景 | 核心优势 | 缺点 |
---|---|---|---|
束搜索 | 翻译、摘要等确定性任务 | 输出质量高,可控性强 | 可能过于保守,计算资源占用高 |
Top-p 采样 | 创意文本生成 | 多样性高,结果更自然 | 可能生成不连贯内容 |
MCTS | 数学推理、策略决策 | 全局最优搜索能力强 | 计算成本极高,需大量模拟 |
思维链(CoT) | 复杂逻辑问题 | 提升多步推理能力 | 依赖提示工程,生成步骤可能冗余 |
7.实际调参建议
-
温度参数(Temperature):
-
高温(>1):平滑概率分布,增加随机性。
-
低温(<1):锐化概率分布,输出更确定性。
python
复制
# Hugging Face 中的温度调节示例 outputs = model.generate(input_ids, temperature=0.7)
-
-
束搜索与采样结合:
python
复制
# Beam Search + Top-p 采样 outputs = model.generate( input_ids, num_beams=5, do_sample=True, top_p=0.9, )
-
长度惩罚(Length Penalty):
python
复制
outputs = model.generate( input_ids, length_penalty=2.0, # 抑制过长生成 )
推理大模型的核心算法通过不同方式平衡 生成质量、多样性、计算效率:
-
自注意力机制 提供全局依赖建模能力;
-
束搜索 和 Top-p 采样 控制生成策略;
-
MCTS 和 思维链 解决复杂推理问题。
实际应用中需根据任务需求选择算法组合,并通过参数调整优化结果。